由bayes滤波导出标准Kalman滤波

来源:互联网 发布:smt贴片机编程 编辑:程序博客网 时间:2024/06/04 00:53

bayes滤波

考虑一般的离散时间动态系统:

xk+1yk=fk(xk,vk)=hk(xk,wk)

假设
(1) 初始状态 x0 的概率密度 p(x0) 已知;
(2) 过程噪声 vk 和观测噪声 wk 的统计性质已知;
(3) 状态 x0,过程噪声 {v1,v2,...} 和观测噪声 {w1,w2,...} 三者独立.

我们知道在观测结果为 y1:k 的条件下,状态 xk 的最小均方误差估计为:

xk|k=E(xk|y1:k)

下面给出 bayes 滤波的公式:
p(xk+1|y1:k)=p(xk+1,xk|y1:k)=p(xk+1|xk)p(xk|y1:k)dxk(1)

p(yk+1|y1:k)=p(yk+1,xk+1|y1:k)dxk+1=p(yk+1|xk+1)p(xk+1|y1:k)(3)

p(xk+1|y1:k+1)=p(xk+1,yk+1,y1:k)p(y1:k+1)=p(yk+1|xk+1)p(xk+1|y1:k)p(y1:k+1)(3)

于是

x^k+1|ky^k+1|kx^k+1=xk+1p(xk+1|y1:k)dxk+1(4)=yk+1p(yk+1|y1:k)dyk+1(5)=xk+1p(xk+1|y1:k+1)dxk+1(6)

标准Kalman滤波

考虑离散时间动态系统:

xk+1yk=Akxk+fkuk+wk=Ckxk+gkuk+vk

设系统满足上述三个条件,x0 服从一个已知的正态分布,且过程噪声 vk 和观测噪声 wk 是零均值的高斯分布,协方差分别为 Qk,Rk. k=1,2,3...

x^k+1|k=xk+1p(xk+1|y1:k)dxk+1=xk+1p(xk+1|xk)p(xk|y1:k)dxkdxk+1=xk+1p(xk+1|xk)p(xk|y1:k)dxk+1dxk(fubini)=(Akxk+fkuk)p(xk|y1:k)dxk=Akx^k+fkuk(7)

Σk+1|k=E(x^k+1|kxk+1)(x^k+1|kxk+1)T=E(Ak(x^kxk)wk)(Ak(x^kxk)wk)T=AkE(x^kxk)(x^kxk)TATk+Qk=AkΣk|kATk+Qk(8)

y^k+1|k=yk+1p(yk+1|y1:k)dyk+1=yk+1p(yk+1|xk+1)p(xk+1|y1:k)dxk+1dyk+1=yk+1p(yk+1|xk+1)p(xk+1|y1:k)dyk+1dxk+1(fubini)=(Ck+1xk+1+fk+1uk+1)p(xk+1|y1:k)dxk=Ck+1x^k+1|k+fk+1uk+1(9)

Sk+1=E(y^k+1|kyk+1)(y^k+1|kyk+1)T=E(Ck+1(x^k+1|kxk+1)vk+1)(Ck+1(x^k+1|kxk+1)vk+1)T=Ck+1E(x^k+1|kxk+1)(x^k+1|kxk+1)TCTk+1+Rk+1=Ck+1Σk+1|kCTk+1+Rk+1(10)

一个有用的引理:
XY|X 都服从正态分布,且Y|XN(Cx+D,R),则 (X,Y) 也服从正态分布.


命题1:在标准Kalman滤波中,p(xk+1|y1:k)N(x^k+1|k,Σk+1|k).

证明:首先证明 p(xk+1|y1:k) 服从正态分布.
使用数学归纳法.
由于 p(x1)p(y1|x1) 都服从正态分布,由上述引理可知
p(x1,y1) 是正态密度函数。
假设 p(xk,y1:k) 是正态的,则

p(xk+1,xk,y1:k)=p(xk+1|xk,y1:k)p(xk,y1:k)=p(xk+1|xk)p(xk,y1:k)(Markov)

是正态的.从而它的边际分布
p(xk+1,y1:k)=p(xk+1,xk,y1:k)dxk

是正态的.于是得到它的条件分布
p(xk+1|y1:k)

是正态的.
同理可以证明
p(xk+1,y1:k+1)=p(yk+1|xk+1,y1:k)p(xk+1,y1:k)=p(yk+1|xk+1)p(xk+1,y1:k)(Markov)

是正态的.再由(7)、(8)即可证明此命题.

命题2(Swiss-Army-Knife for Gaussians)

N(y;Cx+D,R)N(x;μ,P)=N(y;Cμ+D,CPCT+R)N(x;m,PKCP)

其中,
K=PCT(CPCT+R)1

m=μ+K(yCμD)

命题2的证明可以由正态分布的条件密度函数直接得到.

x^k+1=xk+1p(yk+1|xk+1)p(xk+1|y1:k)p(y1:k)dxk+1p(y1:k+1)=xk+1p(yk+1|xk+1)p(xk+1|y1:k)dxk+1p(yk+1|xk+1)p(xk+1|y1:k)dxk+1=xk+1p˜(xk+1)N(yk+1;yk+1|k,Sk+1)dxk+1p˜(xk+1)N(yk+1;yk+1|k,Sk+1)dxk+1(2)=x^k+1|k+Σk+1|kCTk+1(Rk+1+Ck+1Σk+1|kCTk+1)1(yk+1y^k+1|k)(11)

其中,
p˜(xk+1)=N(xk+1;x^k+1|k+Σk+1|kCTk+1(Rk+1+Ck+1Σk+1|kCTk+1)1(yk+1y^k+1|k),Σk+1|kΣk+1|kCTk+1(Rk+1+Ck+1Σk+1|kCTk+1)1Ck+1Σk+1|k)

由此可直接得出
Σk+1=Σk+1|kΣk+1|kCTk+1(Rk+1+Ck+1Σk+1|kCTk+1)1Ck+1Σk+1|k(12)

至此,标准Kalman滤波公式就已经完全由bayes滤波导出了.

1 0
原创粉丝点击