【数学和算法】初识卡尔曼滤波器(三)
本文是觀看B站視頻教程所做的截圖和筆記。
疑問:
- 1.觀測矩陣H是單位矩陣嗎?如果是的話,那么卡爾曼增益的兩種寫法都合理。那么他的作用是對XkX_kXk?向量進行變換為ZkZ_kZk?向量的各個維度對應嗎?
答:觀測矩陣H可以是單位矩陣,但是也可以不是單位矩陣。他把狀態量變換成和觀測量對應的特征值。 - 2.卡爾曼增益KkK_kKk?是矩陣還是實數?
答:卡爾曼增益KkK_kKk?是矩陣。當測量噪聲的協方差矩陣R特別小時,卡爾曼增益KkK_kKk?趨近于H的逆H?1H^{-1}H?1。所以卡爾曼增益KkK_kKk?和觀測矩陣H行和列維度一樣。
無論是算出來的結果,還是測量出來的結果,都不具備噪聲的影響。如果你可以完整建模噪聲的話,就不存在卡爾曼濾波器了,也就不存在觀測器的作用了,因為你可以得到這個結果。
因為存在噪聲,所以這兩個結果都是不準確的,此時,卡爾曼濾波器的作用就體現出來了。
且看卡爾曼濾波器如何通過2個不太準確的結果得出一個準確結果:
注意區分先驗和逆的符號表示,對于Xk和Pk右上角跟一個-的,就是先驗,不跟-就是后驗.對于H后面跟一個-就表示逆。有的右上角符號是-T,表示的是先驗的轉置。
文中的下標k表示k時刻。
我們一般會假設過程噪聲和測量噪聲都符合正態分布。
下面這張截圖摘自卡爾曼濾波五個公式推導,每個變量是什么都寫的比較清楚。
從下面開始都是B站的截圖:
去掉兩個噪聲,如下
上面的(1)式,由于去掉了過程噪聲那一項,所以是不完整的,頭頂加上^表示是估計值,由于我們沒對他們做任何處理,右上角加上-表示先驗,合起來就叫先驗估計。
后驗Xk^=先驗Xk?^+G?(測量值Xkmeasured?先驗Xk?^)\displaystyle\color{blue}后驗\hat{X_k} = 先驗\hat{X_k^-} + G*(測量值X_k{measured} - 先驗\hat{X_k^-})后驗Xk?^?=先驗Xk??^?+G?(測量值Xk?measured?先驗Xk??^?)
GGG 是卡爾曼增益,而教科書中給出的卡爾曼增益是KkK_kKk?,二者之間的關系有:
G=Kk?H\displaystyle\color{blue}G = K_k * HG=Kk??H。
接下來我們需要量化誤差,ek=Xk?Xk^\displaystyle\color{blue}e_k = X_k - \hat{X_k}ek?=Xk??Xk?^?,誤差也滿足正態分布。
注意:
- ek=Xk?Xk^\displaystyle\color{blue}e_k = X_k - \hat{X_k}ek?=Xk??Xk?^?,其中Xk{X_k}Xk?是第k時刻的實際值,Xk^\hat{X_k}Xk?^?是第k時刻的后驗估計值。
- 先驗誤差ek?=Xk?Xk?^\displaystyle\color{blue}e_k^- = X_k - \hat{X_k^-}ek??=Xk??Xk??^? ,其中XkX_kXk?是第k時刻的實際值, Xk?^\hat{X_k^-}Xk??^?是第k時刻的先驗估計值。
我們知道,方差越小,誤差就越小,也就越接近期望值。
為了使得方差最小,我們就是要使得協方差矩陣的跡最小,如下:
對于eke_kek?的協方差矩陣P,把eke_kek?代入下面P中得到:
上面的P就是PkP_kPk?,含義見下面:由于上面的期望E中式子是線性的,所以可以隨他們分別求期望:
由于eke_kek?和測量噪聲v都滿足正態分布,所以他們的期望都為0,所以上面的有些式子可以直接劃掉。
如果兩個不同的變量A和B是獨立同分布的,那么期望E(AB)=E(A)*E(B)。
上面的式子化簡后得到:
前面的所有式子都是在求P, P就是Pk:
下一篇博客會講到怎么求PkP_kPk?的先驗Pk?P_k^-Pk??,即上式的等號右邊第一項。
由于前面的式子中的第二個和第三個有以下轉置關系:
方陣有個定理是,矩陣A和矩陣A的逆A?1A^{-1}A?1,他們的的跡相等。所以上面第二三個式子的跡相等。
推導了這么多,別忘了我們開始的目標是,為了使得方差最小,我們就是要使得協方差矩陣的跡最小:
要求協方差的跡最小,就是跡對KkK_kKk?求導==0,
該方法證明在矩陣的跡可以看到。
最后得到:
PkP_kPk?是協方差矩陣,又因為協方差矩陣的轉置等于他自己,化簡得到:
最終求得KkK_kKk?:
該公式就是卡爾曼濾波器中最核心的公式。
(下一篇博客會講到分子的Pk?P_k^-Pk??即PkP_kPk?的先驗是怎么得到的。)
得到了卡爾曼增益KkK_kKk?,我們再回過頭來分析:
當測量噪聲的協方差矩陣R特別大時,卡爾曼增益KkK_kKk?趨近于0,此時估計值就等于先驗估計值,我們更愿意相信計算出來的結果。
當測量噪聲的協方差矩陣R特別小時,卡爾曼增益KkK_kKk?趨近于H逆H?1H^{-1}H?1,此時估計值就等于 測量值?H?1\displaystyle\color{blue}測量值*H^{-1}測量值?H?1 ,我們更愿意相信測量出來的結果。
------------------------------------------------------------------
w是過程噪聲(即過程噪聲是n維向量,它的每一維度都表示噪聲的一個特征),P(w)是
過程噪聲的概率分布,0是過程噪聲的期望,Q是過程噪聲的協方差矩陣。
我們一般會假設過程噪聲和測量噪聲都符合正態分布。
下面是以過程噪聲是2維向量為例來推導公式:
由于方差和期望有以下關系:
Var(x)=E(x2)?E2(x)\displaystyle\color{blue}Var(x) = E(x^2) - E^2(x)Var(x)=E(x2)?E2(x)
對于正態分布,他的期望E(x)=0\displaystyle\color{blue}E(x) = 0E(x)=0所以E2(x)=0\displaystyle\color{blue}E^2(x) = 0E2(x)=0
所以方差就等于 Var(x)=E(x2)\displaystyle\color{blue}Var(x) = E(x^2)Var(x)=E(x2)
所以可以得到上面的協方差矩陣。
上面的協方差矩陣的書寫方式會造成誤解,因為X和Y協方差 并不等于 X的標準差乘以Y的標準差,而且可正可負,在這里是表示二者之間的協方差,并不是二者標準差相乘。這篇博客的最后介紹了相關系數:
總結
以上是生活随笔為你收集整理的【数学和算法】初识卡尔曼滤波器(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【c++】48.g++编译opencv、
- 下一篇: 【数学与算法】协方差矩阵 与 w*w^T