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