Kalman filtering卡尔曼滤波和Particle Filter粒子滤波及其MATLAB实现

Posted 好奇小圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kalman filtering卡尔曼滤波和Particle Filter粒子滤波及其MATLAB实现相关的知识,希望对你有一定的参考价值。

文章目录


前言

通过寻找一组在状态空间中传播的随机样本来近似的表示概率密度函数,用样本均值代替积分运算,进而获得系统状态的最小方差估计的过程,这些样本被形象的称为“粒子”,故而叫粒子滤波。如有错误还望指出。参考自:机器学习-白板推导系列(十六)-粒子滤波(Particle Filter)


一、基本概念和铺垫

1.两个假设

齐次Markov假设:状态变量zt只与上一个时刻的zt-1有关。
观测独立假设:观测变量xt只与对应zt有关。

2.卡尔曼滤波(线性)

公式:
z t = g ( z t − 1 , u , ε ) = A ⋅ z t − 1 + B + ε , z_t=g(z_t-1,u,\\varepsilon)=A \\cdot z_t-1+B+ \\varepsilon, zt=g(zt1,u,ε)=Azt1+B+ε
其中, A A A B B B为矩阵, ε \\varepsilon ε为符合高斯分布的随机变量 ε ∼ N ( 0 , Q ) \\varepsilon \\sim N(0,Q) εN(0,Q) u u u为外部输入,根据情况可有也可以没有。
x t = h ( z t , u , δ ) = C ⋅ z t + D + δ . x_t=h(z_t,u,\\delta)=C \\cdot z_t+D+ \\delta. xt=h(zt,u,δ)=Czt+D+δ.
其中, C C C D D D为矩阵, δ \\delta δ为符合高斯分布的随机变量 δ ∼ N ( 0 , R ) \\delta \\sim N(0,R) δN(0,R)
问题:求解 p ( z t ∣ x 1 , . . . , x t ) p(z_t|x_1,...,x_t) p(ztx1,...,xt)

Step1:Prediction预测——给 z t z_t zt一个先验
p ( z t ∣ x 1 , . . . , x t − 1 ) = ∫ z t − 1 p ( z t ∣ z t − 1 ) ⋅ p ( z t − 1 ∣ x 1 , . . . , x t − 1 ) d z t − 1 p(z_t|x_1,...,x_t-1)= \\int_z_t-1 p(z_t|z_t-1) \\cdot p(z_t-1|x_1,...,x_t-1) dz_t-1 p(ztx1,...,xt1)=zt1p(ztzt1)p(zt1x1,...,xt1)dzt1
Step2:Update更新——求 z t z_t zt的后验
p ( z t ∣ x 1 , . . . , x t ) ∝ p ( x t ∣ z t ) ⋅ p ( z t ∣ x 1 , . . . , x t − 1 ) p(z_t|x_1,...,x_t) \\propto p(x_t|z_t) \\cdot p(z_t|x_1,...,x_t-1) p(ztx1,...,xt)p(xtzt)p(ztx1,...,xt1)

3.粒子滤波(非线性)

由于其非线性特性,难以求出解析解,因此通过采样求出后验。

二、粒子滤波具体步骤

1.重要性采样Importance Sampling&SIS

Monte Carlo Method:

由大数定理可有求得期望,
E z ∣ x [ f ( z ) ] = ∫ f ( z ) ⋅ p ( z ∣ x ) d x ≈ 1 N ∑ i = 1 N f ( z i ) E_z|x[f(z)]=\\int f(z) \\cdot p(z|x) dx \\approx \\frac1N \\sum^N\\limits_i=1 f(z^i) Ezx[f(z)]=f(z)p(zx)dxN1i=1Nf(zi)
其中 N N N个样本, z i ∼ p ( z ∣ x ) z^i \\sim p(z|x) zip(zx)

Importance Sampling:

引入一个新的可行的提议分布(proposed distribution) q ( z ∣ x ) q(z|x) q(zx),同样利用大数分布,可得,
E z ∣ x [ f ( z ) ] = ∫ f ( z ) ⋅ p ( z ∣ x ) q ( z ∣ x ) ⋅ q ( z ∣ x ) d x ≈ 1 N ∑ i = 1 N f ( z i ) ⋅ p ( z i ∣ x ) q ( z i ∣ x ) = 1 N ∑ i = 1 N f ( z i ) ⋅ w i E_z|x[f(z)]=\\int f(z) \\cdot \\fracp(z|x)q(z|x) \\cdot q(z|x) dx \\approx \\frac1N \\sum^N\\limits_i=1 f(z^i)\\cdot \\fracp(z^i|x)q(z^i|x) =\\frac1N \\sum^N\\limits_i=1 f(z^i)\\cdot w^i Ezx[f(z)]=f(z)q(zx)p(zx)q(zx)dxN1i=1Nf(zi)q(zix)p(zix)=NKalman Filters

卡尔曼滤波(Kalman Filter) 的进一步讨论

Kalman FilterExtended Kalman Filter以及Unscented Kalman Filter介绍

从马尔可夫模型(Markov model)到卡尔曼滤波(Kalman filtering)

[Math]理解卡尔曼滤波器 (Understanding Kalman Filter)

[Math]理解卡尔曼滤波器 (Understanding Kalman Filter) zz