Kalman Filter(卡尔曼滤波器算法)

SciTech-BigDataAIML-Python Time Series Handbook

Kalman filter is also known as:

Optimal Recursive Data Processing Algorithm.

最优的递归数据处理算法

网上文档:

Overview

This lecture will cover the following topics:

  • Introduction to the Kalman Filter.
  • Model components and assumptions.
  • The Kalman Filter algorithm.
  • Application to static and dynamic one-dimensional data.
  • Application to higher-dimensional data.

What is a Kalman Filter?

  • The Kalman Filter (KF) is an algorithm that uses a series of measurements observed over time, containing statistical noise and other inaccuracies.
  • It produces estimates of unknown variables that tend to be more accurate than those based only on measurements.
  • Developed by Rudolf E. Kálmán in the late 1950s.
  • Applications:

    tracking objects (Auto EV, GPS, self driving cars).

    image processing.

    economic and financial modeling.

Theoretical foundations

  • Dynamic systems are systems that change over time.
  • They are described by a set of equations that predict the future state of the system based on its current state.
  • The KF assumes the system is a linear dynamic system with Gaussian noise.
  • Gaussian distributions are used because of their nice properties when dealing with averages and variances.

What are the ingredients?

State

  • The true value of the variables we want to estimate.
  • The state vector represents all the information needed to describe the current state of the system.

Observation model

*Relates the current state to the measurements or observations.

Noisy measurements

The process noise and measurement noise (assumed to be Gaussian) represent the uncertainty in our models and measurements.

Example:

  • Car moving at a constant velocity.
  • Model: Car position = velocity × time + system noise.
  • Measurements: position and velocity (which are also noisy).

The role of noise

  • The tradeoff between the influence of the model and the measurements is determined by noise.
  • If the model has relatively large errors, more importance is given to the latest measurements in computing the current estimate.
  • If the measurements have larger errors, more importance is given to the model in making the current estimate.
  • Therefore, you need to estimate not only your state but also the errors

Update strategy

  • KF is a recursive algorithm:

    • Uses information from previous time step to update the estimates.
    • Does not keep in memory all the data acquired so far.
  • Has predictor-corrector structure:

  • Make a prediction based on the model.

  • Update the prediction with the measurements.

  • Repeat.

Fundamental assumptions

The Kalman filter approach is based on three fundamental assumptions:

  • The system can be described or approximated by a linear model.
  • All noise (from both the system and the measurements) is white, i.e., the values are not correlated.

All noise is Gaussian.

Assumption 1: linearity

  • Each variable at the current time is a linear function of the variables at previous times.
  • Many systems can be approximated this way.
  • Linear systems are easy to analyze.

    Nonlinear systems can often be approximated by linear models around a current estimate (extended KF).

Assumption 2: Whiteness

  • The noise values are not correlated in time.

    If you know the noise at time, it doesn't help you to predict the noise at future times.
  • White noise is a reasonable approximation of the real noise.

    The assumption makes the mathematics tractable.

    Note White noise contains a mix of all the different frequencies at the same intensity blended together.

    This is similar to how white light contains all the colors of the rainbow combined.

Assumption 3: Gaussian noise

At any point in time, the probability density of the noise is a Gaussian.

System and measurement noise are often a combination of many small sources of noise.

The combination effect is approximately Gaussian.

If only mean and variance are known (typical case in engineering systems), Gaussian distribution is a good choice as these two quantities completely determine the Gaussian distribution.

Gaussian distribution have nice properties and are easy to treat mathematically.

Technical details

Combining two sources

Assume a car has a certain initial position and initial velocity.

If the speed is constant, we have:

