【转】卡尔曼滤波算法详细推导(相当值得一看)
转载自 卡尔曼滤波算法详细推导 这一篇对预备知识的介绍还是很好的,过程与原理讲解也很到位,应该是目前看到中文里最好的讲解了。
一、预备知识
1、协方差矩阵
是一个维列向量,是的期望,协方差矩阵为
可以看出
协方差矩阵都是对称矩阵且是半正定的
协方差矩阵的迹是的均方误差
2、用到的两个矩阵微分公式
公式一:
公式二:若是对称矩阵,则下式成立
tr表示矩阵的迹,具体推导过程参考相关矩阵分析教程
二、系统模型与变量说明
1、系统离散型状态方程如下
由k-1时刻到k时刻,系统状态预测方程
系统状态观测方程
2、变量说明如下
:状态转移矩阵
:系统输入向量
:输入增益矩阵
:均值为0,协方差矩阵为,且服从正态分布的过程噪声
:测量矩阵
:均值为0,协方差矩阵为,且服从正态分布的测量噪声
初始状态以及每一时刻的噪声都认为是互相独立的,实际上,很多真实世界的动态系统都并不确切的符合这个模型;但是由于卡尔曼滤波器被设计在有噪声的情况下工作,一个近似的符合已经可以使这个滤波器非常有用了。
三、卡尔曼滤波器
卡尔曼估计实际由两个过程组成:预测与校正,在预测阶段,滤波器使用上一状态的估计,做出对当前状态的预测。在校正阶段,滤波器利用对当前状态的观测值修正在预测阶段获得的预测值,以获得一个更接进真实值的新估计值。
1、变量说明
:真实值
:卡尔曼估计值
:卡尔曼估计误差协方差矩阵
:预测值
:预测误差协方差矩阵
:卡尔曼增益
:测量余量
2、卡尔曼滤波器计算过程
预测:
校正:
更新协方差估计:
观察以上六个式子,我们使用过程中关键要明白,的算法原理,及的更新算法
3、卡尔曼滤波算法详细推导
从协方差矩阵开始说起,真实值与预测值之间的误差为
预测误差协方差矩阵为
真实值与估计值之间的误差为
卡尔曼估计误差协方差矩阵为
将代入得到
其中 ,并将预测误差协方差矩阵代入,得到
卡尔曼滤波本质是最小均方差估计,而均方差是的迹,将上式展开并求迹
最优估计使最小,所以上式两边对求导
套用第一节中提到的那两个矩阵微分公式,得到
令上式等于0,得到
到此,我们就知道了卡尔曼增益是怎么算出来的了,但是又有问题,是怎么算的呢?
(注意其中展开过程用到了)
所以预测误差协方差矩阵可以由上一次算出的估计误差协方差矩阵及状态转移矩阵和过程激励噪声的协方差矩阵算得
4、总结
总结卡尔曼滤波的更新过程为
1步,首先,已知,然后由算出,再由算出,有了这些参数后,结合观测值就能估计出,再利用更新
2步,然后下次更新过程为由算出,再由算出,有了这些参数后,结合观测值就能估计出,再利用更新
......
n步,由算出,再由算出,有了这些参数后,结合观测值就能估计出,再利用更新
这就是卡尔曼滤波器递推过程。
至于的算法,
将代入上式右边最后一项中 ,保持原样
(转载请声明出处 谢谢合作)
reference:
1、https://zh.wikipedia.org/wiki/%E5%8D%A1%E5%B0%94%E6%9B%BC%E6%BB%A4%E6%B3%A2
2、《矩阵分析与应用》 张贤达 著
【转】卡尔曼滤波算法详细推导(相当值得一看)相关推荐
- 扩展卡尔曼滤波(EKF)算法详细推导及仿真(Matlab)
前言 扩展卡尔曼滤波算法是解决非线性状态估计问题最为直接的一种处理方法,尽管EKF不是最精确的"最优"滤波器,但在过去的几十年成功地应用到许多非线性系统中.所以在学习非线性滤波问题 ...
- CRC32算法详细推导(3)
From:http://blog.csdn.net/sparkliang/article/details/5671543 CRC32算法详细推导(3) 郁闷的位逆转 看起来我们已经得到 CRC-32 ...
- Kalman滤波算法详细推导及简单匀速直线运动程序仿真(matlab)
Kalman滤波算法详细推导及简单匀速直线运动程序仿真(matlab) 起初只是知道Kalman滤波的核心公式和会用,没有仔细研究,最近老师让讲Kalman算法,所以系统的学习了该算法,并结合匀速直线 ...
- lasso,lars算法详细推导过程-数学
首发于程序员的伪文艺 关注专栏写文章 从Lasso开始说起 李新春 既可提刀立码,行遍天下:又可调参炼丹,卧于隆中. 关注他 317 人赞同了该文章 Lasso是Least Absolute Shr ...
- SMO算法详细推导(Sequential Minimal Optimization)
本文针对一般性的"软判断的核函数的对偶问题的SVM",形如下式: 上式问题所在:当采样点 xix_ixi 选取50000个点时,则基于核函数变量Θ(xi,xj)\bm{\Thet ...
- 【深度学习】感知器、线性神经网络案例应用、BP神经网络算法详细推导
感知器.线性神经网络.BP神经网络及手写数字识别 1. 单层感知器 1.1 感知器的介绍 1.2 感知器的学习规则 1.3 感知器单输入输出示例 1.4 学习率 η\etaη 1.5 模型训练收敛条件 ...
- em算法 实例 正态分布_【机器学习】EM算法详细推导和讲解
今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...
- 【2019.11.27】EM算法详细推导
EM算法 无隐变量下,极大似然函数为: L(θ)=∏iP(xi;θ)L(\theta) = \prod_iP\left(x^{i};\theta\right) L(θ)=i∏P(xi;θ) 含隐变量 ...
- RNN BPTT算法详细推导
BPTT算法推导 BPTT全称:back-propagation through time.这里以RNN为基础,进行BPTT的推导. BPTT的推导比BP算法更难,同时所涉及的数学知识更多,主要用到了 ...
最新文章
- Java,Hello world 欢迎进入Java世界
- Zabbix-2.2.4,显示中文语言的选项方法
- android通过数组,流播放声音的方法,音频实时传输
- C++Primer:函数(参数传递:引用形参)
- D - Connect the Cities (HDU - 3371)
- 如何胜任一个小型公司的技术总监?我的感想
- 四 Apache Axis2 部署 WebService
- java白皮书关键术语
- 成功送小米上市的米粉们,反被 P2P 爆雷炸成了灰!
- tukey 窗口_语音信号滤波去噪——使用TUKEYWIN窗设计的FIR滤波器.
- linux的netperf测试,linux下Netperf使用详解
- pandas学习-中期测试
- Ubuntu下插入网线无法联网的问题
- WePhone手机软件已下架 疑因资金问题导致无法使用
- 12-Web安全—基于SQL Server的报错注入——and,conver,cast
- mac的angular/cli安装及踩坑记录
- sklearn提示cannot import name ‘MaskedArray‘ from ‘sklearn.utils.fixes‘的解决方法
- python金融风控评分卡模型
- Android的绘画软件,可以画漫画的软件有那些?你们要的安卓绘画软件,拿走吧!...
- 奥迪坚助力富友集团搭建 “收件宝”客服系统平台
热门文章
- php语言出现弹框 再提交怎么写,jquery/php和多语言确认/警报框
- mysql update w3c_PHP MySQL Update
- Promise基础用法
- 自建MySQL和阿里云RDS的区别 有必要使用云数据库吗?...
- JavaScript定时器的工作原理(翻译)
- 0308-标签的用法(a,ul/ol,table)
- 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
- 手把手教你写移动端瀑布流控件布局篇
- mysqldump远程备份mysql数据库方法
- 通用数组(练习,可能有错)