www.pudn.com > UWB.rar > UWB.m, change:2011-09-28,size:3643b


close all;clear all;clc; 
T=2e-6;                            %脉冲宽度 
B=150e6;                             %LFM带宽 
K=B/T;                              %调频率 
Fs=4*B;Ts=1/Fs;                    %采样频率和采样间隔 
Ns=T/Ts; 
t=linspace(-T/2,T/2,Ns); 
St=exp(j*pi*K*t.^2);  
Gt=exp(-j*pi*K*t.^2);  
Nfft=2*Ns; 
St_Frq=fftshift(fft(St,Nfft));Gt_Frq=fftshift(fft(Gt,Nfft));%LFM信号与参考信号 
figure;plot(1:Nfft,abs(St_Frq)); 
Sot_Direct=ifft(fftshift(St_Frq.*Gt_Frq));   %直接压缩 
%%================================================================== 
%子频带划分 
Msub=3;                                   %子频带个数 
N_sub=B/Fs*Nfft/Msub;                     %子频带点数 
St_subFrq=zeros(Msub,Nfft);Gt_subFrq=zeros(Msub,Nfft); 
Nstart=(Nfft-B/Fs*Nfft)/2; 
for kk=1:Msub                             %进行划分 
    Stemp=St_Frq(Nstart+N_sub*(kk-1)+1:Nstart+N_sub*kk); 
    Gtemp=Gt_Frq(Nstart+N_sub*(kk-1)+1:Nstart+N_sub*kk); 
    St_subFrq(kk,1:N_sub/2)=Stemp(N_sub/2+1:end);St_subFrq(kk,Nfft-N_sub/2+1:end)=Stemp(1:N_sub/2);             %?????? 
    Gt_subFrq(kk,1:N_sub/2)=Gtemp(N_sub/2+1:end);Gt_subFrq(kk,Nfft-N_sub/2+1:end)=Gtemp(1:N_sub/2); 
%     figure,plot(abs(St_subFrq(kk,:))); 
end 
%%============================================================ 
%子带减采样 
Fls=200e6;D=Fs/Fls;Nnew=Nfft/D;%计算新的采样点数与减采样率 
St_sub=ifft(St_subFrq,Nfft,2);                  %??????? 
Gt_sub=ifft(Gt_subFrq,Nfft,2); 
St_sub1=zeros(Msub,Nnew);Gt_sub1=zeros(Msub,Nnew); 
for ii=1:Nnew           %抽样处理 
    St_sub1(:,ii)=St_sub(:,D*ii); 
    Gt_sub1(:,ii)=Gt_sub(:,D*ii); 
end 
Nfft1=2*Nnew; 
St_subFrq1=fft(St_sub1,Nnew,2);  %减采样之后的频谱 
Gt_subFrq1=fft(Gt_sub1,Nnew,2); 
 for kk=1:Msub 
 figure,plot(abs(St_sub1(kk,:))); 
title('子带减采样') 
 end 
%  figure,plot(abs(Gt_sub1(2,:))); 
%%========================================================= 
%子带脉压 
Sot_subFrq1=St_subFrq1.*Gt_subFrq1;   %各子带频谱分别相乘 
Sot_sub=ifft(Sot_subFrq1,Nnew,2);   % ???? %变换回时域以便进行插值处理 
figure; 
subplot(2,1,1) 
plot(1:Nnew,20*log10(abs(Sot_sub(1,:))/max(abs(Sot_sub(1,:))))); 
title('子带1脉冲压缩结果') 
subplot(2,1,2) 
plot(1:Nnew,20*log10(abs(Sot_sub(1,:))/max(abs(Sot_sub(1,:))))); 
axis([350 450 -50 0]) 
title('局部放大图') 
 
 
%%======================================================== 
%利用频域低通滤波实现sinc插值 
Sot_sub1=zeros(Msub,Nfft); 
for jj=1:Nnew 
    Sot_sub1(:,jj*D)=Sot_sub(:,jj);   %插零处理 
end 
Sot_subFrq1=fft(Sot_sub1,Nfft,2);     %变换到频域低通滤波 
Sot_subFrqFilt=zeros(Msub,Nfft); 
Sot_subFrqFilt(:,[1:Nnew/2,Nfft-Nnew/2+1:end])=Sot_subFrq1(:,[1:Nnew/2,Nfft-Nnew/2+1:end]);%低通滤波 
Sot_sub=ifft(Sot_subFrqFilt,Nfft,2); 
Sot_sub=circshift(Sot_sub,[0 2]);%????? 
figure; 
subplot(2,1,1) 
plot(1:Nfft,20*log10(abs(Sot_sub(1,:))/max(abs(Sot_sub(1,:))))); 
title('子带1插值结果') 
subplot(2,1,2) 
plot(1:Nfft,20*log10(abs(Sot_sub(1,:))/max(abs(Sot_sub(1,:))))); 
axis([1050 1350 -50 0]) 
title('局部放大图') 
%%===================================================== 
%多通道综合 
Sot=Sot_sub(1,:).*exp(-j*pi/6*(1:Nfft))+Sot_sub(2,:)+Sot_sub(3,:).*exp(j*pi/6*(1:Nfft));%三个通道频谱搬移后求和 
Sot=circshift(Sot',1)'; 
figure;plot(1:Nfft,20*log10(abs(Sot)/max(abs(Sot))),'r--','LineWidth',2); 
hold on;plot(1:Nfft,20*log10(abs(Sot_Direct)/max(abs(Sot_Direct))),'g'); 
legend('综合压缩效果','直接压缩效果') 
title('效果比较') 
axis([-inf inf -70 0]) 
figure;plot(1:Nfft,20*log10(abs(Sot)/max(abs(Sot))),'g--','LineWidth',2);hold on; 
plot(1:Nfft,20*log10(abs(Sot_Direct)/max(abs(Sot_Direct))),'r','LineWidth',2); 
legend('综合压缩结果','直接压缩效果') 
title('局部放大') 
axis([1150 1250 -50 0])