卡尔曼滤波器(估计器)1

之所以在标题后面加上估计器,我觉得这样更加平易近人,很多人可能听到滤波器不知道它用来干嘛的,但是估计器顾名思义就是用来估计东西的。卡尔曼估计器其实就是用来估计一些未知的变量,并且它是一种最优的递归算法。

什么是递归算法

举个简单的例子,比如你在用尺子测量硬币的直径,由于尺子自身有误差以及还有你测量时也有误差,导致每次测量的结果会不太一样,假设每次的测量结果为 [公式] ,那么对硬币直径的估计可以表示为多次测量的平均值

[公式]

进一步可以写成

[公式]

这就是一种递归的形式!可以看到第 [公式] 次测量后对直径的估计与上一次的估计结果 [公式] 以及第 [公式] 次的测量结果 [公式] 有关。

可以看到随着测量次数 [公式] 的增加,测量结果不再重要 [公式] ,即 [公式] 

将递归算法用文字表示为:

[公式]

这里的系数其实就是卡尔曼增益。

假设每次估计需要考虑上一次估计的估计误差和本次的测量误差,一个很直觉很直观的理解就是:

  1. 如果估计误差远大于测量误差,也就是说测量的准呗,那当前时刻的估计值应该偏向于本次的测量值。
  2. 如果测量误差远大于估计误差,也就是说测量不准呗,那当前时刻的估计值应该更偏向于上一次的估计值。

其实这就有点像数据融合,谁的可信度高它就偏向谁,或者说可信度高的权重大。

用一个简单的比例关系就可以定义出这个卡尔曼增益的形式了,即

[公式]