深入理解卡爾曼濾波

參考博客:http://blog.csdn.net/zkl99999/article/details/46619771

參考知乎鏈接裏肖暢的回答:https://www.zhihu.com/question/23971601/answer/46480923

首先,需要明確的一點是濾波的概念:filtering is weighting(濾波即加權),濾波的作用就是給不同的信號分量不同的權重。

一:卡爾曼濾波的用途

卡爾曼濾波是來幫助我們做測量的,如果你要測量的東西很容易測準確,沒有什麼隨機干擾,那就不需要。但在有的時候,我們的測量因爲隨機干擾,無法準確得到,卡爾曼先生就給我們想了個辦法,讓我們在干擾爲高斯分佈的情況下,得到的測量均方誤差最小,也就是測量值擾動最小,看起來最平滑。

二:舉例理解

考慮軌道上的一個小車,無外力作用,它在時刻t的狀態向量只與t-1時刻相關。那麼根據t=0時刻的初值,理論上我們可以求出它任意時刻的狀態。當然,實際情況不會這麼美好。這個遞推函數可能會受到各種不確定因素的影響(內在的外在的都算,比如颳風下雨地震,小車結構不緊密,輪子不圓等等)導致並不能精確標識小車實際的狀態。我們假設每個狀態分量受到的不確定因素都服從正態分佈,現在僅對小車的位置進行估計。

請看下圖:t=0時小車的位置服從紅色的正態分佈。


根據小車的這個位置,我們可以預測出t=1時刻它的位置:


分佈變“胖”了,這很好理解——因爲在遞推的過程中又加了一層噪聲,所以不確定度變大了。爲了避免純估計帶來的偏差,我們在t=1時刻對小車的位置座標進行一次雷達測量,當然雷達對小車距離的測量也會受到種種因素的影響,於是測量結果告訴我們,小車t=1時的位置服從藍色分佈:


好了,現在我們得到兩個不同的結果。前面有人提過加權,Kalman老先生的牛逼之處就在於找到了相應權值,使紅藍分佈合併爲下圖這個綠色的正態分佈(囉嗦一句,這個綠色分佈均值位置在紅藍均值間的比例稱爲Kalman增益(比如下圖中近似0.8),就是各種公式裏的K(t))

綠色分佈不僅保證了在紅藍給定的條件下,小車位於該點的概率最大,而且,它居然還是一個正態分佈!正態分佈就意味着,可以把它當做初值繼續往下算了!這是Kalman濾波能夠迭代的關鍵。最後,把綠色分佈當做第一張圖中的紅色分佈對t=2時刻進行預測,算法就可以開始循環往復了。

那綠色分佈是怎麼得出的呢?其實可以通過多種方式推導出來。我們課上講過的就有最大似然法、Ricatti方程法。另外,由於我只對小車位移這個一維量做了估計,因此Kalman增益是標量,通常情況下它都是一個矩陣。而且如果估計多維量,還應該引入協方差矩陣的迭代。

Kalman濾波算法的本質就是利用兩個正態分佈的融合仍是正態分佈這一特性進行迭代而已。

另外:

1:因爲高斯模型有時不適用,於是有了extended kalman filter。

2:particle filter是用於多個對象的,比如要估計兩個小車的位置,他們的位置有一個聯合概率模型,每一個對象就是一個particle。無論是卡爾曼濾波還是particle濾波,都是概率分佈傳遞的過程,卡爾曼傳遞的是高斯分佈,particle filter 傳遞的是高斯混合分佈,每一個峯代表一個小車。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章