但 曄 黃 虎
(成都理工大學信息工程學院,四川 成都 610061)
LMS算法具有低計算復雜度、在平穩(wěn)環(huán)境中的收斂性好、其均值無偏地收斂到wiener解和利用有限精度實現(xiàn)算法時的穩(wěn)定性等特性,使其成為自適應算法中應用最廣泛的算法。本文對LMS算法及其改進算法(NLMS算法、泄露LMS算法等)進行了詳細的研究,并對其性能及應用進行了仿真。
自適應濾波器與普通濾波器不同,它的沖擊響應或濾波參數(shù)是隨外部環(huán)境的變化而變化的,經(jīng)過一段自動調整的收斂時間達到最佳濾波的要求。自適應濾波器本身有一個重要的自適應算法,這個算法可以根據(jù)輸入、輸出及原參數(shù)量值,按照一定準則改變?yōu)V波參量,以使它本身能有效地跟蹤外部環(huán)境的變化。原理如圖1所示,圖中離散時間線性系統(tǒng)表示一個可編程濾波器,它的沖擊響應為h(n),或稱其為濾波參數(shù)。自適應濾波器輸出信號為y(n),所期望的響應信號為d(n),誤差信號e(n)為d(n)與y(n)之差。期望響應信號d(n)是根據(jù)不同用途來選擇的,自適應濾波器的輸出信號y(n)是對期望響應信號d(n)進行估計的,濾波參數(shù)受誤差信號e(n)的控制并自動調整,使y(n)得估計值于所期望的響應d(n)。
圖1 自適應濾波器原理圖
圖2 自適應LMS算法信號流圖
最小均方(LMS)算法,這是一種用瞬時值估計梯度矢量的方法,而且這種瞬時估計法是無偏的。利用時間n=0的濾波系數(shù)矢量為任意的起始值w(0),然后開始LMS算法的計算,通過推導我們得到其更新公式:
收斂因子應滿足以下收斂條件:
2.3.1 NLMS算法
如果不希望用與估計輸入信號矢量有關的相關矩陣來加快LMS算法的收斂速度,那么可用變步長方法來縮短其自適應收斂過程,其中一個主要的方法是歸一化LMS(Normalized LMS,縮寫為NLMS)算法。其更新公式如下式所示:
2.3.2 泄露LMS算法
泄露LMS算法的迭代公式如下式所示:
收斂因子應滿足下列收斂條件:
組合自適應濾波器的基本思想是對兩個或兩個以上的自適應LMS算法并行實現(xiàn)。在每次迭代中選擇最合適的算法,選擇最佳的加權系數(shù)值。最佳的加權系數(shù)是指在給定的時刻,與相應的維納矢量值最接近的值。設Wi(k,q)是LMS算法中,參數(shù)為q,時刻為k時的第i個加權系數(shù),在瞬間選擇參數(shù)q和系數(shù)k。對所有算法歸一化:LMS:q≡ ,GLMS:q≡a,SA:q≡ 。LMS算法的執(zhí)行主要取決于q值,在每個迭代中有一個最佳值qopt,得到最佳表現(xiàn)的自適應算法。在組合自適應濾波器中,含有幾個相同類型的LMS算法,但其參數(shù)q是不同的。
加權系數(shù)是分布在Wi*(k)周圍的隨機變量,它與bias(Wi(k,q))及方差 σq2的關系式如下[4,9]:。
(7)式中的概率P(κ)取決于κ的值。例如當κ=2且滿足高斯分布,則 P(κ)=0.95。
Wi(k,q)的置信區(qū)間定義為:
從(7)式到(8)式可知,只有 |bias(Wi(k,q))|<κσq,則 Wi*(k)∈Di(k),與q無關,這意味著,對于較小的偏差bias,對于同一LMS算法的不同q值,其置信區(qū)間相交。當bias變大,不同q值的置信區(qū)間的中心點距離增大,他們將變得不相交。
由于對bias(Wi(k,q))沒有先驗知識,我們將使用一種特殊的統(tǒng)計方法得到的自適應算法的選擇準則,即q的取值。這個準則遵循以下權衡條件:偏差與方差具有相同數(shù)量級,即 |bias(Wi(k,q))|≌κσq[4]。
組合自適應算法如下:
第1步:首先設定Q={qi,q2,…},對不同的q值計算Wi(k,q)。
第2步:估算每個算法的方差σq2。
第3步:判斷各算法的Di(k)是否相交。從具有最大方差值的算法開始,再到方差值較小的算法。根據(jù)(7),(8)和上述的權衡條件,可按下式進行判斷:
若上式成立,則Di(k)相交。
如果Di(k)不相交,則選擇具有最大方差值的算法。兩個置信區(qū)間不相交意味著滿足了權衡條件,所以選擇具有最大方差值的算法。如果Di(k)相交,則偏差已經(jīng)很小,因此,檢查另一對新的加權系數(shù),如果已經(jīng)是最后一對,則選擇具有最小方差值的算法。
第4步:轉到下一時刻。
Q集的最小元素個數(shù)L=2。在這種情況下,其中的一個q應能提供最大方差,而另一個q應提供穩(wěn)定狀態(tài)下的小方差。通過觀察發(fā)現(xiàn),在這兩個q值之間增加q的數(shù)量,可以對算法的瞬態(tài)行為進行一定的改進。
需要注意的是,在(9)式中只有方差是未知的。在仿真中我們參考文獻[4]對σq2進行估算:
對于穩(wěn)定狀態(tài)下的標準的LMS算法,σq2=qσn2。
組合自適應算法的復雜性取決于組成算法 (第1步)和決策算法(第3步)。由于使用并行硬件實現(xiàn),并行算法的加權系數(shù)計算并未增加計算時間,但增加了硬件要求。方差估算(第2步)由于使用獨立的硬件實現(xiàn),所以其對算法復雜度的增加可以忽略不計。
通過以上分析可知,如果不希望用與估計輸入信號矢量有關的相關矩陣來加快LMS算法的收斂速度,那么可用變步長方法來縮短其自適應收斂過程,其中一個主要的方法是歸一化LMS算法,為了達到快速收斂的目的,必須合適地選擇變步長μ(n)的值,一個可能的策略是盡可能多的減少瞬時平方誤差,即用瞬時平方誤差作為均方誤差MSE的簡單估計。一般來說,較小的收斂因子會導致收斂速度較小的失調。
當輸入信號自相關陣的一個或多個特征值為0時,由于非線性量化的影響,自適應濾波器有可能不能收斂。通常,采用泄露技術來防止這一現(xiàn)象的發(fā)生。在自適應濾波器權系數(shù)的更新中引入一定的非線性變換,可以在一定程度上簡化權系數(shù)更新過程中的乘法運算,并因此簡化LMS自適應濾波器的硬件或程序實現(xiàn)。
[1]何振亞著.自適應信號處理[M].北京:科學出版社,2002.
[2]劉波,文忠,曾涯等.MATLAB信號處理[M].北京:電子工業(yè)出版社,2006.
[3]邱天爽,魏東興,唐洪,張安清等.通信中的自適應信號處理[M].北京:電子工業(yè)出版社,2005.
[4]李勇,徐震等.MATLAB輔助現(xiàn)代工程數(shù)字信號處理[M].西安:西安電子科技大學出版社,2002.