前言

本文是观看DR_CAN老师的视频后,简单总结了一下的笔记,并根据思路写了示例代码;这里主要讲使用卡尔曼滤波器进行数据融合。

视频地址:【卡尔曼滤波器】2_数学基础_数据融合_协方差矩阵_状态空间方程_观测器问题_哔哩哔哩_bilibili

数据融合 Date Fusion

这里从一个例子开始,用“两个称”来称同一个物体,得到两个结果;第一个称结果是30g,第二个称结构是32g。

由于两个称都不准,存在误差的。第一个称的标准差是2g;第二个称的标准差是4g。而且都符合正态分布,也称为高斯分布。

数学形式记为:

第一个称  

第二个称  

下面看看,两个称的输出的概率分布情况;第一个称服从正态分布,标准差是2g;所以他在28g到32g之间的概率是68.4%。

第二个称也服从正态分布,标准差是4g;所以他在28g到36g之间的概率是68.4%。相对于第一个称,由于标准差更大,所以看起来,更矮一些更胖一些。

现在需要用这两个称的结果,去“估计真实值”,如何估算呢?

感觉上是在这两个称结果之间,而且第一个称标准差更小,真实结果更靠近第一个称的结果。

数学上是找到一个最优值,于是采用卡尔曼算法。设估计值为,则:

其中 K 是卡尔曼增益;它的范围在0到1,即[0,1]。

目的 是求 K 使得估计值的标准最少,也就是使得估计值的方差最小。

设: 估计值 ,估计值标准差,估计值的方差Var()。

估计值的方差 =

备注:红色和蓝色两部分相互独立,可以单独拿出来;

如果要求估计值方差的最小值,需要对k求导,然后令它等于0,就可以求得极值了:

上面求得 估计值的方差,进行求导得到:

即: 

整理后得到: 

好啦,现在求出k,这个k值能使得估计值方差的最小

然后把数据代入,

第一个称    解释:称得是30g,标准差是2g。

第二个称    解释:称得是32g,标准差是4g。

先求k值 卡尔曼增益,

然后计算估计值 

最后更新一下估计值的方差

于是估计值的标准差 等于1.79。

Python版的伪代码:


'''
卡尔曼滤波——数据融合
'''# 卡尔曼增益 = 数据1的误差 除以 (数据1的误差 + 数据2的误差)
# 误差对应方差!!
def kalman_gain(e1, e2):return e1/(e1 + e2)# 估计值 = 数据1的估计值 + 系数*(数据2测量值 - 数据1的估计值)
def now_estimated_value(X1, K, X2):return X1 + K(X2 - X1)# 更新估计误差 = (1 - 卡尔曼增益)* 数据1的估计误差 + 卡尔曼增益* 数据2的估计误差
def now_estimated_error(K, e1, e2):return (1 - K)*e1 + K*e2# 循环体
K = kalman_gain(e1, e2)
X_k = now_estimated_value(X1, K, X2)
e_EST = now_estimated_error(K, e1, e2)

本文只提供参考和学习,谢谢。

