- i -
- ii -
- iii -
- iv -
- v -
- 1 -
- 2 -
- 3 -
- 4 -
- 5 -
단 - 6 -
- 7 -
- 8 -
sin exp - 9 -
max - 10 -
- 11 -
경계조건 and - 12 -
- 13 -
- 14 -
- 15 -
- 16 -
- 17 -
- 18 -
- 19 -
- 20 -
- 21 -
- 22 -
- 23 -
- 24 -
- 25 -
- 26 -
- 27 -
Name quantity Part# Description Supplier RF Part Voltage Controlled Ocilator 1 ZX95-2536C+ 2315-2536 MC VCO, +6dBm Out Mini-Circuits Attenuator 1 VAT-3+ 3dB SMA M-F attenuator Mini-Circuits Low Noise Aplifier 2 ZX60-272LN-S+ Gain 14 db, NF=1.2 db, IP1=18.5 dbm Mini-Circuits Splitter 1 ZX10-2-42+ 1900-4200Mc, 0.1 db insertion loss Mini-Circuits Frequency Mixer 1 ZX05-43MH-S+ 13dBm LO, RF to LO loss 6.1 db, IP1 9 dbm Mini-Circuits SMAM-MBarrels 4 SM-SM50+ SMA-SMA M-M barrel Mini-Circuits SMA Straight Plug 5 1S-110-00 SMA Straight Plug 11st RF Cable 1 NA RF Cable In Lab Electronic Part Wood plate 1 NA - In Lab Function Generator 1 XR-2206 Function Generator Chip ELE PARTS - 28 -
Name quantity Part# Description Supplier Amplifier chip 1 TL074CN LOW NOISE, JFET INPUT OPERATIONAL AMPLIFIERS DONGSHIN PARTS Breadboard 1 BL-200 5.5x16.5cm solderless breadboard 11st 1000 pf 5% capacitor 4 M/T 102 1000pf 5% capacitor DONGSHIN PARTS 8450 ohm 1% resistor 1 MR1/4WTB-8.45K 8450 ohm 1% resistor 100 EA DONGSHIN PARTS 102K ohm 1% resistor 1 MR1/4WTB-102K 102K ohm 1% resistor 100 EA DONGSHIN PARTS 7150 ohm 1% resistor 1 MR1/4WTB-7.15K 7150 ohm 1% resistor 100 EA DONGSHIN PARTS 1K ohm 1% resistor 3 MR1/4WTB-1K 1K ohm 1% resistor 100 EA DONGSHIN PARTS 12.1K ohm 1% resistor 1 MR1/4WTB-12.1K 12.1K ohm 1% resistor 100 EA DONGSHIN PARTS 17.4K ohm 1% resistor 1 MR1/4WTB-17.4K 17.4K ohm 1% resistor 100 EA DONGSHIN PARTS 28K ohm 1% resistor 1 MR1/4WTB-28K 28K ohm 1% resistor 100 EA DONGSHIN PARTS 4120 ohm 1% resistor 1 MR1/4WTB-4.1K 4120 ohm 1% resistor 100 EA DONGSHIN PARTS 1620 ohm 1% resistor 1 MR1/4WTB-1.6K 1620 ohm 1% resistor 100 EA DONGSHIN PARTS 0.1 uf capacitor 2 T/T 35V0R1 0.1 uf capacitor DONGSHIN PARTS 100 uf capacitor 2 22961 100uf capacitor DEVICE MART 10k trimmer potentiometer 1 20326 10k trimmer potentiometer DEVICE MART 200 ohm, 5% resistor 1 CR1/4TB-200 200ohm, 5% DONGSHIN PARTS Batterypack 2 COMF-4AAC 4xAA battery pack with power switch DONGSHIN PARTS - 29 -
Name quantity Part# Description Supplier 5V Voltage Regulator chip 1 KA/LM7805(TO-220) 5V low dropout Positive Voltage Regulator DONGSHIN PARTS Audio line 1 NDS-STC-MF-3M 3.5 mm plug to stripped wires DONGSHIN PARTS 0.47 uf capacitor 1 T/T 35V0R47 0.47 uf capacitor DONGSHIN PARTS 2M trimmer potentiometer 1 20335 2M trimmer potentiometer DEVICE MART 50K trimmer potentiometer 1 20329 50K trimmer potentiometer DEVICE MART 1 uf capacitor 1 1315 1 uf electrolytic cap DEVICE MART 10 uf capacitor 2 1318 10 uf electrolytic cap DEVICE MART 5.1 K resistor 2 MR1/4WTB-5.1K 5.1 K resistor DONGSHIN PARTS 10 K resistor 2 CR1/4TB-10K 10 K resistor DONGSHIN PARTS LED 1 B5134 Red LED DONGSHIN PARTS 1 K resistor 1 CR1/4TB-1K 1 K resistor DONGSHIN PARTS 100 K resistor 2 CR1/4TB-100K 100 K resistor DONGSHIN PARTS 47 K 5% Resistor 12 CR1/4TB-47K 47 K 5% resistor DONGSHIN PARTS 1uF capacitor unpolarized 1 11296 1 uf film capacitor DEVICE MART - 30 -
- 31 -
- 32 -
- 33 -
exp sin - 34 -
- 35 -
clear all close all c = 2.997925e8; FS = 44100; % sampling frequency Tp = 0.02; % pulse time N = FS * Tp; % range sampling number fstart = 2240e6; %(Hz) LFM start frequency fend = 2560e6; %(Hz) LFM stop frequency Rs = 0; Lx = 2.48; % scan length delta_x = 0.04; % scan step L_ax = 0.1; % antenna langth nnum = 4; % target number t_cen = [0, 100]; % target center d_xy = [20, 20]; % target steps std = 0; % noise std rerr = 0.00; % position error direction range aerr = 0.00; % position error direction azimuth Xa = linspace(-lx/2,lx/2,lx/delta_x+1); - 36 -
Rt = zeros(size(xa,2),nnum.^2); if nnum ~= 0 [xt, yt] = ctars(t_cen,d_xy,nnum); save SARtargets xt yt nnum = nnum^2; for ii = 1:size(Xa,2) Rt(ii,:) = sqrt((xa(ii)-xt(:) - aerr * (2*rand-1)).^2 + (yt(:) - rerr * (2*rand-1)).^2); end figure;scatter(yt,xt,'o'); axis equal xlabel('range'); ylabel('azimuth'); end Kr = linspace(4*pi*fstart/c,4*pi*fend/c,n); phi_if = zeros(size(xa,2),n); sif = zeros(size(xa,2),n); count = 0; for ll = 1:nnum for ii = 1:size(Xa,2) phi_if(ii,:) = Kr*(Rt(ii,ll) - Rs); end sif = sif + exp(-1j*phi_if); count = count + 1; - 37 -
end clear Rt phi_if nois = std * (rand(size(sif)) - 1i * rand(size(sif))); s = sif/count + nois; save GBSARpara s fend fstart delta_x L_ax Kr Xa Rs; figure; imagesc(kr*c/(4*pi*1e9),xa,abs(s)); colormap(gray); ylabel('x position(m)'); xlabel('recieved chirp frequency (GHz)'); title('amplitute value of the single point scatter SAR data matrix'); colorbar; cbar = colorbar; set(get(cbar, 'Title'), 'String', 'db', 'fontsize', 13); figure; imagesc(kr*c/(4*pi*1e9),xa,angle(s)); colormap(gray); ylabel('x position(m)'); xlabel('recieved chirp frequency (GHz)'); title('phase value of the single point scatter SAR data matrix'); colorbar; cbar = colorbar; set(get(cbar, 'Title'), 'String', 'radian', 'fontsize', 13); - 38 -
clear all close all tic load GBSARpara c = 2.997925e8; fheadout = 'GBsimul'; nrange = size(s,2); nazimuth = size(s,1); ystart = -(delta_x*(size(s,1)-1))/2; % m yend = (delta_x*(size(s,1)-1))/2; % m ystep = delta_x; % m mfft_range = 4; % over sampling factor mfft_azimuth = 4; % over sampling factor mazimuth_td = 1; % Time domain over sampling factor mazimuth_rma = 8; % RMA over sampling factor R_center = 0; se_cri = inf; % Deramp-FFT algorithm range limit % algorithm selector % 1 : Deramp-FFT % 2 : Range migration ifocus = 2; approx = 1; % approximation deramp function; 1 : on, 2 : off fnamespec = '%s_approx %d_%d_%s'; set(0,'defaultaxesfontsize',13); - 39 -
%% Range 파라미터입력 fc=(fstart+fend)/2; % center frequency lambda=c/fc; % wavelength bandw_r=fend-fstart; % bandwidth delt=1./bandw_r; % delta t delr=c*delt/2.; % range resolution delf=bandw_r/(nrange-1); % frequency step, chirp rate t_max=1./(2.*delf); % maximum sampling time R_max= c*t_max/2.; % maximum range nrange_fft = nf(nrange); nrange_fft = nrange_fft * mfft_range; % range number after over sampling fft delt_fft=1./((nrange_fft-1)*delf); % delta t after over sampling delr_fft=c*delt_fft/2.; % range resolution after over sampling nrange_ffth=nrange_fft/2; % range number at result images %% Azimuth 파라미터입력 X = abs(yend-ystart); % scan length delu=1./x; % Azimuth wavenumber resolution R_full=L_ax/lambda*X; delx = abs(ystep); % scan step nazimuth_fft = nf(nazimuth); nazimuth_fft = nazimuth_fft * mfft_azimuth; % azimuth number after over sampling X_fft =(nazimuth_fft-1)*delx; % image length after over sampling delu_fft=1./x_fft; % azimuth resolution after over sampling deltheta_fft=lambda/2.*delu_fft; % angular resolution if R_center==0. R_center=R_max; end delx_fft = deltheta_fft*r_center; - 40 -
set(0,'defaultaxesfontsize',13); %% range compression vv = s; clear s if ifocus ~= 2 vv = cnshift(vv,nrange_fft,2); vv = han(vv, nazimuth, nrange_fft, nrange, 2); vv = ifft(vv,[],2); vv(:,(end/2+1):end) = 0; R = delr_fft * linspace(0,nrange_ffth,nrange_ffth); A = delu * linspace(-nazimuth/2,nazimuth/2,nazimuth); vv_out(:,:,1) = abs(vv(:,1:nrange_ffth)); vv_out(:,:,2) = angle(vv(:,1:nrange_ffth)); fname = sprintf(fnamespec,fheadout,approx,0,'rangecomp'); gcf = figure;imagesc(r,a,abs(vv(:,1:nrange_ffth))); title('rangecompression Image'); colormap(gray) axis equal; xlabel('range'); ylabel('azimuth wavenumber'); multibandwrite(vv_out,fname,'bil'); gen_ers(fname, nazimuth, nrange_ffth, delx, delr_fft, 2, '181'); - 41 -
clear vv_out fname pname gcf end %% /* Deramp-FFT Algorithm for Far Range */ if ifocus == 1 vvr = vv(:,1:nrange_ffth); clear vv % /* Deramp */ x = delx*linspace(-nazimuth/2,nazimuth/2,nazimuth); phase1 = 2.*pi/lambda*x.^2; yc = delr_fft*(1:nrange_ffth); X_hcut = abs(yc)/r_full*x/2.; phase = zeros(nazimuth,nrange_ffth); if approx == 0 maxtheta = deltheta_fft * nazimuth_fft/2; theta = 2 * tan(maxtheta) * yc; rxc = zeros(nazimuth,nrange_ffth); for jj = 1:nrange_ffth; end rxc(:,jj) = linspace(-theta(jj)/2,theta(jj)/2,nazimuth); end for ii = 1:nazimuth logi = abs(x(ii)) < X_hcut; if approx == 1 else phase(ii,:) = logi.* phase1(ii) / yc; - 42 -
trc = sqrt(yc.^2 + rxc(ii,:).^2); phase(ii,:) = logi.* yc.^2.* phase1(ii)./ trc.^3; end end expp = exp(1j*phase); vvr = vvr.* expp; % clear cosp sinp tmp1 tmp2 clear phase phase1 x expp logi X_hcut maxtheta rxc Rc % /* Azimuth rail baseband */ vvr = cnshift(vvr,nazimuth_fft,1); % /* Azimuth Hamming filter */ vvr = han(vvr, nazimuth_fft, nrange_ffth, nazimuth, 1); % /* Azimuth FFT */ vvr = fftshift(fft(vvr,[],1),1); % range limitation cut R_limit = pi * X^2 / (2 * lambda * se_cri) * abs((1/sqrt(1+(lambda/(2 * L_ax))^2))^3-1); nr_limit = fix(r_limit/delr_fft); vvr(:,1:nr_limit) = 0; % /* Output Deramp-FFT SAR Data */ fname = sprintf(fnamespec,fheadout,approx,2,'df'); R = delr_fft * linspace(0,nrange_ffth,nrange_ffth); A = deltheta_fft * linspace(-nazimuth_fft/2,nazimuth_fft/2,nazimuth_fft) * 180 / pi; - 43 -
figure;imagesc(r,a,abs(vvr)); title('un-geocoded Deramp-FFT Image'); colormap(gray) axis equal; xlabel('range'); ylabel('azimuth'); vv_out(:,:,1) = abs(vvr); vv_out(:,:,2) = angle(vvr); '181'); multibandwrite(vv_out,fname,'bil'); gen_ers(fname, nazimuth_fft, nrange_ffth, delx_fft, delr_fft, 2, clear vv_out R A pname gcf % /* Geocoding by Azimuth Resampling */ xc = delx_fft*linspace(-nazimuth_fft/2,nazimuth_fft/2,nazimuth_fft); Rc = zeros(nazimuth_fft,nrange_ffth); for ii = 1:nazimuth_fft; Rc(ii,:) = sqrt(yc.^2+xc(ii).^2); u(ii,:) = 2.*xc(ii)./(lambda*Rc(ii,:)); end irc = round(rc/delr_fft); jx= round((u/delu_fft + nazimuth_fft/2+0.5)); clear u Rc azvv = zeros(nazimuth_fft,nrange_ffth); for ii = 1:nazimuth_fft; for jj = 1:nrange_ffth; - 44 -
if jx(ii,jj) > 0 && jx(ii,jj) <= nazimuth_fft && irc(ii,jj) <= nrange_ffth azvv(ii,jj)=vvr(jx(ii,jj),irc(ii,jj)); end end end vvr = azvv; clear azvv jx irc u Rc % /* Output Deramp-FFT Geocoded SAR Data */ fname = sprintf(fnamespec,fheadout,approx,3,'df_geo'); R = delr_fft * linspace(0,nrange_ffth,nrange_ffth); A = delx_fft * linspace(-nazimuth_fft/2,nazimuth_fft/2,nazimuth_fft); gcf = figure;imagesc(r,a,abs(vvr)); title('geocoded Deramp-FFT Image'); colormap(gray); axis equal; xlabel('range (m)'); ylabel('azimuth (m)'); vv_out(:,:,1) = abs(vvr); vv_out(:,:,2) = angle(vvr); '181'); multibandwrite(vv_out,fname,'bil'); gen_ers(fname, nazimuth_fft, nrange_ffth, delx_fft, delr_fft, 2, clear vv_out % } /* end of Deramp-FFT */ - 45 -
end %% Range Migration Algorithm if ifocus == 2 nazimuth_fft_rma = nazimuth_fft * mazimuth_rma; vv = vv.* repmat(hann(size(vv,2))',size(vv,1),1); vv = fftshift(cnshift(vv,nazimuth_fft_rma,1),1); vvr = fftshift(fft(vv, [], 1), 1); clear vv Kr Kx = linspace(-pi/delta_x, pi/delta_x, size(vvr,1)); Ky = zeros(size(vvr)); Kr = linspace(4*pi*fstart/c,4*pi*fend/c,size(vvr,2)); for ii = 1:size(vvr,1) end Ky(ii,:) = sqrt(kr.^2 - Kx(ii)^2); if Rs ~= 0 vmf = exp(1j * Rs * Ky); vvr_mf = vvr.* vmf; clear vvr vmf else vvr_mf = vvr; clear vvr end kstart = min(kr); kstop = max(kr); Ky_even = linspace(kstart, kstop, size(vvr_mf,2)); - 46 -
vvr_st = zeros(size(vvr_mf)); for ii = 1:size(vvr_st,1) end vvr_st(ii,:) = interp1(ky(ii,:), vvr_mf(ii,:), Ky_even); vvr_st(isnan(vvr_st)) = 0; v = ifft2(vvr_st, nazimuth_fft_rma, nrange_fft); clear vvr_st vvr_mf Ky Kr Kx Ky_even Xa fname = sprintf(fnamespec,fheadout,approx,2,'rma'); R = delr_fft * linspace(0,nrange_ffth,nrange_ffth); A = delx * linspace(-nazimuth_fft_rma/2,nazimuth_fft_rma/2,nazimuth_fft_rma); gcf = figure;imagesc(r,a,abs(v(:,1:nrange_ffth))); title('range Migration Algorithm Image'); colormap(gray); axis equal; xlabel('range (m)'); ylabel('azimuth (m)'); vv_out(:,:,1) = abs(v); vv_out(:,:,2) = angle(v); '181'); multibandwrite(vv_out,fname,'bil'); gen_ers(fname, nazimuth_fft_rma, nrange_ffth, delx, delr_fft, 2, clear vv_out end toc - 47 -
function dout = cnshift(data, nrowcol, dir) if dir == 2 dout = [data(:,(fix(size(data,2)/2)+1):size(data,2)) z e r o s ( s i z e ( d a t a, 1 ), n r o w c o l - s i z e ( d a t a, 2 ) ) data(:,1:fix(size(data,2)/2))]; elseif dir == 1 dout = [data((fix(size(data,1)/2)+1):size(data,1),:); z e r o s ( n r o w c o l - s i z e ( d a t a, 1 ), s i z e ( d a t a, 2 ) ) ; data(1:fix(size(data,1)/2),:)]; else disp('error') end end function [xt, yt] = ctars(t_cen, d_xy, nnum) x_cen = t_cen(1); y_cen = t_cen(2); d_x = abs(d_xy(1)); - 48 -
d_y = abs(d_xy(2)); lx = d_x*(nnum-1); ly = d_y*(nnum-1); xstart = x_cen - lx/2; xend = x_cen + lx/2; ystart = y_cen - ly/2; yend = y_cen + ly/2; x = linspace(xstart,xend,nnum); y = linspace(ystart,yend,nnum); xt = zeros(1,nnum^2); yt = zeros(1,nnum^2); ccount = 1; for ii = 1:nnum for jj = 1:nnum xt(ccount) = x(ii); yt(ccount) = y(jj); ccount = ccount + 1; end end end function dout = han(data, nrow, ncol, nnum, dir) h = hann(nnum); h = 2*h; - 49 -
dout = zeros(nrow,ncol); if dir == 1; h = cnshift(h,nrow,1); for ii = 1:ncol; dout(:,ii) = data(:,ii).* h; end elseif dir == 2; h = h'; h = cnshift(h,ncol,2); for ii = 1:nrow; dout(ii,:) = data(ii,:).* h; end else disp('error'); end end function gen_ers (fname, nrow, ncol, drow, dcol, nband, bflag) str = sprintf('%s.ers',fname); fid = fopen(str,'w'); fprintf(fid,'datasetheader Begin\n'); fprintf(fid,' Version = \"6.0\"\n'); fprintf(fid,' Name = \"%s\"\n', fname); fprintf(fid,' Description = \"Generated by Hoonyol Lee and Younghun JI\"\n'); fprintf(fid,' LastUpdated = Thu Dec 04 00:00:00 GMT 2013\n'); fprintf(fid,' SensorName = \"Unknown\"\n'); fprintf(fid,' SenseDate = Thu Dec 04 00:00:00 GMT 2013\n'); - 50 -
fprintf(fid,' DataSetType = ERStorage\n'); fprintf(fid,' DataType = Raster\n'); fprintf(fid,' ByteOrder = LSBFirst\n'); fprintf(fid,' CoordinateSpace Begin\n'); fprintf(fid,' Datum = \"RAW\"\n'); fprintf(fid,' Projection = \"RAW\"\n'); fprintf(fid,' Projection = \"RAW\"\n'); fprintf(fid,' CoordinateType = RAW\n'); fprintf(fid,' Rotation = 0:0:0.0\n'); fprintf(fid,' CoordinateSpace End\n'); fprintf(fid,' RasterInfo Begin\n'); switch bflag case '181' fprintf(fid,' CellType = IEEE8ByteReal\n'); case '141' fprintf(fid,' CellType = IEEE4ByteReal\n'); case '140' fprintf(fid,' CellType = Signed32BitInteger\n'); case '040' fprintf(fid,' CellType = Unsigned32BitInteger\n'); case '110' fprintf(fid,' CellType = Signed8BitInteger\n'); case '010' fprintf(fid,' CellType = Unsigned8BitInteger\n'); end fprintf(fid,' fprintf(fid,' NullCellValue=0\n'); CellInfo Begin\n'); - 51 -
dcol); drow); ncol); fprintf(fid,' Xdimension = %f \n', fprintf(fid,' Ydimension = %f \n', fprintf(fid,' CellInfo End\n'); fprintf(fid,' NrOfLines = %d\n', nrow); fprintf(fid,' RegistrationCellX = 0\n'); fprintf(fid,' RegistrationCellY = %d\n', nrow/2); fprintf(fid,' NrOfCellsPerLine = %d\n', fprintf(fid,' NrOfBands = %d\n', nband); for i=1:nband; fprintf(fid,' BandId Begin\n'); fprintf(fid,' Value = \"Band%d\"\n', i); fprintf(fid,' BandId End\n'); end fprintf(fid,' RasterInfo End\n'); fprintf(fid,'datasetheader End\n'); fclose(fid); - 52 -
- 53 -
- 54 -