雷章勇, 彭志煒, 張 儼, 趙雪嬌
(貴州大學(xué)電氣工程學(xué)院,貴陽 550025)
在信號處理中,引入濾波器可在一定程度上削弱或消除噪聲信號的影響。對于濾波器的應(yīng)用,往往希望在實(shí)現(xiàn)濾波、平滑或者預(yù)測等任務(wù)的同時,實(shí)時跟蹤和適應(yīng)系統(tǒng)或環(huán)境的動態(tài)變化,這就需要濾波器的參數(shù)可以實(shí)時變化更新。自適應(yīng)濾波器通常根據(jù)采樣信號的變化不斷更新濾波器的參數(shù)或者調(diào)整濾波器的結(jié)構(gòu),實(shí)現(xiàn)從含噪聲信號中提取或者恢復(fù)有效的原始信號[1]。作為自適應(yīng)濾波器設(shè)計的一個關(guān)鍵環(huán)節(jié),自適應(yīng)濾波算法常用的計算準(zhǔn)則是使濾波器實(shí)際輸出與期望輸出響應(yīng)之間的均方誤差為最小,即最小均方誤差準(zhǔn)則(MMSE)。
由WIDROW提出的最小均方誤差(LMS)算法是一種自適應(yīng)算法,因算法簡單、計算量小、魯棒性強(qiáng)、易于實(shí)現(xiàn)的特點(diǎn)[2-3],被廣泛應(yīng)用于通信、系統(tǒng)辨識、回波消除和自適應(yīng)譜線增強(qiáng)等領(lǐng)域[4-5]。該算法基于MMSE準(zhǔn)則,通過步長因子的選擇實(shí)現(xiàn)對權(quán)值的更新,以獲得最優(yōu)權(quán)值。在這個過程中對步長因子的取值影響算法各方面的性能,包括收斂速度、穩(wěn)態(tài)誤差、對時變系統(tǒng)的跟蹤能力以及抗噪聲干擾能力等[6-8]。根據(jù)對步長因子構(gòu)造方式的不同,LMS算法主要分為傳統(tǒng)定步長LMS算法和變步長LMS算法。
傳統(tǒng)定步長LMS算法將步長因子取為固定值進(jìn)行權(quán)值更新。在此過程中,如果對步長因子取值不當(dāng)將會使算法的性能受到影響。若步長因子取值較大,在初始階段,算法的收斂速度較快,但會在接近穩(wěn)態(tài)時產(chǎn)生較大的穩(wěn)態(tài)誤差;反之,若步長因子取值較小,算法在收斂時穩(wěn)態(tài)誤差也較小,但會降低算法的收斂速度[9-11]??梢?,傳統(tǒng)定步長LMS算法中步長因子的取值難以同時滿足算法對收斂速度與穩(wěn)態(tài)誤差兩個性能指標(biāo)的要求,因此許多文獻(xiàn)[12-15]提出了變步長LMS算法。通過建立誤差與步長因子之間的非線性函數(shù)關(guān)系進(jìn)行權(quán)值更新,該方法可兼顧收斂速度與穩(wěn)態(tài)誤差,有效彌補(bǔ)定步長LMS算法的不足。文獻(xiàn)[12]提出一種新的變步長自適應(yīng)濾波(SVSLMS)算法,可獲取較快的收斂速度和跟蹤速度,但由于在收斂階段步長的變化較快,從而造成穩(wěn)態(tài)誤差較大。針對文獻(xiàn)[12]算法的不足,文獻(xiàn)[13]提出一種新的變步長自適應(yīng)濾波算法,該算法給出了新的步長因子調(diào)整函數(shù),使得步長在誤差接近零處具有緩慢變化的特性,減小了穩(wěn)態(tài)誤差。文獻(xiàn)[14]提出的變步長LMS濾波算法克服了S函數(shù)變步長LMS算法穩(wěn)態(tài)階段步長變化較大的缺陷,該算法在初始階段或系統(tǒng)發(fā)生時變階段具有較大的步長,且穩(wěn)態(tài)時步長較小。文獻(xiàn)[15]提出一種新的基于箕舌線的變步長LMS算法,該算法對步長因子的計算較為簡單,同時算法濾波效果好。
通過對上述文獻(xiàn)進(jìn)行分析可以看出,改進(jìn)變步長LMS算法對步長因子的調(diào)整原則都是要求在初始階段或系統(tǒng)發(fā)生時變后,步長能夠取得較大值,使得算法具備較快的收斂速度或?qū)r變狀態(tài)下信號的快速跟蹤;而在收斂階段則要求步長變化較慢且取值較小,以減小穩(wěn)態(tài)誤差和避免穩(wěn)態(tài)失調(diào)。根據(jù)上述現(xiàn)有算法理論,為進(jìn)一步改善變步長LMS自適應(yīng)濾波算法的性能,本文基于S函數(shù)曲線特點(diǎn)提出一種新的改進(jìn)變步長LMS自適應(yīng)濾波算法,該算法能夠兼顧收斂速度和穩(wěn)態(tài)誤差,且具有一定的抗干擾能力。
自適應(yīng)濾波算法原理如圖1所示。其中,x(n)和y(n)為輸入信號和輸出信號,v(n)為噪聲信號,d(n)為期望輸出信號,e(n)為誤差估計信號。該算法最廣泛使用的算法形式為下降算法,實(shí)現(xiàn)方式主要有自適應(yīng)梯度算法和自適應(yīng)高斯-牛頓算法。
圖1 自適應(yīng)濾波算法原理圖Fig.1 Schematic of the adaptive filtering algorithm
LMS自適應(yīng)濾波算法屬于自適應(yīng)梯度算法,該算法根據(jù)權(quán)值的梯度估計值搜索出最優(yōu)權(quán)值,計算出濾波器輸出信號與期望信號之間的誤差,并以誤差方差最小作為判據(jù)修改權(quán)值系數(shù)。算法迭代算式為
e(n)=d(n)-xT(n)W(n)
(1)
W(n+1)=W(n)+ue(n)x(n)
(2)
式中:W(n)為濾波器在n時刻的權(quán)值向量;u為步長因子,其取值將影響算法的收斂性和穩(wěn)定性,使算法收斂的步長因子u的取值需滿足條件02 改進(jìn)LMS自適應(yīng)濾波算法
2.1 機(jī)理分析
根據(jù)變步長LMS自適應(yīng)濾波算法對步長因子調(diào)整的特點(diǎn),結(jié)合S函數(shù)(如式(3))及其曲線(如圖2)來構(gòu)造算法的步長因子模型。
(3)
圖2 改進(jìn)LMS算法步長因子表達(dá)式的構(gòu)造過程Fig.2 The construction process of the step-size factor for improved LMS algorithm
首先將S函數(shù)表達(dá)式分母的指數(shù)項乘以系數(shù)β(β>0),實(shí)現(xiàn)函數(shù)曲線水平方向上的第一次平移,再把平移后的曲線在豎直方向向下平移Δ=1/(1+β)個單位,然后對函數(shù)取絕對值得到變換后的曲線,如圖2所示,該曲線對應(yīng)的u(n)與e(n)的函數(shù)關(guān)系為
(4)
根據(jù)S函數(shù)變換后得到的曲線分析可知:當(dāng)誤差值較大時,對應(yīng)的步長因子可以取得較大值;而當(dāng)誤差值
減小到-5 為了提高算法的可控性,在表達(dá)式(4)中引入?yún)?shù)α,γ和m,得到步長因子u(n)與誤差e(n)之間的非線性函數(shù)關(guān)系式為 (5) 下面分析步長因子表達(dá)式中的4個參數(shù)對步長因子調(diào)整的影響。 1) 參數(shù)m的分析。 分別取α=0.1,β=10,γ=10,得到m為1,2,3時e(n)與u(n)的曲線,如圖3所示。 圖3 m變化時的步長因子曲線Fig.3 The step-size factor curve when m changes 可以看出,當(dāng)誤差值接近零時,m取值越大,步長因子變化就越趨于平緩;當(dāng)誤差值為0時,步長因子取值也變?yōu)?。而在LMS算法中,收斂階段步長變化的快慢對穩(wěn)態(tài)誤差和穩(wěn)態(tài)失調(diào)量有較大的影響,步長因子變化快容易引發(fā)振蕩現(xiàn)象。從圖中還可看出,m取值越大,步長因子在誤差接近0的過程中變化速度越慢,對穩(wěn)態(tài)誤差和穩(wěn)態(tài)失調(diào)量的調(diào)整就越好。但另一方面,若m取值過大,將出現(xiàn)誤差取值較大時步長因子就開始減小的現(xiàn)象,例如當(dāng)誤差值約為0.5時,m=3對應(yīng)的曲線已經(jīng)下降到步長因子幅值約為0.02處,而m=1對應(yīng)的步長因子幅值仍約為0.09。這樣,m取值過大,將會降低算法的收斂速度。此外,m取值過大將使得計算量增大,增加算法處理數(shù)據(jù)的時間。因此,本文算法對步長因子中參數(shù)m的取值為2,進(jìn)一步得到的u(n)與e(n)的函數(shù)關(guān)系為 (6) 2) 參數(shù)α的分析。 分別取β=10,γ=10,m=2,得到α為0.1,0.3,0.5時e(n)與u(n)的曲線,如圖4所示??梢钥闯?,參數(shù)α的取值對u(n)幅值的影響較大。α取值越大,u(n)的幅值越大,算法的收斂速度就越快。其中,u(n)的 最大極限值為u(n)max=a[1-1/(1+β)],這里也可以看出,當(dāng)α取定值,β越大,對應(yīng)的u(n)max越大。但α的取值不能無限大,需滿足LMS自適應(yīng)算法收斂對u(n)的取值要求。 圖4 α變化時的步長因子曲線Fig.4 The step-size factor curve when α changes 3) 參數(shù)β的分析。 分別取α=0.5,γ=10,m=2,得到β為1,5,10,15時e(n)與u(n)的曲線,如圖5所示,相應(yīng)的u(n)最大值u(n)max如表1所示。根據(jù)圖5可以看出,β取值越大,u(n)在誤差值接近0附近的變化趨勢越平緩。又由表1可知,當(dāng)β≥5時,隨著β取值逐漸增大,u(n)max受到的影響逐漸減小。但若β取值較大,會出現(xiàn)在誤差值還較大時u(n)就開始減小的現(xiàn)象,將會降低算法的收斂速度。 圖5 β變化時的步長因子曲線Fig.5 The step-size factor curve when β changes 表1 不同β取值對應(yīng)的u(n)max 4) 參數(shù)γ的分析。 分別取α=0.5,β=10,m=2,得到γ為5,10,15時e(n)與u(n)的曲線,如圖6所示??梢钥闯?,γ=5時對應(yīng)的曲線在誤差取值逐漸接近0時,u(n)的變化速度最慢,而其對應(yīng)的曲線在誤差取值約為1.3時,幅值就開始減小,而另外兩條曲線在誤差分別為0.6和0.8時曲線幅值才出現(xiàn)減小的趨勢??梢姡萌≈翟叫?,在誤差取值逐漸接近0時,u(n)變化速度越慢,有利于減小算法的穩(wěn)態(tài)誤差;但γ取值較小,不能滿足在誤差較大時u(n)也要求取得較大值的調(diào)整原則。 圖6 γ變化時的步長因子曲線Fig.6 The step-size factor curve when γ changes 通過上述各參數(shù)變化對步長因子影響的曲線及分析得出,固定參數(shù)m=2后,參數(shù)α變化主要影響u(n)的幅值調(diào)整,可用于控制算法的收斂速度,且可控性較好;參數(shù)γ的變化主要影響u(n)在接近穩(wěn)態(tài)時的幅值變化速度,用于調(diào)整算法的穩(wěn)態(tài)誤差。參數(shù)β取值可同時影響收斂速度和穩(wěn)態(tài)誤差,但當(dāng)β取較大值時,參數(shù)β對u(n)幅值的影響較小,因此其作用主要是穩(wěn)態(tài)誤差的微調(diào)。 在實(shí)際中,外界對系統(tǒng)的干擾具有隨機(jī)性和任意性的特點(diǎn)。因此,為了增強(qiáng)算法的抗干擾能力,在步長因子模型中引入誤差向量自相關(guān)值e(n)e(n-1)來調(diào)節(jié)步長因子取值。經(jīng)過整理,最后得到本文提出的基于S函數(shù)的改進(jìn)變步長LMS自適應(yīng)濾波算法的流程如下。 e(n)=d(n)-xT(n)W(n) (7) (8) W(n+1)=W(n)+u(n)e(n)x(n)。 (9) 本文提出的算法通過在步長因子模型中引入誤差向量自相關(guān)值來增強(qiáng)算法的抗干擾能力,下面分析該量的引入對外界擾動的抑制機(jī)理。 由式(7)有 d(n)=xT(n)W(n)+e(n) (10) 根據(jù)自適應(yīng)原理有 d(n)=xT(n)W*(n)+v(n) (11) 式中:噪聲信號v(n)與輸入信號x(n)不相關(guān);W*(n)為自適應(yīng)濾波器的最優(yōu)權(quán)系數(shù)。假設(shè)權(quán)系數(shù)偏差為ΔW(n),則 ΔW(n)=W(n)-W*(n) (12) 由式(7)~式(12)有 e(n)e(n-1)=v(n)v(n-1)-ΔWT(n)x(n)v(n-1)- v(n)ΔWT(n-1)x(n-1)+ ΔWT(n)x(n)xT(n-1)ΔW(n-1) (13) 由于v(n)均值為零,且與x(n)不相關(guān),故有 E[e(n)e(n-1)]=E[ΔWT(n)x(n)xT(n-1)ΔW(n-1)] (14) E[e2(n)]=E[v2(n)]+E[ΔWT(n)x(n)xT(n)ΔW(n)] (15) 通過式(14)與式(15)的對比容易看出,利用式(8)調(diào)整LMS算法的步長,在強(qiáng)干擾信號下,算法性能受干擾信號v(n)的影響較小,并且在收斂階段權(quán)系數(shù)偏差ΔW(n)較小??梢?,誤差向量的引入可增強(qiáng)算法的抗干擾能力。 根據(jù)本文算法,通過仿真得出步長因子模型中參數(shù)α,β和γ取不同值對濾波性能的影響學(xué)習(xí)曲線,如圖7~圖9所示。仿真條件:輸入信號為以+1,-1等概率交替的信號,并疊加與輸入信號不相關(guān)、均值為0、方差為0.01的高斯白噪聲信號,濾波器階數(shù)為2,采樣點(diǎn)數(shù)為1000,分別做400次獨(dú)立仿真。 圖7 α變化時的算法收斂曲線Fig.7 Convergence curve of the algorithm when α changes 圖8 β變化時的算法收斂曲線Fig.8 Convergence curve of the algorithm when β changes 圖9 γ變化時的算法收斂曲線Fig.9 Convergence curve of the algorithm when γ changes 圖7的仿真結(jié)果表明,α=0.5時算法的收斂速度最快,即在步長因子所含參數(shù)中,當(dāng)β,γ和m取固定值時,并不是α越大算法性能越優(yōu)。圖8中,β為5對應(yīng)算法的收斂速度較快,但收斂后的穩(wěn)態(tài)誤差較大;這是因為誤差值較大時,β分別為10,15對應(yīng)的步長因子幅值下降速度比β為5時對應(yīng)幅值下降速度快,并且在穩(wěn)態(tài)時β分別為10,15的曲線斜率較小,步長因子幅值變化速度較慢。由圖9可以看出,γ取值較大時對應(yīng)的算法收斂速度快,且穩(wěn)態(tài)誤差較小,但根據(jù)上節(jié)γ對步長因子的影響分析可知,γ取值不宜過大。 綜上,本文提出的基于S函數(shù)的改進(jìn)變步長LMS算法中步長因子所含參數(shù)值的求取可通過多次實(shí)驗來獲得,以實(shí)現(xiàn)算法性能最優(yōu)。 采用上文參數(shù)對濾波性能的影響分析中的仿真條件,并假設(shè)在迭代次數(shù)n=500時系統(tǒng)發(fā)生時變,權(quán)系數(shù)變?yōu)閣=[0.4,0.2],得到SVSLMS算法、文獻(xiàn)[15]算法和本文算法對應(yīng)的學(xué)習(xí)曲線如圖10所示。 圖10 本文算法與其他算法的比較Fig.10 Comparison between the proposed algorithm and other algorithms 由圖10a可以看出,在收斂速度相同的情況下,本文算法穩(wěn)態(tài)誤差更小。圖10b中,在相同誤差條件下,本文算法具有較快的收斂速度。此外,在系統(tǒng)發(fā)生時變后,本文算法能夠?qū)π盘栠M(jìn)行快速跟蹤,且收斂速度最快,說明算法具備一定的抗干擾能力。綜上,本文算法與SVSLMS算法和文獻(xiàn)[15]算法相比性能更優(yōu)。 本文對現(xiàn)有變步長LMS自適應(yīng)濾波算法進(jìn)行研究,根據(jù)算法中步長因子的調(diào)整原則以及S函數(shù)曲線的特點(diǎn),提出一種基于S函數(shù)的改進(jìn)變步長LMS自適應(yīng)算法,并分析了步長因子中各參數(shù)的取值對算法性能的影 響。與現(xiàn)有算法進(jìn)行的仿真對比表明,本文所提改進(jìn)算法在滿足快速收斂的同時,收斂后的穩(wěn)態(tài)誤差也較小,且抗干擾能力較強(qiáng),改善了現(xiàn)有算法的性能。2.2 參數(shù)對u(n)的影響分析
2.3 算法抗干擾性分析
2.4 參數(shù)對濾波性能的影響分析
3 仿真對比與分析
4 結(jié)束語