楊 東,王建業(yè),蔡 飛
(空軍工程大學(xué)導(dǎo)彈學(xué)院,陜西三原 713800)
隨著數(shù)字超大規(guī)模集成(VLSI)技術(shù)的發(fā)展,自適應(yīng)信號(hào)處理技術(shù)在許多領(lǐng)域(例如:數(shù)字通信、雷達(dá)、生物醫(yī)學(xué)、地震學(xué)、導(dǎo)航系統(tǒng)等)得到了廣泛應(yīng)用。傳統(tǒng)上自適應(yīng)信號(hào)處理是基于DSP處理器實(shí)現(xiàn)的,但其固有的缺點(diǎn)無(wú)法滿足高速、實(shí)時(shí)系統(tǒng)的要求,而利用FPGA實(shí)現(xiàn)自適應(yīng)信號(hào)處理能夠很好地解決并行性和速度問(wèn)題以及改善系統(tǒng)的抗干擾能力。傳統(tǒng)上,自適應(yīng)濾波器的FPGA實(shí)現(xiàn)主要是采用VHDL或者Verilog HDL等硬件描述語(yǔ)言通過(guò)編寫(xiě)代碼來(lái)實(shí)現(xiàn)的,這種方式開(kāi)發(fā)效率低,難度比較大,也不便于仿真觀察。而DSP Builder工具則能更好地滿足開(kāi)發(fā)要求。
DSP Builder作為Matlab的Simulink工具箱,是基于FPGA的DSP開(kāi)發(fā)工具,它支持系統(tǒng)、算法和硬件設(shè)計(jì)共享一個(gè)公共開(kāi)發(fā)平臺(tái),在算法友好的開(kāi)發(fā)環(huán)境中幫助設(shè)計(jì)人員生成DSP設(shè)計(jì)硬件表征,從而縮短了 DSP設(shè)計(jì)周期。設(shè)計(jì)人員可以使用DSP Builder模塊迅速生成Simulink系統(tǒng)建模硬件。
Altera可編程邏輯器件(PLD)中的DSP系統(tǒng)設(shè)計(jì)需要高級(jí)算法和 HDL開(kāi)發(fā)工具。Altera的DSP Builder將Matlab和Simulink系統(tǒng)級(jí)設(shè)計(jì)工具的算法開(kāi)發(fā)、仿真和驗(yàn)證功能與QuartusⅡ的綜合、仿真以及Altera開(kāi)發(fā)工具整合在一起,實(shí)現(xiàn)了這些工具的集成。
在DSP Builder的開(kāi)發(fā)過(guò)程中,可以運(yùn)用硬件回環(huán)(Hardware in the Loop,HIL)仿真,它是將軟硬件技術(shù)結(jié)合在一起的綜合仿真系統(tǒng)。HIL仿真被證明是一種有效的仿真驗(yàn)證解決方法,該技術(shù)能確保在開(kāi)發(fā)周期早期就完成嵌入式軟件的測(cè)試,到系統(tǒng)整合階段開(kāi)始時(shí),嵌入式軟件測(cè)試就要比傳統(tǒng)方法做得更徹底更全面,這樣可以及早地發(fā)現(xiàn)問(wèn)題,因此降低了解決問(wèn)題的成本。
自適應(yīng)濾波器經(jīng)近40年的發(fā)展,形成了多種準(zhǔn)則下的自適應(yīng)濾波理論。然而,1969年由Widrow和Hoff提出的LMS算法,因其具有計(jì)算量小、易于實(shí)現(xiàn)等優(yōu)點(diǎn)而在實(shí)踐中被廣泛采用,并且?guī)缀踹m用于所有場(chǎng)合,尤其在回聲抵消、信道均衡、噪聲對(duì)消等應(yīng)用中處于絕對(duì)的統(tǒng)治地位。其基本思想是調(diào)整濾波器的權(quán)值參數(shù),使濾波器的輸出信號(hào)與期望信號(hào)之間的均方誤差最小。LSM算法通過(guò)以下迭代式來(lái)描述:
式中,x(k)表示第k時(shí)刻輸入信號(hào)向量,d(k)為第k時(shí)刻的輸入期待信號(hào),即參考輸入,e(k)和y(n)分別為誤差信號(hào)和濾波器的輸出,w(k)表示第k時(shí)刻權(quán)系數(shù)向量,N和μ分別為濾波器階數(shù)和迭代步長(zhǎng)(影響LMS算法失調(diào)量和收斂速度的主要參數(shù))[1]。
采用自適應(yīng)LMS算法濾波器結(jié)構(gòu)如圖1所示。
圖1 LMS自適應(yīng)FIR濾波器結(jié)構(gòu)Fig.1 The structure of LMSadaptive FIR filter
然而,LMS自適應(yīng)濾波器的系數(shù)更新路徑比較長(zhǎng),從迭代公式和濾波器結(jié)構(gòu)中可以看出權(quán)系數(shù)更新必須在輸出信號(hào)y(k)與誤差信號(hào)e(k)計(jì)算完畢以后才能進(jìn)行。換言之,以上步驟含有一種順序關(guān)系,權(quán)系數(shù)的更新與濾波(y(k)的計(jì)算)不能同步進(jìn)行。對(duì)于高速信號(hào)處理,這種串行的算法不能滿足要求。并行的流水線結(jié)構(gòu)是高速設(shè)計(jì)中的一種常用手段,這種方法是在時(shí)序電路中通過(guò)插入寄存器將較長(zhǎng)的更新過(guò)程劃分成較小模塊,從而實(shí)現(xiàn)提高系統(tǒng)工作頻率的目的[2]。
相對(duì)于LMS算法,DLMS算法的權(quán)系數(shù)更新模塊采用延遲了D個(gè)節(jié)拍的數(shù)據(jù)來(lái)產(chǎn)生下一時(shí)鐘周期的權(quán)系數(shù),本設(shè)計(jì)中權(quán)系數(shù)更新延遲了6個(gè)周期。引入延遲的好處在于可以用前一時(shí)間的誤差值來(lái)實(shí)現(xiàn)更新,在時(shí)鐘的驅(qū)動(dòng)下,系數(shù)更新和誤差計(jì)算可以同時(shí)進(jìn)行。DLMS算法權(quán)系數(shù)更新方程可以用下式表示:
DLMS算法權(quán)系數(shù)更新中延時(shí)D的引入對(duì)算法的穩(wěn)態(tài)行為影響不大,關(guān)鍵問(wèn)題是步長(zhǎng)因子 μ的選取。DLMS算法的收斂條件相對(duì)于LMS算法的收斂條件DLMS算法收斂條件更為苛刻[3]。
DSP Builder是 Altera公司推出的一個(gè)面向DSP開(kāi)發(fā)的系統(tǒng)級(jí)(或算法級(jí))設(shè)計(jì)工具,它架構(gòu)在多個(gè)軟件工具之上,并把系統(tǒng)級(jí)(算法仿真建模)和RTL(硬件實(shí)現(xiàn))兩個(gè)涉及領(lǐng)域的設(shè)計(jì)工具連接起來(lái),作為Matlab的一個(gè)Simulink工具箱出現(xiàn),可以在Simulink中進(jìn)行圖形化設(shè)計(jì)和仿真,同時(shí)又通過(guò)Signal-Compiler可以把Simulink設(shè)計(jì)文件(.mdl)轉(zhuǎn)成相應(yīng)的硬件描述語(yǔ)言 VHDL(.vhd),DSP Builder可以很方便地幫助設(shè)計(jì)者完成基于FPGA的DSP系統(tǒng)設(shè)計(jì)的整個(gè)流程[4]。
本文設(shè)計(jì)了一個(gè)16階系統(tǒng)辨識(shí)自適應(yīng)濾波器,輸入信號(hào)x(k)、輸出信號(hào)y(k)與誤差信號(hào)e(k)均用16位二進(jìn)制符號(hào)數(shù)表示。圖2給出了16階DLMS自適應(yīng)FIR系統(tǒng)辨識(shí)頂層設(shè)計(jì)構(gòu)造圖。
為了構(gòu)造完整系統(tǒng),觀察設(shè)計(jì)效果,此處設(shè)計(jì)了一個(gè)16階直接型FIR低通濾波器作為未知系統(tǒng)(辨識(shí)對(duì)象)。根據(jù)文獻(xiàn)[5]所提出的定點(diǎn)數(shù)L階FIR濾波器的動(dòng)態(tài)范圍級(jí)數(shù)G的最壞情況計(jì)算公式:總位寬應(yīng)是輸入位寬和級(jí)數(shù)G之和,由此可確定濾波器內(nèi)部運(yùn)算位數(shù)最少應(yīng)為16+3共19位。本設(shè)計(jì)對(duì)濾波器輸出信號(hào)采用了縮放,采用16位輸出。同時(shí)為了減少資源的消耗并提高速度,步長(zhǎng)的選擇放棄了乘法器,而是采用移位的方法實(shí)現(xiàn),將誤差信號(hào)向右移一位,結(jié)合輸出信號(hào)的縮放,相當(dāng)于系統(tǒng)采用模塊化設(shè)計(jì),將權(quán)系數(shù)更新模塊封裝成一個(gè)子系統(tǒng)cofe(見(jiàn)圖3),便于調(diào)用,結(jié)構(gòu)清晰。
圖2 16階DLMS自適應(yīng)FIR系統(tǒng)辨識(shí)頂層設(shè)計(jì)Fig.2 Top level design of 16-taps adaptive FIRfilter
圖3 子系統(tǒng)Fig.3 Subsystem
此處,在權(quán)系數(shù)更新時(shí)對(duì)輸入信號(hào)額外延遲了6個(gè)周期,即DLMS權(quán)系數(shù)更新方程的具體實(shí)現(xiàn)。特別要提出的是權(quán)系數(shù)更新延遲時(shí)間的確定是不斷經(jīng)過(guò)試驗(yàn)得出的,對(duì)于濾波器階數(shù)不同延遲時(shí)間也不同[6]。
硬件回環(huán)(HIL)仿真是將軟硬件技術(shù)結(jié)合在一起的綜合仿真系統(tǒng),其最大優(yōu)點(diǎn)在于利用硬件系統(tǒng)能夠提高仿真速度,直接檢測(cè)硬件運(yùn)行效果,并且可以充分利用軟件提供的各種仿真源作為信號(hào)源。硬件平臺(tái)選擇了Altera公司出品的DE2開(kāi)發(fā)板(CycloneⅡ系列 EP2C35F672C6芯片),通過(guò) USBBlaster下載電纜,以JTAG模式的方式直接下載到開(kāi)發(fā)板中,運(yùn)行數(shù)據(jù)又通過(guò)JTAG接口返回到計(jì)算機(jī)顯示,HIL系統(tǒng)結(jié)構(gòu)如圖4所示,信號(hào)源選擇了線性調(diào)頻信號(hào),這樣低通濾波的效果可以很容易地觀察出來(lái)。
圖4 DLMS自適應(yīng)濾波器HIL結(jié)構(gòu)圖Fig.4 The HIL figure of DLMS adaptive filter
圖5 是經(jīng)過(guò)HIL回環(huán)系統(tǒng)的仿真波形圖,圖中第1行為DLMS濾波器輸出,第2行為誤差信號(hào),第3行為輸入線性調(diào)頻脈沖壓縮信號(hào),第 4行為FIR低通濾波器輸出??梢郧宄闯?經(jīng)過(guò)大概150步(約5μs)以后,誤差信號(hào)基本上收斂,而 DLMS自適應(yīng)濾波器也成功學(xué)習(xí)FIR低通濾波器,兩者輸出基本一致。
圖5 HIL仿真波形圖Fig.5 The HIL simulation wave figure
系統(tǒng)成功進(jìn)行仿真以后,運(yùn)行Singal Compiler創(chuàng)建QuartusⅡ工程,進(jìn)行綜合、編譯和適配,最終生成編程文件(即.pof文件和.sof文件)下載到FPGA芯片中去。本文為了觀察資源消耗情況,最終在QuartusⅡ中完成綜合、編譯、適配和下載(在QuartusⅡ中仿真結(jié)果如圖6所示)。在程序成功仿真以后,在QuartusⅡ仿真資源列表中可以看到:耗費(fèi)資源為6 301個(gè)logic elements,1 576個(gè)logic registers,系統(tǒng)最高工作頻率達(dá)到82.07 MHz。由此可以看出DLMS自適應(yīng)濾波器數(shù)據(jù)吞吐量已經(jīng)達(dá)到較高水平。
圖6 QuartusⅡ仿真結(jié)果Fig.6 The simulation results In quartusⅡ
最大限度地提高開(kāi)發(fā)效率和節(jié)約成本是開(kāi)發(fā)者不懈追求的事情。本文利用Matlab的Simulink工具箱DSP Builder設(shè)計(jì)出了基于延時(shí)最小均方算法的自適應(yīng)濾波器,仿真與測(cè)試結(jié)果表明設(shè)計(jì)的正確性,并在CycloneⅡ系列FPGA芯片上完成了硬件驗(yàn)證,濾波器最高頻率達(dá)到82.07 MHz,數(shù)據(jù)吞吐量顯著提高。事實(shí)證明,DSP Builder工具箱可以很明顯地提高數(shù)字信號(hào)處理系統(tǒng)的開(kāi)發(fā)效率,具有較高的應(yīng)用價(jià)值。
[1]Paulo SR diniz.自適應(yīng)濾波算法與實(shí)現(xiàn)(第二版)[M].劉郁林,景曉兵,譚剛兵,等,譯.北京:電子工業(yè)出版社,2004.
[2]Ejaz Mahfuz,Wang Chunyan,Omair M.A high-throughput DLMS adaptivealgorithm[J].IEEE Trans on Circuits and Systems,2005,23:871-875.
[3]Long GuoZhe,Ling FuYun.The LMS Aglorithm with Delayed Coef ficient Adaptation[J].IEEE Trans on A-coustics,Speech,and Signal processing,1989,37:1 397-1 405.
[4]潘松,黃繼業(yè),王國(guó)棟.現(xiàn)代 DSP技術(shù)[M].西安:西安電子科技大學(xué)出版社,2003.
[5]Uwe Meyer-Baese.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)[M].劉凌,譯.北京:清華大學(xué)出版社,2003.
[6]劉雄飛,高金定,齊海兵.LMS自適應(yīng)濾波器FPGA實(shí)現(xiàn)的新方法[J].壓電與聲光,2007(1):23-26.LIU Xiongfei,GAO Jinding,QI Haibing.A new way of theimplementation of LMSadaptive filter based on FPGA[J].Piezoelectrics&Acoustooptics,2007(1):23-26.