1. 程式人生 > >卡爾曼濾波(Kalman Filter)的通俗解釋

卡爾曼濾波(Kalman Filter)的通俗解釋

假設你有兩個感測器,測的是同一個訊號。可是它們每次的讀數都不太一樣,怎麼辦?

取平均。

再假設你知道其中貴的那個感測器應該準一些,便宜的那個應該差一些。那有比取平均更好的辦法嗎?

加權平均。

怎麼加權?假設兩個感測器的誤差都符合正態分佈,假設你知道這兩個正態分佈的方差,用這兩個方差值,(此處省略若干數學公式),你可以得到一個“最優”的權重。

接下來,重點來了:假設你只有一個感測器,但是你還有一個數學模型。模型可以幫你算出一個值,但也不是那麼準。怎麼辦?

把模型算出來的值,和感測器測出的值,(就像兩個感測器那樣),取加權平均。

OK,最後一點說明:你的模型其實只是一個步長的,也就是說,知道x(k),我可以求x(k+1)。問題是x(k)是多少呢?答案:x(k)就是你上一步卡爾曼濾波得到的、所謂加權平均之後的那個、對x在k時刻的最佳估計值。

於是迭代也有了。

這就是卡爾曼濾波。

作者:樑緣
連結:https://www.zhihu.com/question/23971601/answer/64551250

對動態事物的感知我們往往有兩種手段,一種是預測,一種是觀測。但是不幸的是無論是預測還是觀測均避免不了誤差,比如天氣情況可以用一組非線性偏微分方程算出來,也可以用各個基站測量出來,但是均有誤差。再比如導彈的執行軌跡我們可以預測也可以通過雷達觀測,但是也均有誤差。那麼自然的問題就是如何在預測和觀測給出一個最優的估計值。卡爾曼告訴了我們答案。答案很簡單就是從兩個方面觀察得到,一是靜態,如果預測的誤差大觀測的誤差小我們有理由相信最優解更加靠近觀測反之亦然;二是動態的角度,如果觀測的誤差大我們有理由相信下一時刻觀測的貢獻要小一些。我稱之為動態的最小二乘,這便是大名鼎鼎的卡爾曼演算法。對未來時刻用卡氏演算法我們稱之為預測,對當下的結果用卡氏演算法我們稱之為濾波,對過去的結果用卡氏演算法我們稱之為平滑。


 visual explain: