1. 卡尔曼滤波理论回顾

对于一个动态系统,我们首先定义一组状态空间方程

状态方程:     

测量方程:      

xk是状态向量,zk是测量向量,Ak是状态转移矩阵,uk是控制向量,Bk是控制矩阵,wk是系统误差(噪声),Hk是测量矩阵,vk是测量误差(噪声)。wk和vk都是高斯噪声,即

整个卡尔曼滤波的过程就是个递推计算的过程,不断的“预测——更新——预测——更新……”

预测

预测状态值:              

预测最小均方误差:   

更新

测量误差:                   

测量协方差:                

最优卡尔曼增益:         

修正状态值:                

修正最小均方误差:     

算法的核心思想是,根据当前的仪器"测量值" 和上一刻的 "预测量" 和 "误差",计算得到当前的最优量.   再 预测下一刻的量, 里面比较突出的是观点是. 把误差纳入计算, 而且分为预测误差和测量误差两种.通称为 噪声。还有一个非常大的特点是,误差独立存在, 始终不受测量数据的影响。


2. 例子

上面的ppt有助于入门理解。

但是在编程的时候你会发现,解释里面的数值23 没有很明确的指出,是指的那个时刻的23 是预测的23 还是上一课测量的23。

下面这段文字会有助于你更清晰的理解:

卡尔曼滤波是统计学的程序表达,要想深入理解,公式三 协方差的背后意义 需要学习统计学。

如果仅仅是使用的话,这5个公式套进程序里面还是很容易的。

看到这里如果你明白了原理,你再回过头看看,会发现,误差是独立存在的,误差不受数据的影响。误差按照统计学的协方差公式更新,跟数据无关。而且误差是不断变化的。

3. 通俗理解

假设你有两个传感器,测的是同一个信号。可是它们每次的读数都不太一样,怎么办?取平均。再假设你知道其中贵的那个传感器应该准一些,便宜的那个应该差一些。那有比取平均更好的办法吗?加权平均。怎么加权?假设两个传感器的误差都符合正态分布,假设你知道这两个正态分布的方差,用这两个方差值,(此处省略若干数学公式),你可以得到一个“最优”的权重。接下来,重点来了:假设你只有一个传感器,但是你还有一个数学模型。模型可以帮你算出一个值,但也不是那么准。怎么办?把模型算出来的值,和传感器测出的值,(就像两个传感器那样),取加权平均。OK,最后一点说明:你的模型其实只是一个步长的,也就是说,知道x(k),我可以求x(k+1)。问题是x(k)是多少呢?答案:x(k)就是你上一步卡尔曼滤波得到的、所谓加权平均之后的那个、对x在k时刻的最佳估计值。于是迭代也有了。这就是卡尔曼滤波。

    卡尔曼滤波(Kalman filter)是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波会根据各测量量在不同时间下的值,考虑各时间下的联合分布,再产生对未知变数的估计,因此会以只以单一测量量为基础的估计方式要准。

卡尔曼滤波的算法是二步骤的程序。在估计步骤中,卡尔曼滤波会产生有关目前状态的估计,其中也包括不确定性。只要观察到下一个量测(其中一定含有某种程度的误差,包括随机噪声)。会通过加权平均来更新估计值,而确定性越高的量测加权比重也越高。算法是迭代的,可以在实时控制系统中执行,只需要目前的输入量测、以往的计算值以及其不确定性矩阵,不需要其他以往的资讯。

使用卡尔曼滤波不用假设误差是正态分布[3],不过若所有的误差都是正态分布,卡尔曼滤波可以得到正确的条件机率估计。也发展了一些扩展或是广义的卡尔曼滤波,例如运作在非线性糸统的扩展卡尔曼滤波及无损卡尔曼滤波(unscented Kalman filter)。底层的模型类似隐马尔可夫模型,不过潜在变量的状态空间是连续的,而且所有潜在变量及可观测变数都是正态分布。

卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,通过对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度。在很多工程应用(如雷达、计算机视觉)中都可以找到它的身影。同时,卡尔曼滤波也是控制理论以及控制系统工程中的一个重要课题。例如,对于雷达来说,人们感兴趣的是其能够跟踪目标。但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑)。

