估计状态而不是单纯抹平曲线

卡尔曼滤波(Kalman filter)把观测数据同状态空间模型结合,用已有信息递推估计不能直接精确获知的状态。鲁道夫·卡尔曼在1960年前后给出了这一方法的关键结果。它不仅是把相邻测量取平均,更不是所有降噪算法的统称;模型可以描述位置、速度等状态怎样演化,以及传感器究竟测量其中哪些量。

以离散时间线性形式表示,下一时刻状态由当前状态、已知输入和过程噪声决定,测量则由状态的线性映射加上测量噪声构成。基本模型通常假设两类噪声均值为零、在不同时刻不相关且彼此不相关,并给定其协方差Q和R。初始状态估计及初始误差协方差P同样是算法的必要输入。

参考:[1] [2]

预测与测量更新

预测步骤把上一轮状态估计通过状态转移模型推进,并传播误差协方差;过程噪声项反映在这段时间中新增加的不确定性。测量到来后,先比较实际测量与模型预测的测量,两者之差称为新息。卡尔曼增益决定把多少新息加到预测状态上,同时更新误差协方差。

对于直接测量单个状态、测量误差与预测误差不相关的情形,增益K=P预测/(P预测+R)。预测误差方差较大时,算法更重视新测量;测量噪声方差较大时,则更多保留预测。多维系统中增益是矩阵,要处理不同状态和测量之间的联系,不能再把它简单理解为一个处处相同的百分比。

参考:[2] [1]

一维位置的数值例子

设一维物体当前位置的预测为10米,预测误差方差为4平方米;传感器报告12米,其测量噪声方差为1平方米。增益为4/(4+1)=0.8,新息为2米,因此更新后的估计为10+0.8×2=11.6米,而不是直接接受12米,也不是机械地取两者中点。

在这个标量模型下,更新后的误差方差为(1−0.8)×4=0.8平方米。若下一步采用位置随机游走模型,并设过程噪声方差为0.2平方米,那么下一轮预测方差增至1平方米,表达等待期间的不确定性增长。这些数字是说明递推机制的设定,不是对某种传感器精度的实测结论。

参考:[2]

最优性的条件与扩展

在线性模型和相应二阶统计假设下,卡尔曼滤波可获得线性估计器范围内的最小均方误差。若初始状态及噪声还满足适当的高斯假设,递推均值和协方差就能完整描述条件分布,并得到不限于线性估计器的均方误差最优解。“最优”指这些模型条件下的统计指标,不保证每一次估计都最接近真实值。

模型参数或Q、R设错,会使算法过度相信模型或传感器;协方差数值变小也不能证明现实误差必然同步减小。扩展卡尔曼滤波在当前估计附近线性化非线性模型,是近似方法,不自动拥有原线性高斯情形的保证。普通滤波只使用当前及过去观测,利用后续观测回头改进过去状态的平滑算法,也应与它区分。

参考:[1] [2] [3]