雷达信号处理---线性调频信号脉冲压缩MATLAB实现
關于脈沖壓縮的原理以及公式推導這里不再贅述,主要講解如何通過MATLAB進行仿真。
實現原理??
??????脈沖壓縮是為了解決雷達作用距離與距離分辨率這一矛盾關系而產生的技術,普通雷達在提升雷達作用距離的同時,會使得距離分辨率下降許多,反之亦然。而脈沖壓縮雷達發射的是大時寬帶寬積的射頻信號,這保證了雷達的作用距離;同時,接收端會對發射信號做脈沖壓縮處理,得到形似sinc函數的信號,該信號具有很好的距離分辨能力。在接收端的具體實現過程如下圖。
????????其中,是雷達回波信號,是脈沖壓縮的輸出信號,是濾波器系數經傅里葉變換后的結果。由于脈沖壓縮本質上是匹配濾波,故,即發射信號反褶后去共軛。線性調頻脈沖信號的發射信號可表示為。
? ? ? ? 同時,經過公式推導,可以知道,經過匹配濾波后,最大的旁瓣僅比主瓣電平小-13.2dB,在檢測多個目標時,強目標回波的旁瓣有可能會淹沒弱信號的主瓣,導致信號丟失。故,我們可以利用窗函數來抑制旁瓣。
現在從時域,頻域分別討論脈沖壓縮實現方法。
時域脈沖壓縮
方法一
????????發射信號反褶,取共軛后與發射信號做卷積處理 ,得到脈沖壓縮信號。適用于脈壓比要求小時的情況。(脈壓比是輸入脈沖與輸出脈沖的寬度之比)
out =conv(conj(fliplr(s)), sr);%s為發射信號,sr為目標回波信號?方法二
? ? ? ? 我們知道,兩個變量的互相關公式為。而兩個變量的卷積公式為。
? ? ? ? 由于,故。脈沖壓縮信號,可得。即匹配濾波也可表示為回波信號與發射信號的互相關。
out =xcorr(s, sr);%s為發射信號,sr為目標回波信號頻域脈沖壓縮
方法一
? ? ? ? 發射信號時間反褶,取共軛后,計算FFT,再與經過FFT處理的回波信號在頻域相乘,最后IFFT取得時域脈沖壓縮信號。
out =ifft(fft(sr,n).*fft(conj(fliplr(s)),n),n);%s為發射信號,sr為目標回波信號方法二
????????發射信號做FFT變換后,取共軛。再與經過FFT處理的回波信號在頻域相乘,最后IFFT取得時域脈沖壓縮信號。
out =ifft(fft(sr,n).*conj(fft(s,n)),n);%s為發射信號,sr為目標回波信號測距仿真
現在假設目標分別距離為80km,85km,使用線性調頻脈沖壓縮信號對目標進行測距。脈沖寬度為?,調頻帶寬為,采樣時鐘為,信噪比SNR分別為20dB,10dB,采樣的最小距離為20km,距離窗為150km,波數為
仿真結果如下
| 線性調頻脈沖信號 復包絡實部 | 脈壓輸入信號 | 脈壓輸出信號 |
| 未加窗結果 | 加窗結果 |
仿真程序如下
%產生線性調頻脈沖的目標回波信號,并給出脈壓結果 %Tp發射脈沖寬度s,Bm調頻帶寬Hz,Ts采樣時鐘s,R0目標的距離矢量m,Vr目標速度矢量m/s,SNR目標信噪比矢量dB,Rmin采樣最小距離,Rrec距離窗的大小(雷達探測最大最小作用距離的差值),Window窗函數,bos波數 %本例將兩個物體都設定為靜止 若改變Vr 可驗證距離-多普勒測不準原理 %圖三可以看到在80 85km處有脈沖信號 clear all;clc; Tp=200e-6;Bm=1e6;Ts=0.5e-6;R0=[80e3,85e3];Vr=[0,0];SNR=[20,10];Rmin=30e3;Rrec=150e3;Window=taylorwin(Tp/Ts);bos=2*pi/0.03; mu=Bm/Tp;%調頻率 c=3e8; M=round(Tp/Ts);%round函數取整數 t1=(-M/2+0.5:M/2-0.5)*Ts;%時間矢量 NR0=ceil(log2(2*Rrec/c/Ts+M));%ceil函數朝正無窮大四舍五入 2*Rrec/c/Ts為距離窗的單元數 NR1=2^NR0;%以上兩步 模擬補零,將N拓展為2的冪!!!!! lfm=exp(1i*pi*mu*t1.^2);%線性調頻信號 單脈沖 W_t=lfm.*Window.';%加窗 抑制旁瓣 game=(1+2*Vr./c).^2; sp=(0.707*(randn(1,NR1)+1i*randn(1,NR1)));%噪聲for k=1:length(R0)NR=fix(2*(R0(k)-Rmin)/c/Ts);%fix函數 讓變量向0靠近取整 NR代表的是距離為R0的物體的回波在時間軸上的位置spt=(10^(SNR(k)/20))*exp(-1i*bos*2*(R0(k)-Vr(k)*t1)).*(exp(1i*pi*mu*game(k)*(t1).^2));%10^(SNR(k)/20)是將dB值換算回原單位 sp(NR:NR+M-1)=sp(NR:NR+M-1)+spt;%信號+噪聲end; spf=fft(sp,NR1);Wf_t=fft(W_t,NR1); y=abs((ifft(spf.*conj(Wf_t),NR1)/NR0));%conj 取復共軛 N0=2*(Rrec)/c/Ts; t=linspace(Rmin/1000,(Rmin+Rrec)/1000,N0); figure;plot(t,20*log10(abs(sp(1:N0))));xlabel('距離/km');title('脈壓輸入信號'); grid;%脈壓輸入信號 figure;plot(t1*1e6,real(lfm));xlabel('時間/\mu s');ylabel('匹配濾波器系數實部');title('信號復包絡實部');grid;%線性調頻信號復包絡的實部 figure;plot(t,20*log10(y(1:N0)));xlabel('距離/km');ylabel('脈壓輸出結果/dB');title('脈壓結果');%axis([30 180 -10 60]);grid;%脈壓輸出信號 h2=axes('Position',[0.6 0.5 0.25 0.4]);%在原圖上繪制局部放大圖 axes('Position',[subNormalxLabel,subNormalyLabel,normalWidth,normalHeight]) axes(h2); % 將h2設置為當前坐標系 plot(t,20*log10(y(1:2000)));%繪制局部圖 set(h2,'xlim',[75 88]); set(h2,'ylim',[15 55]); grid;%顯示網格補充:
1.匹配濾波器接受的信號復包絡不僅僅是發射信號的延時。實際上還有一個附加相移(針對靜止物體)
2.脈沖壓縮過程中,進行FFT的點數是有要求的。根據奈奎斯特采樣定理,對實信號,采樣信號?。而對于時寬為的LFM信號,其FFT的頻率分辨率應當小于等于?,那么需要的最小樣本數應當為(FFT分辨率)
即最少需要個樣本才能完全描述一個時寬為的LFM波形。
同時,我們還需要考慮距離窗內的距離單元數個數,具體求法為?。
故,所需FFT的點數為
總結
以上是生活随笔為你收集整理的雷达信号处理---线性调频信号脉冲压缩MATLAB实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021美赛总结(假)。预祝大家获得满意
- 下一篇: 常用的雷达信号:基于DDS的线性调频信号