对Kalman Filter的理解相关推荐

  1. 对 Error-State Kalman Filter 的理解

    我对 Error-State Kalman Filter 的理解.本文的主要参考文献是 Joan Sola 的 <Quaternion kinematics for the error-stat ...

  2. 卡尔曼滤波(Kalman Filter)原理理解和测试

    Kalman Filter学原理学习 1. Kalman Filter 历史 Kalman滤波器的历史,最早要追溯到17世纪,Roger Cotes开始研究最小均方问题.但由于缺少实际案例的支撑(那个 ...

  3. Quaternion kinematics for the error-state Kalman filter 资料整理

    Quaternion kinematics for ESKF-预测 Quaternion kinematics for ESKF-更新 文章翻译-基于误差状态卡尔曼滤波器的四元数运动学-前言 ESKF ...

  4. [Math]理解卡尔曼滤波器 (Understanding Kalman Filter)

    2. 基本模型 2.1 系统模型 卡尔曼滤波模型假设k时刻的真实状态是从(k − 1)时刻的状态演化而来,符合下式:  (1) Fk 是作用在 Xk−1 上的状态变换模型(/矩阵/矢量). Bk 是作 ...

  5. matlab温度数据怎么滤波_卡尔曼滤波算法思想理解 Kalman filter 第一篇

    卡尔曼滤波算法思想理解 Kalman filter 第一篇 最近在初步的理解目标跟踪的领域, 其中一个非常经典的算法卡尔曼滤波Kalman filter是需要有很好的理解才行, 由于已经脱离了学校,懂 ...

  6. 卡尔曼滤波器(Kalman Filter) 理解

    卡尔曼滤波器 1 简介(Brief Introduction) 在学习卡尔曼滤波器之前,首先看看为什么叫"卡尔曼".跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是 ...

  7. kalman filter卡尔曼滤波器- 数学推导和原理理解-----网上讲的比较好的kalman filter和整理、将预测值和观测值融和...

    = 参考/转自: 1 ---https://blog.csdn.net/u010720661/article/details/63253509 2----http://www.bzarg.com/p/ ...

  8. kalman、particle filter直白理解

    1. particle filter Sampling Importance Resampling (SIR),根据重要性重采样.下面是我对粒子滤波实现物体跟踪的算法原理的粗浅理解: 1)初始化阶段- ...

  9. 一文图解卡尔曼滤波(Kalman Filter)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 译者注:这恐怕是全网有关卡尔曼滤波最简单易懂的解释,如果你认真的读 ...

最新文章

  1. P2730 魔板 Magic Squares
  2. jquery的四层联动插件jquerySelect
  3. MyBatis的修改数据操作
  4. iOS15字符串格式化缺0补0的写法
  5. 【Git、GitHub、GitLab】二 Git基本命令之建立Git仓库
  6. 第一个简单的注册页面
  7. python - super 寻找继承关系
  8. 【外文文献检索与下载方法】
  9. python 更新pip镜像源
  10. 联想服务器告警信息分析,联想服务器mib分析
  11. 斯伦贝谢好进吗_拼集市 环球购30%智商税你还交吗
  12. matlab igbt在哪,提出问题:“IGBT是什么?都在哪里有应用?”
  13. 《知乎周刊:读书这件小事》摘记及书评
  14. Matlab根据特征值排序特征向量
  15. css实现图片虚化_css怎么虚化背景图片?css虚化背景图片的方法介绍
  16. 数据结构实习(欢迎大家一起在评论区交流学习)
  17. 大数据面试题汇总(含数仓)
  18. iOS开发中Touch ID的使用
  19. POJ 2263 Heavy Cargo
  20. C#通过操作注册表检测office版本

热门文章

  1. React性能优化:immutability-helper
  2. 研究人员表示Wi-Fi WPA3有重多的安全漏洞
  3. 使用SpringBoot Admin监控SpringCloud微服务
  4. Android 4.0 SDK下载安装
  5. linux下Oracle 10g安装(超级详细图解教程)
  6. **bootstrap常见常用样式总结
  7. 傅里叶变换库FFTW的安装配置(VS2010)
  8. iOS开发篇——赋值语句介绍(C++)
  9. 《C语言深度解剖》学习笔记之符号
  10. mysql做主从复制配置案例