張立萍
(赤峰學院 物理與電子信息工程系,內蒙古 赤峰 024000)
LMS自適應濾波器的Matlab設計與仿真
張立萍
(赤峰學院 物理與電子信息工程系,內蒙古 赤峰 024000)
自適應技術已經被廣泛應用于數字通信、雷達和工業控制等領域.本文以隨機干擾噪聲信號作為研究對象,在Matlab上設計了LMS去噪自適應濾波器的程序,改變自適應參數,進行了一系列的仿真,為硬件實現提供了有力的參考.
自適應濾波器;LMS算法;M文件;仿真
LMS算法使用的準則是使濾波器的期望輸出值和實際輸出值之間的均方誤差最小化的準則,即使用均方誤差來做性能指標.

自適應橫式濾波應用于聯合參數估計的結構如圖1所示.各符號的意義是:x(n)為輸入信號,y(n)為濾波器輸出,d(n)為y(n)想要趨近的理想信號,d(n)是己知的,e(n)為誤差信號.其均方誤差可表示為:

設自適應濾波器的輸入矢量為:

加權矢量(即濾波器參數矢量)為:

濾波器的輸出為:

x(n)的自相關函數為:

x(n)和d(n)的互相關函數為:

誤差信號e(n)定義為期望輸出d(n)與濾波器實際輸出之間的誤差,即
e(n)=d(n)-y(n)=d(n)-WT(n)X(n) (1)
在W(n)是常數矢量的情況下,有

這就是均方誤差性能函數,其中Rxx是輸入矢量X(n)的自相關矩陣.

P是輸入矢量X(n)和期望響應d(n)的互相關矢量:


所以在最小均方誤差意義下的最佳FIR橫向濾波器的權向量為Wopt,它一定滿足正則方程:

當Rxx為滿秩時,正則方程有唯一解,稱為維納解,即

由式(2)和式(3)得:

上式表示的ξmin稱為維納誤差.
直接根據式(4)求解正則方程的方法稱為直接矩陣求逆算法,它的缺點是要求的運算量很大,特別是當加權系數的個數大時更是如此,因此應用范圍有限.
正則方程的另一種重要解法是梯度法.梯度法是先給定一個初始加權值,然后逐步沿梯度的相反方向改變加權值,在一定條件下將加權矢量最終收斂到最佳值.梯度法不需要進行矩陣求逆運算,它是應用最廣泛的最小均方誤差算法(LMS)的基礎.對于一個最簡單的最速下降梯度搜索算法,可以將權值的迭代表示為:

式中,n表示迭代步數,而塄(n)為性能表面在w(n)點的梯度;μ則為一常數,稱為自適應增益,它決定迭代的穩定性和收斂性. .因為
塄(n)是均方誤差ξ相對于權矢量W(n)的梯度,由(2)式得:

因此得權矢量的更新公式為:

上面討論的梯度法得到最佳加權矢量Wopt是比較簡單和有效的,但計算時需要知道均方誤差性能函數的梯度的精確值.要嚴格地得到梯度矢量實際上是不可能的,為此,B. Widrow和M.E.Hoff在1960年提出了LMS算法,LMS算法中使用的是最陡下降法.它是取單個誤差樣本的平方e2(n)的梯度作為均方誤差梯度的估計,由式(1)可得梯度矢量的估計為:由此得到一個新的權矢量遞推公式,即LMS算法遞推公式為:


LMS算法的主要優點是計算簡單,每次迭代只需要2N+1次計算.然而,計算簡單付出的代價是收斂緩慢,特別是當信道特性導致自相關矩陣R的特征值散布比較大,即λmax/λmin時.另一方面,梯度算法只有一個調整參數用來控制收斂速率,收斂慢正是由于這個基本的限制,為了避免濾波器出現不穩定,步長μ可以由輸入功率進行控制.
前面已經介紹了LMS算法,已知濾波器的長度和LMS算法的步長因子影響濾波器的收斂速度和濾波性能.它們之間的關系為:失調正比于步長,平均時間常數反比于步長.下面將在MATLAB環境中編寫M文件對LMS算法進行設計和仿真,并對各種不同參數情況下濾波器的性能進行比較,驗證算法的可行性.
在MATLAB中編寫M文件lms.m,其中,各參數的意義如下.
s:標準正弦信號,最大峰值為maxVp=1.00.
sn:標準信號疊加標準白噪聲(最大峰值為maxVp=3.94).
μ:濾波器步長因子.
W(n):濾波器的權向量序列.
e:s(i)信號減去濾波器輸出信號后得到的誤差信號.
N:時域抽頭LMS算法濾波器階數
alen:輸入信號抽樣點數
最小均方算法中權向量{W(n)}的更新表達式為(7)式,更新表達式在M文件中的實現代碼為:

仿真時,原始信號選為sin((0.05*pi)*t),其中t=1:dien,噪聲信號采用標準白噪聲.首先選取濾波器階數N=128,步長因子μ=0.0002,在MATLAB環境中運行lms.m文件,調用繪圖函數,得到最小均方算法的仿真結果如圖2所示.

圖2 LMS算法的輸入、輸出和均方誤差曲線
通過理論分析可知LMS算法的收斂速度、收斂性能和穩態誤差都受步長因子和濾波器階數的影響,下面通過仿真來研究它們之間的關系.
在原始信號和噪聲信號與圖2相同的情況下,圖3中反映了步長因子μ的影響,將其值改為0.001時的輸出及均方誤差曲線.

圖3 μ=0.001時LMS算法的輸出及均方誤差曲線
圖4中反映了濾波器階數N的影響,將其值改為32時的輸出及均方誤差曲線.

圖4 N=32時LMS算法的輸出及均方誤差曲線
在自適應濾波器的設計過程中,濾波器階數N和步長μ等參數的選取對仿真結果的影響總結如下.
(1)自適應算法中步長μ的選擇
μ的大小影響算法的收斂速度,μ取值小,收斂速度慢,計算工作量大,但濾波性能較好.μ取值大,收斂速度快,計算工作量小,濾波性能較差.但μ大到一定值時,收斂速度變化不明顯,且取值過大,會造成計算溢出.
(2)自適應濾波器階數N的影響
自適應濾波器的階數N不可以任意選取,需要根據經驗加上實際仿真驗證比較才能最終確定.當階數N取值大時,迭代次數增加,收斂速度變快.但當階數N大到一定程度,收斂速度變化不明顯,且可能引起系數迭代過程不收斂.
〔1〕杜培宇.基于自適應濾波器的噪聲抑制技術研究[D].碩士學位論文.山東:山東大學,2005.
〔2〕Dimitris G.Manolakis,Vinay k.Ingle,Stephen M.Kogon.Statistical and Adaptive Signal Processing[M].北京:電子工業出版社,2003.
〔3〕黃埔堪,陳建文,樓生強.現代數字信號處理[M].北京:電子工業出版社,2003.
〔4〕沈福民.自適應信號處理[M].西安:西安電子科技大學出版社,2001.
〔5〕王建中,羅欣武,劉文江,等.一種改進的DMT系統頻域均衡器[J].計算機工程與應用,2006(24):98-101.
〔6〕齊海兵.基于FPGA的橫向LMS算法的實現[J].國外電子元器件,2007(1):31-34.
TN305.94
A
1673-260X(2010)05-0104-02由Widrow和Hoff(1960)引入的LMS算法,由于其簡單性、運算高效性和各種運行條件下良好的性能,而獲得廣泛應用.LMS算法用平方誤差代替均方誤差,它的顯著特點是簡單性,不需要計算相關函數,也不需要矩陣求逆運算.