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. 在IIS发布.net9 api程序踩坑总结

    参照:.NET 9.0 WebApi 发布到 IIS 详细步骤_webapi发布到iis-CSDN博客 环境搭建: 注意安装与程序版本对应的Windows Server Hosting,安装完成之后, ...

  2. sql学习day3——case when的使用

    1,当前表 course_master                                                            open_course           ...

  3. CTF实验吧认真一点 SQL盲注

    实验吧地址 http://ctf5.shiyanbar.com/web/earnest/index.php 很明显的返回两个不同得页面,判断为SQL盲注 并且 过滤了敏感字符 测试的时候还发现过滤了s ...

  4. 最新Typora1.9.5破解版下载与使用教程(Windows+Mac)

    一.Typora是什么? 一款 Markdown 编辑器和阅读器,能知道Typora的小伙伴,肯定也会用的 二.使用步骤 1.下载软件 夸克网盘:https://pan.quark.cn/s/2d6d ...

  5. SQL 强化练习 (二)

    继续 sql 搞起来, 面向过程来弄, 重点是分析的思路, 涉及的的 left join, inner join, group by +_ having, case when ... 等场景, 也是比 ...

  6. VitePress 集成 Twikoo 评论

    Twikoo 是一个简洁.安全.免费的静态网站评论系统. 主要特点:免费搭建,部署简单,功能很完善,隐私护安全,通知发邮件,管理有内嵌,总之免费又方便 关于后端部署,大家可以看官网,或者这篇 Vite ...

  7. C#中无法将文件”obj\debug\XXX.dll复制到“bin\Debug\XXX.dll” 拒绝访问

    较为方便有效的方法就是,把项目属性中的"应用程序集"的"程序集名称"修改为另一个名称即可.

  8. 【FAQ】HarmonyOS SDK 闭源开放能力 —Vision Kit (3)

    1.问题描述: 通过CardRecognition识别身份证拍照拿到的照片地址,使用该方法获取不到图片文件,请问如何解决? 解决方案: //卡证识别实现页,文件名为CardDemoPage,需被引入至 ...

  9. X86C++反汇编01.IDA和提取签名

    https://bpsend.net/thread-415-1-1.html 用VC6.0新建一个控制台工程 编译成 debug 和 Release 2个版本 应ida分别查看2种版本的程序 高版本i ...

  10. 【公众号搬运】React-Native开发鸿蒙NEXT(3)

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...