卡尔曼滤波器2——数据融合(笔记篇 + 代码实现)相关推荐

  1. 卡尔曼滤波器1——递归算法(笔记篇 + 代码实现)

    前言 本文是观看DR_CAN老师的视频后,简单总结了一下的笔记,并根据思路写了示例代码:这里主要讲卡尔曼滤波器与递归算法. 视频地址:https://www.bilibili.com/video/BV ...

  2. 六.卡尔曼滤波器开发实践之六: 无损卡尔曼滤波器(UKF)进阶-白话讲解篇

    本系列文章主要介绍如何在工程实践中使用卡尔曼滤波器,分七个小节介绍: 一.卡尔曼滤波器开发实践之一: 五大公式 二.卡尔曼滤波器开发实践之二:  一个简单的位置估计卡尔曼滤波器 三.卡尔曼滤波器(EK ...

  3. 卡尔曼滤波器 bilibili视频版

    卡尔曼滤波器又叫最佳线性滤波器,好处有实现简单,纯时域(无须频域变换)所以在工程上又很广泛的应用. 因为它只能描述状态与状态之间的线性关系. 既然是线性关系,所以就可以用矩阵表示出来(如下图) . 图 ...

  4. 七.卡尔曼滤波器开发实践之七: 无损卡尔曼滤波器(UKF)进阶-实例篇

    本系列文章主要介绍如何在工程实践中使用卡尔曼滤波器,分七个小节介绍: 一.卡尔曼滤波器开发实践之一: 五大公式 二.卡尔曼滤波器开发实践之二:  一个简单的位置估计卡尔曼滤波器 三.卡尔曼滤波器(EK ...

  5. 优达学城《无人驾驶入门》学习笔记——卡尔曼滤波器实现详解

    优达学城<无人驾驶入门>的第二个项目是实现矩阵类,要求通过python编写一个用来计算矩阵的类Matrix.编写这个类并不难,涉及到的线性代数方面的知识也不多,比如矩阵的加法.减法.乘法, ...

  6. 滤波融合(二)基于C++完成一个简单的 扩展卡尔曼滤波器的非线性系统模型

    之前已经简单的实现过线性卡尔曼滤波:滤波融合(一)基于C++完成一个简单的 卡尔曼滤波器 线性的系统和测量模型 那么对于非线性的系统,区别就是多了线性化的过程,因为高斯映射到非线性函数,其结果不再是一 ...

  7. 信号去噪,基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附Matlab代码

    信号去噪,基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附Matlab代码 信号处理中的一个关键问题就是信号去噪.在实际应用中,很多信号可能会受到环境噪声的干扰,这些 ...

  8. 四.卡尔曼滤波器(EKF)开发实践之四: ROS系统位姿估计包robot_pose_ekf详解

    本系列文章主要介绍如何在工程实践中使用卡尔曼滤波器,分七个小节介绍: 一.卡尔曼滤波器开发实践之一: 五大公式 二.卡尔曼滤波器开发实践之二:  一个简单的位置估计卡尔曼滤波器 三.卡尔曼滤波器(EK ...

  9. 一. 卡尔曼滤波器开发实践之一: 五大公式详解

    既然标题名称是开发实践,本系列文章将主要介绍如何在工程实践中使用卡尔曼滤波器,至于卡尔曼滤波器的五大公式如何推导而来,网上有很多大拿们写的都很精彩,这里不再叙述.可以参考了下面两篇博文: 1. 卡尔曼 ...

最新文章

  1. 有原型的对象和没有原型的对象
  2. linux traceroute 命令 查看路由表
  3. 四川网络推广浅析网站标题到底能不能修改,什么时候能修改?
  4. python字符串、元组常用操作
  5. 伯克利电子和计算机工程申请入口
  6. 列举在移动Web开发中经常会设置的特殊样式!
  7. 学习《apache源代码全景分析》之存储段和存储段组摘录
  8. 方向盘左右能摇动_学车这么久了,你还不会打方向盘呢?
  9. 关于Stop The World的几个问题
  10. mysqlin索引失效的情况
  11. android开发GPS定位测试(附效果图和示例)【转】
  12. 2021-03-16 转自知乎专栏 https://zhuanlan.zhihu.com/p/24482664
  13. 新版UI千月影视盒子双端源码
  14. javaweb JAVA JSP智能社区管理系统JSP小区物业管理系统物JSP小区管理系统源码 JSP物业社区管理系统
  15. String类题目methods总结
  16. WPF加载SVG格式的图片
  17. AN蜘蛛池V2.0附搜索留痕转码工具SEO工具
  18. python reset_index()_python 问题 reset_index(drop=True
  19. 【OBS】circlebuf
  20. 中州韵输入法 linux,linux manjaro安装五笔+拼音输入法(中州韵)

热门文章

  1. 赋能实体成区块链重中之重 供应链、溯源和数据等迎来政策红利期
  2. 数字逻辑基础:数制与码制之数码和字符的代码表示
  3. java swing对话框_java Swing中弹出对话框的几种方式
  4. C语言顺序栈简单实现
  5. Execution failed for MockableJarTransform
  6. thinkpad X240 安装Ubuntu14.04 系统并搭建android开发环境
  7. 危机先知:TOOM舆情监控助力风险预警
  8. Python程序设计实例:可查询修改、添加、测验、朗读的英语词典
  9. 1.1.9 Python集合
  10. Capturing Omni-Range Context for Omnidirectional Segmentation总结笔记