%点目标的机载SAR正侧视仿真
%简单二维脉压成像
close all;clear;
%基本参数
c = 3*10^8; %波速
fc = 5.3*10^9; %载频5.3GHz
lamda = c/fc; %波长
v = 150; %雷达速度150m/s
B = 150*10^6; %发射信号带宽150MHz
Daz = 2; %方位天线尺寸2m
R0 = 20*10^3; %参考点斜距20km
Tr = 1.5*10^-6; %脉冲持续时间
Kr = B/Tr; %线性调频信号调频斜率
H = 10000; %雷达高度
Yc = sqrt(R0^2-H^2); %成像中线
center = [0,Yc,0]; %场景中心坐标
CR = Daz/2; %横向分辨率
thetaaz = lamda/Daz; %波束宽度
Fs = 5*B; %采样频率
Dsar = lamda*R0/(2*CR); %合成孔径长度
Tsar = Dsar/v; %一个合成孔径时间
Ka = -2*v^2/(lamda*R0); %多普勒调频斜率
Ba = abs(Ka*Tsar); %多普勒带宽
PRF = 1.2*Ba; %脉冲重复频率
X = 150;Y = 150; %场景大小
Rmin = sqrt((Yc-Y/2)^2+H^2); %场景最小距离
Rmax = sqrt((Yc+Y/2)^2+H^2+(Dsar/2)^2); %场景最大距离
Nfast = ceil(((2*(Rmax-Rmin)/c+Tr)*Fs)); %快时间维采样点数
tf = 2*R0/c+(-(Nfast/2):(Nfast/2)-1)/Fs; %快时间采样序列
Nslow = ceil((X+Dsar)/v*PRF); %慢时间维(方位向)采样点数
ts = (-(Nslow/2):(Nslow/2)-1)/PRF; %慢时间采样序列
pos = [0,0,0,3;-50,50,0,3;70,80,0,6;30,20,0,6]; %目标相对中心点位置,[x,y,z,rcs],第四列为后向反射系数
Rpos(:,1:3) = pos(:,1:3)+ones(size(pos,1),1)*center; %目标绝对位置
Rpos(:,4) = pos(:,4);
%回波信号
signal = zeros(Nfast,Nslow);
for i = 1:size(Rpos,1)
Xs = ts.*v-Rpos(i,1);
Ys = 0-Rpos(i,2);
Zs = H-Rpos(i,3);
sigma = Rpos(i,4); %反射系数
R = sqrt(Xs.^2+Ys^2+Zs^2); %斜距
tau = 2*R/c; %时延
Tfast = tf'*ones(1,Nslow)-ones(Nfast,1)*tau; %列是快时间 行是慢时间
Phase = pi*Kr.*Tfast.^2-(4*pi/lamda)*ones(Nfast,1)*R; %相位延迟
signal = signal+sigma*exp(j*Phase).*(abs(Tfast)<=Tr/2).*(ones(Nfast,1)*(abs(Xs)<=Dsar/2)); %回波
S = fftshift(fft(fftshift(signal)));
end
%RD算法
hf = exp(j*pi*Kr*(tf-2*R0/c).^2).*(abs(tf-2*R0/c)<=Tr/2); %距离向参考函数
Hf = (fftshift(fft(fftshift(hf))).')*ones(1,Nslow);
ComF = S.*conj(Hf); %距离向匹配滤波
Sr = fftshift(ifft(fftshift(ComF))); %距离向IFFT
Coms = fftshift(fft(fftshift(Sr.'))).'; %方位向FFT
hs = exp(j*pi*Ka*ts.^2).*(abs(ts)<Tsar/2); %方位向参考函数
Hs = ones(Nfast,1)*fftshift(fft(fftshift(hs)));
ComS = Coms.*conj(Hs); %方位向匹配滤波,多普勒域
Saz = fftshift(ifft(fftshift(ComS.'))).';
%距离徙动校正
fr = (-Nfast/2:Nfast/2-1)/Nfast*Fs; %快时间频率
faz = (-Nslow/2:Nslow/2-1)/Nslow*PRF; %慢时间频率
H_rcmc = exp(j*2*pi*fr'*c*R0*faz.^2/(4*v^2*fc^2)); %二维频域距离校正相位因子
RComF = fftshift(fft(fftshift(ComF.'))).'; %二维FFT
C_rcmc = RComF.*H_rcmc;
Sr_rcmc = fftshift(ifft(fftshift(C_rcmc))); %多普勒域
s_rcmc = fftshift(ifft(fftshift(Sr_rcmc.'))).'; %RCMC后的距离向压缩结果
S_rcmc = fftshift(fft(fftshift(s_rcmc.'))).';
Saz_rcmc = fftshift(ifft(fftshift((S_rcmc.*conj(Hs))).')).';%RCMC后的方位向压缩结果
%画图
rf = c*tf/2;
az = v*ts;
[Az,Rf] = meshgrid(az,rf);
figure(1);
subplot(121);
mesh(Az,Rf,abs(Sr));view(0,90);
title('(a) 未RCMC');
xlabel('方位x/m');ylabel('斜距R/m');
subplot(122);
mesh(Az,Rf,abs(s_rcmc));view(0,90);
title('(b) RCMC');
xlabel('方位x/m');ylabel('斜距R/m');
figure(2);
[f,Rf] = meshgrid(faz,rf);
subplot(121);
mesh(f,Rf,abs(ComS));view(0,90);
title('(a) 未RCMC');
xlabel('多普勒/Hz');ylabel('斜距R/m');
subplot(122);
mesh(f,Rf,abs(Sr_rcmc));view(0,90);
title('(b) RCMC');
xlabel('多普勒/Hz');ylabel('斜距R/m');
figure(3);
mesh(Az,Rf,abs(Saz));view(0,90);
title('未RCMC的RD算法成像结果');
xlabel('方位x/m');ylabel('斜距R/m');
figure(4);
mesh(Az,Rf,abs(Saz_rcmc));view(0,90);
title('RCMC后RD算法成像结果');
xlabel('方位x/m');ylabel('斜距R/m');
RD_RCMC.zip_RCMC_RD_ontopml_校正_距离徙动校正
版权申诉
5星 · 超过95%的资源 19 浏览量
2022-07-15
20:33:43
上传
评论
收藏 2KB ZIP 举报
局外狗
- 粉丝: 66
- 资源: 1万+
评论1