卡尔曼滤波

第一章知识点回顾

表1变量符号对照表

1.1数学期望

数学期望表示为每次可能的结果乘上结果概率的总和。

1.1.1 数学期望的性质

假设常数为 C ,随机变量 X Y ,则

1.2 方差(variance

概率论中和统计中的方差反映单个(一维)随机变量的离散程度即随机变量偏离数学期望的幅度大小,方差越大偏离数学期望的幅度越大。

总体方差:

离散型随机变量的方差

 1.2.1 方差的性质 

假设常数为A和B,随机变量X和Y,则

1.3 协方差(Covariance

协方差反映两个(二维)随机变量的相似程度,当两个变量相同时,协方差为方差。“协”是指几个变量的协同相关性。

随机变量XY的协方差表示为

如果一个变量大于该变量的期望,另一个变量也大于自身的期望,则两个变量的协方差为正值,正相关。

如果一个变量小于该变量的期望,另一个变量也小于自身的期望,则两个变量的协方差为负值,负相关。

如果一个变量等于该变量的期望,另一个变量也等于自身的期望,则两个变量的协方差为零,不相关,即两个 随机变量相互独立。

 1.3.1协方差的性质

假设常数为A和B,随机变量X和Y,且X和Y不是相互独立的,则

1.4协方差矩阵

协方差只能两个(二维)随机变量,三个(三维)及以上随机变量需要计算多个协方差,用矩阵形式表示就是协方差矩阵。协方差矩阵是一个对称非负定矩阵。

二维随机变量X和Y的协方差矩阵表示为

三维随机变量X、Y和Z的协方差矩阵表示为

1.4.1协方差矩阵的性质

假设矩阵为A,向量为b,随机变量X、Y和Z,则

 1.5高斯分布

高斯分布也称为正态分布常态分布,很多信号噪声和数据都服从高斯分布。高斯分布在线性变换后仍然是高斯分布。高斯分布的期望、平均数、中位数和众数相同。

随机变量X服从高斯分布,记为

当期望为0,标准差为1时,高斯分布为标准高斯分布

高斯分布只要确定了期望和方差就可以得到概率密度函数,表示为

期望决定高斯分布位置,标准差决定高斯分布的幅度。离期望越近概率越大,离期望越远概率越小。标准差越大分布越分散,标准差越小分布越集中。

1.5.1高斯分布的性质

假设实数为A和B,独立高斯随机变量X和Y,则

1.6微分法矩阵求导

1.6.1矩阵转置的性质

1.6.2矩阵微分运算法则 

 1.6.3矩阵迹的性质

1.6.4矩阵求导求解步骤

  1. 根据给定的f寻找df。
  2. 给df套上迹Tr,并进行化简处理。
  3. 根据导数与微分的关系得到结果。

1.6.5迹函数对矩阵求导

下面两个例子迹函数对矩阵A求导,根据求解步骤计算。

根据矩阵微分运算法则得到

根据导数和微分的关系

第二章卡尔曼滤波

2.1卡尔曼滤波定义

卡尔曼滤波是一种状态观测器、是一种最优化估计算法、是一种传感器数据融合算法

针对线性系统采用卡尔曼滤波,针对非线性系统采用扩展卡尔曼滤波。区别在于扩展卡尔曼滤波多了一个把预测和测量部分进行线性化的过程。

卡尔曼滤波假设所有变量和噪声都服从高斯分布卡尔曼滤波由两种变量构成,一种是由数学模型或经验得出的估计(预测)状态变量,另一种是由传感器测量得到的测量(观测)变量,这两种变量都是带误差的变量,卡尔曼滤波将估计状态变量和测量变量进行数据融合,根据上一时刻的变量值循环往复,不停迭代逼近真实的数据,即根据上一时刻的最优估计值预测当前时刻的最优估计值,并使用当前时刻的传感器测量值修正估计值得到最优估计值。

卡尔曼滤波的优点是将不准确的估计值和不准确的测量值做数据融合得到最优估计值,不需要很久之前的数据,只需要上一时刻的数据,运行速度快,占用系统内存小。

2.2卡尔曼滤波公式推导

 表2变量符号对照表

注:表2中的先验估计值是不完整的估计,需要用测量值修正处理;后验估计值是卡尔曼滤波输出的最优估计值;观测值是用传感器测量的测量值。

2.2.1递归思想

在时刻1,2,…,k分别测量到数据z1,z2,…,zk,在k时刻的估计值为

当测量数据的足够多时,k趋于无穷,测量值zk不再重要,估计值趋于上一次的估计值。但是当测量数据较少时,k趋于0,测量值zk很重要。

得到卡尔曼增益  

当前估计值和上一时刻估计值有关,上一时刻估计值又和上上一次估计值有关,这就是卡尔曼滤波的递归思想,只需要上一时刻的数据就可以估计出当前时刻的值。

估计误差

测量误差

卡尔曼增益

当k-1时刻的估计误差远大于k时刻的测量误差时,卡尔曼增益趋于1,k时刻估计值趋于k时刻的测量值。

当k-1时刻的估计误差远小于k时刻的测量误差时,卡尔曼增益趋于0,k时刻估计值趋于k-1时刻的估计值。

2.2.2卡尔曼公式

 2.2.3卡尔曼增益推导

系统的状态方程

系统的观测方程

过程噪声和测量噪声都是不可以直接测量的,假设过程噪声和测量噪声都服从高斯分布,过程噪声的概率密度函数是期望为0,协方差矩阵为Q;测量噪声的概率密度函数是期望为0,协方差矩阵为R。

过程噪声协方差矩阵Q的期望计算如下,同理测量噪声协方差矩阵R。

根据方差和协方差定义,且期望为0。

得到

在求解时,系统的状态方程去掉过程噪声,得到一个算出来卡尔曼预测公式—先验估计值(不完整的估计,需要用测量值修正处理)。

系统的观测方程去掉测量噪声,根据实际测量值zk,得到一个测出来的估计值

卡尔曼滤波器根据上面的不准确的计算出来的先验估计值和不准确的测出来的估计值计算出后验估计值(注意:后验估计值就是最优估计值)。下面公式根据递归和数据融合思想得到。

得到卡尔曼校正公式—后验估计

目标是计算卡尔曼增益Kk使后验估计值趋于真实值。Kk与过程噪声和测量噪声有关。引入真实值和后验估计值误差ek,ek的概率密度函数是期望为0,协方差为P的高斯分布。

当后验估计值估计越准确即越接近于真实值,ek的方差越小,协方差矩阵Pk的迹Tr(Pk)越小。目标是计算Kk使Tr(Pk)最小。

ek的协方差矩阵Pk

将后验估计和系统的观测方程代入协方差矩阵,这里使用真实测量值zk引入测量噪声进行估计。

 令

得到

 计算协方差矩阵的第2项

同理,协方差矩阵的第3项也为0。

目标是使协方差矩阵Pk的tr(Pk)最小,从而使误差ek的方差最小。

上式等号右边第二项

由互为转置的矩阵迹相同,得到

 计算迹在Kk的变化下最小值

 根据矩阵微分运算法则和矩阵迹的性质,迹函数对矩阵求导得到卡尔曼校正公式—卡尔曼增益

当测量噪声R很大时

当测量噪声R很小时

2.2.4更新误差协方差矩阵推导

误差协方差矩阵带入卡尔曼增益得到卡尔曼校正公式—更新误差协方差矩阵

2.2.5先验误差协方差矩阵推导

先验误差

带入真实值和先验估计值

 先验误差协方差矩阵定义为

判断上式中独立的项

 化简得到卡尔曼预测公式—先验误差协方差矩阵

2.3卡尔曼滤波仿真

仿真文件上传到博客中,可以下载进行调试学习。

 2.4卡尔曼滤波参数调整

2.4.1参数调整方法

通过Simulink仿真可以得到卡尔曼滤波参数调整的方法,可以用于嵌入式系统控制算法中。

Q和R不能为0。当Q等于0时,后验估计等于初值。当R等于0时,系统更相信测量值,后验估计等于测量值。

卡尔曼增益是由Q和R共同作用的,不能单独调整某一个值。同时增大Q和R相同倍数,后验估计变化不大。

减小Q,增大R,卡尔曼增益变小,后验估计收敛速度变慢,振荡小、滞后大、更稳定、更相信估计值;增大Q,减小R,卡尔曼增益变大,后验估计收敛速度快、振荡大、不稳定、更相信测量值。

2.4.2选择Q和R的数值

Q数值的选择,使用数学模型的误差或由实验测得。R数值的选择,使用传感器给定的误差或者由实验测得。

因为卡尔曼增益是由Q和R共同作用的,所以将Q数值设置为固定值,根据实际应用中传感器的变化调整R数值。

2.4.3初值设置

H初值可以设置为1。

xk初值可以设置为0。

Pk初值一般设置为1,不能设为0。多次迭代后,Pk值就趋向稳定值。

参考文献

学习B站DR_CAN的系列视频、百度百科、CSDN和知乎一些大神的博客。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地电脑搭建Plex私人影音云盘教程,内网穿透实现远程访问

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语6 总结 1.前言 用手机或者平板电脑看视频,已经算是生活中稀松平常的场景了,特…

目标检测笔记(十二):如何通过界面化操作YOLOv5完成数据集的自动标注

文章目录 一、意义二、修改源码获取三、自动标注前期准备四、开始自动标注五、可视化标注效果六、XML转换TXT 一、意义 通过界面化操作YOLOv5完成数据集的自动标注的意义在于简化数据标注的流程,提高标注的效率和准确性。 传统的数据集标注通常需要手动绘制边界框…

C语言每日一练-------Day(9)

本专栏为c语言练习专栏,适合刚刚学完c语言的初学者。本专栏每天会不定时更新,通过每天练习,进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字:字符个数统计 多数元素 投票法 💓博主csdn个人主页&#xf…

【Centos8_配置单节点伪分布式Spark环境】

安装centos8 jdk部署伪分布式spark环境 安装Centos8 环境下的JDK 下载jdk linux版本 下载链接: jdk-8u381-linux-x64.tar.gz 将该文件上传到Centos8 主机 部署配置jdk(java8) # 解压到指定路径 [lhangtigerkeen Downloads]$ sudo tar …

redis 应用 4: HyperLogLog

我们先思考一个常见的业务问题:如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站每个网页每天的 UV 数据,然后让你来开发这个统计模块,你会如何实现? img 如果统计 PV 那非常好办,给每个网页一…

day-05 TCP半关闭 ----- DNS ----- 套接字的选项

一、优雅的断开套接字连接 之前套接字的断开都是单方面的。 (一)基于TCP的半关闭 Linux的close函数和windows的closesocket函数意味着完全断开连接。完全断开不仅不能发送数据,从而也不能接收数据。在某些情况下,通信双方的某一方…

『PyQt5-Qt Designer篇』| 06 Qt Designer中水平布局和垂直布局的使用

06 Qt Designer中水平布局和垂直布局的使用 1 水平布局1.1 按钮布局1.2 位置移动1.3 先布局再放按钮1.4 保存文件并调用2 垂直布局2.1 按钮布局2.2 保存并调用1 水平布局 1.1 按钮布局 拖动几个按钮: 选中这几个按钮,右键-布局-水平布局: 可以看到按钮间隔等宽水平排列: 也…

软考:中级软件设计师:信息系统的安全属性,对称加密和非对称加密,信息摘要,数字签名技术,数字信封与PGP

软考:中级软件设计师:信息系统的安全属性 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准…

图床项目进度(二)——动态酷炫首页

前言: 前面的文章我不是说我简单copy了站友的一个登录页吗,我感觉还是太单调了,想加一个好看的背景。 但是我前端的水平哪里够啊,于是在网上找了找制作动态背景的插件。 效果如下图。 如何使用 这个插件是particles.js 安装…

螺线管线圈的用途是什么

螺线管线圈是一种电子元器件,通常用于电感器和变压器。螺线管线圈可以是单层的或多层的,并且可以根据特定的电气参数进行设计。它们被广泛应用于电子设备和通信系统中,以满足各种应用的要求。 螺线管线圈主要用于电感器和变压器。电感器是一种…

Matlab之统计一维数组直方图 bin 计数函数histcounts

一、语法 [N,edges] histcounts(X) [N,edges] histcounts(X,nbins) [N,edges] histcounts(X,edges) 解释: 1.1 [N,edges] histcounts(X) 将 X 的值划分为多个 bin,并返回每个 bin 中的计数以及 bin 边界。histcounts 函数使用自动分 bin 算法&am…

C语言入门篇(九)

前言   本篇分享的是部分操作符的概念与用法,从经典例题入手,带你快速了解和掌握。   收录专栏:浅谈C语言 操作符详解下 10. 逗号表达式11. 下标引用、函数调用和结构成员12. 表达式求值12.1 隐士类型转换12.2 算术转换12.3 操作符的属性…

Python教程(11)——Python中的字典dict的用法介绍

dict的用法介绍 创建字典访问字典修改字典删除字典字典的相关函数 列表虽然好,但是如果需要快速的数据查找,就必须进行需要遍历,也就是最坏情况需要遍历完一遍才能找到需要的那个数据,时间复杂度是O(n),显然这个速度是…

数据是如何存储在内存中的?听我慢慢道来

数据的存储 1. 前言2. 数据类型2.1 整形家族2.2 浮点数家族2.3 构造类型(自定义类型)2.4 指针类型2.5 空类型(无类型) 3. 整数在内存中的存储4. 大小端5. 浮点数在内存中的存储 1. 前言 大家好,我是努力学习游泳的鱼。…

【给自己挖个坑】三维视频重建(NSR技术)-KIRI Engine

文章目录 以下是我和AI的对话通过手机拍摄物体的视频,再根据视频生成三维模型,这个可实现吗我想开发类似上面的手机应用程序,如何开发呢 看了以上回答,还是洗洗睡吧NSR技术的实现原理是什么呢有案例吗我是名Java工程师&#xff0c…

Jmeter(三十):并发测试(设置集合点)

集合点:让所有请求在不满足条件的时候处于等待状态。 如:我集合点设置为50,那么不满足50个请求的时候,这些请求都会集合在一起,处于等待状态,当达到50的时候,就一起执行。从而达到并发的效果。 那么Jmeter中可以通过同步定时器 Synchronizing Timer 来完成。 Number …

在QGIS中手动输入坐标文本添加点状矢量要素的一种方法

目录 一、前言 二、应用场景 三、实现思路 四、实验过程 1、创建一个临时矢量图层 2、给矢量图层新增要素 3、给新增要素的几何图形赋值 4、查看要素的几何图形 五、实验总结 一、前言 本文主要为QGIS点状矢量数据编辑方面的内容,不涉及编程方面。我们知道大…

自然语言处理在智能客服和聊天机器人中的应用

文章目录 1. 引言2. NLP基础2.1 词法分析2.2 语法分析2.3 语义理解2.4 情感分析 3. 智能客服中的应用3.1 自动问答3.2 意图识别3.3 情感分析与情绪识别 4. 聊天机器人中的应用4.1 对话生成4.2 上下文理解 5. 技术原理与挑战5.1 语言模型5.2 数据质量和多样性5.3 上下文理解 6. …

day30 日期转换

一:Date Date类: 这个类是java.util.Date getTime() : 获取内部维护的long值 Date date new Date(); long time date.getTime(); setTime():按照指定的long值(表示的时间)设置Date表示的时间 time 60*60*24*1000;…

懂点测试基础就敢要17k? 面试官:最多8K,多一分都没有...

公司前段缺人,也面了不少测试,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-25k,面试的人很多,但平均水平很让人失望。看简历很多都是3年工作经验,但面试…