自適應(yīng)濾波算法理解與應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
什么是自適應(yīng)濾波器
自適應(yīng)濾波器是能夠根據(jù)輸入信號(hào)自動(dòng)調(diào)整性能進(jìn)行數(shù)字信號(hào)處理的數(shù)字濾波器。作為對(duì)比,非自適應(yīng)濾波器有靜態(tài)的濾波器系數(shù),這些靜態(tài)系數(shù)一起組成傳遞函數(shù)。
對(duì)于一些應(yīng)用來說,由于事先并不知道所需要進(jìn)行操作的參數(shù),例如一些噪聲信號(hào)的特性,所以要求使用自適應(yīng)的系數(shù)進(jìn)行處理。在這種情況下,通常使用自適應(yīng)濾波器,自適應(yīng)濾波器使用反饋來調(diào)整濾波器系數(shù)以及頻率響應(yīng)。
總的來說,自適應(yīng)的過程涉及到將代價(jià)函數(shù)用于確定如何更改濾波器系數(shù)從而減小下一次迭代過程成本的算法。價(jià)值函數(shù)是濾波器最佳性能的判斷準(zhǔn)則,比如減小輸入信號(hào)中的噪聲成分的能力。
隨著數(shù)字信號(hào)處理器性能的增強(qiáng),自適應(yīng)濾波器的應(yīng)用越來越常見,時(shí)至今日它們已經(jīng)廣泛地用于手機(jī)以及其它通信設(shè)備、數(shù)碼錄像機(jī)和數(shù)碼照相機(jī)以及醫(yī)療監(jiān)測設(shè)備中。
下面圖示的框圖是最小均方濾波器(LMS)和遞歸最小平方(en:Recursive least squares filter,RLS,即我們平時(shí)說的最小二乘法)這些特殊自適應(yīng)濾波器實(shí)現(xiàn)的基礎(chǔ)??驁D的理論基礎(chǔ)是可變?yōu)V波器能夠得到所要信號(hào)的估計(jì)。
自適應(yīng)濾波器有4種基本應(yīng)用類型:
1) 系統(tǒng)辨識(shí):這時(shí)參考信號(hào)就是未知系統(tǒng)的輸出,當(dāng)誤差最小時(shí),此時(shí)自適應(yīng)濾波器就與未知系統(tǒng)具有相近的特性,自適應(yīng)濾波器用來提供一個(gè)在某種意義上能夠最好擬合未知裝置的線性模型
2) 逆模型:在這類應(yīng)用中,自適應(yīng)濾波器的作用是提供一個(gè)逆模型,該模型可在某種意義上最好擬合未知噪聲裝置。理想地,在線性系統(tǒng)的情況下,該逆模型具有等于未知裝置轉(zhuǎn)移函數(shù)倒數(shù)的轉(zhuǎn)移函數(shù),使得二者的組合構(gòu)成一個(gè)理想的傳輸媒介。該系統(tǒng)輸入的延遲構(gòu)成自適應(yīng)濾波器的期望響應(yīng)。在某些應(yīng)用中,該系統(tǒng)輸入不加延遲地用做期望響應(yīng)。
3) 預(yù)測:在這類應(yīng)用中,自適應(yīng)濾波器的作用是對(duì)隨機(jī)信號(hào)的當(dāng)前值提供某種意義上的一個(gè)最好預(yù)測。于是,信號(hào)的當(dāng)前值用作自適應(yīng)濾波器的期望響應(yīng)。信號(hào)的過去值加到濾波器的輸入端。取決于感興趣的應(yīng)用,自適應(yīng)濾波器的輸出或估計(jì)誤差均可作為系統(tǒng)的輸出。在第一種情況下,系統(tǒng)作為一個(gè)預(yù)測器;而在后一種情況下,系統(tǒng)作為預(yù)測誤差濾波器。
4) 干擾消除:在一類應(yīng)用中,自適應(yīng)濾波器以某種意義上的最優(yōu)化方式消除包含在基本信號(hào)中的未知干擾?;拘盘?hào)用作自適應(yīng)濾波器的期望響應(yīng),參考信號(hào)用作濾波器的輸入。參考信號(hào)來自定位的某一傳感器或一組傳感器,并以承載新息的信號(hào)是微弱的或基本不可預(yù)測的方式,供給基本信號(hào)上。
這也就是說,得到期望輸出往往不是引入自適應(yīng)濾波器的目的,引入它的目的是得到未知系統(tǒng)模型、得到未知信道的傳遞函數(shù)的倒數(shù)、得到未來信號(hào)或誤差和得到消除干擾的原信號(hào)。
自適應(yīng)濾波通俗點(diǎn)講就是混合信號(hào)向期望信號(hào)的逼近。在逼近的過程中,根據(jù)觀測信號(hào)與真實(shí)(期望)信號(hào)的均放誤差(MSE)為量化指標(biāo),按照一定規(guī)則進(jìn)行迭代(迭代規(guī)則自己可以設(shè)定),直到算法收斂(收斂條件有很多,比如達(dá)到預(yù)先設(shè)定的迭代次數(shù)、或達(dá)到允許的誤差等)?,F(xiàn)有的常見自適應(yīng)算法有RLS,LMS,NLMS,往往都是按照梯度下降法或牛頓法進(jìn)行迭代。
算法背景
經(jīng)典的濾波算法包括維納濾波,卡爾曼濾波,這些濾波算法都需要對(duì)輸入信號(hào)的相關(guān)系數(shù),噪聲功率等參數(shù)進(jìn)行估計(jì),而實(shí)際中很難實(shí)現(xiàn)這些參數(shù)的準(zhǔn)確估計(jì),而這些參數(shù)的準(zhǔn)確估計(jì)直接影響到濾波器的濾波效果。另一方面,這兩類濾波器一般設(shè)計(jì)完成,參數(shù)便不可改變,實(shí)際應(yīng)用中,希望濾波器的參數(shù)能夠隨著輸入信號(hào)的變化而改變,以取得較好的實(shí)時(shí)性處理效果。為了彌補(bǔ)傳統(tǒng)濾波算法的不足,滿足信號(hào)處理的要求,又發(fā)展了自適應(yīng)濾波。
算法基本原理
自適應(yīng)濾波與維納濾波,卡爾曼濾波最大的區(qū)別在于,自適應(yīng)濾波在輸出與濾波系統(tǒng)之間存在有反饋通道,根據(jù)某一時(shí)刻濾波器的輸出與期望信號(hào)的誤差調(diào)整濾波器的系數(shù),從而實(shí)現(xiàn)濾波器系數(shù)的動(dòng)態(tài)調(diào)整,實(shí)現(xiàn)最優(yōu)濾波。
(1)信號(hào)模型
自適應(yīng)濾波的目的仍然是從觀測信號(hào)中提取真實(shí)準(zhǔn)確的期望信號(hào),因此涉及到的信號(hào)有:
期望信號(hào) d(n)
輸入信號(hào) x(n)=d(n)+v(n)
輸出信號(hào) y(n)
(2)算法原理
一個(gè)M階濾波器,系數(shù)為w(m),則輸出為:
y(n)=Σw(m)x(n-m) m=0…M
寫成矩陣形式: y(j)=WT(j)*X(j)
n時(shí)刻的輸出誤差為: e(j)=d(j)-y(j)= d(j)- WT(j)*X(j)
定義目標(biāo)函數(shù)為 E[e(j)^2],則有:
J(j)=E[e(j)^2]= E[(d(j)- WT(j)*X(j))^2]
當(dāng)上述誤差達(dá)到最小時(shí),即實(shí)現(xiàn)最優(yōu)濾波,這種目標(biāo)函數(shù)確定的為最小方差自適應(yīng)濾波。
對(duì)于目標(biāo)函數(shù)J(j),需要求得使其取到最小值對(duì)應(yīng)的W,這里使用梯度下降法進(jìn)行最優(yōu)化:
W(j+1)=W(j)+1/2*μ(-▽J(j))
▽J(j)=-2E[X(j)*( d(j)- WT(j)*X(j))]= -2E[X(j)e(j)]
W(j+1)=W(j)+μE[X(j)e(j)]
其中-2X(j)e(j)稱為瞬時(shí)梯度,因?yàn)樗矔r(shí)梯度是真實(shí)梯度的無偏估計(jì),這里可以使用瞬時(shí)梯度代替真實(shí)梯度。
W(j+1)=W(j)+μX(j)e(j)
由此,可以得到自適應(yīng)濾波最佳系數(shù)的迭代公式。
3.算法的收斂性
在最小均方誤差自適應(yīng)濾波算法中,最佳濾波器系數(shù)應(yīng)該滿足:
▽J(j)=0
即:-2E[X(j)*( d(j)- WT(j)*X(j))]=0
經(jīng)整理后,可以得到:
WoptT =Rxx-1*Rxd
上式說明,自適應(yīng)濾波的最佳濾波器系數(shù)同維納濾波相同,與輸入信號(hào)以及期望信號(hào)的相關(guān)矩陣有關(guān)。
對(duì)W(j+1)=W(j)+μX(j)e(j)等號(hào)兩邊求期望,并通過一系列推導(dǎo),可得:
E[W(j+1)]=Wopt+Q(I-μΛ)jQH(W0-Wopt)
式中Rxx=QHΛQ, W0為自適應(yīng)濾波系數(shù)的初值。
當(dāng)j取到無窮大時(shí),濾波器應(yīng)達(dá)到最優(yōu)狀態(tài),因此:
(I-μΛ)j=0,則有:|I-μΛ|《=1
上式即為最小均方自適應(yīng)濾波的收斂條件。
Λ為輸入信號(hào)的自相關(guān)矩陣Rxx的特征值構(gòu)成的對(duì)角陣。
4.變步長自適應(yīng)濾波算法
在整個(gè)迭代過程中,步長不變的情況稱為定步長算法。為了保證算法的收斂性,一般要取一個(gè)比較小的步長值,但步長過小又容易導(dǎo)致算法收斂過慢。比較理想的情況是,在迭代的初始階段,誤差值較大時(shí),取一個(gè)較大的迭代步長,以實(shí)現(xiàn)較快的收斂速度;隨著迭代次數(shù)增加,誤差逐漸減小,步長也應(yīng)相應(yīng)減小,達(dá)到較高的收斂精度。這種思想便稱為變步長自適應(yīng)濾波算法。
常用的變步長自適應(yīng)濾波算法根據(jù)輸入信號(hào)的或者誤差值確定步長。
這里介紹兩種具體的變步長算法:
(1)歸一化變步長自適應(yīng)濾波算法
μj =α/(β+XjTXj)
α,β均為常數(shù),且滿足0《α《2,β》=0。
該算法使用輸入信號(hào)的能量對(duì)步長因子進(jìn)行歸一化,確保其取到合適的值。
(2)Sigmod函數(shù)變步長自適應(yīng)濾波算法
μj=β(1-exp(-αej^2))
α,β均為常數(shù),且滿足0《α,0=《β《μmax。
從上述表達(dá)式中可以明顯看出,隨著誤差增大,步長值也增大。
5.解相關(guān)自適應(yīng)濾波算法
實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)輸入信號(hào)之間的相關(guān)性比較強(qiáng)時(shí),自適應(yīng)濾波的效果比較差。因此需要去除相鄰兩次輸入信號(hào)序列的相關(guān)性,以得到較好的濾波效果。
解相關(guān)自適應(yīng)濾波算法的實(shí)現(xiàn)過程為:
r= XjTXj-1/ Xj-1TXj-1
Zj=Xj-rXj-1
μj=βej/ ZjTXj
Wj+1=Wj+μjZj
6.變換域自適應(yīng)濾波算法
根據(jù)解相關(guān)自適應(yīng)濾波算法的思想,使用一組正交基對(duì)輸入信號(hào)進(jìn)行變換,在變換域上進(jìn)行自適應(yīng)濾波,最后再將濾波結(jié)果逆變換至?xí)r間域。常見的變換有傅里葉變換,分?jǐn)?shù)階傅里葉變換,小波變換,余弦變換。
算法應(yīng)用與實(shí)現(xiàn)
下面講述如何在實(shí)際問題中應(yīng)用自適應(yīng)濾波算法:
問題背景:一個(gè)點(diǎn)目標(biāo)在x,y平面上繞單位圓做圓周運(yùn)動(dòng),由于外界干擾,其運(yùn)動(dòng)軌跡發(fā)生了偏移。其中,x方向的干擾為均值為0,方差為0.05的高斯噪聲;y方向干擾為均值為0,方差為0.06的高斯噪聲。
問題分析與思路:
將物體的運(yùn)動(dòng)軌跡分解為X方向和Y方向,并假設(shè)兩個(gè)方向上運(yùn)動(dòng)相互獨(dú)立。分別將運(yùn)動(dòng)軌跡離散為一系列點(diǎn),作為濾波器的輸入,分別在兩個(gè)方向上進(jìn)行濾波,最終再合成運(yùn)動(dòng)軌跡。
程序設(shè)計(jì)思路:
生成期望信號(hào)-添加噪聲-設(shè)置濾波器系數(shù)初值-迭代運(yùn)算-最優(yōu)濾波輸出
濾波結(jié)果分析:
定步長自適應(yīng)濾波算法
變步長自適應(yīng)濾波算法
解相關(guān)自適應(yīng)濾波算法