对Kalman Filter的理解
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的理解相关推荐
- 对 Error-State Kalman Filter 的理解
我对 Error-State Kalman Filter 的理解.本文的主要参考文献是 Joan Sola 的 <Quaternion kinematics for the error-stat ...
- 卡尔曼滤波(Kalman Filter)原理理解和测试
Kalman Filter学原理学习 1. Kalman Filter 历史 Kalman滤波器的历史,最早要追溯到17世纪,Roger Cotes开始研究最小均方问题.但由于缺少实际案例的支撑(那个 ...
- Quaternion kinematics for the error-state Kalman filter 资料整理
Quaternion kinematics for ESKF-预测 Quaternion kinematics for ESKF-更新 文章翻译-基于误差状态卡尔曼滤波器的四元数运动学-前言 ESKF ...
- [Math]理解卡尔曼滤波器 (Understanding Kalman Filter)
2. 基本模型 2.1 系统模型 卡尔曼滤波模型假设k时刻的真实状态是从(k − 1)时刻的状态演化而来,符合下式: (1) Fk 是作用在 Xk−1 上的状态变换模型(/矩阵/矢量). Bk 是作 ...
- matlab温度数据怎么滤波_卡尔曼滤波算法思想理解 Kalman filter 第一篇
卡尔曼滤波算法思想理解 Kalman filter 第一篇 最近在初步的理解目标跟踪的领域, 其中一个非常经典的算法卡尔曼滤波Kalman filter是需要有很好的理解才行, 由于已经脱离了学校,懂 ...
- 卡尔曼滤波器(Kalman Filter) 理解
卡尔曼滤波器 1 简介(Brief Introduction) 在学习卡尔曼滤波器之前,首先看看为什么叫"卡尔曼".跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是 ...
- kalman filter卡尔曼滤波器- 数学推导和原理理解-----网上讲的比较好的kalman filter和整理、将预测值和观测值融和...
= 参考/转自: 1 ---https://blog.csdn.net/u010720661/article/details/63253509 2----http://www.bzarg.com/p/ ...
- kalman、particle filter直白理解
1. particle filter Sampling Importance Resampling (SIR),根据重要性重采样.下面是我对粒子滤波实现物体跟踪的算法原理的粗浅理解: 1)初始化阶段- ...
- 一文图解卡尔曼滤波(Kalman Filter)
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 译者注:这恐怕是全网有关卡尔曼滤波最简单易懂的解释,如果你认真的读 ...
最新文章
- P2730 魔板 Magic Squares
- jquery的四层联动插件jquerySelect
- MyBatis的修改数据操作
- iOS15字符串格式化缺0补0的写法
- 【Git、GitHub、GitLab】二 Git基本命令之建立Git仓库
- 第一个简单的注册页面
- python - super 寻找继承关系
- 【外文文献检索与下载方法】
- python 更新pip镜像源
- 联想服务器告警信息分析,联想服务器mib分析
- 斯伦贝谢好进吗_拼集市 环球购30%智商税你还交吗
- matlab igbt在哪,提出问题:“IGBT是什么?都在哪里有应用?”
- 《知乎周刊:读书这件小事》摘记及书评
- Matlab根据特征值排序特征向量
- css实现图片虚化_css怎么虚化背景图片?css虚化背景图片的方法介绍
- 数据结构实习(欢迎大家一起在评论区交流学习)
- 大数据面试题汇总(含数仓)
- iOS开发中Touch ID的使用
- POJ 2263 Heavy Cargo
- C#通过操作注册表检测office版本