宋立業(yè) 王景勝 彭繼慎
摘 要:隨著DSP技術(shù)的高速發(fā)展,人們對信號處理的實時性、準(zhǔn)確性和靈活性的要求越來越高,DSP技術(shù)在信號處理中的地位也越來越重要。自適應(yīng)濾波器是一種復(fù)雜的算法,設(shè)計它是為了在均衡信道,抵消回波,增強譜線,抑制噪聲等方面有所應(yīng)用。而自適應(yīng)濾波器的實現(xiàn)主要采用最小均方誤差算法完成。自適應(yīng)算法通過調(diào)整濾波器系數(shù)來實現(xiàn)可以更好地跟蹤信號的變化,最終實現(xiàn)自適應(yīng)濾波。
關(guān)鍵詞:自適應(yīng)濾波器;數(shù)字信號處理器;最小均方誤差算法;Matlab仿真
中圖分類號:TN713文獻(xiàn)標(biāo)識碼:B
文章編號:1004-373X(2009)05-112-03
Algorithm Research of Adaptive Filter and DSP Simulation Realization
SONG Liye,WANG Jingsheng,PENG Jishen
(Department of Electrical Engineering,Liaoning Technical University,Huludao,125105,China)
Abstract:With the rapid development of DSP technique,there is an increasing requirement of real-time processing,accuracy and flexibility in signal-processing.DSP technique plays a more important role in signal-processing.Adaptive filters have been implemented with some complex algorithms in the past decade.Designing it is for the balanced channel,counterbalances the echo,the enhancement spectral line,aspects noise elimination has the application and so on.But the realization of adaptive filter mainly uses the least mean square to complete.The least mean square is realized by adjusting filter and can track signal much better,finally realizes the adaptive filtering.
Keywords:adaptive filter;digital signal processor;least mean square error;matlab simulation
0 引 言
濾波是電子信息處理領(lǐng)域的一種最基本而又極其重要的技術(shù)。在有用信號的傳輸過程中,通常會受到噪聲或干擾的污染。利用濾波技術(shù)可以從復(fù)雜的信號中提取所需要的信號,同時抑制噪聲或干擾信號,以便更有效地利用原始信號。濾波器實際上是一種選頻系統(tǒng),它對某些頻率的信號予以很小的衰減,讓該部分信號順利通過;而對其他不需要的頻率信號則予以很大的衰減,盡可能阻止這些信號通過。在電子系統(tǒng)中濾波器是一種基本的單元電路,使用很多,技術(shù)也較為復(fù)雜,有時濾波器的優(yōu)劣直接決定產(chǎn)品的性能,所以很多國家非常重視濾波器的理論研究和產(chǎn)品開發(fā)。
1 自適應(yīng)濾波器簡介
自適應(yīng)濾波器屬于現(xiàn)代濾波器的范疇,自適應(yīng)濾波器是相對固定濾波器而言的,固定濾波器屬于經(jīng)典濾波器,它濾波的頻率是固定的,自適應(yīng)濾波器濾波的頻率則是自動適應(yīng)輸入信號而變化的,所以其適用范圍更廣。在沒有任何關(guān)于信號和噪聲的先驗知識的條件下,自適應(yīng)濾波器利用前一時刻已獲得的濾波器參數(shù)來自動調(diào)節(jié)現(xiàn)時刻的濾波器參數(shù),以適應(yīng)信號和噪聲未知或隨機變化的統(tǒng)計特性,從而實現(xiàn)最優(yōu)濾波。所謂自適應(yīng)濾波,就是利用前一時刻已獲得的濾波器參數(shù)等結(jié)果,自動地調(diào)節(jié)現(xiàn)時刻的濾波器參數(shù),以適應(yīng)信號和噪聲未知的或隨時間變化的統(tǒng)計特性,從而實現(xiàn)最優(yōu)濾波。自適應(yīng)濾波器實質(zhì)上就是一種能調(diào)節(jié)其自身傳輸特性以達(dá)到最優(yōu)化的維納濾波器。
2 自適應(yīng)濾波原理
自適應(yīng)濾波器的特性變化是由自適應(yīng)算法通過調(diào)整濾波器系數(shù)來實現(xiàn)的。一般而言,自適應(yīng)濾波器由兩部分組成,一是濾波器結(jié)構(gòu),二是調(diào)整濾波器系數(shù)的自適應(yīng)算法。自適應(yīng)濾波器的結(jié)構(gòu)采用FIR或IIR結(jié)構(gòu)均可,由于IIR濾波器存在穩(wěn)定性問題,因此一般采用FIR濾波器作為自適應(yīng)濾波器的結(jié)構(gòu)。圖1給出了自適應(yīng)濾波器的一般結(jié)構(gòu)。
圖1為自適應(yīng)濾波器結(jié)構(gòu)的一般形式,圖中x(n)為輸入信號,通過參數(shù)可調(diào)的數(shù)字濾波器后產(chǎn)生輸出信號y(n),將輸出信號y(n)與標(biāo)準(zhǔn)信號(或者為期望信號)d(n)進行比較,得到誤差信號e(n)。e(n)和x(n)通過自適應(yīng)算法對濾波器的參數(shù)進行調(diào)整,調(diào)整的目的使得誤差信號e(n)最小。
圖1 自適應(yīng)濾波器的一般結(jié)構(gòu)
自適應(yīng)濾波器設(shè)計中最常用的是FIR橫向型結(jié)構(gòu)。圖2是橫向型濾波器的結(jié)構(gòu)示意圖。
圖2 橫向型濾波器的結(jié)構(gòu)示意圖
其中:x(n)為自適應(yīng)濾波器的輸入;w(n)為自適應(yīng)濾波器的沖激響應(yīng):w(n)={w(0),w(1),…,w(N-1)};y(n)為自適應(yīng)濾波器的輸出:y(n)=x(n)硍(n)。
y(n)=WT(n)X(n)=∑N-1i=0w璱(n)x(n-i)
3 自適應(yīng)濾波算法
自適應(yīng)濾波器除了包括一個按照某種結(jié)構(gòu)設(shè)計的濾波器,還有一套自適應(yīng)的算法。自適應(yīng)算法是根據(jù)某種判斷來設(shè)計的。自適應(yīng)濾波器的算法主要是以各種判據(jù)條件作為推算基礎(chǔ)的。通常有兩種判據(jù)條件:最小均方誤差判據(jù)和最小二乘法判據(jù)。LMS算法是以最小均方誤差為判據(jù)的最典型的算法,也是應(yīng)用最廣泛的一種算法。
最小均方誤差(Least Mean Square,LMS)算法是一種易于實現(xiàn)、性能穩(wěn)健、應(yīng)用廣泛的算法。所有的濾波器系數(shù)調(diào)整算法都是設(shè)法使y(n) 接近d(n),所不同的只是對于這種接近的評價標(biāo)準(zhǔn)不同。LMS算法的目標(biāo)是通過調(diào)整系數(shù),使輸出誤差序列e(n)=d(n)-y(n)的均方值最小化,并且根據(jù)這個判據(jù)來修改權(quán)系數(shù),該算法因此而得名。誤差序列的均方值又叫“均方誤差”(Mean Square Error,MSE)。
理想信號d(n)與濾波器輸出y(n)之差e(n)的期望值最小,并且根據(jù)這個判據(jù)來修改權(quán)系數(shù)w璱 (n)。由此產(chǎn)生的算法稱為LMS。均方誤差ε表示為:
ε=E[e2(n)]=E{[d(n)-y(n)]2}
對于橫向結(jié)構(gòu)的濾波器,代入y(n)的表達(dá)式:
ε=E[d2(n)]+WT(n)RW(n)-2WT(n)P
其中: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)性。
在均方誤差ε達(dá)到最小時,得到最佳權(quán)系數(shù)W*=[w*0,w*1,…,w*璑-1]T。
它應(yīng)滿足下式:
鄲弄礧(n)瓀(n)=w*=0
這是一個線形方程組,如果R矩陣為滿秩的,R-1存在,可得到權(quán)系數(shù)的最佳值滿足:W*=R-1P。用完整的矩陣表示為:
w*0w*1體*(N-1)=
Φ瓁(0)Φ瓁(1)Φ瓁(N-1)Φ瓁(1)Φ瓁(0)Φ瓁(N-2)………Φ瓁(N-1)Φ瓁(N-2)Φ瓁(0)-1·
Φ瓁d(0)Φ瓁d(1)…Φ瓁d(N-1)
顯然Φ瓁(m)=E[x(n)x(n-m)]為x(n)的自相關(guān)值,Φ瓁d(R)=E[x(n)d(n-k)]為x(n)與d(n)互相關(guān)值。在有些應(yīng)用中,把輸入信號的采樣值分成相同的一段(每段稱為一幀),再求出R,P的估計值得到每幀的最佳權(quán)系數(shù)。這種方法稱為塊對塊自適應(yīng)算法。如語音信號的線性預(yù)測編碼LPC就是把語音信號分成幀進行處理的。R,P的計算,要求出期望值E,在現(xiàn)實運算中不容易實現(xiàn),為此可通過下式進行估計:
瓁d=1K-|m|∑k-|m|-1i=0x(n-i)d(n-|m|-i)
瓁=1K-|m|∑k-|m|-1i=0x(n-i)x(n-|m|-i)
用以上方法獲得最佳W*的運算量很大,對于一些在線或?qū)崟r應(yīng)用的場合,無法滿足其時間要求。大多數(shù)場合使用迭代算法,對每次采樣值就求出較佳權(quán)系數(shù),稱為采樣值對采樣值迭代算法。迭代算法可以避免復(fù)雜的R-1和P的運算,又能實時求得近似解,因而切實可行。LMS算法是以最快下降法為原則的迭代算法,即W(n+1)矢量是W(n)矢量按均方誤差性能平面的負(fù)斜率大小調(diào)節(jié)相應(yīng)一個增量:W(n+1)=W(n)-u(n),這個u是由系統(tǒng)穩(wěn)定性和迭代運算收斂速度決定的自適應(yīng)步長。(n)為n次迭代的梯度。對于LMS算法(n)為下式E[e2(n)]的斜率:
(n)=礒[e2(n)]礧(N)=-2E[e(n)X(n)]
由上式產(chǎn)生了求解最佳權(quán)系數(shù)W*的兩種方法,一種是最陡梯度法。其思路為:設(shè)計初始權(quán)系數(shù)W(0),用W(n+1)=W(n)-u(n)迭代公式計算,到W(n+1)與W(n)誤差小于規(guī)定范圍。其中(n)計算可用估計值表達(dá)式:
X(n)〗1K∑k-1i=0e(n-i)X(n-i)
上式K取值應(yīng)足夠大。如果用瞬時-2e(n)X(n)來代替上面對-2EX(n)〗的估計運算,就產(chǎn)生了另一種算法——隨機梯度法,即Widrow-Hoff的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 自適應(yīng)濾波算法的理論仿真
使用Matlab編程,采用自適應(yīng)濾波器技術(shù)實現(xiàn)信噪分離,也就是去噪。程序如下:
lear all;
clf;
signal = cos(2*pi*0.055*[0:1000-1]′);%產(chǎn)生信號
noise=randn(1,1000);%產(chǎn)生噪聲
nfilt=fir1(11,0.4);%11階低通FIR濾波器
fnoise=filter(nfilt,1,noise);%相關(guān)噪聲數(shù)據(jù)
d=signal.′+fnoise;%信號和噪聲疊加
w0 = nfilt.′ -0.01;%設(shè)置初始化濾波器系數(shù)
mu = 0.05;%設(shè)置算法的步長
s=initse(w0,mu);% adaptse函數(shù)的初始化參數(shù)
[y,e,s] = adaptse(noise,d,s);
plot(0:199,signal(1:200),0:199,e(1:200));
程序運行的結(jié)果如圖3所示。
通過CCS軟件環(huán)境,把濾波程序燒錄到DSP芯片中,在CCS DSK C5000環(huán)境下輸出仿真結(jié)果:輸入信號為余弦信號和隨機噪聲的疊加。程序正確運行后,觀察運行結(jié)果,得出如圖4,圖5所示的仿真圖。
圖3 Matlab仿真圖
圖4 余弦信號和隨機噪聲疊加的輸入信號
圖5 輸出信號
5 結(jié) 語
通過仿真實驗結(jié)果表明:自適應(yīng)濾波器卻能很好地消除疊加在信號上的噪聲,雖然也可以用固定濾波器來實現(xiàn),但設(shè)計固定濾波器時需要預(yù)先知道信號和噪聲的統(tǒng)計特性,而自適應(yīng)濾波器則不需要,并且當(dāng)信號和噪聲的統(tǒng)計特性發(fā)生變化時,自適應(yīng)濾波器也能自動地調(diào)節(jié)其沖激響應(yīng)特性來適應(yīng)新的情況,因此,自適應(yīng)濾波器具有更加廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1]胡廣書.數(shù)字信號處理——理論、算法與實現(xiàn)[M].北京:清華大學(xué)出版社,1998.
[2]王世一.數(shù)字信號處理[M].北京:北京理工大學(xué)出版社,1999.
[3]程衛(wèi)國,馮峰,姚東,徐昕.Matlab啟用指南[M].北京:人民郵電出版社,2000.
[4]鄧重一.濾波器的過去、現(xiàn)在與未來.世界電子元器件,2003(4):48-50.
[5]侯志林.過程控制與自動化儀表[M].北京:機械工業(yè)出版社,1998.
[6]譚浩強,吳功宜.計算機教程[M].2版.北京:電子工業(yè)出版社,2001.
[7]于海生.微型計算機控制技術(shù)[M].北京:清華大學(xué)出版社,1998.
[8]程佩青.數(shù)字信號處理教程[M].北京:清華大學(xué)出版社,2005.
[9]Simon Haykin.Adaptive Filter Theory[M].Beijing:Publishing House of Electronics Industry,2002.
[10]Alexander V Anisimov,Vadim Yu Teplov,Nikolai I Silkin.System of Thermostatic Control on Peltier Thermopiles and Microprocessor Control for a Portable NMR Relax-ometer[J].Journal of Magnetic Resonance,2002,154:176-180.
作者簡介 宋立業(yè) 男,1972年出生,講師。主要從事電力系統(tǒng)自動化裝置方面的研究。
王景勝 男,鞍山人,碩士研究生。主要從事電力電子與電力拖動系統(tǒng)的設(shè)計與研究。
彭繼慎 男,1969年出生,教授。主要從事電力電子系統(tǒng)的計算機控制與仿真研究。