前一篇贝叶斯滤波中提到了贝叶斯滤波不是一种实用的方法,没有办法在计算机中进行表达。是因为贝叶斯是一种抽象的滤波器,其中的置信度表示都是抽象的,没有明确的表达式,没有办法计算积分。尽管如此,贝叶斯给我们提供了一种关于状态最优估计的方法,本篇及后续可能更新的方法皆是贝叶斯滤波的实现方式。
1、高斯滤波
在正式介绍卡尔曼之前,需要先对高斯滤波做一个说明。
高斯滤波是一种递归状态估计器,为了解决贝叶斯滤波器中置信度没有明确表示方法的缺陷,高斯滤波给出了一种置信度用多元正态分布表示的思路,这也是为什么称之为高斯滤波。各种高斯滤波成为连续空间中贝叶斯滤波的有效实现。
置信度用多元正太分布表示:
状态向量x的概率密度用正太分布来表示(即正态分布的均值和方差) ,由于状态是多维的,所以正态分布的均值是一个向量,维数与状态向量维数相同;这里的方差也相应的变成可以衡量多个状态变量同步程度的协方差(后续不再区分,单一变量为方差,多变量为协方差)。
高斯滤波中的参数:均值和方差,称为矩参数。均值为一阶矩,方差为二阶矩。
利用正态分布表示置信度的理解:正态分布的均值即表示最优的状态估计值;方差表示不确定性程度。
2、卡尔曼滤波
2.1、线性高斯系统
卡尔曼滤波作为一种线性高斯系统,实现了对连续状态的置信度计算。作为线性系统,为确保后验分布同样是高斯分布,除贝叶斯滤波中的马尔可夫假设之外,还有如下三个假设:
- 状态转移概率必须是带有随机高斯噪声(均值为0,方差为)的参数的线性函数:
该状态转移概率称为线性高斯,状态转移函数与其参数呈线性关系,与带有附加高斯噪声的自变量呈线性 。
At为nxn的方阵,n为状态向量的维数;Bt为nxm的矩阵,m为控制向量的维数。
多元正态分布表示如下: