简介
卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出测量数据,对系统状态进行最优估计的算法。由于测量数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。卡尔曼滤波器只需要存储前一个状态的参数,不需要额外保留其他历史数据,因此具有内存占用小,计算速度快的优点,因此很适合应用于解决实时问题和嵌入式系统。
原理
详情参考The alpha - beta - gamma filter,该网站对卡尔曼滤波的原理进行了由浅入深地解读。这里简单介绍下卡尔曼滤波的五个方程:
1.状态更新方程,表示根据系统当前状态对下一时刻状态的估计,其中x为估计值,z为测量值,Kn为卡尔曼增益。该公式也可以转换为下面的形式:
这种形式就比较直观了,Kn其实就是一个权重,平衡了上一个时刻的估计值和当前测量值,加权计算出当前时刻的估计值。
2.状态外推方程,上图给出的是匀速系统中的情况,以匀速直线运动为例,当前时