📄 rcompr_s.m
字号:
cj=sqrt(-1);
pi2=2*pi;
%
c=3e8; % propagation speed
f0=30e6; % baseband bandwidth is 2*f0
w0=pi2*f0;
fc=9750e6; % carrier frequency
wc=pi2*fc;
lambda_min=c/(fc+f0); % Wavelength at highest frequency
lambda_max=c/(fc-f0); % Wavelength at lowest frequency
kc=(pi2*fc)/c; % wavenumber at carrier frequency
kmin=(pi2*(fc-f0))/c; % wavenumber at lowest frequency
kmax=(pi2*(fc+f0))/c; % wavenumber at highest frequency
%
Xc=1e4; % Range distance to center of target area
X0=100; % Target area in range is within [Xc-X0,Xc+X0]
Y0=40; % Target area in cross-range is within [-Y0,Y0]
%
%D=2*lambda_max; % Diameter of planar radar
% (Beamwidth of a planar radar aperture varies
% with fast-time frequency)
D = 4;
%
Bmin=(Xc-X0)*tan(asin(lambda_min/D)); % Minimum half-beamwidth
Bmax=(Xc+X0)*tan(asin(lambda_max/D)); % Maximum half-beamwidth
L=Bmax+Y0; % Synthetic aperture length is 2*L
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% u domain parameters and arrays for SAR signal %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
du=D/4; % sample spacing in aperture domain
du=du/1.2; % 10 percent guard band
m=2*ceil(L/du); % number of samples on aperture
dku=pi2/(m*du); % sample spacing in ku domain
u=du*(-m/2:m/2-1); % synthetic aperture array
ku=dku*(-m/2:m/2-1); % ku array
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% u domain parameters and arrays for compressed SAR signal %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
x_t=[Xc-X0:2*X0:Xc+X0];
lambda_t=[lambda_min:lambda_max-lambda_min:lambda_max];
B_t=x_t(:)*tan(asin(lambda_t/D));
L_t=B_t+Y0;
duc=min(min((x_t(:)*lambda_t)./(4*L_t))); % sample spacing in u domain
% for compressed SAR signal
% Less restrictive: use duc=du or
% duc=du/2
clear x_t lambda_t
dkuc=dku;
mc=2*ceil(pi/(duc*dkuc)); % number of samples on aperture
mc=2^ceil(log(mc)/log(2)); % is chosen to be a power of 2
duc=pi2/(mc*dkuc);
uc=duc*(-mc/2:mc/2-1); % synthetic aperture array
dkuc=pi2/(mc*duc); % sample spacing in ku domain
kuc=dkuc*(-mc/2:mc/2-1); % kuc array
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Fast-time domain parameters and arrays %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%Tp=1.5e-7; % Chirp pulse duration
Tp = 5e-6;
alpha=w0/Tp; % Chirp rate
wcm=wc-alpha*Tp; % Modified chirp carrier
%
Rmin=Xc-X0;
Rmax=sqrt((Xc+X0)^2+Bmax^2);
Ts=(2/c)*Rmin; % start time of sampling
Tf=(2/c)*Rmax+Tp; % end time of sampling
T=Tf-Ts; % fast-time interval of measurement
Ts=Ts-.1*T; % start slightly earlier (10% guard band)
Tf=Tf+.1*T; % end slightly later (10% guard band)
T=Tf-Ts;
theta_ax=asin(lambda_min/D);
Tmin=max(T,(4*X0)/ ...
(c*cos(theta_ax))); % Minimum required fast-time interval
%
dt=1/(4*f0); % Time domain sampling (guard band factor 2)
n=2*ceil((.5*Tmin)/dt); % number of time samples
t=Ts+(0:n-1)*dt; % time array for data acquisition
dw=pi2/(n*dt); % Frequency domain sampling
w=wc+dw*(-n/2:n/2-1); % Frequency array (centered at carrier)
k=w/c; % Wavenumber array
Ik=find(k >= kmin & k <= kmax);
[temp,nk]=size(Ik);
lambda=zeros(1,n);
lambda(Ik)=(pi2*ones(1,nk))./k(Ik); % Wavelength array
phi_d=asin(lambda/D); % Divergence angle
%
load ss;
%ns = zeros(1024,284);
%ns(100:n+99,:) = s;
%s = ns;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% range compression %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fs = fft(s);
%n = 358;
t = t - 2*Xc/c;
rsn=exp(cj*(wcm-wc)*t+cj*alpha*(t.^2)).*(t >= 0 & t <= Tp & ...
t < Tf);
%rx = zeros(1,1024);
%rx(100:n+99) = rsn;
%rsn = rx;
fr = fft(rsn);
fcr = fs.*((fr)' * ones(1,m));
rimg = ifft(fcr);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% azimuth compression %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
rimg2 = zeros(n,1024);
rimg2(:,1:m) = rimg;
rimg = rimg2;
m = 1024;
mm = ceil(Bmax / du / 2) * 2;
mu = [-mm/2:mm/2-1]*du;
asn = exp(cj*2*pi*mu.^2/(Xc+X0)/c*9750e6);
as = zeros(m,1);
as(1:mm) = asn;
asn = as;
fa = fft(asn);
aimg = fft(rimg.').*((fa)*ones(1,n));
img = ifft(aimg);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -