Kalman Filter的数学推导

关于Kalman Filter,有一篇很好的入门文章,建议先通读:

Understanding the Basis of the Kalman Filter Via a Simple and ...

不过这篇文章只推导了一元分布的情况,对多元分布的情况只是简单地写出结论。因此这里给出推导过程。

预备知识1:多元正态分布

多元正态分布$N(\mu,\Sigma)$的分布密度函数为:

$p(x)=\frac{1}{(2\pi)^{\frac{k}{2}}|\Sigma|^{\frac{1}{2}}}\exp(-\frac{(x-\mu)^T\Sigma^{-1}(x-\mu)}{2})$

对于没有涉及过多元统计的读者来说,重点在于理解协方差矩阵$\Sigma$。

具体介绍参看:The Multivariate Gaussian Distribution - CS 229

分布函数中还出现了协方差行列式$|\Sigma|$,这是一个Jacobian行列式,具体用途请复习多变量积分

预备知识2:正态分布的乘积

有两个人,一个人说$x$服从$N(\mu_1,\Sigma_1)$的正态分布,另一个人说$x$服从$N(\mu_2,\Sigma_2)$的正态分布。

作为一个中庸主义者,希望对$x$估算一个值,使得同时符合两个人说法的概率最大。因此最直接的方式是将两个概率分布相乘。结果依然是正态分布,且

$\Sigma=(\Sigma_1^{-1}+\Sigma_2{-1})^{-1}$

$\mu=(\Sigma_1^{-1}+\Sigma_2{-1})^{-1}(\Sigma_1^{-1}\mu_1+\Sigma_2^{-1}\mu_2)$

具体推导参看: Products and Convolutions of Gaussian ... - TINA vision system

上面两个式子表达很简洁,但是为了引入Kalman Gain这个概念,我们要对结果作进一步的推导。如果不熟悉矩阵运算尤其是逆矩阵的变换技巧,这个推导过程会显得晦涩,可以把整个过程使用单变量(而不是多变量)来演算一遍,再对照下面这个过程,会豁然开朗。

$\Sigma=(\Sigma_1^{-1}+\Sigma_2^{-1})^{-1}$

$=\Sigma_1\Sigma_1^{-1}(\Sigma_1^{-1}+\Sigma_2^{-1})^{-1}\Sigma_2^{-1}\Sigma_2$

$=\Sigma_1(\Sigma_1^{-1}(\Sigma_1^{-1}+\Sigma_2^{-1})^{-1}\Sigma_2^{-1})\Sigma_2$

$=\Sigma_1(\Sigma_1+\Sigma_2)^{-1}\Sigma_2$

$=\Sigma_1-\Sigma_1(\Sigma_1+\Sigma_2)^{-1}\Sigma_1$

$\mu=(\Sigma_1^{-1}+\Sigma_2^{-1})^{-1}(\Sigma_1^{-1}\mu_1+\Sigma_2^{-1}\mu_2)$

$=(\Sigma_1^{-1}+\Sigma_2^{-1})^{-1}\Sigma_1^{-1}\mu_1+(\Sigma_1^{-1}+\Sigma_2{-1})^{-1}\Sigma_2^{-1}\mu_2$

$=\Sigma_2(\Sigma_1+\Sigma_2)^{-1}\Sigma_1\Sigma_1^{-1}\mu_1+\Sigma_1(\Sigma_1+\Sigma_2)^{-1}\Sigma_2\Sigma_2^{-1}\mu_2$

$=\Sigma_2(\Sigma_1+\Sigma_2)^{-1}\mu_1+\Sigma_1(\Sigma_1+\Sigma_2)^{-1}\mu_2$

$=(\Sigma_1+\Sigma_2)(\Sigma_1+\Sigma_2)^{-1}\mu_1-\Sigma_1(\Sigma_1+\Sigma_2)^{-1}\mu_1+\Sigma_1(\Sigma_1+\Sigma_2)^{-1}\mu_2$

$=\mu_1+\Sigma_1(\Sigma_1+\Sigma_2)^{-1}(\mu_2-\mu_1)$

上面两个式子都出现了$\Sigma_1(\Sigma_1+\Sigma_2)^{-1}$,所以令$J=\Sigma_1(\Sigma_1+\Sigma_2)^{-1}$,有:

$\Sigma=\Sigma_1-J\Sigma_1$

$\mu=\mu_1+J(\mu_2-\mu_1)$

Kalman Filter的推导:

1、状态转移:

$x_t=F_tx_{t-1}+B_tu_t+w_t$

$w_t\sim N(0, Q_t)$

2、测量过程:

$z_t=H_tx_t+v_t$

$v_t\sim N(0, R_t)$

将测量值转换到状态空间中:

$H^{-1}z_t=x_t+H^{-1}v_t$

$x_t=H^{-1}z_t-H^{-1}v_t$

正态分布在线性变换后依然是正态分布,$H^{-1}v_t\sim N(0, H^{-1}R_tH^{-T})$

因此,测量过程表明:$x_t\sim N(H^{-1}z_t, H^{-1}R_tH^{-T})$

3、估计过程:

$\hat x_{t|t-1}=F_t \hat x_{t-1|t-1}+B_tu_t$

估计误差的协方差矩阵:

$P_{t|t-1}=Cov(x_t-\hat x_{t|t-1})=E[x_t-\hat x_{t|t-1})(x_t-\hat x_{t|t-1})^T]=FP_{t-1|t-1}F^T+Q_t$

