卡尔曼滤波本质上是:非平稳信号下的序贯线性最小均方误差估计量
1、最小均方误差
对于经典的均方误差(Mean Square Error, MSE)方法认为,被估计量是一个确定的未知常量,因此经典MSE通过求解下式最小得到估计值
其中是观测量
的函数,即
而当估计量是一个随机变量时,上述的结果并没有考虑估计量的先验
,在添加先验信息后经典MSE将会变成贝叶斯均方误差(Bayes Mean Square Error, BMSE),其表达式如下
同样有,其中期望是根据
来求解的,使得BMSE最小的
被称为最小贝叶斯均方误差估计量也被称为最小均方误差(Minimum Mean Square Error, MMSE)估计量
2、线性最小均方误差
如果对函数做线性假设,即认为估计量由观测
线性组合而成,则有
,其BMSE可以写成
为了使得上式最小,对求导等于
可以得到
带入原式中并且继续对进行求导
最终求得
在零均值的假设下,即
,上式可以化简成
该估计量被称为线性最小方差估计量(Linear Minimum Mean Square Error, LMMSE)
3、卡尔曼滤波
如果所求变量在当前时刻
的值
和前一时刻的值
存在线性关系,即
其中驱动噪声,该方程俗称状态方程,表明了变量自身随着时间的变化情况,该方程一般和物理学、运动学等其他学科相关
同时对于所求变量会有相应的观测
,在线性假设下,认为有
其中观测噪声
令,在线性假设下,有
,根据前面LMMSE的结果可知
其中
上式中定义为
的线性函数,结果记为
,可以看到每次计算都需要联合
的所有数据,考虑到在时序上有很多重复计算,是否可以利用前一帧的结果
和当前的观测
计算得到
,即序贯LMMSE
为了参数分离,首先将分为不相关的
和新息
,这可以通过 Gram-Schmidt 正交化来实现,如下式所示
其中是将
看做估计量
看做观测量,在LMMSE下的结果,如下所示
可以证明,过程如下
左边等于
右边等于
将组成新的向量
,注意到
可以由
线性变换得到,所以两者的 LMMSE 结果一致,将前面得到的关于
的 LMMSE 结果转变成关于
的 LMMSE 结果,如下所示
其中
注意到矩阵中存在部分0,因此转变后的 LMMSE 结果可以拆成
利用可以得到
继而可以得到
如果令,则有
其中
根据的表达式,很容易证明
因此有
利用和
,可以得到
令,则上式变成
另一方面利用,可以得到
因此有
其中
最后需要给出和
的递推公式
利用,可以得到
利用可以得到
至此所有递推公式都推导完毕,可以很清楚地看到一切皆起源于方程
后面的推导只是在完成该方程序贯形式下的结果罢了,而该方程的起源来自于线性假设,所以卡尔曼滤波本质上是非平稳信号下的序贯线性最小均方误差估计量,其最终结果可以总结如下步骤:
初始化:
预测估计量:
预测最小 MSE 矩阵:
增益矩阵:
修正估计量:
修正最小 MSE 矩阵:
4、扩展卡尔曼滤波
卡尔曼滤波基于线性假设,当状态方程和观测方程均不为线性的时候,如下所示
如果认为前一时刻的值几乎在真值附近,将非线性函数进行泰勒展开可以得到
其中
则原状态和观测方程将会变为
其中,
最终结果可以总结如下步骤:
初始化:
预测估计量:
预测最小 MSE 矩阵:
增益矩阵:
修正估计量:
修正最小 MSE 矩阵:
可以看到与前面有差别的部分主要在于 “预测估计量” 和 “修正估计量” 两个步骤