卡尔曼滤波器原理和matlab实现
項目最近正好用上kalman濾波器,故整理一下kalman濾波器相關資料,網上有很多詳細的kalman資料,參考如下:
1、https://zhuanlan.zhihu.com/p/34656822
2、https://blog.csdn.net/m0_37953670/article/details/89528002
由于項目處理的是一維信號,過濾噪點,故上面2篇文獻足夠完成項目
以其中的一篇參考資料為例:
卡爾曼濾波器的遞歸過程:
估計時刻k 的狀態:
X(k) = AX(k-1) + Bu(k)
這里, u(k) 是系統輸入,在項目中,一維輸入信號A=1
計算誤差相關矩陣P, 度量估計值的精確程度:
P(k) = A*P(k-1)*A’+ Q
這里, Q = E{ Wj^2 } 是系統噪聲的協方差陣,即系統框圖中的Wj的協方差陣, Q 應該是不斷變化的,為了簡化,當作一個常數矩陣。
計算卡爾曼增益, 以下略去 (k), 即 P = P(k), X = X(k):
K = P C’ (C * P * C’ + R) -1
這里 R = E{ Vj^2 }, 是測量噪聲的協方差(陣), 即系統框圖中的 Vj 的協方差, 為了簡化,也當作一個常數矩陣。由于我們的系統一般是單輸入單輸出,所以 R是一個 1x1的矩陣,即一個常數,上面的公式可以簡化為:
K = P C’ / (C P * C’ + R)
狀態變量反饋的誤差量:
e = Z(k) – C*X(k)
這里的 Z(k) 是帶噪聲的測量,在項目中,一維輸入信號C=1
更新誤差相關矩陣P
P = P – K * C * P
更新狀態變量:
X =X + Ke = X + K (Z(k) – C*X(k))
最后的輸出:
Y = C*X
在項目上,關鍵的是獲取到Q、R、P,這3個數據需要通過實驗統計獲取,
拓展研究:
3、https://blog.csdn.net/zengxiantao1994/article/details/71170728
4、https://www.mathworks.com/help/fusion/ref/trackingkf.html
5、https://www.mathworks.com/help/fusion/ug/linear-kalman-filters.html
PS:🐧號 1762016542 提供答疑咨詢等
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的卡尔曼滤波器原理和matlab实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: notepad++ linux 打开二进
- 下一篇: matlab统计矩阵元素的出现次数