%Range Doppler Algorithm——多普勒距离算法
close all;clf;clc;
c=3e8; %光速
f0=10e9; %载频10GHz
lamd=c/f0; %波长
Tp=1e-6; %脉宽1us
B=100e6; %带宽100MHz
PRF=3600; %脉冲频率3600Hz
fs=120e6; %采样频率120MHz
K=B/Tp; %调频斜率
v=150; %雷达速度150m/s
x1=0;y1=0; %目标1坐标(0,0)
x2=30;y2=0; %目标2坐标(30,0)
x3=0;y3=30; %目标3坐标(0,30)
Na=8192; %脉冲个数8912
beta=18/180*pi; %波束宽度18°
R0=1000; %雷达与目标1距离1000m
Nr=256; %距离向采样点数
Tr=Nr/fs; %距离向采样的总时间
Ta=Na/PRF; %方位向观察的总时间
tr=2*R0/c+linspace(-Tr/2,Tr/2,Nr); %距离向时间(快时间)
ta=linspace(-Ta/2,Ta/2,Na); %方位向时间(慢时间)
xr=v*ta; %方位向距离
yr=R0; %距离向值
fr=linspace(-fs/2,fs/2,Nr); %距离向频率
fa=linspace(-PRF/2,PRF/2,Na); %方位向频率
r=tr*c/2; %距离向距离
%SAR回波模拟
echo_signal=zeros(Nr,Na);
for i=1:Na
s1=zeros(1,Nr); %回波脉冲1
s2=zeros(1,Nr); %回波脉冲2
s3=zeros(1,Nr); %回波脉冲3
r1=sqrt((y1+yr).^2+(xr(i)-x1).^2); %距离目标1的距离
cita1=atan(abs(x1-xr(i))/(yr+y1)); %雷达到目标1的角度,与垂线的角度
if (abs(cita1)<beta/2) %条带式脉冲目标扫描区域
s1=exp(j*(pi*K*(tr-2*r1/c).^2-2*pi*f0*2*r1/c)).*(abs(tr-2*r1/c)<Tp/2); %目标1回波
else
s1=0;
end
r2=sqrt((y2+yr).^2+(xr(i)-x2).^2); %距离目标2的距离
cita2=atan(abs(x2-xr(i))/(yr+y2)); %雷达到目标2的角度,与垂线的角度
if (abs(cita2)<beta/2)
s2=exp(j*(pi*K*(tr-2*r2/c).^2-2*pi*f0*2*r2/c)).*(abs(tr-2*r2/c)<Tp/2); %目标2回波
else
s2=0;
end
r3=sqrt((y3+yr).^2+(xr(i)-x3).^2); %距离目标3的距离
cita3=atan(abs(x3-xr(i))/(yr+y3)); %雷达到目标3的角度,与垂线的角度
if (abs(cita3)<beta/2)
s3=exp(j*(pi*K*(tr-2*r3/c).^2-2*pi*f0*2*r3/c)).*(abs(tr-2*r3/c)<Tp/2); %目标3回波
else
s3=0;
end
echo_signal(:,i)=s1+s2+s3;
end
figure(1); %绘制SAR回波
imagesc(xr,r,abs(echo_signal));
title('SAR原始回波信号');
xlabel('方位向/m');
ylabel('距离向/m');
axis xy;
%距离向脉压
tran_signal=exp(-1j*pi*fr.^2/K);
for i=1:Na
echo_signal(:,i)=ifft(fft(echo_signal(:,i)).*fftshift(tran_signal'));
end
figure(2); %绘制距离向脉压后信号
imagesc(xr,r,abs(echo_signal));
title('距离向脉冲压缩');
xlabel('方位向/m');
ylabel('距离向/m');
axis xy;
% 插值法消除距离徙动
echo_signal=fftshift(fft(echo_signal,[],2),2); %转换到距离多普勒域
for i=1:Na
delt_r=lamd.^2*R0*fa(i).^2/8/v.^2;
echo_signal(:,i)=interp1(r,echo_signal(:,i),r+delt_r); %插值函数interp1
end
figure(3); %绘制距离徙动校正后回波
imagesc(xr,r,abs(echo_signal));
title('距离徙动校正');
xlabel('方位向/m');
ylabel('距离向/m');
axis xy;
%方位向脉压
for ii=1:Nr
Ka=2*v.^2/lamd/r(ii);
puls_a=exp(-j*pi*fa.^2/Ka).*(abs(fa)<Ka*Ta/2); %方位向匹配滤波函数
echo_signal(ii,:)=ifft(echo_signal(ii,:).*puls_a);
end
figure(4); %绘制最终处理图像
imagesc(xr,r,abs(echo_signal));
title('方位向脉冲压缩');
xlabel('方位向/m');
ylabel('距离向/m');
axis xy;
评论1