宋立業(yè) 王景勝 彭繼慎
摘 要:隨著DSP技術的高速發(fā)展,人們對信號處理的實時性、準確性和靈活性的要求越來越高,DSP技術在信號處理中的地位也越來越重要。自適應濾波器是一種復雜的算法,設計它是為了在均衡信道,抵消回波,增強譜線,抑制噪聲等方面有所應用。而自適應濾波器的實現主要采用最小均方誤差算法完成。自適應算法通過調整濾波器系數來實現可以更好地跟蹤信號的變化,最終實現自適應濾波。
關鍵詞:自適應濾波器;數字信號處理器;最小均方誤差算法;Matlab仿真
中圖分類號:TN713文獻標識碼: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 引 言
濾波是電子信息處理領域的一種最基本而又極其重要的技術。在有用信號的傳輸過程中,通常會受到噪聲或干擾的污染。利用濾波技術可以從復雜的信號中提取所需要的信號,同時抑制噪聲或干擾信號,以便更有效地利用原始信號。濾波器實際上是一種選頻系統(tǒng),它對某些頻率的信號予以很小的衰減,讓該部分信號順利通過;而對其他不需要的頻率信號則予以很大的衰減,盡可能阻止這些信號通過。在電子系統(tǒng)中濾波器是一種基本的單元電路,使用很多,技術也較為復雜,有時濾波器的優(yōu)劣直接決定產品的性能,所以很多國家非常重視濾波器的理論研究和產品開發(fā)。
1 自適應濾波器簡介
自適應濾波器屬于現代濾波器的范疇,自適應濾波器是相對固定濾波器而言的,固定濾波器屬于經典濾波器,它濾波的頻率是固定的,自適應濾波器濾波的頻率則是自動適應輸入信號而變化的,所以其適用范圍更廣。在沒有任何關于信號和噪聲的先驗知識的條件下,自適應濾波器利用前一時刻已獲得的濾波器參數來自動調節(jié)現時刻的濾波器參數,以適應信號和噪聲未知或隨機變化的統(tǒng)計特性,從而實現最優(yōu)濾波。所謂自適應濾波,就是利用前一時刻已獲得的濾波器參數等結果,自動地調節(jié)現時刻的濾波器參數,以適應信號和噪聲未知的或隨時間變化的統(tǒng)計特性,從而實現最優(yōu)濾波。自適應濾波器實質上就是一種能調節(jié)其自身傳輸特性以達到最優(yōu)化的維納濾波器。
2 自適應濾波原理
自適應濾波器的特性變化是由自適應算法通過調整濾波器系數來實現的。一般而言,自適應濾波器由兩部分組成,一是濾波器結構,二是調整濾波器系數的自適應算法。自適應濾波器的結構采用FIR或IIR結構均可,由于IIR濾波器存在穩(wěn)定性問題,因此一般采用FIR濾波器作為自適應濾波器的結構。圖1給出了自適應濾波器的一般結構。
圖1為自適應濾波器結構的一般形式,圖中x(n)為輸入信號,通過參數可調的數字濾波器后產生輸出信號y(n),將輸出信號y(n)與標準信號(或者為期望信號)d(n)進行比較,得到誤差信號e(n)。e(n)和x(n)通過自適應算法對濾波器的參數進行調整,調整的目的使得誤差信號e(n)最小。
圖1 自適應濾波器的一般結構
自適應濾波器設計中最常用的是FIR橫向型結構。圖2是橫向型濾波器的結構示意圖。
圖2 橫向型濾波器的結構示意圖
其中:x(n)為自適應濾波器的輸入;w(n)為自適應濾波器的沖激響應:w(n)={w(0),w(1),…,w(N-1)};y(n)為自適應濾波器的輸出:y(n)=x(n)硍(n)。
y(n)=WT(n)X(n)=∑N-1i=0w璱(n)x(n-i)
3 自適應濾波算法
自適應濾波器除了包括一個按照某種結構設計的濾波器,還有一套自適應的算法。自適應算法是根據某種判斷來設計的。自適應濾波器的算法主要是以各種判據條件作為推算基礎的。通常有兩種判據條件:最小均方誤差判據和最小二乘法判據。LMS算法是以最小均方誤差為判據的最典型的算法,也是應用最廣泛的一種算法。
最小均方誤差(Least Mean Square,LMS)算法是一種易于實現、性能穩(wěn)健、應用廣泛的算法。所有的濾波器系數調整算法都是設法使y(n) 接近d(n),所不同的只是對于這種接近的評價標準不同。LMS算法的目標是通過調整系數,使輸出誤差序列e(n)=d(n)-y(n)的均方值最小化,并且根據這個判據來修改權系數,該算法因此而得名。誤差序列的均方值又叫“均方誤差”(Mean Square Error,MSE)。
理想信號d(n)與濾波器輸出y(n)之差e(n)的期望值最小,并且根據這個判據來修改權系數w璱 (n)。由此產生的算法稱為LMS。均方誤差ε表示為:
ε=E[e2(n)]=E{[d(n)-y(n)]2}
對于橫向結構的濾波器,代入y(n)的表達式:
ε=E[d2(n)]+WT(n)RW(n)-2WT(n)P
其中:R=E[X(n)XT(n)]為N×N的自相關矩陣,它是輸入信號采樣值間的相關性矩陣。P=E[d(n)X(n)]為N×1互相關矢量,代表理想信號d(n)與輸入矢量的相關性。
在均方誤差ε達到最小時,得到最佳權系數W*=[w*0,w*1,…,w*璑-1]T。
它應滿足下式:
鄲弄礧(n)瓀(n)=w*=0
這是一個線形方程組,如果R矩陣為滿秩的,R-1存在,可得到權系數的最佳值滿足: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)的自相關值,Φ瓁d(R)=E[x(n)d(n-k)]為x(n)與d(n)互相關值。在有些應用中,把輸入信號的采樣值分成相同的一段(每段稱為一幀),再求出R,P的估計值得到每幀的最佳權系數。這種方法稱為塊對塊自適應算法。如語音信號的線性預測編碼LPC就是把語音信號分成幀進行處理的。R,P的計算,要求出期望值E,在現實運算中不容易實現,為此可通過下式進行估計:
瓁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*的運算量很大,對于一些在線或實時應用的場合,無法滿足其時間要求。大多數場合使用迭代算法,對每次采樣值就求出較佳權系數,稱為采樣值對采樣值迭代算法。迭代算法可以避免復雜的R-1和P的運算,又能實時求得近似解,因而切實可行。LMS算法是以最快下降法為原則的迭代算法,即W(n+1)矢量是W(n)矢量按均方誤差性能平面的負斜率大小調節(jié)相應一個增量:W(n+1)=W(n)-u(n),這個u是由系統(tǒng)穩(wěn)定性和迭代運算收斂速度決定的自適應步長。(n)為n次迭代的梯度。對于LMS算法(n)為下式E[e2(n)]的斜率:
(n)=礒[e2(n)]礧(N)=-2E[e(n)X(n)]
由上式產生了求解最佳權系數W*的兩種方法,一種是最陡梯度法。其思路為:設計初始權系數W(0),用W(n+1)=W(n)-u(n)迭代公式計算,到W(n+1)與W(n)誤差小于規(guī)定范圍。其中(n)計算可用估計值表達式:
X(n)〗1K∑k-1i=0e(n-i)X(n-i)
上式K取值應足夠大。如果用瞬時-2e(n)X(n)來代替上面對-2EX(n)〗的估計運算,就產生了另一種算法——隨機梯度法,即Widrow-Hoff的LMS算法。此時迭代公式為:
W(n+1)=W(n)+2ue(n)X(n)
以后討論的LMS算法都是基于Widrow-Hoff的LMS算法。上式的迭代公式假定濾波器結構為橫向結構。對于對稱橫向型結構也可推出類似的迭代公式:
W(n+1)=W(n)+2ue(n)[X(n)+X(n-N+1)]
4 自適應濾波算法的理論仿真
使用Matlab編程,采用自適應濾波器技術實現信噪分離,也就是去噪。程序如下:
lear all;
clf;
signal = cos(2*pi*0.055*[0:1000-1]′);%產生信號
noise=randn(1,1000);%產生噪聲
nfilt=fir1(11,0.4);%11階低通FIR濾波器
fnoise=filter(nfilt,1,noise);%相關噪聲數據
d=signal.′+fnoise;%信號和噪聲疊加
w0 = nfilt.′ -0.01;%設置初始化濾波器系數
mu = 0.05;%設置算法的步長
s=initse(w0,mu);% adaptse函數的初始化參數
[y,e,s] = adaptse(noise,d,s);
plot(0:199,signal(1:200),0:199,e(1:200));
程序運行的結果如圖3所示。
通過CCS軟件環(huán)境,把濾波程序燒錄到DSP芯片中,在CCS DSK C5000環(huán)境下輸出仿真結果:輸入信號為余弦信號和隨機噪聲的疊加。程序正確運行后,觀察運行結果,得出如圖4,圖5所示的仿真圖。
圖3 Matlab仿真圖
圖4 余弦信號和隨機噪聲疊加的輸入信號
圖5 輸出信號
5 結 語
通過仿真實驗結果表明:自適應濾波器卻能很好地消除疊加在信號上的噪聲,雖然也可以用固定濾波器來實現,但設計固定濾波器時需要預先知道信號和噪聲的統(tǒng)計特性,而自適應濾波器則不需要,并且當信號和噪聲的統(tǒng)計特性發(fā)生變化時,自適應濾波器也能自動地調節(jié)其沖激響應特性來適應新的情況,因此,自適應濾波器具有更加廣闊的應用前景。
參考文獻
[1]胡廣書.數字信號處理——理論、算法與實現[M].北京:清華大學出版社,1998.
[2]王世一.數字信號處理[M].北京:北京理工大學出版社,1999.
[3]程衛(wèi)國,馮峰,姚東,徐昕.Matlab啟用指南[M].北京:人民郵電出版社,2000.
[4]鄧重一.濾波器的過去、現在與未來.世界電子元器件,2003(4):48-50.
[5]侯志林.過程控制與自動化儀表[M].北京:機械工業(yè)出版社,1998.
[6]譚浩強,吳功宜.計算機教程[M].2版.北京:電子工業(yè)出版社,2001.
[7]于海生.微型計算機控制技術[M].北京:清華大學出版社,1998.
[8]程佩青.數字信號處理教程[M].北京:清華大學出版社,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)的設計與研究。
彭繼慎 男,1969年出生,教授。主要從事電力電子系統(tǒng)的計算機控制與仿真研究。