fangzhen.m

来自「基于MATLAB的信号处理」· M 代码 · 共 65 行

M
65
字号
lose all; 
clear all;
eps = 1e-10;
%=====================================================================
%                            雷达参数                                       %
%====================================================================
C=3.0e8;  %光速(m/s)
Lambda=0.03;%雷达工作波长
f0=C/Lambda;
BandWidth=1.0e6;  %发射信号带宽
TimeWidth=200e-6; %发射信号时宽
mu=BandWidth/TimeWidth %调频率
Fs=2*BandWidth;  %采样频率
Ts=1/Fs;
Ns=fix(Fs*TimeWidth);%计算一个脉冲周期的采样点数;
N=1024;         %FFT点数
t=0:Ts:TimeWidth-Ts;
%====================================================================
y=exp(j*pi*mu*t.^2);
yfft = fft(y,N) ;
h=zeros(1,Ns);
for i=1:Ns
    h(i)=conj(y(Ns-i+1));
end
hfft= fft(h,N);     % 匹配滤波器的频域响应
ycomp =abs(ifft(yfft .*hfft)); %脉冲压缩    
maxval = max (ycomp);
ycomp = eps + ycomp ./ maxval;    % 利用最大值归一化
ycomp_db=20*log10(ycomp);   %取对数
%%%%%%%%%%%%%% 加窗处理 %%%%%%%
win = hamming(Ns)';
h_w=h.*win;       % 加窗
hfft_w=fft(h_w,N);     % 加窗的匹配滤波器的频域响应
ycomp_w = abs(ifft(yfft .*hfft_w)); %脉冲压缩 
maxval1 = max(ycomp_w);
val=ycomp_w ;
ycomp_w = eps + ycomp_w ./ maxval;    % 利用ycomp的最大值归一化
ycomp_w1 = eps + val./ maxval1;    % 利用ycomp_w的最大值归一化
ycomp_w_db=20*log10(ycomp_w);   %取对数
ycomp_w1_db=20*log10(ycomp_w1);   %取对数
%%%%%%%%%%%%%%%%
tt =0:Ts:2*TimeWidth-Ts;
figure(1)
plot (tt,ycomp_db(1:2*Ns),'b')
axis([.2*TimeWidth 1.8*TimeWidth -60 0] )
xlabel ('t - seconds ');
ylabel('幅度db')
title('未加窗的脉冲压缩输出')
grid on
figure(2)
plot (tt,ycomp_w1_db(1:2*Ns),'r')
axis([.2*TimeWidth 1.8*TimeWidth -60 0] )
xlabel ('t - seconds ');
ylabel(' 幅度db')
title('加窗的脉冲压缩输出')
grid on
figure(3)
plot (tt,ycomp_db(1:2*Ns),'b',tt,ycomp_w_db(1:2*Ns),'r')
axis([.2*TimeWidth  1.8*TimeWidth -60 0] )
xlabel ('t - seconds ');
ylabel(' 幅度db')
legend('未加窗','加窗');
title('脉冲压缩输出对比')
grid on

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?