石磊 发表于 2013-5-28 13:43:50

这个程序距离加窗有问题,麻烦帮改下

clc;clear;close all;Tp=9.2E-6;B=60.E6;FS=70.E6;TS=1.0/FS;K=B/Tp;k=K;va=100.0;PRF=500.0;c=3E8;lamd=0.032;L_Tp=ceil(Tp*FS);La=360.;del_x=va/PRF;Nr=1024;Na=2048;raw_data=zeros(Nr,Na);azimuth_samples=ceil(La/del_x);rc=50.e3;r0=zeros(1,azimuth_samples);for ii=1:azimuth_samples;    r0(ii)=sqrt((-La/2+ii*del_x)^2+rc^2);endka=-2.*(va+0.05)^2/(lamd*rc);tao=-Tp/2.:1/FS:(Tp/2-1./FS);T_cai=transpose(tao);%%*****************************************************************************************for ii=1:azimuth_samples;   mm=round((r0(ii)-rc)/c*FS);   raw_data(Nr/2.-L_Tp/2+mm:Nr/2+mm+L_Tp/2.-1,Na/2.-azimuth_samples/2.+ii)=exp(j*pi*K.*T_cai.*T_cai)*exp(-j*4.*pi*r0(ii)/lamd);end%%******************************************************************************************%%**************************range compression***********************************************nn=ceil(B/FS*Nr)f_range=zeros(nn,1);mat_r=zeros(Nr,1);%f_range(Nr/2.-L_Tp/2.:Nr/2.+L_Tp/2.-1)=exp(j*pi*K.*transpose(tao).*transpose(tao));%mat_r=conj(fft(f_range));f_range=transpose(-B/2:FS/Nr:B/2);mat_r(Nr/2-nn/2.:Nr/2+nn/2-1)=exp(j*pi.*f_range.*f_range/K);for ii=Na/2-azimuth_samples/2:Na/2+azimuth_samples/2;    raw_data(:,ii)=ifft(fftshift(fft(raw_data(:,ii))).*mat_r);end%%**************************azimuth compression*********************************************aa=ceil(100./PRF*Na)f_azimuth=zeros(1,aa);f_azimuth=(-50:PRF/Na:50);mat_a=zeros(1,Na);raw_data1=zeros(Na,Na);mat_a(Na/2.-aa/2:Na/2.+aa/2.-1)=exp(j*pi*f_azimuth.*f_azimuth/ka);for ii=1:Nr ;    raw_data1(ii,:)=ifft(fftshift(fft(raw_data(ii,:))).*mat_a);end%%******************************************************************************************% figure;tt=raw_data(Nr/2,:);tt=smooth(tt,11);tt1=zeros(500,1);for ii=1:500;    tt1(ii)=tt(ii*4);end;contour((abs(raw_data1)));%%%%方位聚聚加窗,距离加窗类似%%%%%%%%%%s_w=chebwin(azimuth_samples,60).';%%t_w=zeros(1,Na);%%t_w(1:azimuth_samples)=s_w;%%raw_data2=zeros(Nr,Na);%%for ii=1:Nr;    %%raw_data2(ii,:)=ifft(fftshift(fft(raw_data(ii,:).*t_w)).*mat_a);%%end%%%%距离加窗%%%%%%%%h_w=chebwin(Nr,60).';k_w=zeros(Nr,1);k_w(1:Nr)=h_w;raw_data3=zeros(Nr,Na);for ii=1:Nr;    raw_data3(:,ii)=ifft(fftshift(fft(raw_data(:,ii).*k_w)).*mat_r);end%%%%加窗后目标距离剖面figure;plot(20*log10(abs(raw_data3(:,511))),'r');grid on;figure;plot(20*log10(abs(raw_data(:,511))),'b');grid on
页: [1]
查看完整版本: 这个程序距离加窗有问题,麻烦帮改下