状态空间模型与卡尔曼滤波

news2024/12/23 6:31:42

1.状态空间模型

状态空间模型 (State Space Model),包括两个方程模型:
一是状态方程模型,反映动态系统在输入变量作用下在某时刻所转移到的状态;
二是输出或测量方程模型,它将系统在某时刻的输出和系统的状态及输入变量联系起来。
在这里插入图片描述

状态空间模型求解算法的核心是Kalman滤波。

2.卡尔曼滤波

以前有一种状态估计方法称为维纳滤波,它在第二次世界大战期间得到了应用。其缺点在于:①必须使用全部的历史观测数据,存储量和计算量都很大;②当获得新的观测数据时,没有合适的递推算法;③很难用于非平稳过程的滤波问题。为克服上述缺点,在20世纪60年代初,美国数学家R.E.卡尔曼(R.E.Kalman)等人发展了一种递推滤波方法,即现称的卡尔曼滤波。

斯坦利·施密特(Stanley Schmidt)首次实现了卡尔曼滤波器。卡尔曼在NASA埃姆斯研究中心访问时,发现他的方法对于解决阿波罗计划的轨道预测很有用,后来阿波罗飞船的导航电脑使用了这种滤波器。 关于这种滤波器的论文由Swerling (1958), Kalman (1960)与 Kalman and Bucy (1961)发表。

Kalman滤波算法的本质就是利用两个正态分布的融合仍是正态分布这一特性进行迭代而已。比如两个秤去测量一个苹果的重量,每个秤的测量存在误差,是正态分布。两个秤就是两个正态分布。那么我们将两个秤的结果通过某种算法合并就能得到更真实的苹果重量,而不是相信其中一个秤。

在这里插入图片描述

卡尔曼滤波核心公式如下:

在这里插入图片描述

不考虑u及B时,简写为:
在这里插入图片描述

公式推导参见,【【卡尔曼滤波器】1_递归算法_Recursive Processing-哔哩哔哩】 https://b23.tv/XOOAYUK.

3.扩展卡尔曼滤波(EKF)

当状态方程和测量方程非线性方程时,就考虑扩展卡尔曼滤波。

对于非线性滤波,至今未得到完善的解法,通常的处理方法是利用线性化技巧将非线性滤波问题转化为一个近似的线性滤波问题,套用线性滤波理论得到求解原非线性滤波问题的次优滤波算法,其中最常用的线性化方法是泰勒级数展开,得到的滤波方法即为扩展卡尔曼滤波。对于二阶EKF,其滤波性能远比一阶的要好,但是二阶以上的效果提升就不明显了,所以一般就是用一阶、二阶,但是二阶计算量比较大,一般都用一阶的。
在这里插入图片描述

4.状态空间模型与ARMAX

1)每一个有外部变量的自回归移动平均系统(ARMAX)或可用有理传递函数表示的系统都可以转换成用状态空间表示的系统,从而能用卡尔曼滤波进行计算。但是只有简单的状态空间模型可以以ARIMA形式精确表示。
2)与ARIMA相比,状态空间模型使您可以对更复杂的流程进行建模,具有可解释的结构并轻松处理数据不规则性;但是为此,您需要付出的代价是增加模型的复杂性,更难进行校准。

5.Kalman与最小二乘法

最小二乘(Least Square)是优化方法中的一种特殊情况,而卡尔曼滤波又是最小二乘法的一种特殊情况。 古典最小二乘中,假设了每一次测量的权重相同,但事实上这样并不合理,后来演化为加权最小二乘法,至此最小二乘估计所做的都是批处理(Batch),这样比较占内存,不符合动态系统状态估计的需要,即每一次更新输入时,都要从新计算之前所有的记录值。而后,提出递推最小二乘法,模型就不用每次都重新计算了。与递归最小二乘相似,卡尔曼滤波加入了系统内部变化的考虑。即利用process model对系统在下一时刻的状态进行预测。
当对于系统不够了解时,使用最小二乘法比较合适,而对于系统了解比较多时,可以采用Kalman滤波。改变量测噪声、系统噪声都会对Kalman滤波的效果产生影响,而不会对最小二乘滤波产生影响,而改变最小二乘的阶数会对其产生影响.

6.Kalman与HMM

HMM 模型适用于隐变量是离散的值的时候,对于连续隐变量的 HMM,常用卡尔曼滤波(Kalman Filtering)描述线性高斯模型的状态变量,使用粒子滤波(Particle Filter)来表述非高斯非线性的状态变量。

