卡尔曼滤波:卡尔曼滤波器
卡尔曼滤波的过程可以概括为3个步骤:预测(prediction),观测(observation),协调或修正(correction)。
预测即根据系统当前的状态预测系统下一个状态,并且评估预测误差。
接下来,我们在经过一定时间后读取或者说观测系统的状态(系统现在转换到了新状态)。基于数学模型,把读取的信息转换为系统状态。同样,我们要评估观测误差。
下一步是协调两个状态估计(即预测状态和观测状态),并且要考虑两个相关误差的大小。即预测的估计值要根据观测值进行修正。因此,这被称为修正步骤。来自修正步骤的系统状态的协调估计是当前系统状态的最终估计。
这样,我们去到下一个系统状态。然后,重复以上三个步骤继续估计下下个系统状态。卡尔曼滤波就是这样一个重复“预测-->修正”的方法。如下图:

那么是如何修正预测值得的呢?我们可以把对下一个状态的预测值理解为期望的观测值,把这这称为预测观测值(predicted observation)。修正状态在卡尔曼滤波器中表示为:

式子中,实际观测值(actual observation)和预测观测值(predcited observation)的差距称为observation innovation。称为Kalman gain。卡尔曼滤波方法规定了
为使得修正状态具有最小的误差方差的值。
卡尔曼还证明了在状态值和观测值的数学模型都是线性的,并且误差来自独立的高斯分布的情况下,该过程是最优的。
接下来看一下卡尔曼滤波步骤的正式规定:
表示在时间
的状态。注意,状态可以是一个向量,说明这个状态是多维的。在卡尔曼滤波器中,用于预测时间
的状态的数学模型是:

是一个矩阵,
,
分别表示在时间
和时间
的状态向量,
是误差向量表示模型的不准确性。
表示在时间
的观测值(即观测到的状态)。表示为:

在这种情况下,矩阵和
是已知的。起初,根据到时间
为止的状态信息,我们对时间
的状态做一个预测,表示为
。预测误差在一维状态的情况下表示为方差,在多维状态的情况中表示为协方差矩阵,用符号
表示。类似地,观测误差在一维状态的情况下表示为方差,在多维状态的情况中表示为协方差矩阵,观测误差用
表示。
这样卡尔曼滤波步骤的正式规定为:

这些步骤会在下一个时间点重复执行。