自適應濾波器已經廣泛應用于信道均衡、回聲取消、系統識別、頻譜估計等各個方面。基于子帶分解的自適應濾波在提高收斂性能的同時又節省了一定的計算量。基于子帶分解的自適應濾波是先將輸入信號與參考信號經過分解濾波器組進行子帶分解、抽取、子帶自適應濾波、內插、通過合成濾波器組得到輸出信號。基于子帶分解的自適應濾波器的優點:
(1)由于對信號的抽取,使完成自適應濾波所需的計算量得以減少;
(2)在子帶進行自適應濾波使收斂性能有所提高。
l 基于子帶分解的自適應濾波結構
基于子帶分解的自適應濾波,其時域結構如圖1所示。將輸入信號x(n)和參考信號d(n)分別進行子帶分解,抽取,在子帶上進行自適應濾波,再將子帶上的估計信號y0(n)和y1(n)經內插和合成濾波器組得到最后的合成信號。其中濾波器W00(n)和W11(n)是兩個子帶上的自適應濾波器,而W01(n)和W10(n)表示子帶間自適應濾波器。這是由于濾波器組均是FIR濾波器,不可能有銳截止的理想特性,只能以長度為代價來換取近似的特性;這時在嚴格采樣下得到的子帶信號必然有混疊,需加入子帶間濾波以消除其影響。這里的子帶自適應濾波器采用基于NLMS算法自適應濾波器。NLMS算法和LMS算法相比。雖然計算量稍有增加,但可使得自適應濾波器收斂速度大大提高。
2 雙通道濾波器組的設計
本文采用的分析和綜合濾波器之間的關系如下:
H1(z)=H0(-z),G1(z)=-2H0(-z),G0(z)=2H1(-z)。由上述表達式可知設計的關鍵是設計H0(z),只要H0(z)確定,H1(z),G0(z),G1(z)也可確定。本文采用等波紋逼近設計法進行濾波器設計。該方法設計的濾波器呈現等波紋頻響特性。等波紋逼近設計法設計的濾波器具有如下優點:
(1)由于誤差均勻分布于整個頻帶,對固定的階數N,可以得到最優良的濾波特性;
(2)通帶最平坦,阻帶最小衰減達到最大。
Matlab集成了一套強大的濾波器設計工具FDATOOL,可以完成多種濾波器的設計、分析和性能*估。本文中FPGA硬件實現部分用到的4個FIR濾波器的頻率特性曲線見圖2。
3 系統建模與仿真
DSP Builder是Altera公司推出的一個面向DSP開發的系統級工具,它是作為Matlab的一個Simulink工具箱(ToolBox)出現的。DSP Bui-lder作為Simulink中的一個工具箱,使得在使用FPGA設計DSP系統時完全可以通過Simulink的圖形化界面進行,只需簡單地進行DSP Builder工具箱中的模塊調用即可。
圖3中的基于子帶分解的自適應濾波器模塊框圖系統由分析濾波器子系統h00,h01,h10,h11,綜合濾波器子系統g00,g01、抽取,插值,加法,減法器,自適應濾波器等模塊組成。h00和h10是完全一模一樣的低通濾波器,h01和h11是完全一模一樣的高通濾波器。h00,h01,g00,g01的幅頻特性曲線見圖2。h00對應圖2中的h0,h01對應圖中的h1,g00對應圖中的g0,g01對應圖中的g1。Subysteml,Subyst-em2,Subystem3,Subystem4是自適應濾波器。Subystem2,Subystem3自適應濾波器的階數是Subysteml,Subystem4階數的1/20。期望信號由sine wavel模塊提供,輸入信號由Sine wave2和Random Bitstream疊加在一起的信號組成。系統所需的模塊都是直接調用DSP builder中的模塊。Subystem2是7階NLMS算法自適應濾波器,其框圖見圖4。如果調高提高收斂速度,則可增加延遲模塊、自適應子系統模塊,加法器模塊即可,但需消耗更多的硬件資源。
自適應濾波器模塊主要由延遲單元,權值更新子系統、加法器模塊,乘法器模塊組成。它是將抽取過后的信號進行自適應濾波。
FIR濾波器的單位沖激響應是有限長的,其z變換為。分析和綜合濾波器系統主要由延遲單元、加法器、加法器模塊組成。分析和綜合濾波器不可能有銳截止的理想特性,必須通過增加階數來逼近。分析濾波器子系統h00,h01,h10,h11,綜合濾波器子系統g00,g01均采用橫截型結構。
權值更新子系統模塊主要由乘法器、除法器、加法器、延遲單元、總線類型轉換等模塊組成。該子系統主要完成濾波器的權值更新。w(k+1)=w(k)+μ/γ+xT(k)x(k)e(k)x(k)運算和wi(k)xi(k)運算。
4 仿真
Matlab的Simulink環境具有強大的圖形化仿真驗證功能,用DSP Builder模塊設計好一個新的模型后,可以直接在Simulink中進行算法級、系統級仿真驗證。該設計的Simulink仿真如圖6所示,輸出信號含有毛刺,這說明輸出信號與期望信號還有一定的穩態誤差。可以通過增加濾波器的階數,或修改步長控制參數μ,以達到更好的效果。
運行Signal complier可將通過Simulink的模塊文件(.mdl)轉換成通過的硬件描述語言VHDL文件;運行Testbench(測試平臺)可將Sine wavel、Sinewavel+noise、Clock轉換成針對HDL仿真器ModelSim的測試文件。由圖7可知輸出信號Sine out逐漸趨于穩定,逼近與期望信號sine wavel,因此設計結果滿足要求,能夠實現自適應過程。
5 結語
本文只是從硬件的角度出發設計兩個子帶自適應濾波器的FPGA實現。由于分解濾波器組的非理想特性,有必要采取子帶間濾波,子帶間的濾波可大大提高收斂速度。子帶自適應濾波器的設計和研究過程是比較復雜的,這里就主要的設計研究思想做了一個闡述,鑒于設計中的自適應濾波器的階數選取相對較小,因而對自適應濾波器的穩態誤差有一定的影響,通過增加自適應濾波器的階數,分析和綜合濾波器的階數、數據的位數來提高精度。