《Advanced Digital Signal Processing and Noise Reduction 4th Edition》中的描述:
在这里插入图片描述

7.参考

1)部分公式来源于:【【卡尔曼滤波器】1_递归算法_Recursive Processing-哔哩哔哩】 https://b23.tv/XOOAYUK.
2)卡尔曼滤波(kalman)相关理论以及与HMM、最小二乘法关系https://blog.51cto.com/u_13206712/5839786
3)《Advanced Digital Signal Processing and Noise Reduction 4th Edition》

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1.Echarts的简单使用

目录 1 下载echarts.min.js 2 使用示例 3 其他参数 Echarts是做前端数据可视化的,数据可视化是将数据做成图表,常见的可视化库有D3.js,ECharts.js,Highchart.js,AntV等 ECharts官网地址 Apache ECharts 进入后点击所有示例 示例中有各…

【MySQL】《狂飙》电视剧火了,如果程序一直狂飙,扛不住了,怎么办呢?

程序如果狂飙了怎么办呢?《狂飙》电视剧你看了吗?程序“狂飙”,你担心吗?性能优化步骤适合创建索引的情况不适合创建索引的情况Explain 性能分析id说明select_type 说明type字段说明Extra说明一下《狂飙》电视剧你看了吗&#xff…

PMI开通便捷的人民币付款

人民币付款通道正式开通啦当PMI持证人士通过PMI全球英文网站(www.pmi.org )进行证书更新缴费时&#xff0c;在原有美金支付的基础上&#xff0c;开通了新的人民币付款通道&#xff0c;包含支付宝和多种信用卡支付方式&#xff0c;持证人士可以按需选择<美金USD>或<人民…

基于梯度下降神经网络训练整体流程

文章目录基于梯度下降神经网络训练整体流程梯度下降优化算法一、简介二、梯度下降方法2.1 批量梯度下降法BGD2.2 随机梯度下降法SGD三、传统梯度下降法面临的挑战四、优化器4.1 Momentum4.2 Adagrad4.3 Adam4.4 对比与选择过拟合、拟合和欠拟合一、防止过拟合方法1.1 早停基于梯…

FFMPEG Vcl Player 7.0 For Delphi Crack

FFMPEG Vcl Player For Delphi 7.0【www_flashavconverter_com】是一个基于 directshow 和 ffmpeg 的 vcl 播放器&#xff0c;用于解码和播放视频/音频。 新增&#xff1a;升级到最新的FFMPEG Runtime(5.1.x)并支持Delphi 11.2 支持 Dash 回放 支持播放AES加密网络流 Nvidia 卡…

一文搞懂MD5、SHA-1、SHA-2、SHA-3,哪个算法比较安全

MD5、SHA-1、SHA-2、SHA-3都是比较常见的单向散列函数&#xff0c;这几种单向散列函数都有自己的特性。下面&#xff0c;给大家介绍一下它们的区别&#xff0c;以及MD5、SHA-1、SHA-2、SHA-3的安全性如何&#xff0c;哪种算法比较安全&#xff1f;一、简介单向散列函数是指对不…

JavaWeb:过滤器与监听器

一、过滤器Filter 1.1 过滤器Filter概述 Filter表示过滤器&#xff0c;是JavaWeb三大组件&#xff08;Servlet、Filter、Listener&#xff09;之一。Servlet我们之前都已经介绍过了&#xff0c;Filter和Listener我们今天都会进行介绍。 过滤器可以把对资源的请求 拦截 下来&…

Python的判断语句

进行逻辑判断&#xff0c;是生活中常见的行为。 同样&#xff0c;在程序中&#xff0c;进行逻辑判断也是最为基础的功能。 布尔类型和比较运算符 布尔类型的字面量&#xff1a; true 表示真&#xff08;是、肯定&#xff09;false 表示假&#xff08;否、否定&#xff09; …

【tkinter】用不到50行Python代码,写一个扫雷小游戏

文章目录定制按钮生成雷区主流程基础知识&#xff1a;StringVartkinter布局 定制按钮 学会了布局和绑定事件&#xff0c;就可以开发一些简单的应用&#xff0c;比如扫雷小游戏。从外观来看&#xff0c;扫雷就是一个按钮矩阵&#xff0c;左键点击按钮&#xff0c;如果按钮里埋…

