当前位置: 首页 > news >正文

卡尔曼滤波Kalman Filter零基础入门到实践(上部)

参考视频:入门(秒懂滤波概要)_哔哩哔哩_bilibili

一、入门

1.引入

假设超声波距离传感器每1ms给单片机发数据。

理论数据为黑点, 测量数据曲线为红线,引入滤波后的数据为紫线

引入滤波的作用是过滤数据中的噪声,使信号更趋于真实值。

2.卡尔曼滤波适用系统

卡尔曼滤波适用于线性高斯系统

2.1线性的理解

线性满足叠加性与齐次性。

如何理解叠加性?



如何理解齐次性?

输入x增大k倍,输出y也增大k倍

2.2高斯的理解

高斯:噪声满足正态分布

3.宏观意义:滤波即加权

理想状态:信号*1 +噪声*0(数字表示权值)

低通滤波:低频信号*1 + 高频信号*0

卡尔曼滤波:估计值*(待选择)+观测值*(待选择);选择估计值与观测值的权重,总体得到一个最佳修正值。

二、进阶(基本滤波知识)

1.状态空间表达式(便于之后卡尔曼滤波公式的理解)

状态方程

x_{k}=Ax_{k-1}+Bu_{k}+\omega_{k}

其中,x_{k}是当前状态的当前值;x_{k-1}是上一个时刻该状态的值;u_{k}是检测输入;\omega _{k}是过程噪声;A是一个状态转移矩阵(用于刻画系统从一个状态转移到另一个状态的概率);B是一个控制矩阵。

观测方程

y_{k}=Cx_{k}+v_{k}

其中,y_{k}是要观测的值;v _{k}是观测噪声(与观测器的误差有关);

举例

 加热一壶水,温度计观测到的温度与水温状态的关系C=1,当前温度计测量的温度y_{k}=当前状态的当前水温x_{k}+温度计的误差v _{k},A取单位矩阵,Bu_{k}为每一时刻会增加多少度,\omega _{k}是过程噪声(比如加热过程中环境温度的影响),观测方程为

y_{k}=x_{k}+v_{k}

状态方程为

x_{k}=x_{k-1}+\Delta _{t}+\omega_{k}

2.高斯分布

2.1直观图解

在二维和三维中,不管这些点投影到x轴、y轴还是z轴,都是正态分布

2.2参数分析

2.2.1 v _{k}\omega _{k}

\omega _{k}\epsilon N(0;Q_{k})\omega _{k}符合正态分布,均值为0,方差为Q_{k}

v _{k} \epsilon N(0;R_{k})v _{k}符合正态分布,均值为0,方差为R_{k}

统称以上两个为高斯白噪声

举例

假设车的位置移动了1000m,GPS检测值为1000\pm \Delta m,方差为1m噪声

v _{k}=\Delta mR _{k}=1m

假设车速是3000m/s,在风速的作用下,GPS的检测值为1000\pm \Delta n

\omega _{k}=\Delta n m/s,n服从正态分布,方差Q_{k}=1m/s

2.2.2 方差

二维协方差(多维也类似)

3.超参数

Q、R、N  PID

之后主要调的是Q和R(上面提到的方差)

4.卡尔曼直观图解

x轴是位置,y轴是概率密度,\hat{x}_{k-1}是后验估计值,也叫最优估计值(修正值),\bar{\hat{x}}_{k-1}是先验估计值,y_{k}是观测值,\hat{x}_{k}是当前的最优估计值

\hat{x}_{k-1}:卡尔曼滤波最终输出的值

\bar{\hat{x}}_{k-1}:根据\hat{x}_{k-1}估计出来的一个当前的估计值

\hat{x}_{k}:是由先验估计值和当前观测值取共有部分得到的

http://www.lryc.cn/news/397993.html

相关文章:

  • 力扣-dfs
  • keepalived高可用集群
  • 文献翻译与阅读《Integration Approaches for Heterogeneous Big Data: A Survey》
  • 应用最优化方法及MATLAB实现——第3章代码实现
  • django的增删改查,排序,分组等常用的ORM操作
  • Leetcode Java学习记录——树、二叉树、二叉搜索树
  • 华为HCIP Datacom H12-821 卷30
  • element el-table实现表格动态增加/删除/编辑表格行,带校验规则
  • QT调节屏幕亮度
  • 实变函数精解【3】
  • JVM:SpringBoot TomcatEmbeddedWebappClassLoader
  • 蜂窝互联网接入:连接世界的无缝体验
  • Sprint Boot 2 核心功能(一)
  • GitLab CI/CD实现项目自动化部署
  • 阿里云调整全球布局关停澳洲云服务器,澳洲服务器市场如何选择稳定可靠的云服务?
  • 排序(二)——快速排序(QuickSort)
  • <数据集>穿越火线cf人物识别数据集<目标检测>
  • a+=1和a=a+1的区别
  • 设计模式使用场景实现示例及优缺点(结构型模式——桥接模式)
  • Spring——自动装配Bean
  • 云端典藏:iCloud中个人收藏品目录的智能存储方案
  • 安全开发基础篇-数据溢出
  • Scanner工具类
  • springboot3 集成GraalVM
  • HumanoidBench——模拟仿人机器人算法有未来
  • 实现前端用户密码重置功能(有源码)
  • 《双流多依赖图神经网络实现精确的癌症生存分析》| 文献速递-基于深度学习的多模态数据分析与生存分析
  • 【Hive SQL 每日一题】在线峰值人数计算
  • 谷粒商城学习笔记-18-快速开发-配置测试微服务基本CRUD功能
  • 机器学习库实战:DL4J与Weka在Java中的应用