Kalman Filter (Bayesian Derivation)
Table of Contents
1. Kalman 滤波器描述
Kalman 滤波器是 Bayes 滤波的一个实现。先回顾一下 Bayes 滤波,如图 1 所示。
Figure 1: The general algorithm for Bayes filtering
Kalman 滤波器基于下面三个假设:
(1) 运动方程是线性的,且存在高斯噪声。 即运动方程可以这样表示:
其中,
用公式表达上面这个
(2) 测量方程是线性的,且存在高斯噪声。 即测量方程可以这样表示:
其中,
用公式表达上面这个
(3) 初始分布
基于上面 3 个假设,Kalman 滤波器实现了 Bayes 滤波器。
Kalman 滤波器用均值向量
Figure 2: Kalman Filter Algorithm
说明:这里运动方程的噪声的协方差矩阵用
2. Kalman 滤波器推导
完整地推导 Kalman 滤波器算法多少有些复杂。下面我们将仅考虑“状态向量和测量向量都是一维时的 Kalman 滤波器”,因为它的推导比较简单。
设一维线性系统如下所示:
其中
本节主要参考:Notes on Univariate Gaussian Distributions and One-Dimensional Kalman Filters (这里是它的一个 pdf backup)。
2.1. 一维高斯分布概率知识
为了顺利推导一维 Kalman 滤波器,我们先介绍一维高斯分布的相关概率知识。
一维高斯分布的概率密度函数为:
如果随机变量
其两个参数计算如下:
2.1.1. 两个一维高斯分布的乘积
假设有两个随机变量
那么他们的乘积
我们计算:
上式中,
我们接着把上式中指数部分写为
我们考虑一个均值为
如果把上面两个式子中,对应部分划等号后求解
上面方程组是无解的,其实我们可以不考虑和
求解得:
所以:两个一维高斯分布的乘积还是高斯分布,它的参数如上式所述。
2.1.2. 两个一维高斯分布的卷积
假设有两个随机变量
那么随机变量
由全概率公式有:
所以
结论是:
其证明略。证明过程可参考:http://ais.informatik.uni-freiburg.de/teaching/ss15/robotics/etc/gaussian_notes.pdf
2.2. 一维 Kalman 滤波器推导过程
Kalman 滤波器算法共有五个公式。
一维 Kalman 滤波器预测阶段两个公式为:
一维 Kalman 滤波器更新阶段三个公式为:
下面分别推导它们。
2.2.1. 预测阶段两公式的推导
Bayes 滤波器的预测阶段为:
由于 Kalman 滤波器中假设“运动方程是线性的,且存在高斯噪声”,所以有:
又由于 Kalman 滤波器中假设“初始分布是高斯分布”,所以有:
从而
至此,一维 Kalman 滤波器算法中预测阶段两公式推导完毕。
2.2.2. 更新阶段三公式的推导
Bayes 滤波器的更新阶段为:
由于 Kalman 滤波器中假设“测量方程是线性的,且存在高斯噪声”,所以有:
在前一节中,已经推导出:
从而
把上式中指数部分写为
我们考虑一个均值为
和“两个一维高斯分布的乘积”一节类似,联立下面方程组:
求解后,得:
即
至此,我们已经计算出了
答案是肯定的。因为,令:
容易验证
至此,一维 Kalman 滤波器算法中更新阶段三公式推导完毕。
3. Kalman 滤波器的其它推导方法
前面介绍的 Kalman 滤波器的推导过程,是基于 Bayes 滤波器的。Kalman 滤波器还有其它形式的推导,如基于最小二乘估计法,这里不详细介绍。
参考:
http://stats.stackexchange.com/questions/86075/kalman-filter-equation-derivation
http://blog.csdn.net/xcq2000/article/details/11129189