唐巧玲 何夢雨
(內(nèi)江師范學院,四川 內(nèi)江 641100)
濾波就是從有干擾的信號中得到有用的信號。濾波理論則是對其過程進行了系統(tǒng)的檢測,利用某種統(tǒng)計方法得出的一種理論估計的方法。傳統(tǒng)的濾波器的頻率是固定的,屬于經(jīng)典濾波器,隨著社會快速發(fā)展,經(jīng)典的傳統(tǒng)濾波已不適用近代的發(fā)展。因而根據(jù)輸入信號可以按照系統(tǒng)的需求來調(diào)整參數(shù)、改變頻率的自適應濾波器得到了大眾的肯定,憑借著其計算簡單、收斂速度快等特點,適用范圍也變得更為寬廣,從而能從多方面的滿足人們需求,進而得以發(fā)展。如今自適應算法也在根據(jù)人們的需求逐步優(yōu)化,盡可能的達到最優(yōu)狀態(tài)。
自適應濾波器原理:
自適應濾波器是根據(jù)輸入信號自動調(diào)整系統(tǒng)性能,并進行數(shù)字信號處理的數(shù)字濾波器。在設計階段,需明確其結(jié)構(gòu)和系數(shù)的更新自適應算法[1];在應用階段,則需對每一個采樣點除了完成濾波外還需更新濾波器系數(shù)以用于下一個樣點。因此自適應濾波器的系數(shù)不是一成不變的,其它濾波器與自適應濾波器在這一點上有著最根本的區(qū)別。自適應濾波器的原理圖如圖1所示。
圖1 自適應濾波器原理圖
在自適應濾波器中濾波器參數(shù)w(n),是隨著期望響應d(n)、輸入信號x(n)的變化而變化的。但是為了簡便理論分析,本文假設w(n)不是隨機變化的。因此,均方誤差曲面可表示為:
J(n)=E[e2(n)]=E[d2(n)]-2rxdT(n)+wT(n)Rx(n)w(n)。
若均方誤差要取得最小值,則濾波器的系數(shù)矢量w(n)需滿足條件為:RX(n)w(n)=rxd(n)
由此可解得濾波器的最優(yōu)系數(shù):wopt(n)=Rx-1(n)rxd(n)
上述濾波器最優(yōu)系數(shù)的求解方法是遞推算法,即最速下降法。最速下降法是根據(jù)函數(shù)曲面的一點,沿著曲面方向向下搜索最低點的過程,曲面的負梯度方向則是最陡梯度的方向。首先選取曲面的一點為初始點,此點對應于初始系數(shù)矢量w(0),再從該點的負方向梯度搜索到第一點,再到第二點。以此類推,當點數(shù)足夠大時可將其收斂到曲面最低點,即wopt。此過程中遞推與時間無關(guān)系,但是為了使自適應濾波器便于實現(xiàn),本文視這個過程和時間同步。根據(jù)以上概念可得系數(shù)矢量滿足:
其中:
引入變量c(n)可以得到:w(n)-wopt=c(n);c(n+1)=(I-uRx)c(n)
由此可知,若Rx為對角陣,濾波器中各系數(shù)分量間不會出現(xiàn)耦合。即Rx=Q^QH;其中^=diag{λ1,λ1···λm},λk≥0,k=1,2···,m;Q=[q1q2···qm],QQH=I;QH=Q-1。
設一中間變量v(n),得到系數(shù)的迭代公式為:
v(n)=QHc(n)=QH(w(n)-wopt);v(n+1)=(I-u^)v(n)。
在|1-uλk|<1的條件下,從0開始遞推,當v(n)趨近于0時,w(n)趨近于wopt。如果步長滿足0
τ≈λmax/2αλmin。
由上式可知,如果輸入信號的自相關(guān)矩陣的特征值分布十分接近,則收斂速度較快。反之則收斂速度較慢。通過推算,可知均方誤差的時間函數(shù)為:
當J(n)趨近于Jmin時,輸入信號自相關(guān)矩陣特征值的分布對于衰減速度和均方誤差的影響都是相同的。而這是由于均方誤差和權(quán)系數(shù)的每一項時間常數(shù)他們的數(shù)值關(guān)系為1/2。
盡管利用最速下降法可以達到最佳濾波,但是在迭代運行過程中需要預知其自相關(guān)矩陣和互相關(guān)矢量。在實際情況下這是難以達到的,因此為了構(gòu)造真正的自適應算法,需要對其進行估量。最傳統(tǒng)的方法就是利用自相關(guān)矩陣和互相關(guān)矢量的瞬時值來代替平均值,即:
梯度的估計值為:
根據(jù)最速下降法系數(shù)的遞推公式可得:
w(n+1)=w(n)+ux(n)e(n)
LMS算法的實現(xiàn)主要分為三步,第一要確定系統(tǒng)參數(shù),全局的步長參數(shù)以及濾波器的抽頭數(shù),即濾波器的階數(shù)。然后對濾波器的初始值進行初始化,最后將運行過程中的數(shù)據(jù)傳入自適應算法,進行數(shù)據(jù)處理后得到新的濾波器參數(shù)。
輸出信號的表達式如下:y(n)=wT(n)x(n)
誤差估值為:e(n)=d(n)-y(n)
更新的濾波器參數(shù)為:w(n+1)=w(n)+ux(n)e(n)
為了保證其收斂性和穩(wěn)定性,在LMS算法中,自適應步長因子u的取值必須滿足條件:0
從上述公式可得出,LMS算法在結(jié)構(gòu)方面簡單,計算量小且相對穩(wěn)定。但是這種固定步長的LMS算法在收斂速度和穩(wěn)態(tài)誤差之間的要求是相互矛盾的。為了解決這一矛盾,出現(xiàn)了許多變步長的LMS算法[2]。
NLMS算法是對傳統(tǒng)的LMS算法的改進,是利用抽頭輸入信號矢量的功率來對步長進行歸一化。在NLMS算法中,可以根據(jù)輸入信號的變化來調(diào)整步長因子,從而保證收斂過程的穩(wěn)定性和時間。由于算法的迭代更新時去除了采樣信號的估計功率值,從而也可以除掉一些由于采樣信號的問題帶來的干擾[5]。
在NLMS中迭代的濾波器參數(shù)為:w(n+1)=w(n)+u(n)x(n)e(n)。
由此可發(fā)現(xiàn)NLMS與LMS最大的不同在于步長因子的變化。在LMS算法中,步長是一個常數(shù)用u表示,而在NLMS算法中,步長因子是一個隨時間變化的函數(shù)u(n)。
為了避免因估計功率過小而引起步長因子過大,因此對步長進行了一定的修正。
α為常數(shù)。并且為了保證收斂的效果,必須滿足:03.3 VSLMS算法
VSLMS算法大致與上述NLMS算法相同,只是濾波器的權(quán)系數(shù)更新做了細微的調(diào)整,即改進了步長因子的算法。在VSLMS算法中,濾波器權(quán)系數(shù)的更新方式為:
w(n+1)=w(n)+2u(n)x(n)e(n)
從上述公式上看與NLMS算法并無較大的區(qū)別,只是系數(shù)的改變。但是其中步長因子的計算與NLMS算法有較大的區(qū)別。在NLMS算法中,步長因子與輸入信號有較大的關(guān)系,與誤差因子沒有關(guān)系。然而在VSLMS算法中,步長因子的更新卻和誤差因子密切相關(guān)。VSLMS算法分兩類,其一是u(n)只與e(n)有關(guān),而與u(n-1)無關(guān),即:u(n)=β[1-exp(-α|e(n)|2)]
其中,β為步長因子的初始值,如果步長的初始值太大,可能會導致算法不收斂,如果太小,又會導致算法的收斂速度太慢,所以β的取值必須適當[8]。
其二是u(n)不僅與e(n-1)有關(guān),而且還與u(n-1)有關(guān),即:
u(n+1)=α’u(n)+β’|p(n)2||e(n)2|;p(n)=γp(n-1)+(1-γ)e(n)x(n)。
由上述兩類VSLMS算法可知,算法一具有良好的穩(wěn)定性,而算法二具有較好的收斂速度[8]。在本文則采用算法一與其他算法進行仿真性能對比,以下皆稱為VSLMS算法。
本文采用的是二階信號,通過MATLAB平臺對其進行仿真,對上述幾種LMS算法從收斂速度和穩(wěn)態(tài)誤差以及輸出波形等方面來對二階信號的線性預測進行比較分析。從而得出哪種LMS算法對于二階信號的預測更加準確。
收斂速度與穩(wěn)態(tài)誤差是自適應濾波性能中重要的一部分,本文將從不同步長來比較上述三種算法在這兩方面的差異。如圖所示:
4.1.1 傳統(tǒng)的LMS算法
圖2 步長0.1
圖3 步長0.3
圖4 步長0.5
4.1.2 NLMS算法
圖5 步長0.1
圖6 步長0.3
圖7 步長0.5
4.1.3 VSLMS算法:
圖8 初始步長0.1
圖9 初始步長0.3
圖10 初始步長0.5
從上圖對比可看出,上述三種算法的收斂速度都隨著步長因子的增大而加快。NLMS算法中的迭代次數(shù)明顯比傳統(tǒng)的LMS算法減少很多,但是系統(tǒng)的抗干擾性能降低,這可能會導致系統(tǒng)誤差變大。而對于VSLMS算法來說,收斂速度介于傳統(tǒng)的LMS算法和NLMS算法之間,但VSLMS算法的抗干擾能力比NLMS強,系統(tǒng)相對更加穩(wěn)定。因此,從收斂速度上看,VSLMS的綜合性能比傳統(tǒng)的LMS算法和NLMS算法更能滿足最佳濾波的條件。
傳統(tǒng)的LMS算法如圖所示:
圖11 步長0.1
圖12 步長0.3
圖13 步長0.5
傳統(tǒng)的LMS算法得到穩(wěn)定輸出的時間相比其他兩個算法相對較長,而NLMS算法最佳,VSLMS算法次之。從穩(wěn)定輸出后的圖形與預期圖像對比而言,NLMS算法的輸出圖形和預期圖形相對而言更為貼合,但總體而言三者相差不大。綜上所述,從收斂速度和誤差上來說,VSLMS算法更能符合最佳濾波的條件。但是從輸出信號圖形來看,最佳的為NLMS算法,但三者除了在迭代次數(shù)上有些許差異,在圖形上差距并不是特別明顯。所以綜合來看,VSLMS更能符合最佳濾波的條件。
本文使用改變步長因子的方法來改變自適應濾波中收斂速度和穩(wěn)態(tài)誤差之間的關(guān)系,有效的解決了在自適應濾波算法中收斂速度與穩(wěn)態(tài)誤差的矛盾,在滿足收斂速度的情況下,穩(wěn)態(tài)誤差也得到了相對的穩(wěn)定。通過對三種LMS算法的收斂速度、穩(wěn)態(tài)誤差和輸出波形綜合分析對比,NLMS算法的對于波形的還原更加優(yōu)良,但三者總體差距并不明顯;對于迭代次數(shù)與誤差綜合來看VSLMS算法明顯優(yōu)于其他兩者。因此,綜合可得VSLMS算法更能得到最優(yōu)濾波,是最佳濾波算法。