1. 程式人生 > >自適應濾波-----LMS(Least Mean Square)演算法

自適應濾波-----LMS(Least Mean Square)演算法

自適應濾波的意義所在

自適應濾波器解決非平穩的過程,因為實際訊號的統計特性可能是非平穩的或者是未知的。

自適應濾波器的特點:

                                         1.沒有關於待提取資訊的先驗統計知識

                                        2.直接利用觀測資料依據某種判據在觀測過程中不斷遞迴更新

                                        3.最優化

自適應濾波分類:

處理器的結構劃分:橫向結構、格型結構

 重複一次計算自適應需要的資料劃分:成批處理法、遞迴處理法

按調節演算法劃分:隨機梯度和最小二乘

區分:ARMA 和MA模型   IIR和FIR

應用:

噪聲抵消、回聲抵消、譜線增強、通道均衡、系統辨識、時間延遲估計

演算法的通俗解釋:

 最小均方自適應濾波,通過兩路訊號,一路為參考訊號d,另一路訊號通過濾波器(H)估計出d',d'和參考訊號d之間要滿足均方誤差最小的判據,而初始狀態下濾波器係數設定為W(0),得到的結果d'不滿足誤差最小的判據,此時採用自適應優化演算法去調節濾波器係數W,在不斷的迭代計算後,找到這樣的W*使得估計的d'和期望得到的d誤差最小,而採取的最優化演算法為隨機梯度下降,也即是每進一個新資料x(t)求取它梯度並計算W,在這過程中x(t)和d(t)的誤差是對應的。

LMS演算法的框架:

w0 w1...wp-1表示濾波器係數,xt....xt-p+1表示輸入訊號,dtT為參考訊號(期望訊號)此訊號的選擇很關鍵也是容易讓人困擾的地方

Yt表示輸入訊號在濾波器作用下的輸出響應,eT為參考訊號和Yt的誤差,即是et=dt-Yt;並依據誤差et的大小調節濾波器係數w。

模型:

表示成矩陣的形式:yt

策略:

求誤差函式值et最小時的係數w,即是et和W滿足如下的函式關係式,求解函式值et最小時的解w:

假設最終求得的解是W*,那麼在每次的迭代計算中如何逐次更新W?使它朝著離W*最近的方向前進,相當於要考慮使用什麼樣的演算法來求解最優模型。

演算法:

隨機梯度下降演算法實現最優化

關於梯度下降法分為:梯度下降、批量梯度下降和隨機梯度下降,如何區分呢?

為了能找到最大下降的方向,可隨機選取一個數據點求取梯度,或者是選取小批量的資料求取梯度,或者全部資料參與運算,此時有多個數據參與運算,計算量變大,但是求解的效果可趨向於全域性解。

隨機梯度特點是:單樣本求得的梯度值代替真實梯度

遞推公式

G(T)為求出的梯度(負值),隨機梯度下降法求得的G(T)

所以得:

1、步長的選擇很關鍵,選擇過大會使得過程發散。為此步長需要滿足如下的關係式:

構造:

Rx(正定對稱自相關陣):

則:

則:要使得上述式子趨近於0, 也即是求得的係數W不再變化(認為找到最合適的W值)

需要滿足:

最終收斂條件是:

程式碼實現:(待續)

LMS的疑問:

期望訊號是什麼?

自適應處理解決的是隨機訊號的統計特性未知時,如何去自適應更新W係數達到過濾出想要的訊號,其中W的解最終接近於維納解W*,也就是說和維納濾波的最終目的是一樣的:實現一個處理器對訊號進行過濾;只不過維納濾波知道訊號的統計特徵,因此在後續濾波器的設計中依據這些統計特徵即可一步到位的設計出處理器(H,也即是濾波係數或者是系統函式);而自適應濾波採用的方法是增加一個期望訊號d(t)(或者說參考訊號更好一些),因此就有兩路訊號,這兩路訊號是有差別的,可能1路包含了噪聲n(t),第2路包含了噪聲和想要的訊號s(t)+n(t);,然後依據這兩路訊號的誤差最小判據,並採用一定的優化演算法去逐步的迭代計算,當滿足誤差在某一個最小值時,既可以求出W係數。

