Kalman濾波的原理

來源:互聯網
上載者:User

以下是講的比較細緻的一個資料.http://jpkc.nwpu.edu.cn/jp2005/40/ebook/kcsj/chp1/Kalman.htm

1.卡爾曼濾波器演算法
     在這一部分,我們就來描述源於Dr Kalman 的卡爾曼濾波器。下面的描述,會涉及一些基本的概念知識,包括機率(Probability),隨即變數(Random Variable),高斯或正態分配(Gaussian Distribution)還有State-space Model等等。但對於卡爾曼濾波器的詳細證明,這裡不能一一描述。
首先,我們先要引入一個離散控制過程的系統。該系統可用一個線性隨機微分方程(Linear Stochastic Difference equation)來描述:

X(k)=A X(k-1)+B U(k)+W(k)

再加上系統的測量值:

Z(k)=H X(k)+V(k)

     上兩式子中,X(k)是k時刻的系統狀態,U(k)是k時刻對系統的控制量。A和B是系統參數,對於多模型系統,他們為矩陣。Z(k)是k時刻的測量值,H是測量系統的參數,對於多測量系統,H為矩陣。W(k)和V(k)分別表示過程和測量的雜訊。他們被假設成高斯白色雜訊(White Gaussian Noise),他們的covariance 分別是Q,R(這裡我們假設他們不隨系統狀態變化而變化)。

     對於滿足上面的條件(線性隨機微分系統,過程和測量都是高斯白色雜訊),卡爾曼濾波器是最優的資訊處理器。下面我們來用他們結合他們的covariances 來估算系統的最佳化輸出(類似上一節那個溫度的例子)。

     首先我們要利用系統的過程模型,來預測下一狀態的系統。假設現在的系統狀態是k,根據系統的模型,可以基於系統的上一狀態而預測出現在狀態:

X(k|k-1)=A X(k-1|k-1)+B U(k) ……….. (1)

     式(1)中,X(k|k-1)是利用上一狀態預測的結果,X(k-1|k-1)是上一狀態最優的結果,U(k)為現在狀態的控制量,如果沒有控制量,它可以為0。

     到現在為止,我們的系統結果已經更新了,可是,對應於X(k|k-1)的covariance還沒更新。我們用P表示covariance:

P(k|k-1)=A P(k-1|k-1) A’+Q ……… (2)

     式(2)中,P(k|k-1)是X(k|k-1)對應的covariance,P(k-1|k-1)是X(k-1|k-1)對應的covariance,A’表示A的轉置矩陣,Q是系統過程的covariance。式子1,2就是卡爾曼濾波器5個公式當中的前兩個,也就是對系統的預測。

     現在我們有了現在狀態的預測結果,然後我們再收集現在狀態的測量值。結合預測值和測量值,我們可以得到現在狀態(k)的最佳化估算值X(k|k):

X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) ……… (3)

     其中Kg為卡爾曼增益(Kalman Gain):

Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R) ……… (4)

     到現在為止,我們已經得到了k狀態下最優的估算值X(k|k)。但是為了要另卡爾曼濾波器不斷的運行下去直到系統過程結束,我們還要更新k狀態下X(k|k)的covariance:

P(k|k)=(I-Kg(k) H)P(k|k-1) ……… (5)

     其中I 為1的矩陣,對於單模型單測量,I=1。當系統進入k+1狀態時,P(k|k)就是式子(2)的P(k-1|k-1)。這樣,演算法就可以自迴歸的運算下去。卡爾曼濾波器的原理基本描述了,式子1,2,3,4和5就是他的5 個基本公式。根據這5個公式,可以很容易的實現電腦的程式。

下面,我會用程式舉一個實際啟動並執行例子
2.簡單例子

     這裡我們結合第二第三節,舉一個非常簡單的例子來說明卡爾曼濾波器的工作過程。所舉的例子是進一步描述第二節的例子,而且還會配以程式類比結果。

     根據第二節的描述,把房間看成一個系統,然後對這個系統建模。當然,我們見的模型不需要非常地精確。我們所知道的這個房間的溫度是跟前一時刻的溫度相同的,所以A=1。沒有控制量,所以U(k)=0。因此得出:

X(k|k-1)=X(k-1|k-1) ……….. (6)

式子(2)可以改成:

P(k|k-1)=P(k-1|k-1) +Q ……… (7)

因為測量的值是溫度計的,跟溫度直接對應,所以H=1。式子3,4,5可以改成以下:

X(k|k)= X(k|k-1)+Kg(k) (Z(k)-X(k|k-1)) ……… (8)
Kg(k)= P(k|k-1) / (P(k|k-1) + R) ……… (9)
P(k|k)=(1-Kg(k))P(k|k-1) ……… (10)

http://blog.csdn.net/luckydongbin/archive/2007/03/01/1518594.aspx

Kalman濾波是個最佳化遞迴處理演算法

總結

在目標檢測與跟蹤過程中,為了提高跟蹤速度,在確定目標的情況下,對目標在下一時刻的可能的位置進行估計,然後以這個估計的位置為中心,在一定的範圍內進行目標的搜尋,這樣就可以縮小目標的搜尋範圍,提高跟蹤速度.

 

 

 

 

1)最優( optimal )依賴於評價效能的判據。Kalman濾波器充分利用如下資訊估計感興趣變數當前取值:a.系統和測量裝置的動態特性;b.系統雜訊、測量誤差和動態模型的不確定性統計描述;c.感興趣變數的初始條件的相關資訊。(2)遞迴( recursive )是指kalman不需要儲存先前的資料,當進行新的測量時也不需要對原來資料進行處理。

(3)filter(DPA)實際上是資料處理演算法,只不過是計算中處理的程式,因此能處理離散時間測量樣本,而不是連續時間輸入。

•         基本假設

       採用線性模型是合理的;這是典型工程模型在某些主要點或軌跡是線性,線性模型比非線性模型更簡單。因此用線性模型來近似。

    白色雜訊意味著雜訊值和時間不相關;白色雜訊指在整個頻率上都有相同強度的頻率特性的雜訊。實際應用中將頻率設為常值,頻寬大大超過系統頻寬的雜訊稱為白色雜訊,用高斯白色雜訊來類比,可以大大簡化模型。

     採用高斯密度函數在實踐上是可行的。因為採用高斯函數在數學上容易處理。當缺少高階統計量時,除了假定高斯密度外,沒有更好的可以表示的函數形式。用一階和二階統計量完全可以描述高斯白色雜訊。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.