通俗解釋卡爾曼濾波

2021-06-19 05:33:58 字數 1806 閱讀 5980

在學習卡爾曼濾波器之前,首先看看為什麼叫「卡爾曼」。跟其他著名的理論(例如傅利葉變換,泰勒級數等等)一樣,卡爾曼也是乙個人的名字,而跟他們不同的是,他是個現代人!

簡單來說,卡爾曼濾波器是乙個「optimal recursive data processing algorithm(最優化自回歸資料處理演算法)」。對於解決很大部分的問題,他是最優,效率最高甚至是最有用的。他的廣泛應用已經超過30年,包括機械人導航,控制,感測器資料融合甚至在軍事方面的雷達系統以及飛彈追蹤等等。近年來更被應用於計算機影象處理,例如頭臉識別,影象分割,影象邊緣檢測等等。

2.卡爾曼濾波器的介紹

(introduction to the kalman filter)

為了可以更加容易的理解卡爾曼濾波器,這裡會應用形象的描述方法來講解,而不是像大多數參考書那樣羅列一大堆的數學公式和數學符號。但是,他的5條公式是其核心內容。結合現代的計算機,其實卡爾曼的程式相當的簡單,只要你理解了他的那5條公式。

在介紹他的5條公式之前,先讓我們來根據下面的例子一步一步的探索。

假設我們要研究的物件是乙個房間的溫度。根據你的經驗判斷,這個房間的溫度是恆定的,也就是下一分鐘的溫度等於現在這一分鐘的溫度(假設我們用一分鐘來做時間單位)。假設你對你的經驗不是100%的相信,可能會有上下偏差幾度。我們把這些偏差看成是高斯白雜訊(white gaussian noise),也就是這些偏差跟前後時間是沒有關係的而且符合高斯分配(gaussian distribution)。另外,我們在房間裡放乙個溫度計,但是這個溫度計也不準確的,測量值會比實際值偏差。我們也把這些偏差看成是高斯白雜訊。

好了,現在對於某一分鐘我們有兩個有關於該房間的溫度值:你根據經驗的**值(系統的**值)和溫度計的值(測量值)。下面我們要用這兩個值結合他們各自的雜訊來估算出房間的實際溫度值。

假如我們要估算k時刻的是實際溫度值

。首先你要根據k-1時刻的溫度值,來**k時刻的溫度。因為

你相信溫度是恆定的

,所以你會得到k時刻的溫度**值是跟k-1時刻一樣的,

假設是23度

,同時該值的

高斯雜訊的偏差是5度(

5是這樣得到的:如果k-1時刻估算出的最優溫度值的偏差是3,你對自己**的不確定度是4度,他們平方相加再開方,就是5)。

然後,你從

溫度計那裡得到了k時刻的溫度值,假設是

25度,同時該值的偏差是4度

。由於我們用於估算k時刻的實際溫度有兩個溫度值,分別是23度和25度。

究竟實際溫度是多少呢

?相信自己還是相信溫度計呢?究竟相信誰多一點,我們可以用他們的covariance來判斷。因為

kg^2=5^2/(5^2+4^2),

所以kg=0.78,我們可以估算出k時刻的

實際溫度值是:23+0.78*(25-23)=24.56度

。可以看出,因為溫度計的covariance比較小(比較相信溫度計),所以估算出的最優溫度值偏向溫度計的值。

現在我們已經得到k時刻的最優溫度值了,下一步就是要進入k+1時刻,進行新的最優估算。到現在為止,好像還沒看到什麼自回歸的東西出現。對了,在進入k+1時刻之前,我們還要算出k時刻那個

最優值(24.56度)的偏差

。演算法如下

:((1-kg)*5^2)^0.5=2.35

。這裡的5就是上面的k時刻你**的那個23度溫度值的偏差,得出的2.35就是進入k+1時刻以後k時刻估算出的最優溫度值的偏差(對應於上面的3)。

就是這樣,卡爾曼濾波器就不斷的把covariance遞迴,從而估算出最優的溫度值。他執行的很快,而且它只保留了上一時刻的covariance。上面的kg,就是卡爾曼增益(kalman gain)。他可以隨不同的時刻而改變他自己的值,是不是很神奇!

通俗解釋卡爾曼濾波

假設你有兩個感測器,測的是同乙個訊號。可是它們每次的讀數都不太一樣,怎麼辦?取平均。再假設你知道其中貴的那個感測器應該準一些,便宜的那個應該差一些。那有比取平均更好的辦法嗎?加權平均。怎麼加權?假設兩個感測器的誤差都符合正態分佈,假設你知道這兩個正態分佈的方差,用這兩個方差值,此處省略若干數學公式 ...

卡爾曼濾波簡單解釋

卡爾曼濾波 以陀螺儀測量的角速度作為 值的控制量,加速度感測器測量的角度作為觀測值。下面程式中angle m為測量角度,gyro m為測量角速度,gyro m dt為控制量。以下程式是按卡爾曼濾波的五個公式來編寫的。x k k 1 a x k 1 k 1 b u k 1 p k k 1 a p k ...

卡爾曼濾波通俗理解(一)

假設你有兩個感測器,測的是同乙個訊號。可是它們每次的讀數都不太一樣,怎麼辦?取平均。再假設你知道其中貴的那個感測器應該準一些,便宜的那個應該差一些。那有比取平均更好的辦法嗎?加權平均。怎麼加權?假設兩個感測器的誤差都符合正態分佈,假設你知道這兩個正態分佈的方差,用這兩個方差值,此處省略若干數學公式 ...