卡尔曼滤波
最近正在学习传感器数据融合的课程,涉及到卡尔曼滤波,记录一下我自己对于卡尔曼滤波的理解,并且用matlab实现对人行进状态的预测。如有错误请留言,我会在第一时间做出更正。
@小白
目录
- 卡尔曼滤波的概念
- 卡尔曼滤波的5个经典公式
卡尔曼滤波的概念
卡尔曼滤波是一种利用线性系统状态方程,利用前一时刻的估计值和现在时刻的测量值来更新对状态变量的估计,然后求出现在时刻的估计值,卡尔曼滤波也是一种高效的自回归滤波器。
本文会从以下两个方面来讲述以下我对于卡尔曼滤波的理解。
-
单一的数值(一维的角度)
假设用多个传感器测量教室里的温度,得出的数据不太一样,例如X1、X2、……。那么这时如果我们想要知道教室里的温度具体是多少度,往往会采取求平均值的方式,得到温度的平均值:
接下来对温度的平均值进行化简,得到以下的公式:
从这个公式中我们可以得到,要想知道现在时刻的估计值就必须知道前一时刻的估计值和现在时刻的测量值,并且这是一种利用递归的形式来求解,随着测量次数的增加,后面一项逐渐变为0。在传感器测量温度的时候都会有一个测量误差(这个可以在传感器的手册中得知)我们把这个测量误差记为Emeak,在估计当前温度的时候也会有一个估计的误差,我们把这个误差记为Eesk,利用这两个误差之间的关系我们便得到了卡尔曼增益,记为Kk:
用卡尔曼增益来取代上式中的K得到最终的当前时刻的估计值的式子:
进行到这一步,我们可以得到以下的结论- 如果上一次估计的误差远远大于测量的误差,这时KK趋向于1,从公式中可以看出当前的