离散卡尔曼滤波器算法详解及重要参数(Q、R、P)的讨论

  1. 公开数据集中文版详细描述参考前文:https://editor.csdn.net/md/?not_checkout=1&spm=1011.2124.3001.6192
  2. 神经元Spike信号分析参考前文:https://blog.csdn.net/qq_43811536/article/details/134359566?spm=1001.2014.3001.5501
  3. 神经元运动调制分析参考前文:https://blog.csdn.net/qq_43811536/article/details/134401004?spm=1001.2014.3001.5501

目录

  • 摘要
  • 1. 离散卡尔曼滤波器算法
    • 1.1 理论概述
    • 1.2 算法细节
  • 2. 神经元的运动解码分析
    • 2.1 公开数据集
    • 2.2 Q、R、P 的定义及初值设置
    • 2.3 KF 的解码结果
    • 2.4 不同Q、R、P 初始值对计算结果的影响


摘要

1960年,卡尔曼发表了他著名的用递归方法解决离散数据线性滤波问题的论文。从那以后,得益于数字计算技术的进步,卡尔曼滤波器已成为推广研究和应用的主题,尤其是在自主或协助导航领域。

卡尔曼滤波器由一系列递归数学公式描述。它们提供了一种高效可计算的方法来估计过程的状态,并使估计均方误差最小。卡尔曼滤波器应用广泛且功能强大:它可以估计信号的过去和当前状态,甚至能估计将来的状态,即使并不知道模型的确切性质。

本文简单介绍了离散卡尔曼滤波器(以下简称“KF”)的计算理论,同时基于猕猴感觉运动皮层神经元的运动解码分析讨论KF的三个重要参数Q、R、P对算法的影响。


1. 离散卡尔曼滤波器算法

1.1 理论概述

卡尔曼滤波器用反馈控制的方法估计过程状态:滤波器估计过程某一时刻的状态,然后以(含噪声的)测量变量的方式获得反馈。因此卡尔曼滤波器可分为两个部分:时间更新方程和测量更新方程。时间更新方程负责及时向前推算当前状态变量和误差协方差估计的值,以便为下一个时间状态构造先验估计。测量更新方程负责反馈——也就是说,它将先验估计和新的测量变量结合以构造改进的后验估计。

1.2 算法细节

  • 时间更新方程也可视为预估方程,测量更新方程可视为校正方程,分别对应 Figure 1中的“时间更新(预测)”和“测量更新(校正)”。最后的估计算法成为一种具有数值解的预估-校正算法。

  • 实际系统中,过程激励噪声协方差矩阵 Q 和观测噪声协方差矩阵 R 可能会随每次迭代计算而变化。但在这儿我们假设它们是常数。

  • 测量更新方程首先做的是计算卡尔曼增益 K k K_k Kk,其次便测量输出以获得 z k z_k zk ,然后按(2)式产生状态的后验估计。最后按(3)式估计状态的后验协方差。

  • 计算完时间更新方程和测量更新方程,整个过程再次重复。上一次计算得到的后验估计被作为下一次计算的先验估计。这种递归推算是卡尔曼滤波器最吸引人的特性之一——它比其它滤波器更容易实现:例如维纳滤波器1 ,每次估计必须直接计算全部数据,而卡尔曼滤波器每次只根据以前的测量变量递归计算当前的状态估计。
    在这里插入图片描述

Figure 1. 卡尔曼滤波器工作原理图

2. 神经元的运动解码分析

2.1 公开数据集

  • 网址:Nonhuman Primate Reaching with Multichannel Sensorimotor Cortex Electrophysiology 2
  • Session:
    • " indy_20170124_01 "

2.2 Q、R、P 的定义及初值设置

  • Q:Q矩阵表示系统模型中过程噪声的协方差矩阵。它描述了系统状态在时间上的变化和不确定性。通常情况下,Q矩阵的初始值可以根据系统的动态范围和预期的噪声水平进行估计。本实验中Q的初始值为卡尔曼滤波器训练过程中转移矩阵的协方差。
  • R:R矩阵表示测量模型中观测噪声的协方差矩阵。它描述了观测值和系统真实状态之间的不一致性或不确定性。R矩阵的初始值可以通过对测量数据进行统计分析来估计。本实验中R的初始值为卡尔曼滤波器训练过程中观测数据(测量矩阵)的协方差。
  • P:P矩阵表示状态估计的协方差矩阵,它描述了状态估计和真实状态之间的不确定性。P矩阵的初始值可以根据系统的初始状态估计精度进行设置。本实验中P的初始值为零矩阵,表示对初始状态估计的高置信度。

2.3 KF 的解码结果

