?? w_pulse_compress_lfm.m
字號(hào):
close all;
clear all;
% ========== 線(xiàn)性調(diào)頻信號(hào)數(shù)字化正交解調(diào) ========================
% ========= 產(chǎn)生線(xiàn)性調(diào)頻信號(hào) ===================
t=10e-6; % 信號(hào)的時(shí)間長(zhǎng)度, 單位s
fs=30e6; % 采樣頻率,單位Hz
ts=1/fs;
fc=5e6; % 線(xiàn)性調(diào)頻信號(hào)的起始頻率
f0=7.5e6; % 本振信號(hào)的中心頻率
B=5e6; % 調(diào)頻帶寬
ft=0:1/fs:t-1/fs; % 時(shí)間序列步長(zhǎng)
N=length(ft);
k=B/fs*2*pi/max(ft); % modulate 函數(shù)產(chǎn)生
y=modulate(ft,fc,fs,'fm',k);
%k=B/t; % 直接公式產(chǎn)生
%y=cos(2*pi*(f0*ft+k*ft.^2/2));
y_fft_result=fft(y);
figure,subplot(2,1,1),plot(ft,y),xlabel('t(單位:秒)'),ylabel('y(單位:伏)'),title('線(xiàn)性調(diào)頻信號(hào)y(t)');
subplot(2,1,2),plot((0:fs/N:fs/2-fs/N),10*log(abs(y_fft_result(1:N/2)))),xlabel('頻率f(單位:Hz)'),title('線(xiàn)性調(diào)頻信號(hào)y(t)的頻譜');
% ========= 正交解調(diào) ============================
n=0:N-1;
local_oscillator_i=cos(n*f0/fs*2*pi); % i 路本振
local_oscillator_q=sin(n*f0/fs*2*pi); % q 路本振
fbb_i=local_oscillator_i.*y; % i 路解調(diào)
fbb_q=local_oscillator_q.*y; % q 路解調(diào)
window=chebwin(51,40); % 設(shè)計(jì)50階cheby窗的濾波器
[b,a]=fir1(50,2*B/fs,window);
fbb_i=[fbb_i,zeros(1,25)];
% fir 濾波器有25個(gè)采樣周期延遲,為保證所有信息全部通過(guò)濾波器,故補(bǔ)充25個(gè)0
fbb_q=[fbb_q,zeros(1,25)];
fbb_i=filter(b,a,fbb_i); % 低通濾波
fbb_q=filter(b,a,fbb_q);
fbb_i=fbb_i(26:end);
fbb_q=fbb_q(26:end);
figure,subplot(2,1,1),plot(ft,fbb_i),xlabel('t(單位:秒)'),title('解調(diào)后的I路信號(hào)');
subplot(2,1,2),plot(ft,fbb_q),xlabel('t(單位:秒)'),title('解調(diào)后的Q路信號(hào)');
fbb=fbb_i+j*fbb_q;
fbb_fft_result=fft(fbb);
figure,plot((0:fs/N:fs/2-fs/N),10*log(abs(fbb_fft_result(1:N/2)))),xlabel('頻率f(單位:Hz)'),title('解調(diào)后信號(hào)的頻譜');
%%%%%%%%%%% =========== 產(chǎn)生理想線(xiàn)性調(diào)頻脈沖壓縮系數(shù) ==========================
M=4096;
D=B*t;
match_filter=ts*fliplr(conj(fbb))*sqrt(D)*2/t;
%加窗處理
w=hamming(300);
w=w';
w_match_filter=match_filter.*w;
w_match_filter_fft=fft(w_match_filter,M);
%未加窗處理
match_filter_fft=fft(match_filter,M);
figure,subplot(2,1,1),plot(real(match_filter_fft)),title('脈沖壓縮系數(shù)(實(shí)部)');
subplot(2,1,2),plot(imag(match_filter_fft)),title('脈沖壓縮系數(shù)(虛部)');
figure,subplot(2,1,1);plot(10*log(abs(match_filter_fft)));subplot(2,1,2);plot(match_filter);
% ================== 產(chǎn)生理想回波信號(hào) ========================
t1=100e-6;
% signal=[zeros(1,(t1-2*t)/ts),y,zeros(1,t/ts)]; % 在13.5km處產(chǎn)生一個(gè)點(diǎn)目標(biāo)
% signal=[zeros(1,(t1-4*t)/ts),y,zeros(1,t/ts),y,zeros(1,t/ts)]; % 產(chǎn)生2個(gè)獨(dú)立點(diǎn)目標(biāo)
% signal=[zeros(1,(t1-3*t)/ts),y,y,zeros(1,t/ts)]; % 產(chǎn)生2個(gè)相鄰點(diǎn)目標(biāo)
signal1=[zeros(1,(t1-2*t)/ts),y,zeros(1,t/ts)]; % 產(chǎn)生2個(gè)重疊點(diǎn)目標(biāo)
signal2=[zeros(1,(t1-2.2*t)/ts),y,zeros(1,1.2*t/ts)]; % 產(chǎn)生2個(gè)重疊點(diǎn)目標(biāo)
signal=signal1+signal2;
n=1:1:length(signal);%4000;
figure,subplot(2,1,1),plot(n,signal1,n,signal2);
subplot(2,1,2),plot(signal),title('發(fā)射的LFM信號(hào)');
n=0:t1/ts-1;
local_oscillator_i=cos(n*f0/fs*2*pi); % i 路本振
local_oscillator_q=sin(n*f0/fs*2*pi); % q 路本振
fbb_i=local_oscillator_i.*signal; % i 路解調(diào)
fbb_q=local_oscillator_q.*signal; % q 路解調(diào)
window=chebwin(51,40); % 設(shè)計(jì)50階cheby窗的濾波器
[b,a]=fir1(50,2*B/fs,window);
fbb_i=[fbb_i,zeros(1,25)]; % fir 濾波器有25個(gè)采樣周期延遲,為保證所有信息全部通過(guò)濾波器,故補(bǔ)充25個(gè)0
fbb_q=[fbb_q,zeros(1,25)];
fbb_i=filter(b,a,fbb_i); % 低通濾波
fbb_q=filter(b,a,fbb_q);
fbb_i=fbb_i(26:end);
fbb_q=fbb_q(26:end);
signal=fbb_i+j*fbb_q;
figure,subplot(2,1,1),plot(real(signal)),title('接收的LFM信號(hào)(實(shí)部)-I');
subplot(2,1,2),plot(imag(signal)),title('接收的LFM信號(hào)(虛部)-Q');
figure,plot(10*log(abs(signal))),title('接收信號(hào)幅度');
% ====================== 脈沖壓縮處理 =====================
%沒(méi)加窗處理
signal_fft=fft(signal,M);
pc_result_fft=signal_fft.*match_filter_fft;
pc_result=ifft(pc_result_fft,M);
%加窗處理
w_pc_result_fft=signal_fft.*w_match_filter_fft;
w_pc_result=ifft(w_pc_result_fft,M);
figure,subplot(2,1,1),plot(real(pc_result)),title('脈壓后I路信號(hào)(實(shí)部)');
subplot(2,1,2),plot(imag(pc_result)),title('脈壓后Q路信號(hào)(虛部)');
n=1:M;
figure,plot(n,10*log(abs(pc_result)),'r',n,10*log(abs(w_pc_result)),'b'),title('脈沖壓縮后結(jié)果');
figure,plot(n,10*log(abs(w_pc_result)),'b'),title('脈沖壓縮后結(jié)果');
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -