clear all;
clc;
close all;
C=3e8; %光速
ima=sqrt(-1); %虚数单位
%%场景中心参数
R0=2e4; %场景中心斜距
Wr=0.12e3; %场景宽度
%%雷达参数
fc=10e9; %工作频率10GHz
lamda=C/fc; %波长
H=5000; %高度 5000m
SNR=-10;
%%天线参数
D=4; %天线孔径长度
Lsar=lamda*R0/D; %雷达合成孔径长度
%%距离向参数
Tr=10e-6; %发射脉冲时宽
B=180e6; %带宽
Kr=B/Tr; %调频率
Fsr=200e6; %距离采样率
dt=1/Fsr; %距离采样时间
nrn=round((Tr+2*Wr/C)*Fsr/2)*2; %距离向的取样数
nrn_Tr=Fsr*Tr; %脉冲区间的取样数
Nfast_signal=exp(ima*pi*Kr*([-nrn_Tr/2:nrn_Tr/2-1].'/Fsr).^2); %参考信号
Nfast=2.^ceil(log2(nrn+nrn_Tr)); %为了达到线性卷积的要求而取两者之和
r_signal=[zeros(round(Nfast/2-nrn_Tr/2),1);Nfast_signal;zeros(round(Nfast/2-nrn_Tr/2),1)];
%%方位向参数
Fa=100; %方位采样率
PRF=500; %脉冲重复频率
PRT=1/PRF; %脉冲重复时间
V=100;
ar=5;
wt=0.05;
nan=round(PRF*lamda*R0/D/V/2)*2; %方位向取样数
%%分辨率参数
DY=C/2/B; %距离向分辨率
DX=D/2; %方位向分辨率
%%目标参数
Ntarget=11; %点目标个数
deltaX=15;
deltaY=15;
points=zeros(Ntarget,3);
points(:,1)=[2*deltaX;deltaX;deltaX;0;0;0;0;0;-deltaX;-deltaX;-2*deltaX];
points(:,2)=[0;0;-2*deltaY;2*deltaY;deltaY;0;-deltaY;-2*deltaY;0;-2*deltaY;0];
points(:,3)=ones(Ntarget,1);
figure;
h=stem(points(:,1),points(:,2),'fill');
grid on;
set(h,'LineStyle','none');
axis([-50 50 -50 50])
title('点目标真实图');xlabel('x');ylabel('y');
%雷达回波
nrn=2048;
nan=512;
tnan=[-nan/2:nan/2-1]*PRT;
tnrn=2*R0/C+[-nrn/2:nrn/2-1]'/Fsr;
s=zeros(nrn,nan);
for n=1:nan
Rs=R0+V*tnan(n)+1/2*ar*tnan(n)^2;
for m=1:Ntarget
rp=sqrt(points(m,1)^2+points(m,2)^2);
phi=atan2(points(m,2),points(m,1))+wt*tnan(n);
R=sqrt(Rs^2+rp^2+2*Rs*rp*sin(phi));
td=2*R/C;
win_r=(abs(tnrn-td)<=Tr/2); %距离包络(矩形窗函数)
s_mn=points(m,3).*exp(ima*pi*Kr*(tnrn-td).^2).*win_r.*exp(-ima*4*pi*R/lamda);
s(:,n)=s(:,n)+s_mn;
end
s(:,n)=awgn(s(:,n),SNR);
end
figure,imagesc(abs(s))
title('回波图像');xlabel('距离向');ylabel('方位向');
%距离压缩
range_signal=exp(ima*pi*Kr*([-nrn_Tr/2:nrn_Tr/2-1].'/Fsr).^2);
r_signal=[zeros(round(nrn/2-nrn_Tr/2),1);range_signal;zeros(round(nrn/2-nrn_Tr/2),1)];
for n=1:nan
s1(:,n)=ifftshift(ifft(ifftshift(fftshift(fftshift(fft(s(:,n))).*conj(fftshift(fft(r_signal)))))));
end
figure,imagesc(abs(s1))
title('距离压缩图像');xlabel('方位向');ylabel('距离向');
%包络对齐
x=[zeros(3.5*nrn,nan);
fftshift(fft(s1),1);
zeros(3.5*nrn,nan)];
ref=abs(ifft(fftshift(x(:,1))));
r=zeros(8*nrn,1);
mopt = zeros(1,nan);
for m=2:nan
b1=abs(ifft(fftshift(x(:,m))));
r=fftshift(ifft(fft(ref).*conj(fft(b1))));
r=abs(r);
mopt(m)=find(r == max(r)) - (8*nrn/2+1);
x(:,m)=ifft(fftshift(x(:,m).*exp(-1i*2*pi/(8*nrn)*mopt(m)*[0:8*nrn-1]')));
s1(:,m)=x(1:8:end,m);
ref=0.95*ref+abs(x(:,m));
end
figure;contour(abs(s1));
xlabel('方位向');ylabel('距离向');title('包络对齐之后图像');
clear x
%单特显点自聚焦
sigma=zeros(nrn,1);
for n=1:nrn
mS=mean(abs(s1(n,:)));
dS=std(abs(s1(n,:)));
sigma(n)=1-mS^2/(mS^2+dS^2);
end
Min=find(sigma==min(sigma));
phas=zeros(1,nan);
for m=2:nan
phas(m)=phase(s1(Min,m).*conj(s1(Min,1)));
s1(:,m)=s1(:,m).*exp(-1i*phas(m));
end
%方位多普勒成像
for n=1:nrn
s2(n,:)=fftshift(fft(s1(n,:)));
s3(n,:)=ifftshift(ifft(s1(n,:)));
end
figure;contour(abs(s2));
xlabel('方位向');ylabel('距离向');title('自聚焦之后图像(未加窗)');
figure;contour(abs(s3));
xlabel('方位向');ylabel('距离向');title('自聚焦之后图像(未加窗)');
- 1
- 2
- 3
- 4
- 5
- 6
前往页