雷 宇,靳寶全*,王云才,安光峽,王 宇,王 東
(1.太原理工大學新型傳感器與智能控制教育部重點實驗室,太原 030024;2.山西煤層氣(天然氣)集輸有限公司,太原 030032)
LMS自適應濾波器模塊化設計及其FPGA實現*
雷 宇1,靳寶全1*,王云才1,安光峽2,王 宇1,王 東1
(1.太原理工大學新型傳感器與智能控制教育部重點實驗室,太原 030024;2.山西煤層氣(天然氣)集輸有限公司,太原 030032)
針對LMS自適應濾波器在FPGA上實現結構靈活性的問題,提出了一種模塊化設計方法。根據LMS算法結構特點,結合FPGA硬件語言特點進行模塊化設計,分別闡述了各模塊設計結構,對模塊進行并行調用與綜合。對模塊化設計的自適應濾波器與純串行及純并行設計的自適應濾波器所占用的資源以及處理速率進行比較,8個并行模塊結構比全串行結構處理速率快了近7.6倍,硬件資源占用比全并行結構減少了近50%;結果說明模塊化LMS自適應濾波器設計具有更加靈活的結構特點。
自適應濾波器;模塊化設計;最小均方誤差準則;現場可編程門陣列
自適應濾波器可以即時調節濾波參數,具有優秀的動態濾波效果。最小均方誤差LMS(Least Mean Square)算法廣泛應用于自適應濾波器的設計中,已經成為自適應濾波所采用最佳準則的一種。而FPGA芯片時鐘頻率高、控制周期短、執行速度快、靈活性強[1]、可以滿足系統對實時性、高速數據處理的要求[2],在FPGA上實現基于LMS算法的自適應濾波器的方法及結構改進是目前的一個研究熱點。
LMS自適應算法為遞推式,采用該算法的自適應濾波器硬件實現更為便捷。近幾年的研究已經在FPGA上實現了LMS自適應濾波器,并提出改進的延遲LMS自適應濾波器,提高了濾波器的數據吞吐速率[3-4],針對LMS濾波算法收斂性能提出了變步長LMS自適應濾波算法顯著改善了收斂性能[5],應用方面利用FPGA設計的LMS自適應濾波器進行飛機機翼的振動主動控制[6]。利用FPGA設計的變步長自適應濾波器進行信號去噪[7];在金屬塑性材料細觀損傷過程聲發射特性得到了良好的實驗效果[8]。設計結構方面,有學者在FPGA上對改進后的LMS算法時的處理速率以及邏輯資源占用率進行了實踐探究與分析,并利用符號算法節約了自適應濾波器對乘法器資源的利用[9],利用流水線結構設計提高了數據處理速率[10-11]。目前對LMS自適應濾波器在FPGA上實現時結構的探究仍然有待加深,進一步對FPGA實現LMS自適應濾波器時的資源與速率的探究是必要的。
本文在之前研究的基礎上,探究利用模塊化結構以FPGA為載體設計LMS自適應橫向濾波器,提高其在FPGA上的面積與速率交換的靈活性,并且能達到較高的階數(4~64)。利用Altera公司的EP4CE15F17C8芯片上設計串并結構的濾波器,并對其性能進行了分析。
LMS算法便于硬件結構實現,采用改進均方誤差梯度的估計值計算方法[12],算法的逼近過程用式(1)表示:

(1)
由上面一組遞推公式,輸出信號y(n)等于濾波器系數向量W(n)與輸入信號X(n)的積。而濾波器系數向量不斷根據誤差信號e(n)更新,誤差信號為期望信號d(n)與實際輸出信號的差。
由推導公式可知LMS自適應濾波器的全并行結構圖如圖1所示。

