卡尔曼滤波算法及C语言代码整理.pdfVIP

  • 65
  • 0
  • 约2.51万字
  • 约 22页
  • 2021-11-12 发布于福建
  • 举报
卡尔曼滤波简介及其算法实现代码 卡尔曼滤波算法实现代码 (C,C++分别实现) 卡尔曼滤波器简介 近来发现有些问题很多人都很感兴趣。所以在这里希望能尽自己能力跟大家讨论一些力所能 及的算法。 现在先讨论一下卡尔曼滤波器, 如果时间和能力允许, 我还希望能够写写其他的算法, 例如遗传算法,傅立叶变换,数字滤波,神经网络,图像处理等等。 因为这里不能写复杂的数学公式, 所以也只能形象的描述。 希望如果哪位是这方面的专家, 欢迎 讨论更正。 卡尔曼滤波器 – Kalman Filter 1. 什么是卡尔曼滤波器 (What is the Kalman Filter? ) 在学习卡尔曼滤波器之前, 首先看看为什么叫“卡尔曼”。 跟其他著名的理论 (例如傅立叶变换, 泰勒级数等等)一样,卡尔曼也是一个人的名字,而跟他们不同的是,他是个现代人! 卡尔曼全名 Rudolf Emil Kalman ,匈牙利数学家, 1930 年出生于匈牙利首都布达佩斯。 1953 , 1954 年于麻省理工学院分别获得电机工程学士及硕士学位。 1957 年于哥伦比亚大学获得博士学 位。我们现在要学习的卡尔曼滤波器,正是源于他的博士论文和 1960 年发表的论文《 A New Approach to Linear Filtering and Prediction Problems 》(线性滤波与预测问题的新方法)。 如果对这编论文有兴趣,可以到这里的地址下载: /~welch/media/pdf/Kalman1960.pdf 。 简单来说,卡尔曼滤波器是一个“ optimal recursive data processing algorithm (最优化自 回归数据处理算法)”。对于解决很大部分的问题,他是最优,效率最高甚至是最有用的。他的 广泛应用已经超过 30 年,包括机器人导航,控制,传感器数据融合甚至在军事方面的雷达系统 以及导弹追踪等等。近年来更被应用于计算机图像处理,例如头脸识别, 图像分割, 图像边缘检 测等等。 2 .卡尔曼滤波器的介绍 (Introduction to the Kalman Filter ) 为了可以更加容易的理解卡尔曼滤波器, 这里会应用形象的描述方法来讲解, 而不是像大多数参 考书那样罗列一大堆的数学公式和数学符号。 但是, 他的 5 条公式是其核心内容。 结合现代的计 算机,其实卡尔曼的程序相当的简单,只要你理解了他的那 5 条公式。 在介绍他的 5 条公式之前,先让我们来根据下面的例子一步一步的探索。 假设我们要研究的对象是一个房间的温度。 根据你的经验判断, 这个房间的温度是恒定的, 也就 是下一分钟的温度等于现在这一分钟的温度 (假设我们用一分钟来做时间单位) 。假设你对你的 经验不是 100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声( White Gaussian Noise ),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配( Gaussian Distribution )。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比 实际值偏差。我们也把这些偏差看成是高斯白噪声。 好了, 现在对于某一分钟我们有两个有关于该房间的温度值: 你根据经验的预测值 (系统的预测 值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际 温度值。 假如我们要估算 k 时刻的是实际温度值。 首先你要根据 k-1 时刻的温度值, 来预测 k 时刻的温度。 因为你相信温度是恒定的,所以你会

文档评论(0)

1亿VIP精品文档

相关文档