SciTech-BigDataAIML-Python Time Series Handbook - Kalman filter:( Optimal Recursive Data Processing Algorithm): 卡尔曼滤波器算法(也称“最优的递归数据处理算法”)的更多相关文章

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

    在学习卡尔曼滤波器之前,首先看看为什么叫“卡尔曼”.跟其他著名的理论(例如傅立叶变换,泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡 尔曼全名Rudolf Emil ...

  2. 对Kalman(卡尔曼)滤波器的理解

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

  3. 对Kalman(卡尔曼)滤波器的理解@@zz

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

  4. 泡泡一分钟:Robust Attitude Estimation Using an Adaptive Unscented Kalman Filter

    张宁 Robust Attitude Estimation Using an Adaptive Unscented Kalman Filter 使用自适应无味卡尔曼滤波器进行姿态估计链接:https: ...

  5. 卡尔曼滤波—Simple Kalman Filter for 2D tracking with OpenCV

    之前有关卡尔曼滤波的例子都比较简单,只能用于简单的理解卡尔曼滤波的基本步骤.现在让我们来看看卡尔曼滤波在实际中到底能做些什么吧.这里有一个使用卡尔曼滤波在窗口内跟踪鼠标移动的例子,原作者主页:http ...

  6. 卡尔曼滤波器【Kalman Filter For Dummies】

    搬砖到此: A Quick Insight     As I mentioned earlier, it's nearly impossible to grasp the full meaning o ...

  7. GMM+Kalman Filter+Blob 目标跟踪

    转 http://www.cnblogs.com/YangQiaoblog/p/5462453.html ==========图片版================================== ...

  8. [Scikit-learn] Dynamic Bayesian Network - Kalman Filter

    看上去不错的网站:http://iacs-courses.seas.harvard.edu/courses/am207/blog/lecture-18.html SciPy Cookbook:http ...

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

    本文为原创文章,转载请注明出处,http://www.cnblogs.com/ycwang16/p/5999034.html 前面介绍了Bayes滤波方法,我们接下来详细说说Kalman滤波器.虽然K ...

  10. 机器人学 —— 机器人感知(Kalman Filter)

    对于机器人感知任务而言,经常需要预判物体的运动,保证机器人在物体与自身接触之前进行规避.比如无人机与障碍物的碰撞,足球机器人判断足球的位置.预判的前提是对当前状态进行准确的估计,比如足球的速度,障碍物 ...

随机推荐

  1. 内网穿透——Natapp实现

    转自:NATAPP使用教程(内网穿透)_Willing卡卡的博客-CSDN博客_natapp NATAPP内网穿透使用教程 本文主要分享了有关内网穿透NATAPP的使用,包括:注册.建立隧道(免费). ...

  2. FastJSON序列化扩展接口与特性详解

    结论先行 FastJSON 的 SerializeFilter 接口通过 动态拦截和修改序列化过程,可实现字段名重命名.敏感数据脱敏.字段过滤等高级功能.其核心子接口包括 PropertyPreFil ...

  3. ESP32S3 BLE_HID的编程实现

    ESP32S3 BLE_HID的编程实现 BLE是低功耗蓝牙,HID是Human Interface Device,也就是人机接口设备. 主要用于无线连接并传输用户输入数据(如按键.触控.手势等). ...

  4. [随记]-SpringMVC中的handler到底是什么东西

    HandlerMapping 初始化时候的 HandlerMapping 有,按顺序排列: requestMappingHandlerMapping beanNameHandlerMapping -& ...

  5. 智表ZCELL产品V2.0发版小感

    不知不觉,智表从诞生以来已经两年多了,首先感谢各位用户的支持,没有大家的支持,智表这个产品估计早就已经终止了,正是大家的支持和鼓励,智表才一步一步走到了今天.智表最初是从一个简单不能再简单的table ...

  6. SQL 强化练习 (十三)

    这几天都在整帆软报表, 还要弄 RPA ... 咱说呢, 这些破玩意, 是提升了业务人员的工作效率, 但, 极大降低了我的工作效率, 明明写代码就能解决, 非要各种 点点点... 文档也不全, 就很难 ...

  7. ISCC区域赛wp

    ISCC区域 Web 哪吒的试炼 根据吃藕猜测要传参food /?food=lotus root 来到下一关 f12看源码 发现disable,把这个属性删掉 <?php if (isset($ ...

  8. 为何PostgreSQL没有聚集索引?解读两大数据库的设计差异

    为何PostgreSQL没有聚集索引?解读两大数据库的设计差异 前言 高效的数据检索是数据库管理的基石, PostgreSQL和SQL Server都能提供强大的数据访问方法以支持各种工作负载方面表现 ...

  9. 洛谷 P5066 [Ynoi2014] 人人本着正义之名debug-log

    序言 此日志分为四部分. 00:00是开始打代码的时间. 最开始打完代码(没有debug)大约用了两小时. part1-20210323 02:30 生成新节点时,没有给随机权值. 02:41 upd ...

  10. 【深度评测】Joomla Auto Readmore插件:自动提取缩略图+智能摘要,双引擎驱动内容效率革命

    "文章缩略图与摘要分离管理.重复上传图片.移动端封面图比例失调--"这些Joomla站长的经典痛点,如今被Auto Readmore插件的全自动缩略图提取功能彻底终结.本文将深度解 ...