Kalman滤波的感性认识
更简单明了的感性认识
对于线性系统一般状态方程涉及到两个,由这两个方程估计状态量:
- 运动方程: xk=f(xk−1,uk)+ωk (由上一时刻状态怎么得到当前时刻的状态)
- 观测方程:zk=h(xk)+vk(在当前时刻的状态下产生了怎样的观测)
假设所有分布都是高斯分布,从上时刻xk−1根据运动方程得到的xk 服从一个高斯分布G1;我们得到的观测(传感器直接测量) zk也是高斯分布,从它根据观测方程推出的xk是另一个高斯分布G2;最后我们由两个状态方程得到关于xk的两个高斯分布G1和G2,卡尔曼滤波结果就是把G1和G2相乘得到更确定的估计。

相关高斯分布公式总结
-
一维高斯分布:N(μ,σ2)=2πσ1exp(−21σ2(x−μ)2)
-
多维高斯分布:N(μ,Σ)=(2π)Ndet(Σ)1exp(−21(x−μ)⊤Σ−1(x−μ))
-
两个独立的高斯分布:x∼N(μx,Σxx) 和y∼N(μy,Σyy)相加的结果依然是高斯分布:x+y∼N(μx+μy,Σxx+Σyy)
- 如果一个常数a乘以高斯分布x∼N(μx,Σxx),那么ax服从:ax∼N(aμx,a2Σxx)
- 如果 y=Ax,x∼N(μx,Σxx),则y满足:y∼N(Aμx,AΣxxAT)
-
两个高斯分布相乘,如果是一维: x∼N(μx,σx2)y∼N(μy,σy2),那么x⋅y∼N(μ,σ2):
μ=μx+σx2+σy2σx2(μy−μx)σ2=σx2−σx2+σy2σx4
如果令 k=σx2+σy2σx2,那么:
μ=μx+k(μy−μx)σ2=σx2−kσx2
扩展到多维 x∼N(μx,Σxx)y∼N(μy,Σyy),那么x⋅y∼N(μ,Σ):K=Σxx(Σxx+Σyy)−1μ=μx+K(μy−μx)Σ=Σxx−KΣxx
线性卡尔曼滤波
好理解Kalman参考
理论推导
- 假设线性系统的状态方程:{xkzk=Akxk−1+uk+wk=Hkxk+vk
xk:状态向量
uk:输入
https://zhuanlan.zhihu.com/p/48876718
http://www.bzarg.com/p/how-a-kalman-filter-works-in-pictures/#mathybits
应用代码
扩展卡尔曼滤波(EKF)
理论推导
应用代码
无迹卡尔曼滤波(UKF)
理论推导
应用代码