卡尔曼却将近60岁了。尽管距离算法得诞生已经半个多世纪了,但是却历久弥新,永不过时。
它仍然是当前使用最广泛的数据融合算法。

kalman核心就是两个过程,五个公式:
一、预测过程

二、更新过程

预测可以理解成根据公式进行计算得到的一个值,这样会存在一个协方差误差。Q
更新过程是一个纠正过程,就用另一个观测值来纠正预测值。
那我们应该更相信谁呢,预测还是更新?
这就需要比较他们之间的协方差误差大小**(给出了一个kalman系数)**
相当于找到了一个求权重的方法。

一年后来看卡尔曼,真的觉得挺简单的了。

经典案例:
温度预测
室内温度恒定为23.5度。
根据经验预测时,温度是保持不变的,但是存在一个预测方差Q = 4e-4
但是测数时有一个测量误差,符合高斯分布,方差为R = 0.2^2

假定初始估计温度为25度
初始kalma系统方差为P = 1.0

python代码实现如下:

'''
Kalman filter example demo in Python'''
import numpy as np
import matplotlib.pyplot as pltplt.rcParams['figure.figsize'] = (10,8)#inital parametersn_iter = 100
sz = (n_iter,)
x = 23.5    #真实温度
z = np.random.normal(x,0.2,size=sz)  #测量值#allocate apace for arrays
state_kalman = np.zeros(sz)     # a posteri estimate of x 估计值
state_pre = np.zeros(sz)     # a priori estimate of x     预测值
P = np.zeros(sz)             # a posteri error estimate
Pminus = np.zeros(sz)        # a priori error estimate   系统误差
K = np.zeros(sz)             # gain or blending factorR = 0.2**2                   #温度测量时的方差
Q = 4e-4                     #温度预测时的的方差state_kalman[0] = 25    # 温度初始值
P[0] = 1.0               # 温度初始估计方差for k in range(1,n_iter):#time updatestate_pre[k] = state_kalman[k-1]    #根据上一个卡尔曼估计值,直接预测,就是原来的值保持不变Pminus[k] = P[k-1] + Q              # 存在预测误差K[k] = Pminus[k]/(Pminus[k] + R)  # kalman 增益   state_kalman[k] = state_pre[k] + K[k]*(z[k] - state_pre[k])     #估计值(权重不一样)P[k] = (1-K[k])*Pminus[k]plt.figure()
plt.plot(z,'k+',label = 'noisy measurements')
plt.plot(state_kalman,'b-',label = 'a posteri estimate')
plt.axhline(x,color = 'g',label = 'true value')plt.legend()
plt.title('Estimate vs. iteration step',fontweight = 'bold')
plt.xlabel('Iteration')
plt.ylabel('Voltage')plt.figure()
valid_iter = range(1,n_iter)
plt.plot(valid_iter,Pminus[valid_iter],label = 'a priori erroe estimate')plt.title('Estimate $\it{\mathbf{a \ priori}}$ error vs. iteration step',fontweight = 'bold')plt.xlabel('Iteration')
plt.ylabel('$(Voltage)^2$')plt.setp(plt.gca(),'ylim',[0,.05])
plt.show()

卡尔曼滤波——从推导到应用(上)相关推荐

  1. 关于卡尔曼滤波详细推导的理解

    相信大家到了关注卡尔曼滤波原理推导的阶段,已经对卡尔曼滤波有所了解了,大概知道,卡尔曼滤波是应用在含有噪声的.模型(预测)基本知道一些的.传感器测量含有噪声的这种场合,对真实的状态(或变量值)进行最优 ...

  2. 卡尔曼滤波 -- 从推导到应用(一) 转有关键思想 K增益是最小 贺一佳博士

    最关键思想的是,误差函数取最小值,使误差最小,那么值就是最优解,此时预测误差(总误差)之比,就是增益K,就是取预测值和测量值加权和系数K 卡尔曼滤波 -- 从推导到应用(一)_知行合一-CSDN博客_ ...

  3. 卡尔曼及扩展卡尔曼滤波详细推导-来自DR_CAN视频

    卡尔曼及扩展卡尔曼滤波详细推导-来自DR_CAN视频 见知乎https://zhuanlan.zhihu.com/p/585819291

  4. 卡尔曼滤波 -- 从推导到应用(二)

    该文是自我总结性文章,有纰漏,请指出,谢谢.           --白巧克力 这部分主要是通过对第一部分中提到的匀加速小车模型进行位移预测. 先来看看状态方程能建立准确的时候,状态方程见第一部分分割 ...

  5. 卡尔曼滤波 -- 从推导到应用(一)

    前言 卡尔曼滤波器是在估计线性系统状态的过程中,以最小均方误差为目的而推导出的几个递推数学等式,也可以从贝叶斯推断的角度来推导. 本文将分为两部分: 第一部分,结合例子,从最小均方误差的角度,直观地介 ...

  6. 卡尔曼滤波的推导过程详解

    在学习卡尔曼滤波的时候看了很多博客讲这方面的知识,感觉都讲得表面的东西,无法了解它五个公式真正代表的过程,这篇博客我想以我的理解讲讲卡尔曼滤波. 首先我先写出卡尔曼滤波的具体过程,首先针对如下状态空间 ...

  7. 概率机器人总结——(扩展)卡尔曼滤波先实践再推导

    概率机器人总结--卡尔曼滤波先实践再推导 概率机器人总结--(扩展)卡尔曼滤波先实践再推导 (1)卡尔曼.扩展卡尔曼.粒子滤波到底什么关系? (2)实践--扩展卡尔曼滤波 (3)推导--卡尔曼滤波 ( ...

  8. 卡尔曼滤波的理解、推导和应用

    卡尔曼滤波的理解.推导和应用 1. 卡尔曼滤波简介 2. 卡尔曼滤波原理 3. 卡尔曼滤波的公式 3.1. 五个公式 3.2. 公式作用 4. 卡尔曼滤波的公式推导 4.1. 符号说明 4.2. 概念 ...

  9. 自用的卡尔曼滤波推导

    文章目录 公式与符号说明 几个性质及部分证明 高斯白噪声中的直流电平 卡尔曼滤波正式推导 参考 本文从联合正态分布的一些性质出发推导标量和向量形式的卡尔曼滤波,以及重点推导了均值不为0的各个公式.下面 ...

最新文章

  1. 通过HTTP协议上传文件
  2. VirtualBox 虚拟机转换为KVM虚拟机
  3. [iPhone高级] 基于XMPP的IOS聊天客户端程序(XMPP服务器架构)
  4. PHP垃圾回收深入理解
  5. ffmpeg 视频转ts切片 生成m3u8视频播放列表
  6. Error:Elements in iteration expect to have ‘v-bind:key‘ directives
  7. DELPHI中操作ACCESS数据库
  8. 统计自然语言处理基础——学习摘要(1)
  9. 最新python大数据毕业设计选题推荐(三)
  10. 如何在股票软件画波浪?波浪原理?初级应用画线
  11. 刘德华直播观看人数破亿
  12. zf:tf7: RNN—古诗词
  13. mysql还原数据库非常慢_mysql还原数据库慢
  14. 用Hight-Speed Charting绘制时间电压动态曲线
  15. Java的Scanner对象
  16. 李宏毅2022机器学习HW2解析
  17. k Nearest Neighbor Algorithm
  18. LiteOS | 基于LiteOS的智慧农业案例实验分享
  19. 水平型微指令与垂直型微指令
  20. 优秀课件笔记之决策支持系统

热门文章

  1. < CSS技巧 之 弹性布局( Flex布局 ) - 实例篇 >
  2. 群晖NAS实现Video Station显示视频封面
  3. txt文件编码批量转换器 2.11 官方版
  4. vlc录制网络流_vlc如何播放网络流
  5. 华润杜邦物流信息化案例
  6. ESP32 之 ESP-IDF 教学(五(2))——使用C++的工程
  7. Android 圆形旋转菜单
  8. Tailwind Base
  9. vue---双向绑定
  10. Win10任务栏透明