李雅林,譚立輝
(廣東工業(yè)大學(xué)應(yīng)用數(shù)學(xué)學(xué)院,廣東廣州510520)
最小均方算法(Least Mean Square,LMS)是一種非常簡便、運(yùn)用極為普遍的自適應(yīng)算法,最早是被Widrow及Hoff于1960年得到的。該算法的最大優(yōu)點(diǎn)在于剛開始不用知道算法的期望響應(yīng)及采樣信號的特性?!扒耙粫r刻”的權(quán)矢量加上一個負(fù)的均方誤差梯度的倍數(shù)等于“目前時刻”的權(quán)矢量。該算法的長處在于原理簡單,且擁有良好的穩(wěn)定性能、簡單的結(jié)構(gòu)及小的計算量。因此,它在通信、聲納、雷達(dá)自適應(yīng)均衡及系統(tǒng)辨識等領(lǐng)域[1-3]應(yīng)用非常廣泛。LMS算法主要是在最陡下降法這一思想上產(chǎn)生的,也即順著權(quán)矢量梯度的估值負(fù)方位搜尋,以此得到最好的權(quán)值向量。具體流程如下:設(shè)定時間n處系統(tǒng)的輸入信號為X(n)=[x(n),x(n-1),…,x(n-m)]T,系統(tǒng)的權(quán)值矢量為W(n)=[w0(n),w1(n),…,wm(n)]T,系統(tǒng)的輸出信號為y(n)=WT(n)X(n),期望的響應(yīng)為d(n),誤差信號為e(n)=d(n)-WT(n)X(n)。LMS算法的權(quán)值向量更新公式為
其中,μ為步長因子。要使得LMS算法可以收斂到某一個數(shù)值,就需要步長參數(shù)因子μ滿足限制條件0<μ<1/λmax(其中,λmax為輸入信號的相關(guān)矩陣的最大特征值)。在具體的操作方案中,采樣信號無法幸免地會受到滋擾噪音的影響,在采用LMS算法進(jìn)行濾波時,將產(chǎn)生穩(wěn)態(tài)誤差。參數(shù)因子μ選擇的大小不一樣,就可以使得LMS算法收斂的速率、穩(wěn)態(tài)誤差及時變系統(tǒng)的跟蹤速率都會有所改變。一般來說,選擇的參數(shù)因子μ較大時,收斂速率會相對較快,但穩(wěn)態(tài)誤差波動會非常大。反之,選擇的參數(shù)因子較小時,穩(wěn)態(tài)誤差波動幅度會比較小,但是會有比較慢的收斂速率。由此可以看出,算法的收斂速率和穩(wěn)態(tài)誤差是LMS算法中存在的主要矛盾[4-6]。另一方面,LMS算法收斂速率比較慢,嚴(yán)重影響了系統(tǒng)的機(jī)能。為了克服這些難題,人們在此算法的基礎(chǔ)上嘗試用了各種各樣的改進(jìn)算法,近年來,這些改進(jìn)算法中用得最多的就是各種各樣的變步長LMS算法[7-9],雖然這些變步長算法的優(yōu)化方式各有不同,但是變步長LMS算法整體上都有如下方式的優(yōu)化準(zhǔn)則:也即當(dāng)未知系統(tǒng)參數(shù)因子產(chǎn)生改變時或者在收斂剛開始的時候,應(yīng)該選擇較大的參數(shù)因子,這樣可以獲得快的收斂速率及跟蹤速率。當(dāng)變步長LMS算法將要收斂的時候,自適應(yīng)濾波器的權(quán)矢量也會隨之靠近最優(yōu)值,此時應(yīng)該選擇較小的參數(shù)因子,這樣就可以減小算法的穩(wěn)態(tài)誤差。眾所周知,NLMS算法[10]作為非常經(jīng)典的變步長LMS算法就是其中的一種改進(jìn)方案,它是用輸入矢量的2范數(shù)對步長因子的歸一化處理得到的,可以看作是一種特殊的變步長LMS算法,由于在NLMS算法里仍然有著固定不變的全局步長因子,算法的收斂速率還是受到固定步長的影響,收斂速率較慢,影響著系統(tǒng)的性能。所以,覃景繁等[11]通過理論推導(dǎo)與Matlab仿真實(shí)驗得到了另外一種形式的變步長LMS算法,此改進(jìn)算法是在Sigmoid函數(shù)基礎(chǔ)之上通過一定的變形得到的。最近,文獻(xiàn)[12]結(jié)合文獻(xiàn)[10]和文獻(xiàn)[11]這兩種變步長算法的思想,得到了另外一種新形式的變步長算法(SVSNLMS),通過仿真分析可以發(fā)現(xiàn)這種算法不僅可以有低的穩(wěn)態(tài)誤差,而且收斂速率也相對加快了許多。也即該改進(jìn)算法不但吸取了SVSLMS收斂速率快的優(yōu)點(diǎn),而且也吸取了NLMS穩(wěn)定性好的長處。本文受此改進(jìn)措施的啟示,得到了另外一種新的改進(jìn)變步長LMS算法(VSNLMS)。
通過分析NLMS算法的構(gòu)造,可以認(rèn)為其是一種特殊化的LMS算法。NLMS算法的基本原理可以看作是用抽頭輸入信號矢量的功率來對步長進(jìn)行歸一化處理,這樣可以加速收斂和改善其穩(wěn)定性能。同時,由于在算法迭代更新時去除采樣信號的估計功率值,因此也可以有效地去除由于采樣信號太大而引起的不相關(guān)滋擾噪音的增加。NLMS算法權(quán)系數(shù)迭代公式為
其中,μ(0<μ<1)可以看作是決定無序的固定的收斂因子,對于一個小的正常數(shù)γ(0<γ≤1),加上它是為了防止X(n)TX(n)小而導(dǎo)致步長值過大。NLMS算法因為其本身構(gòu)造非常簡便,輸入幅度比較大和穩(wěn)態(tài)誤差相對比較低而被普遍應(yīng)用[13-15]。另一方面,NLMS算法也主要用來解決算法對梯度噪音的敏感性如何減小。然而,在NLMS算法中,由于其步長因子仍是唯一不變的,所以該算法的穩(wěn)態(tài)誤差和收斂速率之間的矛盾依舊不能很好地得到折衷。
為了使算法盡可能快速地取到收斂值,許多學(xué)者做了大量有關(guān)模型的仿真實(shí)驗。通過觀察Sigmoid函數(shù)的圖像,可以知道該函數(shù)有很好的收斂性能。因此,在1996年覃景繁等[11]基于這一模型,大膽提出了另外一種形式的變步長LMS算法(SVSLMS),通過仿真實(shí)驗證實(shí),該算法確實(shí)比固定步長的NLMS算法在收斂速率方面得到了極大地提高。該算法與固定步長算法的最大不一樣的地方在于其步長因子是時刻改變的,這樣就保證了可以更好地調(diào)整參數(shù)因子,使算法達(dá)到最好的狀態(tài)。該改進(jìn)算法的步長因子μ是誤差 e(n)的Sigmoid函數(shù),公式為
根據(jù)式(3),可以知道當(dāng)誤差減小時,步長因子也隨之逐漸減小。當(dāng)算法剛開始收斂的時候,算法誤差會比較大,所以迭代步長因子也會隨之比較大,這樣可以使得樣本快速地達(dá)到收斂狀態(tài)。當(dāng)算法逐步到達(dá)收斂的狀態(tài)時,誤差隨之不斷減小,這也促使步長因子不斷減小,此時,算法的穩(wěn)態(tài)誤差也相應(yīng)地減小。通過仿真實(shí)驗,分析并比較了參數(shù)α和β對步長因子的影響,可以知道函數(shù)的形態(tài)被參數(shù)α(α>0)所調(diào)控,且α控制著曲線變化的快慢,影響著算法的穩(wěn)定誤差,算法的收斂速率和函數(shù)的取值范圍被參數(shù)β所調(diào)控,由于0<μ<1/λmax是固定步長LMS算法的收斂條件,所以可以得到參數(shù)β的最大值應(yīng)該滿足βmax=2/λmax,當(dāng)參數(shù)β在上面范圍內(nèi)取值時,就可以使SVSLMS算法收斂。由此可以發(fā)現(xiàn),一方面,NLMS算法雖然可以通過輸入功率因素的歸一化處理步驟,進(jìn)而實(shí)現(xiàn)收斂速率與穩(wěn)態(tài)誤差的平衡,但卻把步長因子固定為僅由輸入功率唯一決定的固定量,并不能很好地改善算法的性能。另一方面,我們知道SVSLMS算法雖然可以起到加快算法的收斂速率的功效,但收斂速率也只隨著誤差的改變而改變,并不能很好地均衡收斂速率與穩(wěn)定性能兩者間的矛盾。鑒于此,楊坡等[12]得到了改進(jìn)的NLMS(SVSNLMS)算法,通過巧妙地結(jié)合NLMS算法和SVSLMS算法,得到其步長因子的表達(dá)形式為
此算法不但包括了NLMS算法穩(wěn)定誤差較小的特點(diǎn),而且也吸取了SVSLMS算法快速收斂的特點(diǎn)。
通過對式(4)的分析可以知道,由于Sigmoid函數(shù)本身的構(gòu)造過于繁瑣,并且在誤差信號e(n)趨向于0的時候,其步長幅度波動過大,并沒有慢慢改變的特點(diǎn),這就會促使SVSNLMS算法仍然有較大的步長改變在自適應(yīng)穩(wěn)態(tài)階段,導(dǎo)致算法的不穩(wěn)定。這就需要我們在此基礎(chǔ)上尋求一種能夠消除這一缺點(diǎn)的改進(jìn)措施。因此,本文在此算法的基礎(chǔ)上給出了滿足步長調(diào)整準(zhǔn)則的另外一種形式的算法(VSNLMS),其步長因子的表達(dá)形式為
權(quán)系數(shù)迭代過程為
其中,參數(shù)β應(yīng)該滿足β<1/λmax才能保證此算法收斂,然而,并不是在β<1/λmax范圍內(nèi),參數(shù)α和參數(shù)β取任意值時都能夠使算法收斂,它們的最優(yōu)值也是需要大量的仿真實(shí)驗擇優(yōu)選取的。通過仿真實(shí)驗驗證,在算法的收斂速率方面,新算法(VSNLMS)明顯比改進(jìn)之前的SVSNLMS算法快了許多,并且計算量也相應(yīng)地隨之減少。
通過分析比較NLMS算法、SVSNLMS算法及其改進(jìn)算法(VSNLMS)在信號自適應(yīng)處理中的運(yùn)用,可以了解改進(jìn)算法的性能。仿真實(shí)驗中取信號為余弦信號,幅度為1,噪聲為20 db的高斯白噪聲,采樣信號分別被SVSNLMS算法及VSNLMS算法進(jìn)行濾波處理,期望信號是沒有加噪聲的余弦信號,幅度為4。對于在收斂速率方面的差異,圖1給出了VSNLMS算法、NLMS算法和SVSNLMS算法三種不同算法的曲線比較圖。其中,NLMS算法的收斂曲線圖是最上面的那一條,此時選取的步長因子是μ=0.1,SVSNLMS算法的收斂曲線為中間的那條曲線,選取的最優(yōu)參數(shù)分別為α=10,β=0.3(本文算法最佳值),VSNLMS算法的收斂曲線圖是最下面的那條,選取的最優(yōu)參數(shù)分別為α=20,β=0.5。通過分析該比較圖,可以知道在三種算法的穩(wěn)態(tài)誤差大概一致的情況下,本文的算法(VSNLMS)在收斂速率方面明顯優(yōu)于NLMS算法和SVSNLMS算法。
圖1 三種不同算法的曲線比較圖
本文首先介紹了固定步長的LMS算法,接著又介紹了變步長的NLMS算法和SVSNLMS算法,最后又詳細(xì)分析了本文新的改進(jìn)算法。通過一系列的描述與分析比較,可以知道衡量自適應(yīng)濾波算法性能好壞的三個最明顯的參數(shù)指標(biāo)分別是:收斂速率、穩(wěn)態(tài)誤差以及計算量的大小。三者的穩(wěn)態(tài)誤差基本一致,沒有太大區(qū)別。但是改進(jìn)的VSNLMS算法的優(yōu)越性在于其收斂速率明顯比SVSNLMS算法和NLMS算法加快了許多,除此之外,計算量也在很大程度上下降了許多。此改進(jìn)算法的性能得到了一定的提高,這就使得VSNLMS算法的應(yīng)用更加廣泛。