myBaits Target Capture Kits;myBaits 靶向捕获试剂盒,快速捕获富集目标序列

myBaits Target Capture Kits可以快速捕获富集目标序列&#xff0c;提高NGS研究效率&#xff0c;兼容Illumina&#xff0c;PacBio 和 Nanopore等多种测序平台。Arbor Biosciences使用oligo合成专利技术&#xff0c;为您提供高质量、高性价比的捕获试剂盒。适用于各种基因组类型…

pytest简介

介绍pytest是一个非常成熟的全功能的Python测试框架&#xff0c;主要有以下几个特点&#xff1a;简单灵活&#xff0c;容易上手支持参数化能够支持简单的单元测试和复杂的功能测试&#xff0c;还可以用来做selenium/appnium等自动化测试、接口自动化测试&#xff08;pytestrequ…

我写了一个脚本,实现了图片分类问题模型训练的全自动化训练

众所周知,图片分类问题属于计算机视觉中比较容易解决的问题之一 但 这几天被数据集的问题搞得焦头烂额, 照理说分类问题的数据集应该比较好制作 但 如果之前没有现成的数据集 也会变得比较麻烦 直到我偶然发现了一个HuggingFace的图片搜索API 无限次调用 而且不需要身份验证 真…

如何实现报表集成?(五)——集成案例分享

在前面几篇&#xff0c;我们分别给大家介绍了报表工具的系统集成架构、用户同步/单点登录、资源集成和权限集成&#xff0c;从整体上对报表工具实现系统集成的各个方面都作了针对性的阐述。那别的用户实际上是如何做报表集成的呢&#xff1f; 这一篇&#xff0c;我们来看一下某…

408—二叉树与树

二叉树的一些概念&#xff1a;//二叉树有严格的左右子树之分&#xff0c;度数为2的树则没有对此进行要求。常见的两种二叉树&#xff1a;//如上E为满二叉树&#xff0c;每一层的结点个数都达到了当层能达到的最大结点数//满二叉树自上而下&#xff0c;从左到右依次进行编号&…

易于理解的完全立方体计算的多路数组聚集方法

自己琢磨半天终于搞懂了&#xff0c;可能是自己悟性不够吧-_-|| 多路数组聚集其实就是对维度(dimension)进行选择&#xff0c;保留一些常用的可以很方便地生成别的子立方体的立方体(cube)。对一个维做聚集(aggregation)其实就是按照这个维度的方向做加法&#xff0c;把这个维度…

Linux下的动静态库及链接

目录 常识 动态链接 静态链接 两者的比较 动态库与静态库 常识 我们平时写的代码和标准库是两回事&#xff0c;像C标准库提供给我们一些函数方便使用&#xff0c;降低程序员工作成本。比如写个printf("hello world"); 我们只是调用了库里的函数&#xff0c;并没…

字节跳动“技穷”,火山引擎“啃老”

文丨智能相对论作者丨沈浪「云」的赛道正在细化&#xff0c;是显而易见的趋势&#xff0c;诸如汽车云、营销云、视频云、零售云等等&#xff0c;大致可以理解为通过云计算等技术推动特定行业场景实现数字化转型的解决方案。之所以出现这种情况&#xff0c;存在多个层面的原因&a…

Kubernetes部署Postgresql

环境&#xff1a;Postgresql的Docker镜像 ->参考Docker安装部署PostgresqlCentos7.x kubernetes1.23.7 docker1.13.1 postgres12.7pg的docker镜像已经上传到云平台。Kubernetes参考&#xff1a;https://kubernetes.io/zh-cn/docs/concepts/configuration/configmap基本命…

Youngter-drive 题解

1.查壳 32bit&#xff0c;加了UPX壳 2.虚拟机脱壳 Youngter-drive脱壳3.静态分析寻找思路 跟进main_0函数 线程控制的知识不懂&#xff0c;去搜一下函数 createMutexW 函数 创建或打开命名或未命名的互斥对象。 HANDLE CreateMutexW( [in, optional] LPSECURITY_ATTRIBUTES lp…

通信原理笔记—部分响应基带传输系统

目录 基本设计思想&#xff1a; 问题的引入与考虑&#xff1a; 第一类部分响应系统: 定义奈奎斯特脉冲: 定义第一类部分响应系统的冲激响应: 第一类部分响应系统冲激响应与频率特性波形图: 第一类部分响应系统信号波形示例&#xff1a; 编码发送与接收解码过程示例: 第…