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

📄 rda.m

📁 实现sar的静止目标的回波模型
💻 M
字号:
clear;
close all;
clc;
%下面是雷达参数设置,用于点目标成像;参数设置考虑到用RD算法时,不需要距离徙动校正
 B=20*1e6;             %线性调频信号带宽,为
 tao=10*1e-6;        %雷达发射脉冲的宽度,为
 prf=500;               %脉冲重复频率,为
 Tp=1/prf;              %脉冲重复周期,为
 v=100;                 %载有雷达的飞行器作匀速直线运动的速度,为100m/s
 fsample=B*1.25;              %采样率,为25MHz
 Ls=400;                %合成孔径长度,为400m
 Ts=Ls/v;               %合成孔径时间,为4s
 c=3*1e8;              %光速,为3*10^8m/s
 lambda=0.03;           %发射波波长,为0.03m
 R0=39*1e3;            %参考距离,为39km
 Kr=B/tao;              %距离向调频斜率,为2*10^12
 Ka=-2*v^2/(lambda*R0); %方位向匹配信号调频斜率,为-17.094 
 %参数设置结束
 
 %下面是获得方位向发射脉冲数及距离向抽样数
 N=round(Ts*prf)+1;     %方位向发射脉冲数为雷达天线扫过点目标,孔径时间内发射的脉冲数,为
 M=round(tao*fsample)+1;     %距离向抽样数为脉冲宽度内以采样率采样的数据量,为
 %矩阵维数确定:N*M
 
 for n=1:N
     R(n)=R0+(v*(n-1000)*Tp)^2/(2*R0); %确定载机和目标之间的距离,这个公式是近似的。因为参数设置满足近似条件。
 end
 
 %下面构建回波模型
 t=zeros(N,M);
 for n=1:N
     t(n,:)=(round(-tao*fsample/2):(round(tao*fsample/2)))+fsample*2*R(n)/c;   %每个时刻距离的延时不相同
 end
 
 S=zeros(N,M);
 S1=zeros(N,M);
 for n=1:N
     for m=1:M
         S(n,m)=exp(j*pi*Kr*(t(n,m)/fsample-2*R(n)/c).^2)*exp(-j*4*pi*R(n)/lambda);     %回波信号函数形式
     end
 end
 figure(1);
 imshow(S);
 title('回波信号');
 %回波信号构造完毕
 
  %RD算法流程:距离压缩--〉方位向傅里叶变换--〉距离徙动校正(之前的参数设置已经可以舍去校正)--〉方位压缩--〉方位向傅里叶逆变换及多视叠加--〉压缩数据
  
  %下面完成距离向频率和方位向频率的计算
  fa=-(N-1)/2:(N-1)/2;
  fa=fa/N*prf;   %方位向频率
  fr=-(M-1)/2:(M-1)/2;
  fr=fr/M*fsample; %距离向频率
 
 %回波信号的距离傅里叶变换
 for n=1:N
     S(n,:)=fftshift(fft(S(n,:)));
 end
 

 figure(2);
 surf(abs(S));
 axis tight;
 shading interp;
 title('回波信号的距离傅里叶变换');

 
 %距离压缩是回波信号的距离傅里叶变换通过匹配滤波器之后的输出
 for n=1:N
         S(n,:)=ifftshift(ifft(S(n,:).*conj(S(n,:))));
 end

 figure(3);
 surf(abs(S));
 axis tight;
 title('距离压缩结果');
 shading interp;

 
 %下面是方位向傅里叶变换
 for m=1:M
     S(:,m)=fftshift(fft(S(:,m)));
 end
 

 figure(4);
 surf(abs(S));
 axis tight;
 title('方位傅里叶变换输出结果');
 shading interp;
 
 %下面的处理将距离徙动校正舍去,近似认为参数设置比较理想。并进行单视处理。
 %最后一步进行方位压缩,并获得理想结果
   for m=1:M
         S(:,m)=S(:,m).*conj(S(:,m));
         S1(:,m)=20*log10(abs(S(:,m))+(1e-6));
   end
 figure(5);
 subplot(211);
 surf(abs(S));
 axis tight;
 title('方位向匹配滤波结果/幅度');
 shading interp;
 subplot(212);
 surf(abs(S1));
 axis tight;
 shading interp;
 title('方位向匹配滤波结果/分贝');
 
 %下面进行逆傅里叶变换获得时域冲激
 for n=1:N
   for m=1:M
     S(n,m)=ifftshift(ifft(S(n,m))); 
     S1(n,m)=20*log10(abs(S(n,m))+(1e-6));
   end
 end
  figure(6);
  surf(abs(S));
  axis tight;
  title('时域输出/幅度');
  shading interp;
  figure(7);
  surf(abs(S1));
  axis tight;
  title('时域输出/分贝');
  shading interp;
  figure('position',[0 0 1024 700]);
  imshow(S);
  title('平面显示');

  %全部结束

⌨️ 快捷键说明

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