摘 要: 在LMS算法進(jìn)行變步長處理的基礎(chǔ)上,,結(jié)合馳豫超前流水線技術(shù)和時(shí)序重構(gòu)技術(shù)提出了創(chuàng)新結(jié)構(gòu)和改進(jìn)算法,,在FPGA的仿真綜合環(huán)境中設(shè)計(jì)實(shí)現(xiàn)了該高速自適應(yīng)濾波器,并且在Altera DE2-70開發(fā)板上進(jìn)行了板級(jí)測(cè)試,。
關(guān)鍵詞: 自適應(yīng)濾波器,;FPGA;DSP Builder,;馳豫超前技術(shù),;流水線;時(shí)序重構(gòu)
現(xiàn)代通信信號(hào)處理發(fā)展到3G、4G時(shí)代后,,每秒上百兆比特處理速度的要求對(duì)于自適應(yīng)處理技術(shù)是一個(gè)極大的挑戰(zhàn),。使用具有高度并行結(jié)構(gòu)的FPGA實(shí)現(xiàn)自適應(yīng)算法以及完成相應(yīng)的調(diào)整和優(yōu)化,相比于在DSP芯片上的算法實(shí)現(xiàn)可以達(dá)到更高的運(yùn)行速度,。本文分析了自適應(yīng)LMS算法及其在FPGA上的實(shí)現(xiàn),,并進(jìn)行算法結(jié)構(gòu)的改進(jìn)優(yōu)化,利用DSP Builder在Altera DE2-70平臺(tái)的FPGA芯片上實(shí)現(xiàn)相應(yīng)自適應(yīng)算法并下載到目標(biāo)板上進(jìn)行板級(jí)測(cè)試,。
1 自適應(yīng)LMS算法[1-2]
自適應(yīng)濾波器的特點(diǎn)在于濾波器參數(shù)可以自動(dòng)地根據(jù)某種準(zhǔn)則調(diào)整到相應(yīng)的最優(yōu)濾波情況,。其基本框圖如圖1所示。
圖中,,X(n)為輸入信號(hào),,y(n)為濾波信號(hào),d(n)為期望信號(hào),,e(n)為誤差信號(hào),,用來調(diào)整自適應(yīng)濾波權(quán)系數(shù)。自適應(yīng)濾波函數(shù)H(z)的濾波參系數(shù)是通過一定的自適應(yīng)算法,,根據(jù)誤差信號(hào)e(n)進(jìn)行自動(dòng)調(diào)整,,目的是使得誤差e(n)的模值越來越小。
自適應(yīng)LMS算法表述如下:
2 算法的仿真和FPGA實(shí)現(xiàn)
本設(shè)計(jì)使用的工具DSP Builder是Altera公司推出的基于Altera FPGA芯片的系統(tǒng)級(jí)(算法級(jí))設(shè)計(jì)工具,,它架構(gòu)在多個(gè)軟件工具之上,,并把系統(tǒng)級(jí)和RTL級(jí)兩個(gè)設(shè)計(jì)領(lǐng)域的設(shè)計(jì)工具連接起來,最大程度地發(fā)揮了兩種工具的優(yōu)勢(shì)[3],。它依賴于Matlab/Simulink進(jìn)行建模和仿真,可以把建模設(shè)計(jì)文件轉(zhuǎn)換為硬件描述語言文件,。
考慮橫向LMS算法的FPGA實(shí)現(xiàn)時(shí),,有兩種拓?fù)浣Y(jié)構(gòu)可以選擇。一種是直接型FIR結(jié)構(gòu),,另一種是轉(zhuǎn)置型FIR結(jié)構(gòu),。從算法效果上來說,這兩種結(jié)構(gòu)是一致的,,但是轉(zhuǎn)置型結(jié)構(gòu)的濾波部分的關(guān)鍵路徑會(huì)更短,,能夠綜合出更高主頻的電路[4]。故在Simulink中利用DSP Builder采用轉(zhuǎn)置型LMS結(jié)構(gòu)(Transpose Form-LMS)進(jìn)行建模,,模型參數(shù)為8階16位定點(diǎn)格式,。
對(duì)于收斂步長因子的選取采用二進(jìn)制移位的方式,只改變數(shù)據(jù)的連線,,不會(huì)增加系統(tǒng)資源消耗和計(jì)算時(shí)間消耗,。這里將迭代處理部分左移動(dòng)10位,即收斂步長因子為2-10,約為0.001,。Simulink中,,仿真信號(hào)為模值等于1的正弦波疊加方差為0.01的高斯白噪聲,建立自適應(yīng)噪聲對(duì)消模型,濾波情況如圖2所示,。
利用Signal Compiler工具將模型轉(zhuǎn)換成硬件描述語言,。用Quartus對(duì)轉(zhuǎn)換后的HDL進(jìn)行綜合、布線布局,,得到52.02 MHz(19.223 ns)的系統(tǒng)頻率表現(xiàn),。對(duì)EP2C70-F896C6芯片上單個(gè)乘法器進(jìn)行測(cè)試,得到一個(gè)乘法運(yùn)算需要的時(shí)間滯后為13.8 ns,??紤]上面的LMS算法,一次迭代過程至少消耗28 ns以上的時(shí)間,。這說明,,該LMS系統(tǒng)只能運(yùn)行在35.7 MHz(28 ns)以下。如果頻率超過35.7 MHz,,雖不會(huì)造成器件時(shí)序違規(guī),,但在運(yùn)行時(shí)序上就不會(huì)滿足標(biāo)準(zhǔn)LMS算法。
3 算法的改進(jìn)和FPGA實(shí)現(xiàn)
3.1 馳豫超前流水線優(yōu)化
通過馳豫超前流水線技術(shù)改進(jìn)的TFLMS算法稱為TFDLMS(TF-Delay-LMS)算法,,改進(jìn)的算法結(jié)構(gòu)如下[4]:
改進(jìn)結(jié)構(gòu)的特點(diǎn)是,,在式(6)權(quán)系數(shù)更新中,誤差與輸入都不使用當(dāng)前時(shí)刻的數(shù)據(jù),,而是采用過去的數(shù)據(jù)來馳豫近似計(jì)算,。式(5)和式(6)在這種情況下可以同時(shí)進(jìn)行流水計(jì)算,斬?cái)嗔嗽却械年P(guān)鍵路徑,,提高了效率,。對(duì)馳豫寄存器m的個(gè)數(shù)需要合理的選取,若m太大,,則對(duì)原系統(tǒng)影響較大,;若太小則不易后續(xù)時(shí)序重構(gòu)的優(yōu)化,這里取m=4進(jìn)行Matlab仿真,。仿真結(jié)果如圖3所示,。
如圖3所示,TFDLMS算法在收斂初期由于誤差e隨著濾波的進(jìn)行改變一般比較大,,所以在收斂過程中的性能會(huì)稍次于TFLMS算法,。在穩(wěn)態(tài)的時(shí)候,由于誤差e在此刻一般比較小,,所以近似手段對(duì)穩(wěn)態(tài)的影響會(huì)比較小,??紤]到改進(jìn)后TFDLMS的高度并行的處理結(jié)構(gòu),在收斂以及穩(wěn)態(tài)表現(xiàn)上的微小影響的代價(jià)是值得的,。
在Simulink中建模,,將TFDLMS模型轉(zhuǎn)換為HDL,在Quartus中綜合布線布局,,得到122.79 MHz的頻率表現(xiàn),。由于TFDLMS采用馳豫流水計(jì)算,已經(jīng)是近似計(jì)算,,因此無需考慮標(biāo)準(zhǔn)LMS算法的嚴(yán)格串行計(jì)算時(shí)間問題,,此時(shí)的系統(tǒng)工作頻率可以認(rèn)為是采樣吞吐頻率。顯然,,改進(jìn)后的算法結(jié)構(gòu)系統(tǒng)吞吐頻率有很大的提高,。
3.2 時(shí)序重構(gòu)優(yōu)化
時(shí)序重構(gòu)又稱重定時(shí)(Retiming),是一種在保持系統(tǒng)功能不變的前提下改變系統(tǒng)延遲數(shù)目和分布的方法[5],。時(shí)序重構(gòu)的映射等式定義為:
由于重構(gòu)后每個(gè)信號(hào)路徑上都沒有負(fù)延時(shí)情況,,根據(jù)時(shí)序重構(gòu)原理的性質(zhì),這個(gè)重構(gòu)映射是合理的,、穩(wěn)定的[5],。可以看到,,合理地選取映射規(guī)則對(duì)電路進(jìn)行時(shí)序重構(gòu),,可以斬?cái)嚓P(guān)鍵路徑,提高系統(tǒng)運(yùn)行速度,。這里,重構(gòu)后的關(guān)鍵路徑為一個(gè)處理單位,。
對(duì)重構(gòu)后的算法進(jìn)行建模,、綜合,、布線布局,,得到182.15 MHz的頻率表現(xiàn)力,。顯然,,重構(gòu)后的TFRDLMS算法結(jié)構(gòu)的運(yùn)行頻率較于以往有很大的提升。
3.3 變步長優(yōu)化
前面的設(shè)計(jì)都是采用固定步長來處理迭代信號(hào),。如果采用變步長來處理,,在收斂初期誤差e較大時(shí)采用較大的步長,則可以加快收斂速度,;而在穩(wěn)態(tài)時(shí)誤差e很小時(shí)采用較小步長,則可以降低穩(wěn)態(tài)失調(diào),??紤]到常用的功率歸一化變步長方式的計(jì)算復(fù)雜度問題,,本設(shè)計(jì)選用簡(jiǎn)單的邏輯判斷移位來進(jìn)行變步長操作。
DSP Builder中提供了嵌入外部設(shè)計(jì)的HDL模塊的功能,。用Verilog在外部寫好關(guān)于邏輯判斷移位的HDL,導(dǎo)入HDLImport模塊,。對(duì)變步長的TFRDLMS模型進(jìn)行仿真,,固定步長TFRDLMS算法進(jìn)行對(duì)比,,結(jié)果如圖5所示。
變步長算法適當(dāng)?shù)卣{(diào)整了收斂速度與穩(wěn)態(tài)誤差的矛盾,,它的收斂速度要快于固定步長的模型,,而且穩(wěn)態(tài)特性也不會(huì)因此變差。改變后得到的系統(tǒng)最高頻率為182.78 MHz,。顯然,加入這種簡(jiǎn)單的邏輯判斷變步長模塊,,并沒有對(duì)電路的關(guān)鍵路徑造成影響,。表1為以上設(shè)計(jì)過程的綜合結(jié)果,。
3.4 板級(jí)測(cè)試
SignalTap是Quartus軟件中的在線嵌入式邏輯分析儀模塊,利用它可以方便地測(cè)試設(shè)計(jì)結(jié)果的實(shí)時(shí)邏輯時(shí)序功能,。利用DDS技術(shù)在FPGA中設(shè)計(jì)一個(gè)正弦波發(fā)生器模塊以及噪聲發(fā)生器模塊作為測(cè)試信號(hào)出入。在Quartus中建立一個(gè)測(cè)試工程,,利用芯片內(nèi)部的PLL生成測(cè)試運(yùn)行的頻率和SignalTap采樣頻率,。SignalTap邏輯分析儀采樣頻率使用最高的250 MHz,,將測(cè)試頻率設(shè)為125 MHz,,并在工程中加入測(cè)試總模塊(DDS信號(hào)+變步長TFRDLMS),。綜合布線布局后下載到DE2-70上,,用SignalTap觀測(cè)信號(hào)如圖6所示,。實(shí)驗(yàn)結(jié)果表明,,設(shè)計(jì)的電路可以穩(wěn)定地運(yùn)行在百兆以上,滿足高速自適應(yīng)運(yùn)用的需求,。
FPGA以其高效的硬件特性在信號(hào)處理方面有著越來越多的應(yīng)用,。本文提出的一種變步長的TFRDLMS算法結(jié)構(gòu)的改進(jìn)方法,并以自適應(yīng)噪聲對(duì)消為模型進(jìn)行算法仿真,。仿真結(jié)果表明改進(jìn)算法結(jié)構(gòu)相比較改進(jìn)前的算法在濾波性能上只有少許下降,,但是卻能夠很好地在信號(hào)流圖上切割關(guān)鍵路徑以利于流水實(shí)現(xiàn)。最后以8階16位定點(diǎn)格式為背景參數(shù)對(duì)變步長TFRDLMS算法進(jìn)行FPGA建模實(shí)現(xiàn)并進(jìn)行板級(jí)功能測(cè)試,。實(shí)驗(yàn)結(jié)果表明,,改進(jìn)算法結(jié)構(gòu)可以很好地應(yīng)用于高速自適應(yīng)信號(hào)處理的場(chǎng)合。
參考文獻(xiàn)
[1] 丁玉美,,闊永紅,,高新波.數(shù)字信號(hào)處理-離散隨機(jī)信號(hào)處理[M].西安:西安電子科技大學(xué)出版社,2002.
[2] HAYKIN S.Adaptive filter theory[M].4th ed.NJ:Prentice Hall,,2002.
[3] 潘松,,黃繼業(yè),,王國棟.現(xiàn)代DSP技術(shù)[M].西安:西安電子科技大學(xué)出版社,,2003.
[4] YI Y,,WOODS R,,TING L K,et al.High speed FPGA-based implementation of delayed-LMS filters[J].Netherland:Journal of VLSI Signal Processing,,2005(39):113-131.
[5] PARHI K K.VLSI數(shù)字信號(hào)處理系統(tǒng)-設(shè)計(jì)與實(shí)現(xiàn)[M]. 陳弘毅,,白國強(qiáng),,吳行軍,,等譯.北京:機(jī)械工業(yè)出版社,,2004.