和維納濾波器的區別?

維納濾波器:已知訊號波形的統計特性,構建對應的濾波器。適用於平穩隨機過程,平穩也即是統計特性不隨時間變化的隨機過程。

1.維納濾除演算法的通俗解釋:

待處理訊號x(t)包含真實訊號以及噪聲成分,現在希望提取的資訊為d(t),因此需要設計一個處理器

使得估計值d'(t)在一個判據下取得極小值

為此有3個問題

1、怎麼知道d(t)?

3、處理器應該怎麼設計?

2、採用什麼判據?

首先d(t)訊號我們需要知道它的統計特性知識,即使訊號波形本身可以不知道;然後d(t)的使用是為了後面的數學計算;

採用的判據是均方誤差最小判據,並求解此策略最終的解需要d(t)的統計特性知識,例如d(t)本身的自相關、d(t)和x(t)互相關函式;最終求解出H,H本身就是最終需要設計的處理器。此後H不再改變。

其中

判據為:

處理器為:

相當於線性均方估計的引申

因此所用到的假設是:最優線性均方估計的選取需要使得估計誤差e(t)與所有的x(t)正交;也即是如下公式

滿足上式時使得均方誤差最小

繼續上面的問題:如何求解均方誤差的函式式以得出處理器H?

依據正交原理和均方誤差的判據可得出如下的維納-霍夫積分方程:

只要知道Rxd和Rx,則上式的積分方程可求出h。

2.維納濾波器具體分類

    非因果維納濾波:需要時間軸上的全部訊號知識

    因果維納濾波  :FIR型和IIR型 ,因果型即是隻需過去的x(t)

後驗維納濾波:如果統計特性未知,那麼首先需要估計訊號的統計特性,再依據此設計維納濾波器。

互補維納濾波:在訊號不是隨機時的處理方法,採用H1和1-Hz互補方式

其中線性均方估計是:

【1】參考生物醫學訊號處理

補充數學知識:

奇異矩陣

問題:

 

答:由以上可知它是一個均值為0方差為1的白噪過程

則E(x)=0  D(x)=E{[x-E(x)]^2}=E(x^2)=1

而自相關函式離散形式

 則Rx(m-n)其中的m-n相當於上述的n。當m=n時Rx(m-n)=E(x^2)=1 否則R(m-n)=E(x1*x2)=E(x1)*E(x2)=0

數字特徵的知識補充:

首先現實中的物理訊號分為確定性訊號和隨機訊號,如上圖所示,確定性訊號說明無論何時、何地觀測,訊號是有規律的,統計特性不變,能夠準確的預測。隨機訊號則是隨機變數在不同的時刻的值是不確定的,但是這個不同時刻的值具有一定的統計特性(下面要說的平穩訊號);其實現實中的訊號如何區分確定訊號和隨機訊號呢?

引用一句話:目前認為是隨機性的事物,往往是因為現階段還沒有掌握影響該事物諸多因素所遵循的規律。

那斷定為必然的東西,是由種種純粹偶然所構成的,而被認為是偶然的東西,則是一種必然性隱藏在裡面的形式!

區分平穩隨機過程和非平穩?

首先訊號是隨機訊號,且它的統計特性與進行分析的時刻無關,也即是說它的統計特性不隨時間變化

區分弱平穩和強平穩?

弱平穩是:只有一階、二階統計特徵具有平穩性,

強平穩是:任何階的統計特徵都是平穩的。

區分各態遍歷性?

如公式所示:全部樣本在某個固定時刻的統計特性=單個樣本在全部時間上的統計特性 滿足這個關係則稱此訊號具有各態遍歷性

訊號劃分為:功率訊號和能量訊號

功率訊號是:能量無限(持續時間無限),但是功率有限

能量訊號:能量有限(持續時間有限)

注意:1、相關函式的傅氏變換等於功率