圖1 LMS自適應濾波器全并行結構示意圖
圖1中A虛線框內為LMS權值更新模塊,B虛線框內為濾波器模塊,LMS自適應濾波器中,權值更新模塊以及濾波器模塊是相對獨立的2個部分。所以,若采用全并行結構進行設計,對于深度為N的濾波器,需要占用2N個乘法器以及較多邏輯資源,而采用全串行結構設計則完成一次權值更新至少需要N個時鐘周期,制約了數據處理速率。
在進行FPGA設計時,可以對LMS算法模塊化設計,既保證處理速度的同時又能對FPGA邏輯資源進行合理利用。圖1中對于LMS自適應濾波器可以分為3個模塊組成,多級處理結構如圖2所示。
由圖2可知,在LMS自適應算法的多級結構中,需要對各模塊進行FPGA模塊化編程,以及對輸入、輸出以及誤差信號進行同步分配處理。最終組合成為完整的自適應濾波器。

圖2 LMS多級處理結構
2.1 FIR串行模塊的設計
考慮FIR濾波器部分公式(2)
y(n)=WH(n)X(n)
(2)
FIR濾波器串行結構示意圖如圖3所示。

圖3 FIR濾波輸出串行結構示意圖
圖3中串行FIR模塊需要在時鐘控制下順序完成4次抽頭系數的權值更新運算,由于LMS算法中的權值信號不是對稱的,不需要進行對稱系數加法運算,所以模塊內需要調用1個加法器1個乘法器以及1個移位器,每個器件重復調用4次。
定義FIR串行功能模塊名為FSMO,它的輸入輸出配置如下:輸入為時鐘clk,復位信號rst,以及12位波形信號輸入Xin,12位加權系數值輸入Win,28位信號輸出Yout。
對FIR濾波輸出串行模塊根據時序以及功能要求進行verilog HDL程序設計,進行行為仿真,仿真結果如圖4所示。
仿真中設置數據頻率clk_data,為時鐘頻率clk的4倍,模塊仿真輸入Xin與Win為MATLAB仿真生成的數據,通過文本文檔方式輸入到FPGA專用仿真工具Modulesim中進行功能仿真測試。

圖4 功能模塊FSMO時序仿真
由圖4可知FIR串行模塊實現了權值與輸入的四次乘法累加運算,延時4個數據周期(clk_data)后,Yout開始輸出。由圖中看出輸出Yout的值3101286剛好對應從Xin為1225輸入到706的與對應系數Win乘積的累加和。仿真結果說明模塊功能正確。
2.2 LMS串行模塊的設計
LMS串行結構設計如圖5所示,要考慮將反饋路徑設計為輸入接口,將求取誤差信號的部分排除,以方便調用。將LMS公式改寫為式(3):

(3)
設計LMS串行模塊示意圖如圖5所示。
圖5中權值輸入同步模塊,根據時鐘控制,乘法器模塊完成x(n)與e(n)的對應運算并按照時序進行乘μ以及權值更新輸出。該模塊的接口配置為:輸
入時鐘clk,復位信號rst,以及與FIR同步的12位波形信號輸入Xin,12位拆分好的誤差輸入error,在進行誤差信號處理時,對“error[16:5]”處理以完成移位操作,相當于乘以權值μ=1/64。對權值更新串行模塊根據時序以及功能要求進行RTL級程序設計,其仿真圖如圖6所示。

圖5 多級LMS算法示意圖

圖6 功能模塊LMSC時序仿真

圖7 最終設計LMSC模塊以及FSMO模塊
最終設計的2個模塊FSMO以及LMSC的封裝RTL(Register-Transfer Level)級視圖如圖7所示。
圖7中A為LMS權值更新模塊,B為FIR串行模塊,A模塊以及B模塊中的輸入LXin與Xin引腳輸入原始信號數據,error輸入式(1)中求取的誤差信號e(n)數據,Win輸入不斷更新的權值數據,數據位數均為12位字長的數據。輸出接口Wout輸出更新好的權值數據,需要進行高位截位處理,B模塊中輸出Yout為單個模塊的濾波結果。
2.3 LMS多級處理結構整體設計
由圖2可知,多級處理結構在并行調用串行模塊時,要將輸入輸出數據進行同步分組和組合,以求取誤差值以及最終的濾波輸出結果。
以15階自適應FIR濾波器,12位系數量化位數,12位位寬輸入信號,輸出數據為25比特,參考信號以及誤差信號量化位數均為12位的模塊化設計為例,其并行模塊通過例化并重復4次調用2.1、2.2節設計的串行FIR以及LMS權值更新模塊FSMO以及LMSC,為了使2個并行模塊結合,以及求取誤差信號,設計方案如圖8所示。