使用2.2节中 Q、R、P 的初始值设置卡尔曼滤波器对公开数据集" indy_20170124_01 "进行解码,并采用十折交叉验证进行评估,Figure 2 为第4折上前100个样本的真实(蓝色)和预测(黄色)曲线,上下分别代表x和y方向上的位置、速度和加速度。

在这里插入图片描述

Figure 2. 卡尔曼滤波器的部分解码结果

2.4 不同Q、R、P 初始值对计算结果的影响

Figure 3 展示了Q、R、P分别为上一节默认取值(Figure 3a)和高斯噪声(Figure 3b-d)时的部分解码结果,每一个子图从左到右由十折交叉验证中的第1、5、10折组成。可以看到R的取值对结果影响最大,只要不合理就会导致预测结果无意义;而P的取值影响最小,预测结果仅在前几个sample上会出现较大幅度的波动。

在这里插入图片描述

Figure 3. 不同Q、R、P 初始值的部分计算结果. a. 采用上一节的默认初始值. b. 将Q设置为均值为0,方差为100的高斯噪声. c. 将R设置为均值为0,方差为100的高斯噪声. d. 将P设置为均值为0,方差为100的高斯噪声.. 卡尔曼滤波器的部分解码结果



Table 1 记录了设置不同Q、R、P 初始值时卡尔曼滤波器的解码性能,其中 d i a g ( n ) diag(n) diag(n)代表对角元素为n的对角矩阵。这些结果进一步证明上一段的结论,同时P设置为对角矩阵时可以最大程度地保持解码器的性能。

Table 1. 不同Q、R、P 初始值的解码性能

在这里插入图片描述


创作不易,麻烦点点赞和关注咯!

  1. Brown, R. G. and P. Y. C. Hwang. 1992. Introduction to Random Signals and Applied Kalman Filtering, Second Edition, John Wiley & Sons, Inc. ↩︎

  2. Makin, J. G., O’Doherty, J. E., Cardoso, M. M. B. & Sabes, P. N. (2018). Superior arm-movement decoding from cortex with a new, unsupervised-learning algorithm. J Neural Eng. 15(2): 026010. doi:10.1088/1741-2552/aa9e95 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/146172.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java学习之路 —— 异常、集合

文章目录 1. 异常2. 集合2.1 遍历2.1.1 迭代器2.1.2 增强for循环2.1.3 Lambda 2.2 List2.3 Set2.3.1 HashSet2.3.2 LinkedHashSet2.3.3 TreeSet 2.4 Map 1. 异常 Exception:叫异常,是程序员可以捕捉的。异常又分为了2类: 运行时异常&#x…

SpringBoot整合WebSocket实现订阅消息推送

目录 一、什么是WebSocket1.HTTP协议2.WebSocket协议 二、WebSocket使用场景1.消息推送2.实时聊天3.弹幕4.实时数据更新 三、SpringBoot整合WebSocket(以实现消息推送为例)1.添加依赖2.创建消息类2.WebSocket配置类3.工具类4.测试连接5.服务调用 一、什么…

人工智能 :一种现代的方法 第七章 逻辑智能体

文章目录 前言人工智能 :一种现代的方法 第七章 逻辑智能体7.1 基于知识的智能体7.2 Wumpus世界7.4 命题逻辑7.5 命题逻辑定理证明7.5.1推导和证明7.5.2 归结原理7.5.3 horn子句和限定子句7.5.4 前向链接和后向链接 7.6 有效命题逻辑模型求解7.6.1完备的回溯算法7.6…

MySQL主从延时问题

过线上 MySQL 维护经验的童鞋都知道,主从延迟往往是一个让人头疼不已的问题。 不仅仅是其造成的潜在问题比较严重,而且主从延迟原因的定位尤其考量 DBA 的综合能力:既要熟悉复制的内部原理,又能解读主机层面的资源使用情况&#…

使用PHP编写采集药品官方数据的程序

目录 一、引言 二、程序设计和实现 1、确定采集目标 2、使用PHP的cURL库进行数据采集 3、解析JSON数据 4、数据处理和存储 5、数据验证和清理 6、数据输出和可视化 7、数据分析和挖掘 三、注意事项 1、合法性原则 2、准确性原则 3、完整性原则 4、隐私保护原则 …

如何在 Windows 10/11 上高质量地将 WAV 转换为 MP3

WAV 几乎完全准确地存储了录音硬件所听到的内容,这使得它变得很大并占用了更多的存储空间。因此,WAV 格式在作为电子邮件附件发送、保存在便携式音频播放器上、通过蓝牙或互联网从一台设备传输到另一台设备等时可能无法正常工作。 如果您遇到 WAV 问题&…

