自適應濾波器的算法研究及DSP仿真實現(xiàn)
摘要:隨著DSP技術(shù)的高建發(fā)展,人們對信號處理的實時性、準確性和靈活性的要求越來越高,DSP技術(shù)在信號處理中的地位也越來越重要。自適應濾波器是一種復雜的算法,設計它是為了在均衡信道,抵消回波,增強譜線,抑制噪聲等方面有所應用。而自適應濾波器的實現(xiàn)主要采用最小均方誤差算法完成。自適應算法通過調(diào)整濾波器系數(shù)來實現(xiàn)可以更好地跟蹤信號的變化,最終實現(xiàn)自適應濾波。
關(guān)鍵詞:自適應濾波器;數(shù)字信號處理器;最小均方誤差算法;Matlab仿真
0 引 言
濾波是電子信息處理領(lǐng)域的一種最基本而又極其重要的技術(shù)。在有用信號的傳輸過程中,通常會受到噪聲或干擾的污染。利用濾波技術(shù)可以從復雜的信號中提取所需要的信號,同時抑制噪聲或干擾信號,以便更有效地利用原始信號。濾波器實際上是一種選頻系統(tǒng),它對某些頻率的信號予以很小的衰減,讓該部分信號順利通過;而對其他不需要的頻率信號則予以很大的衰減,盡可能阻止這些信號通過。在電子系統(tǒng)中濾波器是一種基本的單元電路,使用很多,技術(shù)也較為復雜,有時濾波器的優(yōu)劣直接決定產(chǎn)品的性能,所以很多國家非常重視濾波器的理論研究和產(chǎn)品開發(fā)。
1 自適應濾波器簡介
自適應濾波器屬于現(xiàn)代濾波器的范疇,自適應濾波器是相對固定濾波器而言的,固定濾波器屬于經(jīng)典濾波器,它濾波的頻率是固定的,自適應濾波器濾波的頻率則是自動適應輸入信號而變化的,所以其適用范圍更廣。在沒有任何關(guān)于信號和噪聲的先驗知識的條件下,自適應濾波器利用前一時刻已獲得的濾波器參數(shù)來自動調(diào)節(jié)現(xiàn)時刻的濾波器參數(shù),以適應信號和噪聲未知或隨機變化的統(tǒng)計特性,從而實現(xiàn)最優(yōu)濾波。所謂自適應濾波,就是利用前一時刻已獲得的濾波器參數(shù)等結(jié)果,自動地調(diào)節(jié)現(xiàn)時刻的濾波器參數(shù),以適應信號和噪聲未知的或隨時間變化的統(tǒng)計特性,從而實現(xiàn)最優(yōu)濾波。自適應濾波器實質(zhì)上就是一種能調(diào)節(jié)其自身傳輸特性以達到最優(yōu)化的維納濾波器。
2 自適應濾波原理
自適應濾波器的特性變化是由自適應算法通過調(diào)整濾波器系數(shù)來實現(xiàn)的。一般而言,自適應濾波器由兩部分組成,一是濾波器結(jié)構(gòu),二是調(diào)整濾波器系數(shù)的自適應算法。自適應濾波器的結(jié)構(gòu)采用FIR或IIR結(jié)構(gòu)均可,由于IIR濾波器存在穩(wěn)定性問題,因此一般采用FIR濾波器作為自適應濾波器的結(jié)構(gòu)。圖1給出了自適應濾波器的一般結(jié)構(gòu)。
圖1為自適應濾波器結(jié)構(gòu)的一般形式,圖中x(n)為輸入信號,通過參數(shù)可調(diào)的數(shù)字濾波器后產(chǎn)生輸出信號y(n),將輸出信號y(n)與標準信號(或者為期望信號)d(n)進行比較,得到誤差信號e(n)。e(n)和x(n)通過自適應算法對濾波器的參數(shù)進行調(diào)整,調(diào)整的目的使得誤差信號e(n)最小。
自適應濾波器設計中最常用的是FIR橫向型結(jié)構(gòu)。圖2是橫向型濾波器的結(jié)構(gòu)示意圖。
[!--empirenews.page--]
其中:x(n)為自適應濾波器的輸入;w(n)為自適應濾波器的沖激響應:w(n)={w(O),w(1),…,w(N-1)};y(n)為自適應
3 自適應濾波算法
自適應濾波器除了包括一個按照某種結(jié)構(gòu)設計的濾波器,還有一套自適應的算法。自適應算法是根據(jù)某種判斷來設計的。自適應濾波器的算法主要是以各種判據(jù)條件作為推算基礎(chǔ)的。通常有兩種判據(jù)條件:最小均方誤差判據(jù)和最小二乘法判據(jù)。LMS算法是以最小均方誤差為判據(jù)的最典型的算法,也是應用最廣泛的一種算法。
最小均方誤差(Least Mean Square,LMS)算法是一種易于實現(xiàn)、性能穩(wěn)健、應用廣泛的算法。所有的濾波器系數(shù)調(diào)整算法都是設法使y(n)接近d(n),所不同的只是對于這種接近的評價標準不同。LMS算法的目標是通過調(diào)整系數(shù),使輸出誤差序列e(n)=d(n)-y(n)的均方值最小化,并且根據(jù)這個判據(jù)來修改權(quán)系數(shù),該算法因此而得名。誤差序列的均方值又叫“均方誤差”(Mean Sqluare Error,MSE)。
理想信號d(n)與濾波器輸出y(n)之差e(n)的期望值最小,并且根據(jù)這個判據(jù)來修改權(quán)系數(shù)wi(n)。由此產(chǎn)生的算法稱為LMS。均方誤差ε表示為:
對于橫向結(jié)構(gòu)的濾波器,代入y(n)的表達式:
其中:R=E[X(n)XT(n)]為N×N的自相關(guān)矩陣,它是輸入信號采樣值間的相關(guān)性矩陣。P=E[d(n)X(n)]為N×1互相關(guān)矢量,代表理想信號d(n)與輸入矢量的相關(guān)性。在均方誤差ε達到最小時,得到最佳權(quán)系數(shù)它應滿足下式:
這是一個線形方程組,如果R矩陣為滿秩的,R-1存在,可得到權(quán)系數(shù)的最佳值滿足:W*=R-1p。用完整的矩陣表示為:
顯然φx(m)=E[x(n)x(n-m)]為x(n)的自相關(guān)值,φxd(R)=E[x(n)d(n一k)]為x(n)與d(n)互相關(guān)值。在有些應用中,把輸入信號的采樣值分成相同的一段(每段稱為一幀),再求出R,P的估計值得到每幀的最佳權(quán)系數(shù)。這種方法稱為塊對塊自適應算法。如語音信號的線性預測編碼LPC就是把語音信號分成幀進行處理的。R,P的計算,要求出期望值E,在現(xiàn)實運算中不容易實現(xiàn),為此可通過下式進行估計:
用以上方法獲得最佳W*的運算量很大,對于一些在線或?qū)崟r應用的場合,無法滿足其時間要求。大多數(shù)場合使用迭代算法,對每次采樣值就求出較佳權(quán)系數(shù),稱為采樣值對采樣值迭代算法。迭代算法可以避免復雜的R-1和P的運算,又能實時求得近似解,因而切實可行。LMS算法是以最快下降法為原則的迭代算法,即W(n+1)矢量是W(n)矢量按均方誤差性能平面的負斜率大小調(diào)節(jié)相應一個增量:W(n+1)=W(n)-μ▽(n),這個“是由系統(tǒng)穩(wěn)定性和迭代運算收斂速度決定的自適應步長。▽(n)為n次迭代的梯度。對于LMS算法▽(n)為下式E[e2(n)]的斜率:
[!--empirenews.page--]
由上式產(chǎn)生了求解最佳權(quán)系數(shù)W*的兩種方法,一種是最陡梯度法。其思路為:設計初始權(quán)系數(shù)W(0),用W(n+1)=W(n)一μ▽(n)迭代公式計算,到W(n+1)與W(n)誤差小于規(guī)定范圍。其中▽(n)計算可用估計值表達式:
上式K取值應足夠大。如果用瞬時一2e(n)X(n)來代替上面對-2E[e(n)X(n)]的估計運算,就產(chǎn)生了另一種算法——隨機梯度法,即Widrow-Hoft的LMS算法。此時迭代公式為:
W(n+1)=W(n)+2ue(n)X(n)
以后討論的LMS算法都是基于WidrOW-Hoff的LMS算法。上式的迭代公式假定濾波器結(jié)構(gòu)為橫向結(jié)構(gòu)。對于對稱橫向型結(jié)構(gòu)也可推出類似的迭代公式:
W(n+1)=W(n)+2ue(n)[X(n)+X(n一N+1)]
4 自適應濾波算法的理論仿真
使用Matlab編程,采用自適應濾波器技術(shù)實現(xiàn)信噪分離,也就是去噪。程序如下:
程序運行的結(jié)果如圖3所示。
通過CCS軟件環(huán)境,把濾波程序燒錄到DSP芯片中,在CCS DSK C5000環(huán)境下輸出仿真結(jié)果:輸入信號為余弦信號和隨機噪聲的疊加。程序正確運行后,觀察運行結(jié)果,得出如圖4,圖5所示的仿真圖。
5 結(jié) 語
通過仿真實驗結(jié)果表明:自適應濾波器卻能很好地消除疊加在信號上的噪聲,雖然也可以用固定濾波器來實現(xiàn),但設計固定濾波器時需要預先知道信號和噪聲的統(tǒng)計特性,而自適應濾波器則不需要,并且當信號和噪聲的統(tǒng)計特性發(fā)生變化時,自適應濾波器也能自動地調(diào)節(jié)其沖激響應特性來適應新的情況,因此,自適應濾波器具有更加廣闊的應用前景。