SAR距离多普勒成像(RD)算法

系列:

(1)SAR距离多普勒成像(RD)算法_Xc Lbb的博客-CSDN博客

(2)Chirp Scaling SAR成像算法(CS算法)_chirp scaling算法_Xc Lbb的博客-CSDN博客

(3)SAR成像波数域WK成像算法_Xc Lbb的博客-CSDN博客

(4)SAR后向投影(BP)成像算法_Xc Lbb的博客-CSDN博客

距离多普勒算法

(1)实现框图

(2)流程

①雷达原始数据:

解调后单个点目标的基带信号可以表示为:

                                       

其中——距离向快时间轴(光速)

      ——方位向慢时间轴(波束照射区的推移)

    ——多普勒中心频率

   ——距离向包络(矩形窗函数)

  ——方位向包络(sinc平方型函数 

   ——载波频率

  ——距离向调频率

瞬时斜距:(RD算法一般用到二阶近似)

②距离压缩:去除信号的二次相位,距离匹配函数为:

                          

距离压缩处理后沿距离向为sinc函数形式,即下式中的

③方位向傅里叶变换

方位向傅里叶变换后,变为距离多普勒域,距离相同而方位不同的点目标在距离多普勒域中,位置重合。因此多个距离相同的点目标可以同时进行RCMC,这是算法可以高效实现的关键。

其中距离徙动:

④RCMC

插值:用于恢复非整数点上的函数值,使用sinc函数进行插值时,首先应当计算出相较于原来的变化量,以及插值轴的采样间隔,用变化量除以采样间隔得到移动量。

取P点的sinc插值,插值公式为:

其中n'∆n四舍五入的整数部分,而franc(∆n)∆n的小数部分。

RD算法的插值在距离时域进行,变化量,移动量

⑤方位向压缩

匹配滤波器为:

压缩后的信号为:

(3)仿真

参数来源于表4.1中机载典型参数

代码参考这位大佬: SAR成像(七):RD成像算法_rd算法_璇焱如柳的博客-CSDN博客

close all; clear; clc;
%% 仿真参数
%参数来源表4.1,P98
%2023.6.23 lbb
R_etac=30e3;%景中心斜距
H=10e3;%飞行高度
Tr=10e-6;%脉冲宽度
B=100e6;%信号带宽
Kr=B/Tr;%距离脉冲调频率
Fr=1.2*B;%距离采样率
Vr=250;%雷达有效速度
f0=9.4e9;%载波频率
c=3e8;%光速
lamda=c/f0;%波长
Ka=2*Vr^2/lamda/R_etac;%方位向调频率
La=1;%天线真实孔径
Ls=0.886*R_etac*lamda/La;%合成孔径长度
Ta=Ls/Vr;%目标照射时间
Bw_doppler=0.886*2*Vr/La;%多普勒带宽
Fa=600;%方位向采样率
im=sqrt(-1);%虚数单位
%% 成像区域[Xc-X0,Xc+X0; Yc-Y0,Yc+Y0]
Xc = sqrt(R_etac^2-H^2);
Yc = 0;
Xo = 500;
Yo =300;
Rmin=sqrt(H^2+(Xc-Xo)^2);%观测场景距飞机的最近距离
Rmax=sqrt(H^2+(Xc+Xo)^2);%观测场景距飞机的最远距离
Ra=Ls+2*Yo;%正侧视时雷达在方位向行走距离
%% 目标位置
target = [Xc,Yc;
          Xc-300,Yc+200;
          Xc-300,Yc-200];  
%% 生成回波
eta=0:1/Fa:Ra/Vr-1/Fa;%慢时间轴
tao=2*Rmin/c-Tr/2:1/Fr:2*Rmax/c+Tr/2-1/Fr;%快时间轴
Na=length(eta);%方位向采样点数
Nr=length(tao);%距离向采样点数
signal_receive=zeros(Na,Nr);%回波
y=-Ra/2+Vr*eta;%飞机的位置
R_eta=zeros(size(target,1),Na);%瞬时斜距
A0=1;%幅度
for i=1:size(target,1)
    R_eta(i,:)=sqrt(target(i,1)^2+(target(i,2)-y).^2+H^2);
     for j=1:Na
         signal_receive(j,:)=A0*rectpuls(tao-2*R_eta(i,j)/c,Tr).*(abs(target(i,2)-y(j))<Ls/2).*...
         exp(-im*4*pi*f0*R_eta(i,j)/c).*exp(im*pi*Kr*(tao-2*R_eta(i,j)/c).^2)+signal_receive(j,:);
    end
end
%% 距离压缩
t=-Tr/2:1/Fr:Tr/2-1/Fr;
signal_ref=exp(im*pi*Kr*t.^2);%参考信号
NFFT=Nr+length(signal_ref)-1;%FFT点数
y1=zeros(Na,NFFT);
for i=1:Na
   y1(i,:)=ifft(fft(signal_receive(i,:),NFFT).*fft(conj(fliplr(signal_ref)),NFFT));
end
signal_matched=y1(:,length(signal_ref)/2:length(signal_ref)/2+Nr-1);%取出完全卷积点
r=((tao*c/2).^2-H^2).^(1/2);%距离向横坐标
figure;
[R,Y] = meshgrid(r,y);mesh(R,Y,abs(signal_matched));view(0,90);xlim([27800 28300]);
xlabel('距离向');
title('距离压缩后');
%% RCMC
Signal_azimuth_FFT=zeros(Na,Nr);
for i=1:Nr
  Signal_azimuth_FFT(:,i)=fftshift(fft(signal_matched(:,i),Na));%方位向FFT
end
%截断sinc函数插值
Signal_RCMC=zeros(Na,Nr);
f_eta=linspace(-Fa/2,Fa/2,Na);
P=8;%截断sinc插值的核函数的点数
delta_R=lamda^2*R_etac*(f_eta).^2/8/Vr^2;
delta_n=round(2*delta_R*Fr/c);
fracn=2*delta_R*Fr/c-delta_n;
for m=1:Na
    for n=P/2+1:Nr
        for i=-P/2:1:P/2-1
            if n+delta_n(m)+i>Nr
               Signal_RCMC(m,n)=Signal_RCMC(m,n)+Signal_azimuth_FFT(m,Nr)*sinc(delta_n(m)-i); %防止溢出
            else
               Signal_RCMC(m,n)= Signal_RCMC(m,n)+Signal_azimuth_FFT(m,n+delta_n(m)+i)*sinc(fracn(m)-i);
            end
        end       
    end
end
figure;
[R,Y] = meshgrid(r,y);
mesh(R,Y,abs(ifft(Signal_RCMC)));view(0,90);xlim([27800 28300]);
title('距离徙动校正')
xlabel('距离向');
%% 方位压缩
signal_processed=zeros(Na,Nr);%处理完的信号
H_az=exp(-im*pi*f_eta.^2/Ka);
for k=1:Nr
    signal_processed(:,k) =ifft( H_az.'.*(Signal_RCMC(:,k))); %方位向压缩后
end
figure;
mesh(r,y,abs(signal_processed));
view(0,90);xlim([27800 28300]);
xlabel('距离向');
ylabel('方位向');
zlabel('幅度'); title('点目标成像结果');

仿真效果:

 

 

公式自己敲得可能有错

  • 5
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值