張銀行,楊輝媛,宋志國
(吉首大學物理與機電工程學院,湖南吉首 416000)
基于歸一化LMS算法的自適應濾波器設計
張銀行,楊輝媛,宋志國
(吉首大學物理與機電工程學院,湖南吉首 416000)
歸一化LMS(NLMS)算法是一種變步長的LMS算法,比LMS算法具有更快的收斂速度.采用Altera公司的仿真軟件DSP Builder和QUARTUSII7.2,進行歸一化LMS算法的自適應濾波器的現場可編程門陣列(FPGA)設計.
NLMS算法;DSP Builder;自適應濾波器;FPGA
自適應濾波器是一種能夠自動調整本身參數的特殊維納濾波器,在設計時不需要預先知道關于輸入信號和噪聲的統計特性,它能夠在工作的過程中逐步“了解”或估計[1]出所需的統計特性,并以此為依據自動調整自身的參數,以達到最佳濾波效果.
圖1 自適應濾波器原理框圖
自適應濾波器由參數可調的數字濾波器(或稱為自適應處理器)和自適應算法兩部分組成.自適應濾波器的一般形式如圖1所示,圖1中輸入信號x k()加權到數字濾波器產生輸出信號y k(),自適應算法調節(jié)濾波器權系數使輸出y k()和濾波器期望的響應d k()之間的誤差信號e k()為最小.自適應濾波器的系數受誤差信號e k()的控制,根據e k()的值和自適應算法自動調整.一旦輸入信號的統計規(guī)律發(fā)生了變化,濾波器能夠自動跟蹤輸入信號的變化,自動調整濾波器的權系數,從而實現自適應過程,最終達到濾波效果[2-3].
NLMS的迭代公式為
其中:x k()為輸入信號;y k()為輸出信號;d k()為期望信號;w k()為濾波器的系數;e k()為輸出誤差;μ為控制失調的固定收斂因子,取值范圍0<μ<2;N為濾波器的階數;γ參數是為避免xTk()x k k()過小導致步長值太小而設置的,取值范圍0<γ<1.規(guī)一化LMS算法比LMS算法的計算量稍有增加,規(guī)一化LMS算法的收斂速度比LMS算法更快[4-5],因為它在使瞬時輸出誤差最小化時,采用了可變收斂因子[6].
DSP Builder是Alltera公司推出的一個面向DSP開發(fā)的系統級工具,作為MATALB的一個Simulink工具箱(ToolBox)出現的.DSP Builder作為Simulink中的一個工具箱,使得用FPGA設計DSP系統完全可以通過Simulink的圖形化界面進行,只要簡單地進行DSP Builder工具箱中的模塊調用即可.2.1系統建模設計
NLMS算法自適應濾波器主要由延遲器、加法器、減法器、乘法器、系數更新等模塊組成.圖2是7階NLMS算法自適應濾波器的系統方框圖,期望信號由sine wave1模塊提供,輸入信號由sine wave2和Random Bitstream疊加在一起的信號組成.系統所需的模塊都是直接調用DSP builder中的模塊,其中系數更新模塊是一個封裝的子系統,內部結構見圖3.如果需要提高收斂速度,則可增加濾波器的階數,可增加延遲模塊和子系統模塊.階數的增加必定消耗更多的硬件資源,筆者給出NLMS算法的自適應濾波器的FPGA實現方法,濾波器的階數,步長控制參數μ必須依據所應用的實際情況確定.
圖2 NLMS算法自適應濾波器的系統方框圖
圖3 NLMS算法子系統內部框圖
2.2 子系統內部模塊
子系統內部模塊主要由乘法器、除法器、加法器、延遲單元、總線類型轉換等模塊組成,主要完成濾波器的權值的更新,即和wi(k)xi(k)運算.
2.3 波形仿真
Matlab的Simulink環(huán)境具有強大的圖形化仿真驗證功能,用DSP Builder模塊設計好一個新的模型后,可以直接在Simulink中進行算法級、系統級仿真驗證.本設計的Simulink仿真如圖4所示,輸出信號含有毛刺,這說明輸出信號與期望信號還有一定的穩(wěn)態(tài)誤差.可以通過增加濾波器的階數或修改步長控制參數μ,以達到更好的效果.
運行signal complier可將通過Simulink的模塊文件(.mdl)轉換成硬件描述語言VHDL文件,運行Testbench(測試平臺)可將sine wave1、sine wave2+noise、clock轉換成針對HDL仿真器ModelSim的測試文件.ModelSim是使用最廣泛的基于單內核的Verilog/VHDL混合仿真器,可方便地將信號波形顯示為類似模擬信號的格式,特別適合顯示復雜信號的波形.
由圖4可知輸出信號sine out逐漸趨于穩(wěn)定,且逼近于期望信號sine wave1因此設計結果滿足要求,能夠實現自適應過程.圖4 Simulink仿真圖和圖5 ModelSim功能仿真圖基本一致,說明模塊文件(.mdl)和VHDL文件一致.
圖4 Simulink仿真
圖5 ModelSim功能仿真圖
圖6 NLMS算法自適應濾波器頂層模塊圖
RTL仿真通過以后再調用QuartusII進行綜合、編譯與適配,最終生成編程文件即pof文件和sof文件.7階NLMS算法自適應濾波器共消耗EP2S30F484C3芯片Combinational ALUTs 12692個,pins 38個,logic registrator 405個,DSP block 9-bit elements 128個,整體模型對應的模塊如圖6所示.
筆者給出了基于NLMS算法的自適應濾波器的FPGA實現方法,如果想達到更快的收斂速度,更小的穩(wěn)態(tài)誤差,只需增加子系統,延遲單元即可,筆者直接調用DSP Builder里面的模塊進行設計,而不必采用硬件描述語言進行底層模塊的編寫,使更多的精力放在算法級的研究上.
[1] 田 耘,徐紋波,張延偉.無線通信FPGA設計[M].北京:電子工業(yè)出版社,2008.
[2] 赫 金.自適應濾波器原理[M].鄭寶玉,譯.第4版.北京:電子工業(yè)出版社,2003.
[3] 迪尼,著.自適應濾波算法與實現[M].劉郁林,譯.第2版.北京:電子工業(yè)出版社,2004.
[4] BERSHAD N.Analysis of the Normalized LMS Algorithm with Gaussian Inputs[M].IEEE Trans.Acoust,Speech,Signal Processing,1986,ASSP-34:793-806.
[5] SLOCK D T M.On the Convergence Behavior of the LMS and the Normalized LMS Algorithms[M].IEEE Trans.Signal Processing,1993,41:2 811-2 825.
[6] TARRAB M,FEUER A.Convergence and Performance Analysis of the Normalized LMS Algorithm with Uncorrelated Gaussian Data[M].IEEE Trans.Inform.Theory,1988,IT-34:680-691.
Design of Adaptive Filter Based on the Normalized Least-Mean-Square Algorithm
ZHANG Yin-h(huán)ang,YANG Hui-yuan,SONG Zhi-guo
(College of Physical Science and Mechatronic Engineering,Jishou University,Jishou 416000,Hunan China)
The convergence rate of the Normalized Least-Mean-Square(NLMS)algorithm with variable step length is higher than that of the Least-Mean-Square algorithm,and the Field Programmable Gate Array(FPGA)design of the adaptive filter using Altera DSP Builder and QUARTUS II 7.2 is accomplished.
NLMS algorithm;DSP Builder;adaptive filter;FPGA
book=104,ebook=6
TN911.72
A
10.3969/j.issn.1007-2985.2012.02.019
(責任編輯 陳炳權)
1007-2985(2012)02-0080-04
2011-12-16
吉首大學校級資助課題(11JD044)
張銀行(1982-),男,河南焦作人,吉首大學物理與機電工程學院講師,碩士,主要從事射頻集成電路設計研究.