圖8 求取誤差信號結構圖
如圖8所示為求取誤差信號Figouteror模塊示意圖,整體模塊化結構的LMS自適應濾波器運行的過程中,串行模塊計算出來的輸出不是濾波輸出,根據濾波器原理如式(4):

(4)
由于N=16故一共需要調用4個FIR串行模塊,其輸出分別為y0[4]、y1[4]、y2[4]、y3[4],則最終輸出如式(5):y(n)=WH(n)X(n)=y0[4]+y1[4]+y2[4]+y3[4]
(5)
由于LMS算法具有嚴格時間順序要求,通過圖8中各模塊內部對clk時鐘的調用時序控制各模塊計算的先后順序。時序確定需要嚴格按照上述公式的順序,設計好的模塊RTL程序視圖如圖9所示。
由圖9可知整體模塊輸入12為字長由X接口輸入原始信號,Din輸入參考信號,整體模塊的輸入數據輸入分配采用十六位并行分配模式,并在Xap模塊中調用FIFO先入先出核,每當十六位數據滿時,將兩組數據同步并行輸出到LMS自適應濾波器模塊中,分別由并行調用的4組LMSC模塊更新權值以及FSMO濾波模塊濾波,濾波輸出以串行方式從Y接口輸出。

圖9 整體模塊化LMS自適應濾波器設計的RTL視圖
利用上述原理,分別設計32階以及64階的LMS自適應橫向濾波器,并對其調用邏輯資源以及數據處理速率進行比較。
整體結構設計完整之后進行RTL級程序編程,調用芯片乘法器資源,對整個系統進行設計,使用3種設計方法設計參數為15階(N=16)與31階(N=32)的自適應濾波器,一種是全串行結構,以及全并行結構,還有本文所述的模塊化設計方法,模塊化1調用4組并行模塊,模塊化2調用8組并行模塊,并設計階數N=64的63階濾波器,此時全并行設計由于過于消耗乘法器資源所以沒有設計的意義,故調用16組串行模塊進行模塊化設計,為了便于對比,采用統一的系統時鐘約束條件為10ns,目標器件采用Altera公司的cycloneIV系列芯片EP4CE15F17C8,調用邏輯資源以及數據處理速率比較如表1所示。
根據表1、表2繪制資源占用以及數據速率對比圖,以串行模式結構的資源占用以及數據處理速率為基準,求取比值圖如圖10所示。

表1 N=16時3種結構系統資源占用以及數據速率對比

表2 N=32時3種結構系統資源占用以及數據速率對比

N=64時3種結構系統資源占用以及數據速率對比

