卡尔曼滤波解释及示例

news2025/4/25 9:14:12

卡尔曼滤波的本质是用数学方法平衡预测与观测的可信度 ,通过不断迭代逼近真实状态。其高效性和鲁棒性,通常在导航定位中,需要融合GPS、加速度计、陀螺仪、激光雷达或摄像头数据,来提高位置精度。简单讲,卡尔曼滤波就是通过预测-更新循环 ,动态权衡模型预测与传感器测量,在噪声环境中实现最优估计,其数学本质是贝叶斯滤波在高斯噪声下的解析解。

1. 原理概述

卡尔曼滤波的核心是递归地结合预测与测量 ,在存在噪声的系统中实现对状态的最优估计。其核心步骤是:

  1. 预测 :根据系统模型(如运动方程)预测当前状态和误差协方差。
  2. 更新 :利用传感器测量值修正预测结果,得到更精确的状态估计。

核心优势:

  • 实时性 :仅需当前时刻的数据和前一时刻的状态,无需存储历史数据。
  • 最优性 :在噪声为高斯分布时,卡尔曼滤波是最小均方误差(MMSE)意义下的最优估计器

2. 公式推导

2.1 状态预测

状态预测方程: x k a = F k x k − 1 + B k u k x_k^a = F_kx_{k-1}+B_ku_k xka=Fkxk1+Bkuk ,其中 x k a x_k^a xka是预测状态, F k F_k Fk 是状态转移矩阵, B k u k B_ku_k Bkuk 是控制输入(如加速度)

协方差预测方程 : P k a = F k P k − 1 F k T + Q k P_k^a=F_kP_{k-1}F_k^T + Q_k Pka=FkPk1FkT+Qk,其中 P k a P_k^a Pka是预测协方差, Q k Q_k Qk是过程噪声协方差(模型不确定性)

2.2 状态更新

卡尔曼增益计算: K k = P k a H k T ( H k P k a H k T + R k ) − 1 K_k=P_k^aH_k^T(H_kP_k^aH_k^T + R_k)^{-1} Kk=PkaHkT(HkPkaHkT+Rk)1, 其中 K k K_k Kk权衡预测与测量的信任度, H k H_k Hk是观测矩阵, R k R_k Rk是测量噪声协方差。

状态更新方程 : x k = x k a + K k ( z k − H k x k a ) x_k=x_k^a + K_k(z_k - H_kx_k^a) xk=xka+Kk(zkHkxka),其中 z k z_k zk是实际测量值,修正预测结果。

协方差更新方程: P k = ( I − K k H k ) P k a P_k = (I-K_kH_k)P_k^a Pk=(IKkHk)Pka, 更新后的协方差反映估计的不确定性。

3. 示例说明:小车运动位置估计为例

  • 场景 :小车以2m/s运动,t-1时刻位置为6m,t时刻雷达测得位置为9m。
  • 问题 :雷达测量存在噪声(如高斯噪声),如何估计真实位置?
  • 步骤:
  1. 预测 :
    假设无控制输入 u k = 0 u_k=0 uk=0,状态转移矩阵 F=1(位置预测仅依赖前一时刻),预测位置为: x k a = 6 m + 2 m / s ∗ 1 s = 8 m x_k^a = 6m + 2m/s * 1s = 8m xka=6m+2m/s1s=8m
    协方差 P k a P_k^a Pka反映预测的不确定性(假设初始协方差较小)
  2. 更新:
    测量值 z k = 9 m z_k =9m zk=9m,计算卡尔曼增益 K k K_k Kk, 假设测量噪声 R 较大(雷达不准),则 K k K_k Kk较小,最终估计值会介于预测值(8m)和测量值(9m)之间,例如8.5m。更新后的协方差 P k P_k Pk会更小,反映更高的置信度。

4. 其它扩展对比

关键关系总结:

  • EKF 是最早的非线性滤波方法,但受限于线性化误差。
  • UKF 通过无迹变换避免线性化,精度更高,适用于强非线性系统。
  • IEKF 和 AKF 是EKF的改进,分别通过迭代和自适应机制提升鲁棒性。
  • EnKF 和 PF 针对高维或非高斯问题,与UKF同属非线性滤波但方法不同。
  • CKF 是UKF的优化变种,采用容积采样提升效率
