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

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

設(shè)自適應(yīng)濾波器的輸入矢量為:

加權(quán)矢量(即濾波器參數(shù)矢量)為:

濾波器的輸出為:

x(n)的自相關(guān)函數(shù)為:

x(n)和d(n)的互相關(guān)函數(shù)為:

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

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

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


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

當(dāng)Rxx為滿秩時,正則方程有唯一解,稱為維納解,即

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

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

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

因此得權(quán)矢量的更新公式為:

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


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

仿真時,原始信號選為sin((0.05*pi)*t),其中t=1:dien,噪聲信號采用標(biāo)準(zhǔn)白噪聲.首先選取濾波器階數(shù)N=128,步長因子μ=0.0002,在MATLAB環(huán)境中運(yùn)行l(wèi)ms.m文件,調(diào)用繪圖函數(shù),得到最小均方算法的仿真結(jié)果如圖2所示.

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

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

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