李 軻 張國棟 冀啟東
(1.海軍工程大學(xué) 武漢 430033)(2.海軍研究院 北京 100081)(3.海軍觀通一旅 廈門 361100)
隨著雷達的廣泛應(yīng)用,針對雷達的各種對抗干擾手段應(yīng)運而生。當(dāng)目標(biāo)信號淹沒在噪聲信號中時,二者在時域上難以分開,但在空域上是可分離的。而壓制型干擾往往范圍較大,并不是精確瞄準(zhǔn)雷達裝備,這使得干擾信號充斥在空間中。目前多采用安裝輔助天線的方式,從空間中獲取干擾信號的參數(shù),然后將干擾信號從主天線回波中分離,使目標(biāo)回波顯現(xiàn)出來。而利用自適應(yīng)濾波,即使噪聲信號參數(shù)未知、隨時變化,也可以很好地提取目標(biāo)信號。
隨著數(shù)字濾波器逐漸替代模擬濾波器,現(xiàn)代濾波器的設(shè)計實現(xiàn)方法逐漸變得多種多樣。其中,F(xiàn)PGA具有較高的信號處理速率、良好的可編程性,使得其在各種數(shù)字信號處理平臺中脫穎而出。相對傳統(tǒng)的ASIC等平臺,F(xiàn)PGA可以通過軟件的更新實現(xiàn)硬件上的改進。將FPGA應(yīng)用于雷達裝備的設(shè)計生產(chǎn)中,就可以在裝備出廠列裝后,通過更新軟件來提升裝備性能、適應(yīng)環(huán)境變化,延長裝備使用周期。
自適應(yīng)濾波,就是利用前一時刻獲得的濾波器參數(shù)結(jié)果,自動調(diào)節(jié)現(xiàn)時刻的濾波器參數(shù),以適應(yīng)信號和噪聲未知的或隨時間變化的統(tǒng)計特性,從而實現(xiàn)最優(yōu)濾波。自適應(yīng)濾波器的特性變化是由自適應(yīng)算法通過調(diào)整濾波器系數(shù)來實現(xiàn)的。一般而言,自適應(yīng)濾波器由兩部分組成,一是濾波器結(jié)構(gòu),二是調(diào)整濾波器系數(shù)的自適應(yīng)算法。自適應(yīng)濾波器的結(jié)構(gòu)采用FIR或IIR結(jié)構(gòu)均可,由于IIR濾波器存在穩(wěn)定性問題,因此一般采用FIR濾波器作為自適應(yīng)濾波器的結(jié)構(gòu)。圖1所示為自適應(yīng)濾波器的一般結(jié)構(gòu)。
圖1 自適應(yīng)濾波器結(jié)構(gòu)的一般形式
圖2 自適應(yīng)濾波器的系統(tǒng)識別框圖
圖2 為自適應(yīng)濾波器的系統(tǒng)識別框圖,圖中x(n)為輸入信號,通過權(quán)系數(shù)可調(diào)的數(shù)字濾波器后產(chǎn)生輸出信號y(n),將輸出信號y(n)與標(biāo)準(zhǔn)信號d(n)進行比較,得到誤差信號e(n)。e(n)和x(n)通過自適應(yīng)算法對濾波器的權(quán)系數(shù)進行調(diào)整,使得誤差信號e(k)最小。重復(fù)上面過程,濾波器在自己的工作過程中逐漸了解到輸入信號和噪聲的統(tǒng)計規(guī)律,并以此為根據(jù)自動調(diào)整濾波器權(quán)系數(shù),從而達到最佳濾波效果。一旦輸入的統(tǒng)計規(guī)律發(fā)生變化,濾波器能夠自動跟蹤這種變化并調(diào)整權(quán)系數(shù),最終達到理想濾波效果,實現(xiàn)自適應(yīng)過程。
自適應(yīng)算法所采用的最優(yōu)準(zhǔn)則有最小均方誤差(LMS)準(zhǔn)則、遞推最小均方(RLS)準(zhǔn)則、最小二乘(LS)準(zhǔn)則、最大信噪比準(zhǔn)則和統(tǒng)計檢測準(zhǔn)則等,其中最小均方誤差(LMS)準(zhǔn)則和遞推最小均方(RLS)準(zhǔn)則是目前最為流行的自適應(yīng)算法準(zhǔn)則。
選定均方誤差為權(quán)矢量二次函數(shù)時,性能度量曲線可以形象地看成一個碗形曲面,這樣自適應(yīng)處理器的任務(wù)便是不斷地向最低點逼近,即可以通過計算梯度的方法實現(xiàn)性能度量的最優(yōu)化。而基于梯度的算法中,最簡單的一種就是最小均方算法LMS,LMS算法使用的準(zhǔn)則是使均衡器的期望輸出值和實際輸出值之間的均方誤差(MSE)最小化,依據(jù)輸入信號在迭代過程中估計梯度矢量,并更新權(quán)系數(shù)以達到最優(yōu)的自適應(yīng)迭代。該算法不需要計算相應(yīng)的相關(guān)函數(shù),也不需要進行矩陣運算。假設(shè)濾波器的輸出信號是y(n):
T表示轉(zhuǎn)置矩陣,n是時間指針,N是濾波器次數(shù)。這是有限脈沖響應(yīng)濾波器的形式,為x(n)和w(n)兩個矩陣卷積。
這種自適應(yīng)算法使用誤差信號:
為了方便起見,將上述式子表示為向量形式,則上述式子表示為
誤差序列可寫為
其中,d(n)是期望信號,y(n)是濾波器輸出。使用輸入向量x(n)和e(n)來更新自適應(yīng)濾波器的最小化標(biāo)準(zhǔn)相關(guān)系數(shù)。
顯然,自適應(yīng)濾波器控制機理是用誤差序列e(n)按照某種準(zhǔn)則和算法對其系數(shù) wi(n),i=1,2,…,N進行調(diào)節(jié),最終使自適應(yīng)濾波的目標(biāo)(代價)函數(shù)最小化,達到最佳濾波狀態(tài)。
本文所用的標(biāo)準(zhǔn)是最小均方誤差(MSE):
其中,E[]表示算子期望。
設(shè)置一個正弦波信號,加上高斯白噪聲,信噪比為-3dB。Matlab仿真結(jié)果如圖3所示:
for i=(k+1):N
其中k為濾波器長度,k-1即是濾波器階數(shù)。xn為輸入信號,即目標(biāo)信號與噪聲信號的混合信號;d為噪聲信號;e為誤差信號;w為權(quán)值;u為步長因子;y為輸出信號。自適應(yīng)濾波完成后,誤差信號將收斂接近為0,而輸出信號將近似等于噪聲信號,這時可以通過減法器從混合信號中剔除輸出信號。
對其進行階數(shù)為8、步長為1/32的自適應(yīng)濾波,其結(jié)果如下:
圖4 8階1/32濾波結(jié)果
圖5 8階1/32誤差均方信號
可以看出,濾波結(jié)果并不理想,誤差的收斂也不盡人意。保持步長不變,增加濾波器階數(shù),再次進行仿真。結(jié)果如下:
圖6 16階1/32濾波結(jié)果
圖7 16階1/32誤差均方信號
可以看出,階數(shù)提升后,濾波結(jié)果及誤差的收斂效果均有了較好的改善。保持階數(shù)不變,將步長因子改為1/256,再次仿真結(jié)果如下:
圖8 16階1/256濾波結(jié)果
圖9 16階1/256誤差均方信號
可以看出,濾波的結(jié)果更為平滑,但收斂速度不如步長較大時??偟膩砜?,LMS算法可以以較為簡單的運算實現(xiàn)較好效果的自適應(yīng)濾波,使用LMS算法可以在硬件條件有限時獲得較好的濾波效果。濾波器的階數(shù)對濾波效果影響較大,濾波效果隨著階數(shù)的增加有著明顯的改善,但對硬件的要求也隨之提升。步長因子較大時,濾波器收斂較快,可以處理頻率更高的信號。步長因子較小時,濾波效果更加精細,但相應(yīng)的收斂速度會隨之下降,對濾波器的運行速度產(chǎn)生影響。
鑒于步長因子對濾波效果及收斂速度的顯著影響,可以嘗試將大、小兩種步長因子的優(yōu)點結(jié)合起來,獲得更好的濾波性能。如果先用大步長因子,使均方差快速地收斂到一個較小值,然后換用小步長因子,來提高濾波效果,這樣就可以兼顧濾波效果和收斂速度。
保持濾波器階數(shù)不變,本文選擇了1/16、1/256兩種不同的步長以及先使用1/16、再換用1/256的變步長三種參數(shù)進行仿真和對比。
圖10 16階1/16濾波結(jié)果
圖11 16階1/256濾波結(jié)果
可以看出,步長因子為1/256的濾波器濾波效果比步長因子為1/16的濾波器濾波效果要好,而變步長的濾波器濾波效果與其相當(dāng)。截取每次仿真的前二十次運算來觀察它們各自的收斂速度:
圖12 16階變步長濾波結(jié)果
圖13 16階1/16誤差均方信號
圖14 16階1/256誤差均方信號
圖15 16階變步長誤差均方信號
可以看出,大步長因子和變步長因子兩種濾波器的均方差都很快收斂到0.01以下。由此可見,變步長的LMS算法可以在濾波效果和收斂速度之間達到一個平衡,從而獲得性能更好的濾波器。
利用FPGA平臺實現(xiàn)自適應(yīng)濾波器的演示系統(tǒng),該系統(tǒng)中有兩個ROM,分別存儲了正弦波信號和高斯白噪聲。二者的混合信號經(jīng)過一個16階的LMS自適應(yīng)濾波器后,輸出的濾波結(jié)果和正弦波信號、噪聲信號、混合信號一起進入四選一數(shù)據(jù)選擇器,通過撥碼開關(guān)就可以調(diào)節(jié)系統(tǒng)輸出的波形。最后的輸出為16位的數(shù)字信號。本自適應(yīng)濾波器主要分為5個模塊:1)ROM,儲存信號數(shù)據(jù)、作為信號發(fā)生器使用。編程時可選擇將儲存對象;2)地址發(fā)生器,產(chǎn)生地址信號并送給兩個ROM,根據(jù)地址信號從ROM中取出數(shù)據(jù);3)加法器,將兩個從ROM中取出的信號進行疊加,模擬出被污染的目標(biāo)信號;4)自適應(yīng)算法模塊,通過一個16階的LMS濾波器逼進出噪聲信號,并和混合信號進行對消處理;5)四選一數(shù)據(jù)選擇器,通過撥碼開關(guān)選擇系統(tǒng)輸出波形,便于演示和對比。
本文濾波器采用了自底而上的設(shè)計方法,即先對系統(tǒng)所用到的各個模塊分別進行代碼的編寫,然后將各個模塊組合鏈接成完整的系統(tǒng)。在各個模塊的編寫完成后,利用Quartus生成的bsf文件,即可在模塊的層面通過鼠標(biāo)點選完成各模塊之間的信號連接。一個完成了的LMS濾波器的模塊如圖16所示,最終完成的工程如圖17所示。
圖16 Quartus Prime生成的模塊
圖17 工程的組成與連線
將整個工程進行編譯后,可以通過Quartus內(nèi)置的工具RTL Viewer來驗證工程的邏輯關(guān)系是否與預(yù)期相符合。在RTL Viewer中可以查看各模塊之間的線路連接情況。本工程的RTL視圖如圖18所示。
在檢查工程的邏輯及線路無誤后,可以通過Modelsim進行功能仿真。在進行功能仿真前,需要先編寫Testbench,來給定系統(tǒng)的激勵。仿真中,步長選擇為1/128。Modelsim仿真結(jié)果如圖19所示。
圖18 RTL仿真結(jié)果
圖19 Modelsim仿真結(jié)果
其中三組波形分別為正弦波信號、疊加了高斯白噪聲的正弦波信號以及自適應(yīng)濾波后的輸出信號。發(fā)現(xiàn)輸出信號恒為零,但輸入的正弦波信號、正弦波與高斯白噪聲疊加的信號都是正常的,所以問題很有可能存在于LMS濾波器模塊中。
經(jīng)過檢查,在濾波器模塊的數(shù)據(jù)輸入端口處,輸入數(shù)據(jù)直接接入算法模塊中,而沒有像其他數(shù)據(jù)接口處用延遲單元來連接。系統(tǒng)中的延遲單元本質(zhì)上是16位的D觸發(fā)器,當(dāng)時鐘信號沒有變化時,輸出端就處于保持狀態(tài)。調(diào)整后,在各個數(shù)據(jù)接口都以延遲單元連接,避免了由于數(shù)據(jù)的收發(fā)不同步導(dǎo)致的時序錯亂。修正后的仿真結(jié)果如下:
圖20 修正后的Modelsim仿真結(jié)果
從圖20可以看出,輸出波形較輸入的疊加了噪聲的信號有很大的改善。
本文對自適應(yīng)濾波技術(shù)在雷達信號處理中的應(yīng)用進行了探討和仿真,利用LMS算法在時變狀態(tài)下穩(wěn)定度更優(yōu)的特點,用Matlab軟件仿真實現(xiàn)基于LMS算法的自適應(yīng)濾波,分析了濾波器參數(shù)對濾波效果的影響,并且使用變步長的LMS算法,發(fā)現(xiàn)其信號處理性能要優(yōu)于定步長的LMS算法;本文還借助Quartus Prime開發(fā)平臺,嘗試了基于FPGA的自適應(yīng)濾波器開發(fā)實現(xiàn)。另外,本文雖然得出了變步長LMS算法可以實現(xiàn)更佳濾波器性能這一結(jié)論,但是變步長如何定量選取、步長變化時機的選擇還需要在后面的工作中展開進一步的研究。