因此估计过程表明:$x_t\sim N(\hat x_{t|t-1}, P_{t|t-1})$

4、组合

测量过程和估计过程都对$x_t$作了阐述,因此,引入预备知识二中的公式将两者组合到一起,

$x_t\sim N(\hat x_{t|t}, P_{t|t})$

其中

$\hat x_{t|t}=\mu_1+\Sigma_1(\Sigma_1+\Sigma_2)^{-1}(\mu_2-\mu_1)$

$=\hat x_{t|t-1}+P_{t|t-1}(P_{t|t-1}+H^{-1}R_tH^{-T})^{-1}(H^{-1}z_t-\hat x_{t|t-1})$

$=

$P_{t|t}=$

时间: 2024-12-29 06:29:23

Kalman Filter的数学推导的相关文章

卡尔曼滤波(Kalman Filter) 的进一步讨论

我们在上一篇文章中通过一个简单的例子算是入门卡尔曼滤波了,本文将以此为基础讨论一些技术细节. 卡尔曼滤波(Kalman Filter) http://blog.csdn.net/baimafujinji/article/details/50646814 在上一篇文章中,我们已经对HMM和卡尔曼滤波的关联性进行了初步的讨论.参考文献[3]中将二者之间的关系归结为下表. 上表是什么意思呢?我们其实可以下面的式子来表示,其中,w 和 v 分别表示状态转移 和 测量 过程中的不确定性,也即是噪声,既然是

无人驾驶技术之Kalman Filter原理介绍

基本思想 以K-1时刻的最优估计Xk-1为准,预测K时刻的状态变量Xk/k-1,同时又对该状态进行观测,得到观测变量Zk,再在预测与观之间进行分析,或者说是以观测量对预测量进行修正,从而得到K时刻的最优状态估计Xk. 具体实例 设一个机器人有两个状态量,分别为位置P,速度V.在这里记为: 卡尔曼滤波假设两个变量(位置和速度,在这个例子中)都是随机的,并且服从高斯分布.每个变量都有一个均值μ,表示随机分布的中心(最可能的状态),以及方差 ,表示不确定性.其中,位置和速度之间可以是相关的也可以是不相

卡尔曼滤波器 Kalman Filter (转载)

在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”.跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡 尔曼全名Rudolf Emil Kalman,匈牙利数学家,1930年出生于匈牙利首都布达佩斯.1953,1954年于麻省理工学院分别获得电机工程学士及硕士学位.1957年于哥 伦比亚大学获得博士学位.我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和1960年发表的论文<A New Approach to Linear Fil

(二). 细说Kalman滤波:The Kalman Filter

本文为原创文章,转载请注明出处,http://www.cnblogs.com/ycwang16/p/5999034.html 前面介绍了Bayes滤波方法,我们接下来详细说说Kalman滤波器.虽然Kalman滤波器已经被广泛使用,也有很多的教程,但我们在Bayes滤波器的框架上,来深入理解Kalman滤波器的设计,对理解采用Gaussian模型来近似状态分布的多高斯滤波器(Guassian Multi-Hyperthesis-Filter)等都有帮助. 一. 背景知识回顾 1.1 Bayes滤

卡尔曼滤波(Kalman Filter)原理与公式推导

一.背景---卡尔曼滤波的意义 随着传感技术.机器人.自动驾驶以及航空航天等技术的不断发展,对控制系统的精度及稳定性的要求也越来越高.卡尔曼滤波作为一种状态最优估计的方法,其应用也越来越普遍,如在无人机.机器人等领域均得到了广泛应用. 对于Kalman Filter的理解,用过的都知道"黄金五条"公式,且通过"预测"与"更新"两个过程来对系统的状态进行最优估计,但完整的推导过程却不一定能写出来,希望通过此文能对卡尔曼滤波的原理及状态估计算法有更一

Kalman Filter、Extended Kalman Filter以及Unscented Kalman Filter介绍

模型定义 如上图所示,卡尔曼滤波(Kalman Filter)的基本模型和隐马尔可夫模型类似,不同的是隐马尔科夫模型考虑离散的状态空间,而卡尔曼滤波的状态空间以及观测空间都是连续的,并且都属于高斯分布,因此卡尔曼滤波又称为linear Gaussian Markov model,它的数学定义如下:$$\underbrace{s_{t}=C s_{t-1}+G h_{t}+\gamma_{t}}_{\text { latent process }}, \quad \underbrace{x_{t}

对 Error-State Kalman Filter 的理解

我对 Error-State Kalman Filter 的理解.本文的主要参考文献是 Joan Sola 的 <Quaternion kinematics for the error-state Kalman filter>[1],当然是这本小册子,做 VIO 的人都会熟读这本册子. 1. ErKF 与 EFK 的区别 关于 Error-State Kalman Filter (ErKF) 与 Extended Kalman Filter (EKF) 之间的联系与区别可以参考论文 [2],论

(转) How a Kalman filter works, in pictures

How a Kalman filter works, in pictures I have to tell you about the Kalman filter, because what it does is pretty damn amazing. Surprisingly few software engineers and scientists seem to know about it, and that makes me sad because it is such a gener

GMM+Kalman Filter+Blob 目标跟踪

转 http://www.cnblogs.com/YangQiaoblog/p/5462453.html ==========图片版============================================================================== ===================================================================================== 最近学习了一下多目标跟踪,看了看Mat