贝叶斯滤波与卡尔曼滤波 一

2023-05-16

什么是滤波?

无论是建立的模型方程来推测出的数据,还是用传感器直接测量出的数据,总不是那么理想的拟合曲线,总存在偏差、方差,而滤波就是为了尽可能的减小这些方差,减少噪声的干扰,从而使最终得到的数据更接近真实值——即方差趋于0。所以,滤波就是在减小方差。

如何理解每个时刻都是随机变量?

我们知道,我们需要采样,存在采样间隔,而每个采样点的值实际上我们都是不能确定的,就只能看做是随机变量

贝叶斯滤波的简单原理?

主观概率+外部观测=相对客观的概率

主观概率:人的主观猜测或者说人根据某些知识、经验建立的方程和模型,用来预测接下来的数据值

外部观测:用实际传感器去测量的数据

相对客观的概率:对于主观概率,总是显得不那么确定,方差比较大(毕竟是猜测的),当有了外部观测值的参考后,人会结合这些外部观测修正一下之前的主观概率,从而显得相对客观些

比如:在股市,刚开始,主观认为甲股票行情好,认为它接下来会大涨。这是最初的主观判断,是没有进行外部观测、实验之前的主观判断。但接下来,通过新闻得知,甲股票老板跑了,也就是有了外部观测、实验,那么这时候就要修正一下之前的主观判断了,经过修正,认为甲股票接下来很可能会跌。这个就成了相对客观的判断。上面其实就是把主观判断和外部观测的信息进行了融合,从而得到一个更加全面客观的结果;或者说是用外部观测(额外的信息)来修正你最初的主观判断,从而使模型、判断更接近真实情况。

每个时刻的值都是随机变量,这些随机变量之间是否存在联系?

存在联系,可以进行递推,但具体的递推关系式需要你自己去猜测、去拟合出来,也就是说,基于前面时刻的真值以及建立的递推关系式,很容易就可以推测出当前时刻的值。这种用于描述当前时刻值和前面时刻值之间的递推关系式称为状态方程——顾名思义,反应的是不同时刻/状态之间的关系式,从而实现递推和预测。但显然,递推时肯定会存在误差(方差)的,毕竟没有哪一个方程、模型可以说自己能百分百进行准确预测,因为你很难一下子找到这个恰好完美拟合这些数据的方程,猜的哪可能这么准,除非你事先就知道你要测的信号的方程。

例如,递推关系式(其中Q是噪声信号,一般是正态分布的噪声)

x(k)=f(x(k-1))+Q

真值和用传感器测出来的值之间是否会存在某种关系式?

也可以存在。这样想,如果一个传感器测量精度很高即没有误差,那么每次测量值=真值,这就是他们之间的函数关系式。但是,一般都会有误差,并且你的观测值和测量值的单位还未必相同,因此就需要用关系式来描述之间的关系了——这个用来描述观测值和真值之间关系的方程称为观测方程。显然,这里可以通过观测值和观测方程来反求真值,但是,这个反求的结果肯定存在误差的,毕竟你观测到的数据其实都是有误差的(传感器精度导致)。

例如,观测方程(R是噪声、误差)

 y(k)=h(x(k))+R

为什么要介绍状态方程和观测方程呢?

通过状态方程,一旦我们知道初值x0,那么就可以利用状态方程预测出接下来的真值x1, x2, x3......等等

通过观测方程,再加上传感器测出来的数据,我们就可以反求真值了x1, x2, x3......等等

但是,这两者你要相信哪一个呢?答案是,我都要——把两者的数据进行融合,降低方差和不确定度,从而得到更准确的值,更接近真值

这个初值x0是怎么得到的?初值一般需要知道哪些?

初值x0实际上可以任意定,因为即使刚开始初值很离谱,但是因为后面有观测值进行修正,所以很快就会修正到正常水平了

关于初值,我们要明白,每个时刻的值实际上都是随机变量,既然是随机变量,那就会有均值和方差,因此,对于初值的要求:需要知道初值的均值(均值其实就可以看做真值,毕竟均值实际上就是综合考虑各种情况的概率后加权的结果,相当于最优的结果)和方差。同样的,这个方差也是自己定的,如果你觉得对自己定的这个均值比较有把握,那么方差就可以定小一点;反之就大一点。方差小,说明比较可信,那么这个均值在融合结果中所占的比重也就相应的大一些。

为什么初值需要知道方差呢?

这个就要看状态方程(即各个随机变量之间的递推关系式)。还是因为模型不能完全准确预测值。其实,这里我们可以把模型看做是一个“测量仪器”——它通过前面的结果来推测接下来的结果。既然是“测量仪器”,那必然就会存在测量误差,这个测量误差就用方差来描述,知道这个方差了实际上就相当于知道他的概率分布情况了(针对正态分布的,大多数是正态分布)

状态方程中每个时刻下的追加的方差Q是否相同,“测量仪器的精度”应该是保持不变的吧?

其实那是因为Q针对的是存在多个状态值时候的协方差矩阵,描述的是各个状态值对应的噪声方差,并且不同状态值之间的噪声是不相关的即协方差是0,只有自己和自己的协方差(即方差)不为0并且是保持不变的,这样一来,实际上Q是个对角阵。例如,假设我们的状态有两个——位移和速度,那么状态方程怎么写?(系数以及方差是随意选的,只是用来说明)

均值递推:

方差之间的递推(p表示方差):

其实就是现代控制理论中的状态方程,一般把均值和方差分开处理

观测方程中每个时刻追加的方差R是否相同,“仪器的测量精度”应该是保持不变的吧?

对,和Q矩阵类似,R矩阵也是对角阵,是协方差矩阵,针对某个状态类型值的测量误差是保持不变的
————————————————
版权声明:本文为CSDN博主「学点东西吧」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44562404/article/details/109578089

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