【Android Studio调试报错】setContentView(R.layout.activity_main);

报错如下: 解决方法: 1、把参数删除到只剩 .,用自动补齐的方式来查看当前文件的位置是不是,当前左侧工程中layout 所在的位置。在的话它会在自动补齐列表有选项。否则我们选中第一个。 2、选中之后是这样的 然后问题解决&#xf…

飞天使-url路由进阶应用

url 的name属性 为 app01的url设定命名空间 app_name app01urlpatterns [path(, views.index, nameindex),path(login/, views.login, namelogin), ] 上面的namelogin 同时 from django.shortcuts import render,reverse,redirect 便于项目引用 def index(request):userna…

spring cloud-注册中心(Eureka)

一、服务注册中心组件(*) 定义:服务注册中心就是在整个微服务架构单独抽取一个服务,该服务不做项目中任何业务功能,仅用来在微服务中记录微服务、对微服务进行健康状态检查,及服务元数据信息存储常用的注册中心:eurek…

用placement label代替keep margin解决绕线问题

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 通常我们用keepout margin去降低多pin cell类型的密度,这里提供一种替代方案,即使用placement label。好处是只限制多pin cell彼此间距,不会…

echarts官网卡?

全网echarts案例资源大总结和echarts的高效使用技巧(细节版) - 掘金 drawnLine() {let myChart echarts.init(document.getElementById("grade"));// 绘制图表myChart.setOption({title: {left: "center",},tooltip: {trigger: &qu…

2023.11.13 Spring Bean 的生命周期

目录 Spring 执行流程 Bean 的生命周期 五个阶段 深入理解 Bean 初始化 实例理解 总结梳理 经典面试题 Spring 执行流程 Bean 的生命周期 Spring 中 Bean 的生命周就是 Bean 在 Spring 中从创建到销毁的整个过程 五个阶段 1. 实例化 Bean 为 Bean 对象分配内存空间 …

千万富翁分享:消费多少免单多少,电商运营高手实战秘籍拆解

千万富翁分享:消费多少免单多少,电商运营高手实战秘籍拆解 后疫情时代,国内电商圈层进程依然是在高速发展阶段,今年2023年双十一也彻底落下帷幕,但这次相较于往常却没有公布具体的成交规模数据,那么&#x…

程序员,你的护城河挖好了吗?

程序员的护城河 在遥远的古代,护城河是一种防御工事,通常用于保护城市或城堡免受外部攻击。它是由人工挖掘或天然形成的河流、壕沟或城墙等,可以作为防御屏障,阻止敌人的进入。 而对于程序员而言,“护城河”是一种比喻…

Linux线程池

文章目录: 线程池了解线程池模拟实现 线程池了解 线程池是一种常见的线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务,以避免在处理短时间任…

Word或者WPS批量调整文中图片大小的快捷方法

文章目录 0、前言1、编写宏代码2、在文档中调用宏实现一键批量调整3、就这么简单! 0、前言 不知道大家是不是也和我一样,经常需要在编写的Word(或者WPS)文档里插入大量的图片,但是这些图片的尺寸大小一般都不一样&…

2D 3D 工业组态技术 meta2d JavaScript

本心、输入输出、结果 文章目录 2D 3D 工业组态技术 meta2d JavaScript前言2D 3D 工业组态技术 meta2d JavaScript 简介2D 3D 工业组态技术 meta2d JavaScript 特性丰富的组态能力0代码数据通信组态的应用多端适配能力强大的扩展能力追求卓越性能丰富的组件库资源广泛的应用场景…

致刘家窑中医院龚洪海医生:患者的感谢与敬意

你们好!我曾经是咱们这的一名患者,我叫李刚,今年45岁,不知道你们还有印象吗?我曾去过一些医院进行就诊,但都没有得到恰当的治疗,症状一直没有消失。得了这个病之后对我的生活以及工作打击都十分的大。经朋友介绍说刘家…

【Linux系统编程十七】:(基础IO4)--文件系统(inode与软硬链接)

【Linux系统编程十六】:文件系统(inode与软硬链接) 一.磁盘硬件二.文件系统(inode)三.软硬链接 一.磁盘硬件 Linux下的文件在磁盘中存储,文件的内容和属性是分开存储的! 文件的内容存储在数据块。 文件的属性存储在in…

专业的软件第三方检测机构如何做性能测试?收费标准是多少?

随着软件信息技术的飞速发展,人们对于软件产品越来越依赖,从而用户对软件产品的稳定性和质量问题愈发看重。软件系统性能的好坏将严重影响该软件的质量和软件开发者的利益,为了更好的保障软件产品质量,软件企业会将性能测试交由软…