kalman滤波的解释
文章目錄
- kalman濾波的解釋
- 背景
- 信號經過線性變換后的分布
- 信號的相乘
- 一維信號
- 多維信號
- 貝葉斯估計
- 狀態方程
- 先驗分布
- 后驗分布
- 總結
kalman濾波的解釋
背景
這里的信號都是指服從正態分布的信號
信號經過線性變換后的分布
信號經過線性變換后y=F?x+by=F*x+by=F?x+b,
均值:μy=F?μx+b\mu_y=F*\mu_x+bμy?=F?μx?+b
方差:Σy=F?Σx?FT\Sigma_y=F*\Sigma_x*F^TΣy?=F?Σx??FT(這里與一維信號,經過線性變換有點區別)
Σx,Σy\Sigma_x,\Sigma_yΣx?,Σy?都是協方差矩陣
信號的相乘
一維信號
兩個信號服從正態分布:N(μ0,σ02),N(μ1,σ12)N(\mu_0,\sigma_0^2), N(\mu_1,\sigma_1^2)N(μ0?,σ02?),N(μ1?,σ12?)
兩個信號乘積也服從正態分布N(μp,σp)N(\mu_p,\sigma_p)N(μp?,σp?)
k=σ02σ02+σ12μp=μ0+k(μ0?μ1)σp2=σ02?k?σ02k=\frac{\sigma_0^2}{\sigma_0^2+\sigma_1^2}\\ \mu_p=\mu_0+k(\mu_0-\mu_1)\\ \sigma_p^2=\sigma_0^2-k*\sigma_0^2 k=σ02?+σ12?σ02??μp?=μ0?+k(μ0??μ1?)σp2?=σ02??k?σ02?
多維信號
兩個多維隨機信號相乘
N(μ0,Σ0)?N(μ1,Σ1)=zp?N(μp,Σp)N(\mu_0,\Sigma_0)*N(\mu_1,\Sigma_1)=z_p*N(\mu_p,\Sigma_p)N(μ0?,Σ0?)?N(μ1?,Σ1?)=zp??N(μp?,Σp?)
K=Σ0?(Σ0+Σ1)?1μp=μ0+K(μ1?μ0)Σp=Σ0?K?Σ0K=\Sigma_0*(\Sigma_0+\Sigma_1)^{-1} \\ \mu_p=\mu_0+K(\mu_1-\mu_0)\\ \Sigma_p=\Sigma_0-K*\Sigma_0 K=Σ0??(Σ0?+Σ1?)?1μp?=μ0?+K(μ1??μ0?)Σp?=Σ0??K?Σ0?
貝葉斯估計
根據條件概率定義
P(x∣θ)?P(θ)=P(θ∣x)?P(x)P(x∣θ)=P(θ∣x)?P(x)P(θ)P(x|\theta)*P(\theta)=P(\theta|x)*P(x)\\ P(x|\theta)=\frac{P(\theta|x)*P(x)}{P(\theta)} P(x∣θ)?P(θ)=P(θ∣x)?P(x)P(x∣θ)=P(θ)P(θ∣x)?P(x)?
這里P(x)P(x)P(x)就是先驗概率,P(θ∣x)P(\theta|x)P(θ∣x)為似然概率,P(x∣θ)P(x|\theta)P(x∣θ)為后驗概率
狀態方程
x(n+1)=F?x(n)+G?u(n)z(n)=H?x(n)x(n+1) = F*x(n)+G*u(n) \\ z(n) = H*x(n) x(n+1)=F?x(n)+G?u(n)z(n)=H?x(n)
在實際過程中,狀態含有未知量服從分布正態分布,方差(協方差矩陣)為Q(n)Q(n)Q(n),測量也有未知量服從正態分布,方差為R。
先驗分布
x(n+1)=F?x(n)+G?u(n)P(n+1)=F?P(n)?FT+Q(n)x_(n+1)=F*x(n)+G*u(n)\\ P_(n+1)=F*P(n)*F^T+Q(n) x(?n+1)=F?x(n)+G?u(n)P(?n+1)=F?P(n)?FT+Q(n)
其實x(n+1),P(n+1)x(n+1),P(n+1)x(n+1),P(n+1)并不是真實的值,而只是先驗值,重新對其進行命名
xB=x(n+1)PB=P(n+1)x_B=x(n+1)\\ P_B=P(n+1) xB?=x(n+1)PB?=P(n+1)
PBP_BPB?為先驗估計的誤差
后驗分布
將先驗估計的狀態x轉換到測量空間中,則其服從N(H?xB,H?PB?HT)N(H*x_B, H*P_B*H^T)N(H?xB?,H?PB??HT)
測量服從N(z,R)N(z, R)N(z,R)
后驗分布為N(μp,Σp)N(\mu_p,\Sigma_p)N(μp?,Σp?)
μp=H?xB+K(z?H?xB)Σp=H?PB?HT?K?H?PB?HTK=H?PB?HT?(H?PB?HT+R)?1\mu_p=H*x_B+K(z-H*x_B)\\ \Sigma_p=H*P_B*H^T-K*H*P_B*H^T\\ K=H*P_B*H^T*(H*P_B*H^T+R)^{-1} μp?=H?xB?+K(z?H?xB?)Σp?=H?PB??HT?K?H?PB??HTK=H?PB??HT?(H?PB??HT+R)?1
上面的后驗分布為在測量空間的結果。
假設在狀態空間的后驗分布為N(xA,PA)N(x_A, P_A)N(xA?,PA?),將該結果轉換到測量空間中為N(H?xA,H?PA?HT)N(H*x_A,H*P_A*H^T)N(H?xA?,H?PA??HT),兩者相等
H?xA=H?xB+K(z?H?xB)H?PA?HT=H?PB?HT?K?H?PB?HTH*x_A=H*x_B+K(z-H*x_B)\\ H*P_A*H^T=H*P_B*H^T-K*H*P_B*H^T H?xA?=H?xB?+K(z?H?xB?)H?PA??HT=H?PB??HT?K?H?PB??HT
令
K=H?KGK=H*K_G K=H?KG?
則
KG=PB?HT?(H?PB?HT+R)?1K_G=P_B*H^T*(H*P_B*H^T+R)^{-1} KG?=PB??HT?(H?PB??HT+R)?1
上面兩個等式可以變為
H?xA=H?xB+H?KG(z?H?xB)=H?(xB+KG(z?H?xB))H?PA?HT=H?PB?HT?H?KG?H?PB?H=H(PB?KG?H?PB)?HTH*x_A=H*x_B+H*K_G(z-H*x_B)=H*(x_B+K_G(z-H*x_B))\\ H*P_A*H^T=H*P_B*H^T-H*K_G*H*P_B*H=H(P_B-K_G*H*P_B)*H^T H?xA?=H?xB?+H?KG?(z?H?xB?)=H?(xB?+KG?(z?H?xB?))H?PA??HT=H?PB??HT?H?KG??H?PB??H=H(PB??KG??H?PB?)?HT
xA=xB+KG?(z?H?xB)PA=PB?KG?H?PBx_A=x_B+K_G*(z-H*x_B)\\ P_A=P_B-K_G*H*P_B xA?=xB?+KG??(z?H?xB?)PA?=PB??KG??H?PB?
總結
把以上的計算先驗估計,后驗估計的過程結合起來,就是kalman濾波中的時間更新方程和狀態更新方程
時間更新方程
xB=F?x(n)+G?u(n)PB=F?P(n)?FT+Q(n)x_B=F*x(n)+G*u(n)\\ P_B=F*P(n)*F^T+Q(n) xB?=F?x(n)+G?u(n)PB?=F?P(n)?FT+Q(n)
狀態更新方程
KG=PB?HT?(H?PB?HT+R)?1xA=xB+KG?(z?H?xB)PA=PB?KG?H?PBK_G=P_B*H^T*(H*P_B*H^T+R)^{-1}\\ x_A=x_B+K_G*(z-H*x_B)\\ P_A=P_B-K_G*H*P_B KG?=PB??HT?(H?PB??HT+R)?1xA?=xB?+KG??(z?H?xB?)PA?=PB??KG??H?PB?
總結
以上是生活随笔為你收集整理的kalman滤波的解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 已知两个信号的协方差矩阵,如何生成这两个
- 下一篇: 对序列连续计算平均数和方差