贝叶斯滤波与卡尔曼滤波 一 的相关文章

  • OPENMV配置记录(一)

    文章目录 1 刷写固件2 开始配置openmv3 图像获取与显示4 修改图像 xff0c 获取像素 xff0c 添加元素5 使用图像进行基本操作 颜色追踪6 xff0c 识别码7 模版匹配8 通过比例的方法来求解距离9 组合使用 正好回家带
  • 为什么你的软件编译时没问题,运行时却出错?—— Java 中的异常再复盘

    从开发工具谈起 xff1a 这是我平常用的几个编辑器 记得我刚开始学 C 语言 xff0c 学 Java 的时候 xff0c 还是用 Notepad 43 43 这种文本编辑器写代码 xff0c 老师说是为了打基础 xff0c 加深记忆 后
  • 使用stm32解析富斯i6接收机(IBUS)

    文章目录 1 通信协议解析说明2 驱动程序设计3 实测4 使用串口空闲中断 43 DMA接收5 源码 1 通信协议解析说明 常见的官方遥控器大概如下所示 xff1a 常用的搭配接收机 xff1a 这里需要注意的是 xff1a i6是可以刷十
  • 编码电机PID调试(速度环|位置环|跟随)

    文章目录 1 编码电机认识2 上位机波形显示1 功能介绍2 协议说明 3 速度环调试验证4 位置环调试验证5 实现跟随效果 前面的文章中有讲过编码电机串级PID相关的知识 xff0c 以及一些PID的调试经验 xff0c 这里我最近正好又把
  • 树莓派安装ubuntu mate记录

    文章目录 1 系统下载1 ubuntu下载2 ubuntu mate下载 2 系统安装3 系统使用1 ubuntu系统2 ubuntu mate系统 这个算个失败的记录贴吧 xff0c 这个系统安装过程不太流畅 xff0c 使用起来也有很多
  • 平衡小车的一些常见问题总结

    文章目录 1 基本理论2 直立环速度环串级pid3 代码差异的解释4 转向环 1 基本理论 PID控制 pid控制值对偏差进行比例 xff0c 积分和微分的控制 xff0c 分别是三个部分 xff0c 对应为比例单元 xff0c 积分单元和
  • Ubuntu下tar命令使用详解 .tar解压、.tar压缩

    1 tar参数选项2 tar压缩命令3 tar解压缩命令4 解压安装5 tar bz2解压缩命令6 Linux压缩和解压 bz2文件 bzip2 Linux tar 命令 在Linux平台 xff0c tar是主要的打包工具 tar命令通常
  • 裸机开发之驱动开发

    一 驱动开发的基础理解 在计算中 xff0c 设备驱动程序是一种计算机程序 xff0c 用于操作或控制连接到计算机的特定类型的设备 驱动程序提供了与硬件设备的软件接口 xff0c 使操作系统和其他计算机程序可以访问硬件功能 xff0c 而无
  • STM32HAL库使用ESP8266模块

    ESP8266模块是一个可是实现蓝牙和WiFi一体的模块 xff0c ESP8266 是一个完整且自成体系的 WiFi 网络解决方案 xff0c 能够独立运行 xff0c 也可以作为 slave 搭载于其他 Host 运行 ESP8266模
  • 几种数字传感器介绍(一)————温湿度传感器(HDC1080)

    一 温湿度采集传感器 xff08 HDC1080 xff09 1 简要概述 HDC1080是一种集成温度传感器的数字湿度传感器 xff0c 具有出色的测量精度和超低的功耗 其具有14位测量分辨率 xff0c 相对湿度精度为 2 温度精度为
  • STM32F103xx / STM32F429VET6最小系统原理图

    STM32F429VET6核心板原理图 一 前言 先前使用过的是STM32F1系列 xff0c 只使用和绘制过STM32F103C8T6和STM32F103ZET6的板子 心血来潮想试一下STM32F4系列和F1系列在编程上有什么差别 xf
  • FreeRTOS - 多任务使用要点

    一 临界段应用 1 临界段作用 在程序访问资源时 xff0c 不希望被其他任务或者中断打断 xff0c 这段要执行的代码 xff0c 称为临界代码段 1 1不想被打断访问的资源 xff08 临界段保护 xff09 读取或者修改变量 xff0
  • 项目准备及自我介绍

    项目准备及自我介绍 1 自我介绍 面试官你好 xff0c 我叫XXX xff0c 就读于重庆邮电大学 xff1b 实验室是国家信息无障碍研发中心 xff1b 研究生期间 xff0c 参与两起机器人项目 xff0c 一是基于SLAM的清洁机器
  • 卸载重装Android Studio导入先前的版本,或者是误判SDK installed解决方法。(包含window,mac,Linux)

    我安装了几次Android Studio 之前一直不太稳定 xff0c 特别是想要导入别人的项目时 xff0c 版本不兼容真的会导致很多问题 尤其是他会下载gradle版本 xff0c 花费很长时间占用内存也就罢了 xff0c 更过分的是如
  • gcc编译过程

    gcc编译过程 文章目录 gcc编译过程1 预处理 Preproceessing 2 编译 Compilation 3 汇编 Assembly 4 链接 Linking 一般在windows下编译代码的时候是直接生成了可执行文件 xff0c
  • STM32串口printf调试输出(SSCOM V5.13.1)

    文章目录 1 原理图分析2 配置使能串口USART13 添加代码4 烧录连接显示5 浮点数输出 1 原理图分析 PC与CPU相互通信就是通过USB Type C接口和USB电平转换实现的 我们可以看到 xff0c CPU通过管脚USART1
  • CMakeLists文件的编译

    文章目录 CMakeLists的编译CMakeLists编译原理 文件路径 xff1a 编写CMakeLists txt CMakeLists常用命令 CmkeLists的基本步骤1 1 CMake版本1 2 软件包名称1 3 查找相关的C
  • 决策树--CART算法

    文章目录 1 Crat算法 分类树 1 1基尼系数1 2连续型特征处理1 3CART算法1 5 举例说明1 5 代码 2 回归树 1 Crat算法 分类树 1 1基尼系数 CART是基于基尼 Gini 系数最小化准则来进行特征选择 xff0

随机推荐