摘 要:為了達到最佳的濾波效果,使自適應濾波器在工作環境變化時自動調節其單位脈沖響應特性,提出了一種自適應算法:最小均方算法(LMS算法)。這種算法實現簡單且對信號統計特性變化具有穩健性,所以獲得了極為廣泛的應用。針對用硬件實現LMS算法的自適應濾波器存在的諸多缺點,采用Matlab工具對基于LMS算法的自適應濾波器進行了仿真試驗。仿真結果表明,應用LMS算法的自適應濾波器不僅可以實現對信號噪聲的自適應濾除,還能用于系統識別。
關鍵詞:自適應濾波器;Matlab;最小均方算法;FIR
中圖分類號:TN713文獻標識碼:A文章編號:1004373X(2008)1907403
Implementation of Adaptive Filter Simulation Based on LMS Algorithm
LIU Ying,NAN Jingchang
(School of Electrics and Information Engineering,Liaoning Technical University,Huludao,125105,China)
Abstract:In order to achieve the optimum filtering effect,it makes the adaptive filter adjust its units impulse response characteristics automatically on the working environment changed. This paper presents a kind of adaptive algorithm: Least Mean Square (LMS algorithm). As the algorithm is realized simply and has stability with respect to the change of signal statistical characteristics,LMS algorithm is used widely.According to disadvantages of adaptive filter to realize LMS using hardware adaptive filter is simulated which is based on LMS algorithm with Matlab. Results of simulation show that this kind of adaptivefilter not only can filter the signal noise,but also recognize the system.
Keywords:adaptive filter;Matlab;LMS algorithm;FIR
1 引 言
1960年Widrow和Hoff提出最小均方誤差(LMS)算法。LMS算法具有計算量小,結構簡單,易于實現等諸多優點,尤其是這種算法是最先由統計分析法導出的一種實用算法,它是一類自適應濾波器的基礎,因此在很多領域得到了廣泛的應用。
在一個實際的通信系統中,基帶傳輸系統不可能完全滿足理想的波形傳輸無失真條件,因而串擾幾乎是不可避免的。當串擾造成嚴重影響時,必須對整個系統的傳遞函數進行校正,使其接近無失真傳輸條件。這種校正可以采用串接一個濾波器的方法。自適應濾波器的沖擊響應或濾波參數是隨外部環境的變化而改變的,經過一段自動調節的收斂時間達到最佳濾波的要求。但是,自適應濾波器本身有一個重要的自適應算法,這個算法可以根據輸入、輸出及原參量,按照一定準則修改濾波參量,以使它本身能有效地跟蹤外部環境的變化[1]。本文采用LMS算法對自適應濾波器的參數進行調整,使其能夠工作在最佳的濾波狀態。
2 自適應濾波器原理
自適應濾波器由參數可調的數字濾波器和自適應算法兩部分組成,如圖1所示[2]。
圖1 自適應濾波器原理框圖
自適應濾波器與維納濾波器一樣都是以最小均方誤差為準則的最佳濾波器。自適應濾波器能自動調節其本身的單位脈沖響應h(n)特性,以達到最優化的濾波效果。設計自適應濾波器時,可以不必要求預先知道信號與噪聲的自相關函數,而且在濾波過程中,如果信號與噪聲的自相關函數即使隨時間緩慢變化,系統也能自動適應,自動調節參數,使均方誤差最小。自適應濾波器通常采用LMS算法[3]。
3 LMS算法原理
LMS算法的基本思想:調整濾波器自身參數,使濾波器的輸出信號與期望輸出信號之間的均方誤差最小,這樣系統輸出為有用信號的最佳估計[4]。LMS算法的結構框圖如圖2所示。輸入信號x依次經過m-1個延時單元,在n時刻構成了一個信號矢量x(n)。
圖2 LMS算法結構框圖
輸入信號矢量為:
x(n)=[xn,xn-1,…,xn-m+1]T
加權矢量(即濾波器抽頭系數矢量)為:
w(n)=[wn1,wn2,…,wnm]T
相應的濾波器的輸出為:
y(n)=∑mi=1wi(n)x(n-i+1)=wT(n)x(n)
(1)
y(n)相對于期望信號d(n)的誤差為:
e(n)=d(n)-y(n)=d(n)-wT(n)x(n)
(2)
根據最小均方誤差(MSE)準則,最佳的濾波器參量Wopt應使得性能函數—均方誤差ξ=E{e2(n)}為最小。根據x(n)及其過去值x(n-1),x(n-2),x(n-3),…,x(n-m+1)去估計d(n),w(n)的最優估計值Wopt使估計誤差的均方值為最小[5],Wopt滿足正則方程:
RxxWopt=Pxd
(3)
式中Rxx為輸入信號矢量x(n)的自相關函數,Pxd為輸入信號矢量x(n)與實際需要信號d(n)的互相關函數。
直接求解該正則方程的運算量很大,尤其是加權矢量參數個數很多時。LMS算法采用遞推收斂到最佳值Wopt的方法來尋求這個最佳的濾波器加權矢量參數Wopt。
LMS算法推導如下:
利用最優化方法中的最速下降法求最佳權系數向量的近似值。最速下降法,即“下一時刻”權系數向量w(n+1)應該等于“現時刻”權系數向量w(n)加上一個負均方誤差梯度-(n)的比例項[6],即:
w(n+1)=w(n)-μ(n)
(4)
μ為控制收斂速度與穩定性的常數,稱之為收斂因子。按照近似方法,直接取e2(n)作為均方誤差E[e2(n)]的估計值[7],即:
^(n)=[e2(n)]=2e(n)[e(n)]
(5)
[e(n)]=[d(n)-wT(n)x(n)]=-x(n)
(6)
于是可得:
w(n+1)=w(n)+2μe(n)x(n)
(7)
其中,μ為步長,所以為方便起見,仿真時遞推公式采用下式:
w(n+1)=w(n)+μe(n)x(n)
(8)
收斂條件為:0<μ≤1/λmax,λmax是輸入信號自相關矩陣的最大特征值。
4 仿真結果
根據上述算法,采用了Matlab語言進行仿真實驗。仿真實驗中,先產生標準正弦波信號和隨機噪聲,相加后得到受干擾的正弦信號,根據維納-霍克方程,設計自適應濾波器,對噪聲干擾信號濾波。自適應濾波器的階數為2,步長因子μ為0.000 26,采用LMS算法來消除噪聲[8]。仿真結果如圖3所示。
圖3 自適應濾波器對噪聲信號濾波
利用自適應濾波器,不僅可以實現對信號噪聲的自適應濾除,還能用于系統識別。例如,可以通過自適應FIR濾波器,對某個未知系統進行識別[9],識別框圖如圖4所示。
圖4 模型識別框圖
仿真時用LMS算法對FIR濾波器的抽頭系數進行自適應調整,不斷修正其系統函數,使其與未知系統的參數充分逼近,從而誤差最小,達到系統識別的目的。仿真結果如圖5所示。
圖5 系統信號處理頻譜
5 結 語
LMS算法由于其簡單性和易于工程實現,得到了廣泛的應用。通過仿真結果可以看出,自適應FIR濾波器不但能夠很好地消除疊加在信號上的噪聲,使輸出信號的信噪比有明顯提高,而且能夠很好地模擬未知系統,它們對原始信號處理后的效果十分接近。這樣,通過自適應FIR濾波器的參數指標,就能得到未知系統的系統函數,從而可以對未知系統進行功能相同的硬件
重構。這些在工程中有著廣泛的應用。
參考文獻
[1]邱天爽,魏東興,唐洪,等.通信中的自適應信號處理[M] .北京:電子工業出版社,2005.
[2]Haykin S.Adaptive Filter Theory[M].Third Edition.Prencice-Hall,1996.
[3]鄒國良.自適應濾波理論及應用[M].河北:河北大學出版社,1997.
[4]何振亞.自適應信號處理[M].北京:科學出版社,2002.
[5]尹麗麗,吳躍東.基于LMS算法的自適應均衡器的Matlab實現[J].重慶工學院學報,2004,18(3):61-62.
[6]高鷹,謝勝利.一種變步長LMS自適應濾波算法及分析[J].電子學報,2001,29(8):1 094-1 097.
[7]Nitzberg R.Application of Normalized LMS Algorithm to MSLC[J].IEEE Trans.,1985,AES-21(1):79-91.
[8]羅軍輝,羅勇江,白義臣,等.Matlab 7.0在數字信號處理中的應用[M].北京:機械工業出版社,2005.
[9]龔耀寰.自適應濾波[M].2版.北京:電子工業出版社,2003.
[10]沈福民.自適應信號處理[M].西安:西安電子科技大學出版社,2001.
作者簡介 劉 影 女,1983年出生,吉林人,遼寧工程技術大學在讀研究生。從事射頻電路與器件,通信系統仿真等方面的研究。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文