www.pudn.com > ISAR.rar > ISAR.m, change:2012-08-24,size:3956b


% 本程序用于对三维转台目标进行ISAR成像(发射LFM信号,stretch处理) 
 
% 目标上的强点的位置及强度 
clear all; 
clc; 
Scatterers_no=16;                                        % 目标上的强点数,人工输入 
X=[ 0 100 100 0 0 100 100 0 40 60 60 40 40 60 60 40 ];                % 目标上的强点的X坐标(船的长度,取小于100米),人工输入 
Y=[ 0 0 50 50 0 0 50 50 20 20 30 30 20 20 30 30 ];               % 目标上的强点的Y坐标(船的宽度,取小于50米),人工输入 
Z=[ 0 0 0 0 20 20 20 20 20 20 20 20 26 26 26 26 ];                % 目标上的强点的Z坐标(船的高度,取小于30米),人工输入 
G=[ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ];                                    % 目标上的强点的反射强度,人工输入,不妨均取为1 
 
delta_pha=-60;                             % 仰角变化,单位:度,人工输入 
delta_pha=delta_pha*pi/180;              % 化成弧度 
delta_sita=-90;                            % 水平角变化,单位:度,人工输入 
delta_sita=delta_sita*pi/180;            % 化成弧度 
for delta_pha=-60:10:60 
    for delta_sita=-90:10:90 
        R0=sqrt(X.*X+Y.*Y+Z.*Z);                        %强点到原点距离 
        pha0=atan2(Z,sqrt(X.*X+Y.*Y));                  %仰角 
        sita0=atan2(Y,X);                               %水平角 
        % 雷达参数 
        c=3.0e8;                                                %电磁波传播速度 
        f0=1.0E10;                                              %中心频率,10GHz 
        wave_length=c/f0;                                       %波长,单位:米 
        B=150E6;                                                %带宽,200MHz 
        tao=25.6e-6;                                            %脉宽,25.6微秒 
        Range_resolution=c/2/B;                                 %距离分辨率;单位:米 
        Cross_range_resolution=Range_resolution;                %横向分辨率,取与距离分辨率相同 
        Rotation_angle=wave_length/2/Cross_range_resolution;    %达到要求的横向分辨率需要的目标的转过的角度,单位:弧度 
        M=1024/4;                                % 脉冲回波数,若目标尺寸大,则取大些(大于目标的最长尺寸/分辨率) 
        N=1024/4;                                % 每个脉冲在脉内采样点数,则取大些(大于目标的最长尺寸/分辨率) 
        T=tao/N;                                 % 采样周期 
         
        %回波信号产生 
        echos=zeros(M,N);                        % 初始化,用于存放回波数据,M个脉冲,每个脉冲采样1024点,复数据 
        for ii=1:M 
            ii; 
            for jj=1:N 
                echos(ii,jj)=0; 
                for kk=1:Scatterers_no 
                    yy=R0(kk)*cos(pha0(kk)+delta_pha)*cos(sita0(kk)+delta_sita+Rotation_angle/M*(ii-1)-Rotation_angle/2); 
                    yy1=yy*(f0-B/2+B/N*(jj-1))/c; 
                    phase=-4*pi*yy1; 
                    cc=exp(1i*phase); 
                    echos(ii,jj)=echos(ii,jj)+cc*G(kk); 
                end 
            end 
        end 
        % 成像 
        NFFT=2*N;                                    % 距离FFT,防混叠,乘2 
        profiles=zeros(M,NFFT); 
        for ii=1:M 
            range=echos(ii,:).*hamming(N)';          % 每个脉冲下的回波数据,加海明窗 
            range_profile=fftshift(fft(range,NFFT));          % 距离像 
            profiles(ii,:)=range_profile; 
        end 
        MFFT=2*M;                                  % 横向FFT,防混叠,乘2 
        Image=zeros(MFFT,NFFT); 
        for jj=1:NFFT 
            cross_range=profiles(:,jj).*hamming(M);           % 每个脉冲下的回波数据,加海明窗 
            cross_range_profile=fftshift(fft(cross_range,MFFT));          % 横向像 
            Image(:,jj)=cross_range_profile; 
        end 
        ISAR_image=abs(Image);                             %ISAR 实图像 
        ISAR_image=ISAR_image/max(max(ISAR_image));        %归一化,此数据用于输出,可作识别用的图像 
         
        figure;imshow(1-ISAR_image); %显示图像 
         
        title(['delta_pha=',num2str(delta_pha), 'delta_sita=',num2str(delta_sita)]) 
         
    end 
end