⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rcompr_s.m

📁 合成孔径雷达系统MATLALB模拟实现源码。
💻 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 + -