圖10 設計方式對比圖(與串行模式的比值)
由表格數據以及圖10結果說明,模塊化設計方法便于靈活利用硬件邏輯資源以及提高數據處理速率,圖10(a)、10(b)中,可知全并行模式雖然處理速度能達到比較高的倍數,但是所消耗的寄存器以及邏輯單元都是所有結構中最高的,而模塊化設計的LMS自適應濾波器通過并行調用基本模塊模塊化1設計結構調用了8組串行模塊,達到了近7.6倍的數據處理速度。并且在較高階數N=32與N=64時均能達到較好的提升速度的效果,在設計N=64的自適應濾波器時,全并行結構必須使用128個硬件乘法器資源,很多FPGA芯片乘法器資源都不足以滿足要求,采用軟件乘法則會大大制約數據處理速率,此時采用模塊化設計的靈活性就凸顯出來。所以,采用模塊化設計,滿足FPGA設計LMS自適應濾波器的結構靈活性,更加利于FPGA設計時資源與處理速率的靈活選擇。
本文首先介紹了LMS自適應算法的基本原理,然后分別介紹了FIR串行模塊以及LMS串行模塊的設計方法,并介紹了模塊的調用組合方法,編寫了Verilog HDL代碼,在Quartus Ⅱ 13.1中進行仿真測試。最后使用Altera公司的Cyclone IV系列的EP4CE15F17C8芯片進行了硬件測試。結果表明,采用模塊化設計滿足LMS自適應橫向濾波器的要求,并且能提高對數據處理速度與芯片資源調用進行最優化設計的靈活性。提出的模塊化LMS自適應橫向濾波器設計思路也可以應用到類似的FPGA功能模塊設計中。
[1] 郝天琪,崔建利,李策,等. 基于FPGA的侵徹過程數據采集系統設計[J]. 電子器件,2016,29(1):160-163.
[2] 常高嘉,馮全源. 基于FPGA的高速數據采集系統的設計與實現[J]. 電子器件,2013,35(5):615-618.
[3] 高金定. 一種改進的延遲型LMS自適應濾波器及其FPGA實現[J]. 核電子學與探測技術,2013,32(12):1450-1453.
[4] Priya D,Saravanan V,Santhiyakumari N. Power Efficient Implementation of Least Mean Square Algorithm Based Fir Filter Design Using FPGA[J]. i-Manager’s Journal on Digital Signal Processing,2014,2(1):14-21.
[5] 彭繼慎,劉爽,安麗. 低信噪比下基于新型變步長LMS的自適應濾波算法[J]. 傳感技術學報,2013,26(8):1116-1120.
[6] Prakash S,Kumar T G R,Raja S,et al. Active Vibration Control of a Full Scale Aircraft Wing Using a Reconfigurable Controller[J]. Journal of Sound and Vibration,2016,361:32-49.
[7] Kumar R,Bali A. FPGA Implementation of Variable Step Size Adaptive Filters for Signal De-Noising[J]. Journal of Semiconductor Devices and Circuits,2015,1(2):7-19.
[8] 張穎,李彬,趙廣宇,等. 金屬塑性材料細觀損傷過程聲發射特性實驗研究[J]. 中國測試,2015,41(1):115-119.
[9] 邱陳輝,李鋒,徐祖強. 基于 FPGA 和符號 LMS 算法的自適應濾波器設計[J]. 電子器件,2014,37(5):904-907.
[10] Montazerolghaem M A,Moosazadeh T,Yavari M. A Predetermined LMS Digital Background Calibration Technique for Pipelined ADCs[J]. IEEE Transactions on Circuits and Systems Ⅱ:Express Briefs,2015,62(9):841-845.
[11] 付學志,劉忠,胡生亮,等. 基于FPGA的改進型最小均方自適應時延估計器[J]. 系統工程與電子技術,2011,33(5):1191-1196.
[12] Widrow B,Hoff M E,Jr. Adaptive Switching Circuits[J]. IRE WESCON Conv Rec,1960,4:96-104.
[13] 杜勇. 數字濾波器的MATLAB與FPGA實現[M]. 北京:電子工業出版社,2015:220-252.
A Modular Design of LMS Adaptive Filter Based on FPGA*
LEIYu1,JINBaoquan1*,WANGYuncai1,ANGuangxia2,WANGYu1,WANGDong1
(1.Key Lab of Advanced Transducers and Intelligent Control System of Ministry of Education,Tai Yuan Universityof Technology,Taiyuan 030024,China; 2.Shanxi CBM(NG)Gathering and Transportation CO. LTD,Taiyuan 030032,China)
A modular design method is proposed to achieve flexibility in structure on FPGA for the LMS adaptive filter. Modular is designed conducted according to the structural characteristics of LMS algorithm and in combination with the FPGA hardware language features. It expounds the design structure of each module individually,parallel calls and integrates the modules. Comparison of the occupied resources and process rate among adaptive filters of modular design,adaptive filters of single serial design and adaptive filters of single parallel design shows that structure of 8 parallel module is nearly 7.6 times faster in process rate than that of the single serial structure,its occupied hardware resource decreases by nearly 50% than that of single parallel structure;the results show that the modular design method of LMS adaptive filter is more flexible in structure.
adaptive filter;modular design;Least Mean Square;FPGA

項目來源:國家自然科學基金項目(51375327);山西省煤基重點科技攻關項目(MQ2014-09);山西省煤層氣聯合研究基金項目(2015012005)
2016-03-14 修改日期:2016-04-20
C:1290B;1270
10.3969/j.issn.1005-9490.2017.02.026
TN911.72
A
1005-9490(2017)02-0390-06