算法核心原理优缺点应用场景与KF对比关系
卡尔曼滤波 (KF)基于线性系统模型,通过状态方程和观测方程递推估计最优状态。优点:计算高效,理论最优;
缺点:无法直接处理非线性问题。
仅适用于线性系统。基础算法,其他扩展均针对其无法处理非线性系统的局限性进行改进。
扩展卡尔曼滤波 (EKF)通过泰勒展开对非线性系统在当前估计点处线性化,应用标准卡尔曼滤波框架。优点:计算效率高;
缺点:线性化误差大,对强非线性系统不稳定。
机器人定位、传感器融合(如SLAM中的非线性运动模型)。基础非线性滤波方法,EKF通过线性化扩展到非线性系统,但精度受限于泰勒展开的截断误差
无迹卡尔曼滤波 (UKF)通过无迹变换(UT)选择采样点(Sigma点),直接近似状态分布的均值和协方差,避免显式线性化。优点:精度高于EKF,无需计算雅可比矩阵;
缺点:计算量略高,对高维系统效率下降。
非线性系统状态估计(如目标跟踪、姿态估计)。UKF避免线性化误差,直接处理非线性,但计算复杂度增加
自适应卡尔曼滤波 (AKF)动态调整噪声协方差矩阵(Q/R)或状态模型,以适应系统统计特性变化。优点:鲁棒性强;
缺点:参数调整复杂,可能引入额外计算负担。
时变噪声环境(如传感器漂移、突变干扰)。可与EKF/UKF结合,增强对不确定噪声的适应性。
迭代扩展卡尔曼滤波 (IEKF)在EKF基础上多次迭代更新状态估计,逐步修正线性化误差。优点:收敛性优于EKF;
缺点:计算量显著增加。
高精度定位(如卫星导航、工业控制)。EKF的改进版,通过迭代减少线性化截断误差。
集合卡尔曼滤波 (EnKF)用随机采样集合表示状态分布,通过集合统计量近似协方差,适用于高维非线性系统。优点:适合高维系统;
缺点:需大量样本,可能低估协方差。
气象预测、海洋模型等大规模动态系统。与UKF类似但采样方式不同,属于蒙特卡洛方法。
粒子滤波 (PF)基于序贯重要性采样,用大量粒子表示状态分布,适用于非高斯、非线性系统。优点:无需假设高斯分布;
缺点:计算成本极高,粒子退化问题。
SLAM、目标跟踪(非高斯噪声场景)。PF完全摆脱线性/高斯假设,但计算资源需求远高于KF
容积卡尔曼滤波 (CKF)利用球面-径向容积规则选择采样点,计算非线性积分,平衡精度与效率。优点:精度接近UKF,计算效率更高;
缺点:对极端非线性可能不稳定。
航空航天、多传感器融合。CKF通过更高效的采样策略提升非线性处理能力,但适用场景与UKF类似

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

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

相关文章

openwrt作旁路由时的几个常见问题 openwrt作为旁路由配置zerotier 图文讲解

1 先看openwrt时间,一定要保证时间和浏览器和服务器是一致的,不然无法更新 2 openwrt设置旁路由前先测试下,路由器能否ping通主路由,是否能够连接外网,好多旁路由设置完了,发现还不能远程好多就是旁路由本…

Redis 及其在系统设计中的作用

