摘 要: 對變步長LMS濾波算法進行研究,提出一種新的變步長LMS自適應濾波算法。該算法基于Sigmoid函數(shù),通過引入誤差因子反饋來調(diào)整函數(shù)參數(shù),解決了類Sigmoid函數(shù)中參數(shù)設置的問題,并使算法具有較快的收斂速度和較小的穩(wěn)態(tài)誤差。計算機仿真表明,相對于其他變步長算法,該算法在收斂速度和穩(wěn)態(tài)誤差方面均表現(xiàn)優(yōu)異,具有較好適用性。
關(guān)鍵詞: LMS算法; 自適應濾波; 收斂速度; 穩(wěn)態(tài)誤差
中圖分類號: TN713?34 文獻標識碼: A 文章編號: 1004?373X(2013)11?0057?03
0 引 言
LMS(Least mean square)自適應濾波算法[1]由Widrow和Hoffman提出,該算法計算簡單、穩(wěn)定性好、易于實現(xiàn),被廣泛應用在控制、雷達、系統(tǒng)辨識等領(lǐng)域。但是這種固定步長的LMS算法在收斂速率和穩(wěn)態(tài)誤差之間的要求是相互矛盾的,而且該算法在處理相關(guān)信號時,其收斂速度顯著下降。
經(jīng)典的LMS算法的局限在于其固定步長無法兼顧收斂速度和穩(wěn)態(tài)誤差。為了解決這一問題,人們在此基礎上提出了各種各樣的變步長LMS濾波算法。其核心思想都是用變步長代替固定步長,使算法在大的誤差范圍內(nèi)具有快速的收斂性,在小的誤差范圍內(nèi)具有較小的失調(diào)量。文獻[2]提出了變步長參數(shù)正比于誤差的算法,其性能有所提升,但并不理想。文獻[3]給出了一種稱為S函數(shù)的變步長LMS算法(SVLMS),該算法的步長調(diào)整策略有一定的先進性,但該算法在誤差接近零時步長變化劇烈,可能導致穩(wěn)態(tài)誤差增大。文獻[4]在文獻[3]的基礎上做了進一步的改進,修正了步長在誤差接近零時變化劇烈的問題,但算法中的關(guān)鍵參數(shù)需要通過實驗手工設置,而參數(shù)設置不當將嚴重影響算法的性能。文獻[5?6]則分別基于其舌線、雙曲正切函數(shù)和反正切函數(shù)提出了相應的變步長LMS算法,在一定程度上緩解了收斂速度和穩(wěn)態(tài)誤差之間的矛盾。文獻[7]提出了基于變換域的LMS濾波算法,變換域的LMS算法能夠提高運算速度,但收斂速度和穩(wěn)態(tài)誤差之間的矛盾并沒有解決。
可見目前的研究大多集中在變步長策略。變步長策略的實質(zhì)是找到誤差和步長之間的一個對應關(guān)系,此對應關(guān)系能自動調(diào)節(jié)函數(shù)的收斂速度和穩(wěn)態(tài)誤差。本文在文獻[4]的基礎上提出基于Sigmoid函數(shù)的EFLMS(Error Feedback Least Mean Square)算法。該算法利用反饋的思想,通過在參數(shù)中引入誤差因子,解決Sigmoid函數(shù)參數(shù)設置的問題,使算法在收斂速度和穩(wěn)態(tài)誤差等性能指標上均有所改善,同時算法具有廣泛的適應性。
1 相關(guān)工作
變步長LMS濾波算法的實質(zhì)是通過誤差自適應的調(diào)節(jié)步長,即在誤差較大的收斂階段用較大的步長以提高收斂的速度,在誤差較小的穩(wěn)態(tài)階段用較小的步長以獲得較小的誤差。其核心思想是用誤差來反饋調(diào)節(jié)步長,也就是找到誤差和調(diào)節(jié)步長之間的函數(shù)關(guān)系,使算法在穩(wěn)態(tài)誤差和收斂速度上找到一個好的平衡。
文獻[4]提出了一種基于Sigmoid函數(shù)的變步長濾波算法。該算法的Sigmoid函數(shù)相對簡單,而且在誤差接近零處變化不大,具有緩慢變化的特征。其算法設計如下:
[e(n)=d(n)-XT(n)W(n)] (1)
[μ(n)=β[1-exp(-α|e(n)|2)]] (2)
[W(n+1)=W(n)+2μ(n)e(n)X(n)] (3)
算法的核心是公式(2)。通過式(2)建立起誤差[e(n)]和步長[μ(n)]之間的對應關(guān)系,當誤差大時步長變大,收斂速度提高;當誤差逐漸變小時,調(diào)整步長變小,算法趨于穩(wěn)態(tài)。式(2)中[α]和[β]是常數(shù),其中[α>0],其控制函數(shù)的形狀和收斂速度,參數(shù)[β>0]控制函數(shù)的取值范圍。其中參數(shù)[α]是影響算法性能的關(guān)鍵之一,其取值的大小將直接影響算法的收斂速度和穩(wěn)態(tài)誤差值。
但是文獻[4]中并沒有就參數(shù)的取值提出明確的設置方法,而是采用實驗的方法確定參數(shù)的最優(yōu)值。而參數(shù)設置不當將嚴重影響算法的性能,同時也使算法的適用性受到了一定的限制。
本文提出的EFLMS算法基于Sigmoid函數(shù),通過在參數(shù)中引入誤差因子解決了函數(shù)參數(shù)設置的問題。下面介紹EFLMS算法。
2 算法描述
EFLMS算法基于文獻[4]提出的變步長策略,并在其基礎上做了進一步的改進,通過在參數(shù)中引入誤差反饋實現(xiàn)參數(shù)自動調(diào)整。
算法中設計步長和誤差的函數(shù)如下:
[μ(n)=β(n)?[1-exp(-α(n)?e(n)2)]] (4)
其中:
[α(n)=[e(n)/e(n-1)]2] (5)
[β(n)=(1-b0)?β(n-1)+b0?[e(n)/e(n-1)]2-1] (6)
式中:參數(shù)[α(n)]控制算法步長變化的形狀和速度,而[β(n)]控制函數(shù)的取值范圍。式中的常數(shù)[b0]用于調(diào)整取值范圍以滿足算法收斂。
兩個參數(shù)[α(n)]和[β(n)]都是誤差比值[e(n)e(n-1)]的函數(shù)。當[e(n)e(n-1)]的比值較大時,說明誤差變化較大,算法還處在收斂階段,那么這時相應的參數(shù)[α(n)]對應較大的值,這時對應得到的步長[μ(n)]較大,算法的收斂速度加快。隨著誤差[e(n)e(n-1)]比值的逐漸變小,這時[α(n)]變小使步長[μ(n)]變小,算法趨于穩(wěn)態(tài)。在參數(shù)[β(n)]中,當[e(n)e(n-1)]比值較大時,說明誤差變化較大,算法處在收斂階段,這時[β(n)]較大,相應此時步長[μ(n)]變大,算法收斂加快;當[e(n)e(n-1)]比值逐漸變小,這時[β(n)]變小使步長[μ(n)]變小,算法趨于穩(wěn)態(tài)。當極限時[e(n)e(n-1)~1],此時[β(n)=(1-b0)β(n-1)],保證了系統(tǒng)不會出現(xiàn)不穩(wěn)定的情況。
下面在Matlab仿真平臺上對EFLMS算法進行仿真實現(xiàn),驗證算法的性能。
3 仿真分析
自適應濾波算法的性能指標主要有收斂速度和穩(wěn)態(tài)誤差,為此對算法的步長和誤差進行仿真實驗。這里主要對文獻[4]中的自適應算法和EFLMS算法進行仿真,以驗證EFLMS算法的性能。
仿真設置如下:自適應濾波器階數(shù)為20,輸入信號為單頻正弦波,參考的輸入信號為零均值、方差為1的高斯白噪聲,采樣點數(shù)為900。其中文獻[4]中的參數(shù)[α=0.5],[β=0.01]。而EFLMS中的參數(shù)設置如下:式(5)中的[k=2],式(6)中的[b0=0.02]。
3.1 步長變化仿真
算法的調(diào)整步長是誤差的函數(shù),步長的變化反映了算法的運行情況。優(yōu)秀算法步長應該是在收斂階段較大,使系統(tǒng)具有較快的收斂速度;達到穩(wěn)態(tài)階段較小,以使系統(tǒng)獲得較小的誤差。所以步長的變化規(guī)律在一定程度上反映了算法的合理性。
文獻[4]的算法中步長隨迭代次數(shù)的變化曲線如圖1所示,是EFLMS算法的步長變化曲線如圖2所示。圖中橫坐標是迭代次數(shù),縱坐標是算法的調(diào)整步長。
可以看到,兩種算法的步長都隨著迭代次數(shù)的增大而減小,達到一定的迭代次數(shù)之后趨于穩(wěn)定。圖1中,其步長在迭代160次左右時趨于穩(wěn)定,而圖2中步長在迭代60次左右就趨于穩(wěn)定??梢奅FLMS算法的步長調(diào)整策略更加合理,其收斂速度顯著優(yōu)于文獻[4]的算法。這是因為EFLMS算法自適應特性更強,其對參數(shù)設置的依賴程度更小,其步長調(diào)整更合理。
3.2 誤差仿真
誤差反映了算法的輸出信號和原信號之間的差別,達到最小誤差所用的迭代次數(shù)越少,說明算法的收斂速度越快,最小誤差值越小說明算法的精度越高,濾波效果越好。所以誤差值的在一定程度上反映了算法的性能。
圖3和圖4分別是文獻[4]和EFLMS算法的誤差變化曲線圖。隨著迭代次數(shù)的增加,兩個算法的誤差都逐漸變小,小到一定程度之后都趨于穩(wěn)定,此時系統(tǒng)也趨于穩(wěn)定。
圖3中所示算法的誤差在迭代160次左右達到穩(wěn)定,圖4中的算法在迭代60次左右誤差達到穩(wěn)定,顯然圖4的算法達到穩(wěn)定誤差所需的次數(shù)更少,收斂速度更快,而且在系統(tǒng)穩(wěn)定之后的誤差也更小,對信號的濾波效果更好。這是因為EFLMS算法能根據(jù)誤差的變化自適應調(diào)整步長的能力更強,在收斂階段誤差較大時其步長較大,所以其收斂速度很快;而在誤差變小之后調(diào)整步長更小,使系統(tǒng)獲得更高的精度。
可見,EFLMS算法的性能優(yōu)異,無論在收斂速度還是在穩(wěn)態(tài)誤差上均優(yōu)于文獻[4]的算法。
4 結(jié) 語
本文提出一種基于Sigmoid函數(shù)的變步長LMS自適應濾波算法——EFLMS算法。該算法通過引入誤差因子來調(diào)節(jié)參數(shù),解決了Sigmoid函數(shù)參數(shù)需要手工設置的問題,使算法的步長調(diào)整策略更合理。在仿真平臺上對算法進行驗證,仿真結(jié)果表明,相對文獻[4]濾波算法,EFLMS算法在收斂速度更快,精度更高,驗證了算法的可行性和優(yōu)越性。
參考文獻
[1] WIDROW B, STEARNS S D. Adaptive signal processing [M]. Englewood Cliffs, NJ: Prentice Hall, 1985.
[2] YASUKAWA H, SHIMADA S, FURUKRAWA I, et al. Acuoustic echo canceller with high speech quality [C]// IEEE ICASSP. [S.l.]: IEEE, 1987: 2125?2128.
[3] 覃景繁,歐陽景正.一種新的變步長LMS自適應濾波算法[J].數(shù)據(jù)采集與處理,1997,12(3):171?174.
[4] 高鷹,謝勝利.一種變步長LMS自適應濾波算法及分析[J].電子學報,2001,29(8):1094?1097.
[5] 鄧江波,侯新國,吳正國.箕舌線的變步長LMS自適應算法[J].數(shù)據(jù)采集與處理,2004,19(3):282?285.
[6] 鄭莎莎.智能天線變步長最小均方算法的研究與仿真[D].長春:吉林大學,2007.
[7] BEAUFAYS F, WIDROW B. Transform?domain adaptive filters: an analytical approach [J]. IEEE Transaction on Signal Processing, 1995, 43(2): 442?431.