zoukankan      html  css  js  c++  java
  • 卡尔曼滤波器及其扩展的个人学习笔记~

    Kalman Filter

    本质:线性滤波算法(只适用于线性且满足高斯分布的系统!!!)

    核心思想:根据上一时刻(状态)的“预测量”和“预测误差”,以及当前时刻(状态)的“观测量(测量量)”和“测量误差”,来对当前的“真实值”进行最优估计,计算得到当前的“最优量”

    突出观点:计算考虑“误差”,且分为“预测误差”和“测量误差”,同时误差独立存在,始终不受测量数据的影响。

    举个例子:

            在航海中,船长通常以前一时刻的船位为基准,根据航向、船速、和海流等多种因素推算下一个船位(预测量),但是并不能轻易认为当前船位就一定在推算的船位上,还要选择适当的方法,通过仪器的到另一个推算的船位(测量量)。观测和推算的这两个船位一般不重合,需要通过分析和判断选择一个可靠的船位,作为当前的“真实”船位。

    描述数学化:

    公式化:

     简单场景实践:

     

     实践:

    https://github.com/GengMingjin2/Learning_Algorithm/tree/master/EKF/KF

     

    Extend Kalman Filter:

    本质:KF的非线性扩展,线性滤波算法(非线性的高斯分布系统!!!)

    (一个很优秀的course:https://simondlevy.academic.wlu.edu/kalman-tutorial/)

    图片中的公式在表达上全部都是按照常规偏导的方式表达,而在真实的应用场景中,更加一般的表达是使用Joccobi矩阵来表达,而其中的每一项都是提前推导完毕后才应用到代码中的,这一点非常重要。

    同时在进行泰勒展开时,上述表达的EKF算法中仅仅在起始点进行了一次线性近似,后续的迭代过程中不再进行线性近似了(这也是为什么最基础的EKF算法的误差比其他几种KF改进算法的误差大的原因,毕竟这仅有的一次线性引入的误差会一直累计下去不断扩大~)

  • 相关阅读:
    C# Win7系统下为应用程序取得管理员权限
    bootstrap 列函数
    bootstrap table offset 参数问题
    java 调用webservcie ,自己亲测可用
    sqlserver 生成数据字典
    css 色彩大全网址
    C#遍历指定文件夹中的所有文件和子文件夹
    ajax 跨域调用webservice 使用jsonp解决方法
    XML 类型数据转化为表
    SQL SERVER 查询未提交的事务
  • 原文地址:https://www.cnblogs.com/bupt213/p/11505280.html
Copyright © 2011-2022 走看看