实际LFM信号处理脉冲压缩结果主瓣极高怎么回事?
浏览:512 回答:1
我对保存在rangLine中的实际LFM信号下变频之后得到基带信号,对基带信号进行脉冲压缩,得到了很高的主瓣,采用各种方法修改,还是改不对,跪求大家指点。ii之后是有关脉冲压缩的部分,其他部分画图的结果对比过了是没有问题的。
clc;
clear
% 参数
FI=450e6;
Tp=2e-6;
B=200e6;
fs=600e6;
ts=1/fs;
Nr=4800;
ts=ts:ts:ts*4800;
Kr=B/Tp;
% 加载信号
load('rangeLine.mat'); % 信号存储在变量 'rangeLine' 中
% 假设采样率和信号长度
fs = 600e6; % 假设采样率是600 MHz
N = length(rangeLine); % 信号的点数
t = (1:N)/fs; % 时间向量
% --- 绘制频谱图 ---
% 进行傅里叶变换
f = (1:N)*(fs/N); % 频率轴
signal_fft = fft(rangeLine); % 实际信号傅里叶变换
% 绘制时域图
figure(1);
subplot(2, 1, 1);
plot(rangeLine); % 绘制信号
xlabel('时间');
ylabel('幅度');
title('实际信号时域波形')
% 绘制频谱图
subplot(2, 1, 2);
plot(abs(signal_fft)); % 绘制频谱幅度
xlabel('频率');
ylabel('幅度');
title('实际信号频谱图')
%% i. complete the down-conversion and digital demodulation for the input IF LFM pulse signal
f = (0:N-1)*(fs/N);
% NCO信号(I分量和Q分量)
nco_cos = cos(2*pi*FI*t); % NCO信号(I分量)
nco_sin = sin(2*pi*FI*t); % NCO信号(Q分量)
% 数字下变频 (DDC)
I_signal = rangeLine .* nco_cos; % I分量
Q_signal = rangeLine .* nco_sin; % Q分量
Fpass=0.4;
Fstop=0.5;
Apass=1;
Astop=60;
h=fdesign.lowpass('fp,fst,ap,ast',Fpass,Fstop,Apass,Astop);
Hd=design(h,'equiripple','MinOrder','any','StopbandShape','flat');
set(Hd,'PersistentMemory',true);
signal=I_signal+1j*Q_signal; % 下变频之后的信号
baseband_signal=filter(Hd, signal); % 基带信号
% 基带信号频域
fft_baseband = fft(baseband_signal); % 基带频谱
figure(2);
% 绘制频谱幅度
plot(abs((fft(signal))));
title('信号频谱图');
xlabel('频率 ');
ylabel('幅度');
title('下变频频谱图')
% 基带信号时域
figure(3);
subplot(2, 1, 1);
plot(real(baseband_signal));
title('基带信号 ');
xlabel('时间 (s)');
ylabel('幅值');
title('基带信号时域图')
% 基带信号频域
subplot(2, 1, 2);
plot(abs(fft_baseband));
title('基带信号频域');
xlabel('频率 ');
ylabel('幅值');
title('基带信号频谱图')
%% ii. complete the pulse compression for the base-band LFM pulse signal through matched filter
% 构造脉冲压缩的传递函数
H = conj(fft_baseband); % 频域传递函数(共轭复数)
% 频域乘法进行脉冲压缩
basebandfft_compressed = fft_baseband .* H; % 在频域进行乘法(匹配滤波)
% 反傅里叶变换,得到脉冲压缩后的时域信号
baseband_compressed = ifft(basebandfft_compressed);
% 绘制脉冲压缩后的时域信号
figure(4);
plot(ts*fs,abs(baseband_compressed));
title('脉冲压缩后的基带信号时域图');
xlabel('时间');
ylabel('幅度');