www.pudn.com > isar.zip > isar1.m, change:2013-04-08,size:3784b


clear all; 
clc;  
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(1)  
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(2) 
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(3) 
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(4) 
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,:))); 
end 
figure(5) 
contour(abs(s2));  
xlabel('方位向'); 
ylabel('距离向'); 
title('自聚焦之后图像未加窗');