什么是Redis Redis 是一个开源的内存数据结构存储系统,可用作数据库、缓存和消息代理。它因其快速的性能、灵活性和易用性而得到广泛应用。 Redis 数据存储类型 Redis 允许开发人员以各种数据结构(例如字符串、位图、位域、哈希、列表、集合、有序集合…

爬虫-oiwiki

我们将BASE_URL 设置为 "https://oi-wiki.org/" 后脚本就会自动开始抓取该url及其子页面的所有内容,并将统一子页面的放在一个文件夹中 import requests from bs4 import BeautifulSoup from urllib.parse import urljoin, urlparse import os import pd…

强化学习核心原理及数学框架

1. 定义与核心思想 强化学习(Reinforcement Learning, RL)是一种通过智能体(Agent)与环境(Environment)的持续交互来学习最优决策策略的机器学习范式。其核心特征为: ​​试错学习​​&#x…

【技术派后端篇】技术派中 Session/Cookie 与 JWT 身份验证技术的应用及实现解析

在现代Web应用开发中,身份验证是保障系统安全的重要环节。技术派在身份验证领域采用了多种技术方案,其中Session/Cookie和JWT(JSON Web Token)是两种常用的实现方式。本文将详细介绍这两种身份验证技术在技术派中的应用及具体实现…

【基础】Node.js 介绍、安装及npm 和 npx功能了解

前言 后面安装n8n要用到,做一点技术储备。主要是它的两个工具:npm 和 npx。 Node.js介绍 Node.js 是一个免费的、开源的、跨平台的 JavaScript 运行时环境,允许开发人员在浏览器之外编写命令行工具和服务器端脚本,是一个基于 C…

助力网站优化利用AI批量生成文章工具提升质量

哎,有时候觉得写东西这事儿吧,真挺玄乎的。你看着那些大网站的优质内容,会不会突然冒出个念头——这些家伙到底怎么做到日更十篇还不秃头的?前阵子我蹲在咖啡馆里盯着屏幕发呆,突然刷到个帖子说现在用AI写文章能自动纠…

SpringBootTest报错

Unable to find a SpringBootConfiguration, you need to use ContextConfiguration or … 解决方案:在SpringTest注解中添加属性(classes )填写启动类 如我的启动类是MainApplication.class javax.websocket.server.ServerContainer no…

w~视觉~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/12327888 #几个论文 Fast Charging of Energy-dense Lithium-ion Batteries Real-time Short Video Recommendation on Mobile Devices Semantic interpretation for convolutional neural networks: What makes a ca…

Redis安装及入门应用

应用资料:https://download.csdn.net/download/ly1h1/90685065 1.获取文件,并在该文件下执行cmd 2.输入redis-server-lucifer.exe redis.windows.conf,即可运行redis 3.安装redis客户端软件 4.安装后运行客户端软件,输入链接地址…

NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve

//"dev": " NODE_OPTIONS--openssl-legacy-provider vue-cli-service serve" // 修改后(Windows 适用) "dev": "vue-cli-service serve --openssl-legacy-provider" 升级 Node.js 到 v14,确保依赖…

上篇:深入剖析 BLE 底层物理层与链路层(约5000字)

引言 在无线通信领域,Bluetooth Low Energy(BLE)以其超低功耗、灵活的连接模式和良好的生态支持,成为 IoT 与可穿戴设备的首选技术。要想在实际项目中优化性能、控制功耗、保证可靠通信,必须对 BLE 协议栈的底层细节有深入了解。本篇将重点围绕物理层(PHY)与链路层(Li…

2025 年“泰迪杯”数据挖掘挑战赛B题——基于穿戴装备的身体活动监测问题分析

摘要 本文聚焦于基于穿戴设备采集的加速度计数据,深入研究志愿者在日常活动中的行为特征,构建了多个数学建模框架,实现从身体活动监测、能耗预测、睡眠阶段识别到久坐预警等多个目标。我们依托于多源数据融合与机器学习模型,对人体活动状态进行识别与分析,为健康管理、行…

Linux424 chage密码信息 gpasswd 附属组

https://chat.deepseek.com/a/chat/s/e55a5e85-de97-450d-a19e-2c48f6669234

自定义指令简介及用法(vue3)

一介绍 防抖与节流,应用场景有很多,例如:禁止重复提交数据的场景、搜索框输入搜索条件,待输入停止后再开始搜索。 防抖 点击button按钮,设置定时器,在规定的时间内再次点击会重置定时器重新计时&#xf…

【Spring Boot】深入解析:#{} 和 ${}

1.#{} 和 ${}的使用 1.1数据准备 1.1.1.MySQL数据准备 (1)创建数据库: CREATE DATABASE mybatis_study DEFAULT CHARACTER SET utf8mb4;(2)使用数据库 -- 使⽤数据数据 USE mybatis_study;(3&#xff…

从实验室到产业端:解码 GPU 服务器的八大核心应用场景​

一、深度学习与人工智能的基石​ 在深度学习领域,GPU 服务器的并行计算架构成为训练大规模模型的核心引擎 —— 传统 CPU 集群训练千亿参数模型需数月,而基于某国际知名芯片厂商 H100 的 GPU 服务器可将周期缩短至数周,国内科技巨头 910B 芯…

java—12 kafka

目录 一、消息队列的优缺点 二、常用MQ 1. Kafka 2. RocketMQ 3. RabbitMQ 4. ActiveMQ 5. ZeroMQ 6. MQ选型对比 适用场景——从公司基础建设力量角度出发 适用场景——从业务场景角度出发 四、基本概念和操作 1. kafka常用术语 2. kafka常用指令 3. 单播消息&a…

数据库-数据类型、约束 和 DQL语言

标题目录 数据类型数字类型INT 型BIGINT 型DOUBLE 类型 字符类型定长字符串变长字符串 日期类型 约束主键约束非空约束唯一性约束检查约束外键约束 DQL 语言WHERE 子句连接多个条件IN (列表)NOT IN (列表)BETWEEN...AND...DISTINCT多字段去重 模糊查询NULL 值判断排序&#xff…

Dify升级-linux环境下使用zip离线安装方式部署升级

Dify安装时Linux服务器到github网络不好,git clone拉去不下来代码。使用本地windows电脑下载zip包形式上传进行了安装。但是随着dfiy版本升级,本地使用最新版本的,也需要进行下升级。参考升级指导以及自己环境情况,升级步骤如下。…