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

📄 sarecho_rma.m

📁 条带式合成孔径雷达的cs。RDA。RMA算法 作者何志华
💻 M
字号:
%%SAR回波
%Stripmap 模式下SAR的回波生成
%NUDT,Hezhihua
%E-mail:skynismile@yahoo.com.cn
%last update:26/6/2005

clear all
%%range:x domain
%x=c*t/2,kx=2*f/c
Tx=200;%时宽200m(1.33us)
Bx=1;%带宽1(1/m)(150MHz)
a=Bx/Tx;%调频斜率
kxc=4;%载频4(1/m)
Nx=512;
Xc=1200;X0=150;
x=Xc+linspace(-X0,X0,Nx);%x域序列:Xc-X0~Xc+X0
dx=2*X0/Nx;
kx=linspace(-1/dx/2,1/dx/2,Nx);%kx域序列

%%cross-range:y domain
Ty=300;%时宽300m,合成孔径长度
By=1;%带宽1(1/m)
b=kxc/Xc;%调频斜率 b=By/Ty=kxc/Xc
Ny=1024;
Y0=200;
y=linspace(-Y0,Y0,Ny);%y域序列:-Y0~Y0
dy=2*Y0/Ny;
ky=linspace(-1/dy/2,1/dy/2,Ny);%ky域序列

%%target geometry
Ntar=3;%目标个数
Ptar=[Xc,0,1+0j  %x坐标,y坐标,复后向散射系数             
          Xc+50,-50,1+0j
          Xc+50,50,1+0j];
      
%%SAR raw data
s_xy=zeros(Nx,Ny);
for i=1:1:Ntar
    xn=Ptar(i,1);yn=Ptar(i,2);sigma=Ptar(i,3);
    X=x'*ones(1,Ny);%扩充为矩阵
    Y=ones(Nx,1)*y;
    DX=X-sqrt(xn^2+(Y-yn).^2);
    phase=pi*a*DX.^2-2*pi*kxc*sqrt(xn^2+(Y-yn).^2);
    s_xy=s_xy+sigma*exp(j*phase).*(abs(DX)<Tx/2).*(abs(Y-yn)<Ty/2);%SAR回波信号
end

%%距离压缩
p0_x=exp(j*pi*a*(x-Xc).^2).*(abs(x-Xc)<Tx/2);%距离向LFM信号
p0_kx=fftshift(fft(fftshift(p0_x)));
s_kxy=fftshift(fft(fftshift(s_xy)));
s_kxky=fftshift(fft(fftshift(s_kxy).')).';%%二维频域
sxc_kxky=s_kxky.*(conj(p0_kx).'*ones(1,Ny));%%匹配滤波

%%相位补偿
phase_kxky=Xc*(sqrt((kx+kxc).^2'*ones(1,Ny)-ones(Nx,1)*ky.^2)-(kx+kxc)'*ones(1,Ny));
sxcp_kxky=sxc_kxky.*exp(j*2*pi*phase_kxky);

%%Stolt插值
P=8/2;%8点sinc插值
Stolt_kxky=zeros(Nx,Ny);%初始化
dkx=1/dx/Nx;%频域间隔
KX_kxky=(sqrt((kx+kxc).^2'*ones(1,Ny)+ones(Nx,1)*ky.^2)-kxc)-kx'*ones(1,Ny);
KX=fix(KX_kxky/dkx);

for i=P:Nx-max(max(KX))-P
    for j=1:Ny
       T=KX(i,j)+(-P+1:P);
       f=sxcp_kxky(i+T,j).';
       Stolt_kxky(i,j)=sum(f.*sinc(KX_kxky(i,j)/dkx-T));
    end
    i
end

%%2D IFFT
Stolt_xky=fftshift(ifft(fftshift(Stolt_kxky)));
Stolt_xy=fftshift(ifft(fftshift(Stolt_xky).')).';

%%存储数据
save sarecho.mat Tx Bx a Ty By b Xc...
                             dx dy ...
                             Nx Ny kxc...
                             x y kx ky...
                             sxc_kxky sxcp_kxky...
                             Stolt_kxky Stolt_xky Stolt_xy;
clear all
disp('echo OK')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -