热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlab温度数据怎么滤波_Kalman滤波初学者入门

书评:《卡尔曼滤波原理及应用——MATLAB仿真》《卡尔曼滤波原理及应用——MATLAB仿真》(简称《卡》)、《粒子滤波原理及应用——MA

书评:《卡尔曼滤波原理及应用——MATLAB仿真》

《卡尔曼滤波原理及应用——MATLAB仿真》(简称《卡》)、《粒子滤波原理及应用——MATLAB仿真》(简称《粒子》)与《目标定位跟踪原理及应用——MATLAB仿真》是由同一出版社——中国工信出版社、电子工业出版社、同一作者——黄小平、王岩编著出版,《粒子》一书的作者列表多了一位缪鹏程。作者应该是北航团队,但是详细信息无法查证,该研究团队从事的研究方向是目标跟踪、寻的制导控制系统。该系列丛书特别适用于本科高年级与硕士研究生,适合卡尔曼滤波器、粒子滤波器、目标跟踪与制导的入门学习。该系列丛书的理论内容描述精炼,配套的案例与代码详细,能够帮助入学者在短时间内理解并快速上手应用。

Kalman滤波的技术优点在于存储空间占用较少,因此经典卡尔曼滤波与扩展卡尔曼滤波算法是应用最为广泛,但是在特殊情况下状态方程参数不确定情况下的转换到自适应滤波器。Kalman滤波器算法在阿波罗登月系统中一战成名,与Wiener滤波器是应用最为稳定、最为广泛的两类滤波器算法,Kalman滤波器是一种基于时域状态空间方法的递推形式的控制算法。作者对各类算法的优缺点和应用描述的十分清晰。同时,文中也存在一些问题,但是瑕不掩瑜。后文将根据我个人对《卡》一书的理解,以笔记的形式进行归纳。

第一章绪论十分中肯的阐述了Kalman滤波器原理、发展趋势与应用。Kalman滤波器较为依靠系统的状态控制模型,适用于时间连续系统,广泛应用于导航制导、跟踪定位、通信与信号处理、气象预报、地质勘探、矿物开采、故障诊断/检测以及证券市场预测。

第二章MATLAB基础简述了数组运算、结构体与元胞数组操作、条件/循环/函数设计以及画图程序设计。

第三章线性Kalman滤波(LKF)也是经典的Kalman滤波器介绍,是将通过传感器观测值推算出状态变量的真实数值的算法,主要适用于高斯线性系统,即掺杂高斯噪声的线性控制系统,适用于平稳随机过程滤波,特别适用于非平稳或平稳马尔科夫序列或高斯-马尔科夫序列的滤波。Kalman滤波是以射影定理作为理论基础,根据系统状态空间方程采用递推式方式生成状态值。本章详细介绍了Kalman滤波专业名词定义以及算法特征,并以代码的形式重现了Kalman滤波在温度测量、自由落体运动目标跟踪、船舶GPS导航定位系统、石油地震勘探、基于视频的自由下落的皮球跟踪中的应用。同时,简单介绍Matlab视频处理算法。

第四章扩展Kalman滤波(EKF),该算法主要面向滤波误差及预测误差较少的非线性系统,采用Taylor级数并略去二阶及以上高阶项,优点是不必预先计算标称轨迹。EKF是基于线性卡尔曼滤波器算法、采用Jacobian矩阵得到卡尔曼滤波运算中的算子。采用代码的形式实现基于距离的目标跟踪、纯方位目标跟踪、三维寻的指导控制。

第五章无迹Kalman滤波(UKF)是面向非线性函数概率密度分布近似确定状态后验概率密度的算法,采用无迹变换(UT)来处理均值和协方差的非线性传递问题。阐述Sigma点生成以及UKF算法实现。采用代码实现了单观测站目标跟踪、匀加速度直线运动目标跟踪,对比UKF和EKF性能。

第六章介绍交互多模型Kalman滤波(IMM-KF)针对多模型系统的滤波器算法实现,并以多模式目标跟踪。

第七章Kalman滤波的Simulink仿真,Simulink环境仿真设置、数据设置、模块库简介、S函数应用,并以目标跟踪示例。

该书能够帮助入学者在7天之内充分了解卡尔曼滤波并能在MATLAB中实现运算。但该书理论部分不详实,不能够帮助读者充分理解概率模型中专业名词的物理意义,建议参考《卡尔曼滤波与组合导航原理(第3版)》中理论推导。对于噪声矩阵中元素的确定并不明确,观测误差与方差是需要通过标记试验测得无法在技术手册中找到。UKF、IMM-KF中部分参数与概率参数如何确定并没有给出详细的讲解,需要额外的参考文献[1, 2]指导,这些问题对于实际开发更为重要,需要根据实际模型进行判定。

文中的代码并不是最精简的风格,这反倒是可以帮助初学者更好的上手项目,前后对比代码可以帮助初学者更好的理解程序、更熟练的写出自己的程度。

但是该书理论部分没有仔细看,实际上是忍不住吐槽,里面有很多推导具有误导性。明显的问题如下:

l 第三章公式(3.24)括号不完整

l 公式(3.25)(3.27)(3.28)离散时间参数错误,“t”应该替换为“k

l 例3.3.1的状态矩阵忽略了T =1这个条件,可以参考本书后面的问题,状态矩阵符号不一致。

l 第五章P104:公式(5.2)存在问题,可参考参考文献。

l 第六章源代码可能也有问题

总而言之,该书可以帮助初学者在一周内快速上手,深入研究还需要多看文献,充分理解其物理意义。

[1] Julier S J, Uhlmann J K. Unscented filtering and nonlinear estimation[J]. Proceedings of the IEEE, 2004, 92(3): 401-422.

[2] Blom H A P, Bar-Shalom Y. The interacting multiple model algorithm for systems with Markovian switching coefficients[J]. IEEE transactions on Automatic Control, 1988, 33(8): 780-783.



推荐阅读
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本文详细解析了Java中hashCode()和equals()方法的实现原理及其在哈希表结构中的应用,探讨了两者之间的关系及其实现时需要注意的问题。 ... [详细]
  • 本题探讨了在大数据结构背景下,如何通过整体二分和CDQ分治等高级算法优化处理复杂的时间序列问题。题目设定包括节点数量、查询次数和权重限制,并详细分析了解决方案中的关键步骤。 ... [详细]
  • Coursera ML 机器学习
    2019独角兽企业重金招聘Python工程师标准线性回归算法计算过程CostFunction梯度下降算法多变量回归![选择特征](https:static.oschina.n ... [详细]
  • 交互式左右滑动导航菜单设计
    本文介绍了一种使用HTML和JavaScript实现的左右可点击滑动导航菜单的方法,适用于需要展示多个链接或项目的网页布局。 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • ZooKeeper集群脑裂问题及其解决方案
    本文深入探讨了ZooKeeper集群中可能出现的脑裂问题,分析其成因,并提供了多种有效的解决方案,确保集群在高可用性环境下的稳定运行。 ... [详细]
  • 本章详细介绍SP框架中的数据操作方法,包括数据查找、记录查询、新增、删除、更新、计数及字段增减等核心功能。通过具体示例和详细解析,帮助开发者更好地理解和使用这些方法。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文详细介绍了ActivityManagerService (AMS) 的工作原理及其在Android系统中的重要角色。AMS作为system_server进程的一部分,在系统启动时加载,负责管理和协调应用程序中的Activity和服务(Service)。文章将通过具体的接口图和通信流程,帮助读者更好地理解AMS的工作机制。 ... [详细]
  • Vue 3.0 翻牌数字组件使用指南
    本文详细介绍了如何在 Vue 3.0 中使用翻牌数字组件,包括其基本设置和高级配置,旨在帮助开发者快速掌握并应用这一动态视觉效果。 ... [详细]
  • 地球坐标、火星坐标及百度坐标间的转换算法 C# 实现
    本文介绍了WGS84坐标系统及其精度改进历程,探讨了火星坐标系统的安全性和应用背景,并详细解析了火星坐标与百度坐标之间的转换算法,提供了C#语言的实现代码。 ... [详细]
  • 车载T-BOX智能网联终端的设计与实现
    本文介绍了一款基于瑞萨RH850微控制器、TICC2640R2F蓝牙微控制器和高通MDM9628处理器的T-BOX车载终端的设计。该终端通过集成CAN总线、GPS定位、数据加密、蓝牙通信和LTE无线数据传输技术,实现了车辆信息的高效采集与云端通信,支持远程车辆控制和诊断等功能。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • 深入理解Docker网络管理
    本文介绍了Docker网络管理的基本概念,包括为什么需要Docker网络管理以及Docker提供的多种网络驱动模式。同时,文章还详细解释了Docker网络相关的命令操作,帮助读者更好地理解和使用Docker网络功能。 ... [详细]
author-avatar
世界500__强商务英语
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有