代码复现如下:
Matlab
clc
clear
close all
% 参数设置
TBP = 100; % 时间带宽积
T = 7.2e-6; % 脉冲持续时间
t_0 = 1e-6; % 脉冲回波时延
% 参数计算
B = TBP/T; % 信号带宽
K = B/T; % 线性调频频率
alpha_os = 1.25; % 过采样率
F = alpha_os*B; % 采样频率
N = 2*ceil(F*T/2); % 采样点数
dt = T/N; % 采样时间间隔
df = F/N; % 采样频率间隔
% 变量设置
t = -T/2:dt:T/2-dt; % 时间变量
f = -F/2:df:F/2-df; % 频率变量
%信号表达
st = exp(1j*pi*K*t.^2); %chirp信号时域表达式
Sf = fft(st); %chirp信号频域表达式
Hf = exp(1j*pi*f.^2/K); %匹配滤波器频域表达式
S_out_f = Sf.*Hf; %匹配滤波输出信号频域表达式
%窗函数
window = kaiser(N,2.5)'; %时域窗函数
Window = fftshift(window); %频域窗函数
%信号变换
st_window = window.*st; %加窗后的chirp信号
Hf_Window = Window.*Hf; %加窗后的匹配滤波频域表达式
S_out_f_window = Sf.*Hf_Window; %加窗后的匹配滤波输出频域表达式
%绘图
set(figure,'position',[500,500,600,300])
subplot(221),plot(t*1e+6,window),axis([-4 4,0 1.2])
subplot(222),plot(f*1e-6,Window),axis([-10 10,0 1.2])
subplot(223),plot(t*1e+6,real(st_window)),ylim([-1.2 1.2])
subplot(224),plot(f*1e-6,real(S_out_f_window)),ylim([-15 15])