基于FPGA的高速自適應濾波器的實(shí)現
現代通信信號處理發(fā)展到3G、4G時(shí)代后,每秒上百兆比特處理速度的要求對于自適應處理技術(shù)是一個(gè)極大的挑戰。使用具有高度并行結構的FPGA實(shí)現自適應算法以及完成相應的調整和優(yōu)化,相比于在DSP芯片上的算法實(shí)現可以達到更高的運行速度。本文分析了自適應LMS算法及其在FPGA上的實(shí)現,并進(jìn)行算法結構的改進(jìn)優(yōu)化,利用DSP Builder在A(yíng)ltera DE2-70平臺的FPGA芯片上實(shí)現相應自適應算法并下載到目標板上進(jìn)行板級測試。
1 自適應LMS算法[1-2]
自適應濾波器的特點(diǎn)在于濾波器參數可以自動(dòng)地根據某種準則調整到相應的最優(yōu)濾波情況。其基本框圖如圖1所示。
圖中,X(n)為輸入信號,y(n)為濾波信號,d(n)為期望信號,e(n)為誤差信號,用來(lái)調整自適應濾波權系數。自適應濾波函數H(z)的濾波參系數是通過(guò)一定的自適應算法,根據誤差信號e(n)進(jìn)行自動(dòng)調整,目的是使得誤差e(n)的模值越來(lái)越小。
自適應LMS算法表述如下:
2 算法的仿真和FPGA實(shí)現
本設計使用的工具DSP Builder是Altera公司推出的基于A(yíng)ltera FPGA芯片的系統級(算法級)設計工具,它架構在多個(gè)軟件工具之上,并把系統級和RTL級兩個(gè)設計領(lǐng)域的設計工具連接起來(lái),最大程度地發(fā)揮了兩種工具的優(yōu)勢[3]。它依賴(lài)于Matlab/Simulink進(jìn)行建模和仿真,可以把建模設計文件轉換為硬件描述語(yǔ)言文件。
考慮橫向LMS算法的FPGA實(shí)現時(shí),有兩種拓撲結構可以選擇。一種是直接型FIR結構,另一種是轉置型FIR結構。從算法效果上來(lái)說(shuō),這兩種結構是一致的,但是轉置型結構的濾波部分的關(guān)鍵路徑會(huì )更短,能夠綜合出更高主頻的電路[4]。故在Simulink中利用DSP Builder采用轉置型LMS結構(Transpose Form-LMS)進(jìn)行建模,模型參數為8階16位定點(diǎn)格式。
對于收斂步長(cháng)因子的選取采用二進(jìn)制移位的方式,只改變數據的連線(xiàn),不會(huì )增加系統資源消耗和計算時(shí)間消耗。這里將迭代處理部分左移動(dòng)10位,即收斂步長(cháng)因子為2-10,約為0.001。Simulink中,仿真信號為模值等于1的正弦波疊加方差為0.01的高斯白噪聲,建立自適應噪聲對消模型,濾波情況如圖2所示。
利用Signal Compiler工具將模型轉換成硬件描述語(yǔ)言。用Quartus對轉換后的HDL進(jìn)行綜合、布線(xiàn)布局,得到52.02 MHz(19.223 ns)的系統頻率表現。對EP2C70-F896C6芯片上單個(gè)乘法器進(jìn)行測試,得到一個(gè)乘法運算需要的時(shí)間滯后為13.8 ns??紤]上面的LMS算法,一次迭代過(guò)程至少消耗28 ns以上的時(shí)間。這說(shuō)明,該LMS系統只能運行在35.7 MHz(28 ns)以下。如果頻率超過(guò)35.7 MHz,雖不會(huì )造成器件時(shí)序違規,但在運行時(shí)序上就不會(huì )滿(mǎn)足標準LMS算法。
3 算法的改進(jìn)和FPGA實(shí)現
3.1 馳豫超前流水線(xiàn)優(yōu)化
通過(guò)馳豫超前流水線(xiàn)技術(shù)改進(jìn)的TFLMS算法稱(chēng)為T(mén)FDLMS(TF-Delay-LMS)算法,改進(jìn)的算法結構如下[4]:
改進(jìn)結構的特點(diǎn)是,在式(6)權系數更新中,誤差與輸入都不使用當前時(shí)刻的數據,而是采用過(guò)去的數據來(lái)馳豫近似計算。式(5)和式(6)在這種情況下可以同時(shí)進(jìn)行流水計算,斬斷了原先串行的關(guān)鍵路徑,提高了效率。對馳豫寄存器m的個(gè)數需要合理的選取,若m太大,則對原系統影響較大;若太小則不易后續時(shí)序重構的優(yōu)化,這里取m=4進(jìn)行Matlab仿真。仿真結果如圖3所示。
如圖3所示,TFDLMS算法在收斂初期由于誤差e隨著(zhù)濾波的進(jìn)行改變一般比較大,所以在收斂過(guò)程中的性能會(huì )稍次于TFLMS算法。在穩態(tài)的時(shí)候,由于誤差e在此刻一般比較小,所以近似手段對穩態(tài)的影響會(huì )比較小??紤]到改進(jìn)后TFDLMS的高度并行的處理結構,在收斂以及穩態(tài)表現上的微小影響的代價(jià)是值得的。
在Simulink中建模,將TFDLMS模型轉換為HDL,在Quartus中綜合布線(xiàn)布局,得到122.79 MHz的頻率表現。由于TFDLMS采用馳豫流水計算,已經(jīng)是近似計算,因此無(wú)需考慮標準LMS算法的嚴格串行計算時(shí)間問(wèn)題,此時(shí)的系統工作頻率可以認為是采樣吞吐頻率。顯然,改進(jìn)后的算法結構系統吞吐頻率有很大的提高。
3.2 時(shí)序重構優(yōu)化
時(shí)序重構又稱(chēng)重定時(shí)(Retiming),是一種在保持系統功能不變的前提下改變系統延遲數目和分布的方法[5]。時(shí)序重構的映射等式定義為:
評論