先上公式:
在一个离散控制过程的系统中,假设该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:
。
其中x是系统的状态向量,大小为n* 1列;A为转换矩阵,大小为n* n;u为系统输入,大小为k* 1;B是将输入转换为状态的矩阵,大小为n* k;随机变量w为系统噪声(高斯白噪声,均值为0,方差为Q)。再加上系统测量值:
。
其中z是测量值,大小为m* 1;H是状态变量到测量的转换矩阵,大小为m*n;随机变量v是测量噪声(高斯白噪声,均值为0,方差为R)。这些测量值是由系统状态变量映射出来的。对于满足以上线性随机微分系统、过程和测量都是高斯白噪声两个条件的滤波问题,卡尔曼滤波器是最优的信息处理器。
卡尔曼滤波是一种递归过程,主要有预测和更新两个步骤。其中预测包括状态预测和协方差预测,主要是对系统状态的预测。更新包括计算卡尔曼增益、状态更新和协方差更新。因此整个递归过程包括五个方面的计算:1)状态预测;2)协方差预测;3)卡尔曼增益;4)状态更新;5)协方差更新。具体公式在文章顶部。
正如卡尔曼滤波的步骤,卡尔曼滤波的核心也就是预测+测量反馈。本人认为的一种好的理解卡尔曼滤波的方式是,根据系统所给的参数、k-1时刻的系统观测值,预测k时刻的系统状态分布是一种高斯分布;根据k时刻系统观测值得到的k时刻的系统状态分布也是一种高斯分布,这两种分布存在交集,卡尔曼滤波就是从这两种分布中得到的新的高斯分布,求得最优估计值。换一种说法,在多元高斯分布中,各个变量服从高斯分布,每个变量都有一个均值 μ,表示随机分布的中心(最可能的状态),以及方差,表示不确定性。理论预测值属于先验信息,而观测值属于后验信息,卡尔曼滤波基于最小均方差,从先验、后验信息中求得最优估计。
附上几篇参考的博文,都非常不错:
国外某大神形象的分析卡尔曼滤波
卡尔曼滤波的推导