實際LFM信號處理脈沖壓縮結果主瓣極高怎么回事?
瀏覽:2433
我對保存在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('幅度');




















