【自动驾驶|毫米波雷达】卡尔曼滤波

news/2024/5/20 15:19:35

目录

一. 滤波器分类

二.卡尔曼滤波(Kalman Filter)原理

(1)定性理解

(2)定量推导

1. 预测阶段

2. 更新阶段

3. 卡尔曼增益

1)卡尔曼增益

2)如何理解卡尔曼增益?

三.统计概念理解

(1)马尔科夫链

(2)转移矩阵

四.卡尔曼滤波代码(matlab)


一. 滤波器分类

滤波是信号处理中的一个重要概念,滤波电路的作用是尽可能减小脉动的直流电压中的交流成分,保留其直流成分,使输出电压纹波系数降低,波形变得比较平滑。
 

一般滤波器可以分为两类:经典滤波器和现代滤波器:

  • 经典滤波器:只允许一定频率范围内的信号成分正常通过,而阻止另一部分频率成分通过的电路,叫做经典滤波器。 经典滤波器通常从频率的视角,留下某些成分,削弱某些成分,达到信号纯化、目标特征提取等目的。
  • 现代滤波器:自适应滤波并不针对某一些频段来操作,而是针对从有用目标信号中分离噪声、抑制噪声的目的开展深入研究探讨。显而易见,现代滤波器、自适应滤波器更适用于雷达这样的系统。

对于雷达来说,人们感兴趣的是其能够跟踪目标。但目标的位置、速度、加速度的测量值往往在任何时候都有噪声。卡尔曼滤波利用目标的动态信息,设法去掉噪声的影响,得到一个关于目标位置的好的估计。这个估计可以是对当前目标位置的估计(滤波),也可以是对于将来位置的估计(预测),也可以是对过去位置的估计(插值或平滑)。

二.卡尔曼滤波(Kalman Filter)原理

卡尔曼滤波(Kalman filter)是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波会根据各测量量在不同时间下的值,考虑各时间下的联合分布,再产生对未知变数的估计,因此会比只以单一测量量为基础的估计方式要准确。

以飞机的某一状态为例:

(1)定性理解

卡尔曼滤波主要的工作步骤有两个:预测与更新

  • 在预测阶段,滤波器使用上一状态的估计,做出对当前状态的估计。

  • 在更新阶段,滤波器利用对当前状态的观测值优化在预测阶段获得的预测值,以获得一个更精确的新估计值。

(2)定量推导

卡尔曼滤波前提假设

  1. 假设物体时匀速运动的,即v1=v2
  2. 假设所有状态(位置)的变化都是线性的
  3. 噪声服从高斯分布

卡尔曼滤波器核心估计模式

1. 预测阶段

通过第k-1时刻预测出的k时刻估计值 = k-1时刻的最优值+ 控制增益

2. 更新阶段

K时刻位置的估计最优值 = 通过k-1时刻的预测k时刻的估计值+因子a ×(测量值-上次估计值)

3. 卡尔曼增益

1)卡尔曼增益

K_k-\frac{P_{K|K-1}}{H_KP_{K|K-1}+R_K}

其中R_k表示对象噪声的方差矩阵

当前位置状态最优估计:

X_{K|K}=X_{K|K-1}+K_K(Z_K-H_KX_{K|K-1})

此时k时刻的位置表达式就是由上一时刻估计的位置与占一定权重的误差(测量值与估计值)所构成的。

2)如何理解卡尔曼增益?

卡尔曼增益实质上这个是用来调节根据上个位置估计出的当前位置值与测量值最终结果中的占比用的。

上图中红色的高斯分布表示预测的小车位置蓝色的高斯分布表示观测的小车位置; 而融合后,就是绿色的位置;这里只是做了两个高 斯分布的相乘,结果是高斯分布。

三.统计概念理解

(1)马尔科夫链

  • 定性理解:某一过程当前的状态仅仅与上一时刻的状态有关,与过去无关
  • 结合雷达:当前位置的预测只需要通过上一时刻的位置来预测,不需要更早时刻的数据。

(2)转移矩阵

  • 定性理解:矩阵各元素都是非负的,并且各行元素之和等于1,各元素用概率表示,在一定条件下是互相转移的,故称为转移概率矩阵。
  • 结合雷达:计算出每一中情况下,从k-1状态达到k状态的概率,所有的概率构成一个转移矩阵。

四.卡尔曼滤波代码(matlab)

function kalman_filter
% 初始化参数
N = 100; % 观测数据长度
dt = 0.1; % 时间间隔
T = 10; % 总时间
x = randn(N, 1); % 初始状态
P = eye(N); % 初始估计协方差
Q = randn(N, N); % 过程噪声协方差
R = randn(N, N); % 观测噪声协方差
K = zeros(N, N); % 卡尔曼增益矩阵
x_est = zeros(N, 1); % 估计状态
P_est = eye(N); % 估计协方差矩阵% 卡尔曼滤波循环
for t = 1:T% 更新过程x_est(t) = x_est(t-1) + dt * (P_est(t-1) * x_est(t-1) + Q(t-1));P_est = P_est - dt * (P_est * x_est(t-1) + R(t-1));K(t) = P_est / (P_est + R(t)); % 卡尔曼增益计算% 预测部分(噪声)数据加上观测值进行修正y = z; % 这里的 z 是实际观测数据,根据你的应用设定,你可能需要使用一个接口或其他方式来获取这个值。y_hat = y - P * K; % 对预测的 y 值进行处理以获取正确的 y 值,这个处理通常包含了一些数学变换。% 使用新的 y 值来更新估计值和协方差矩阵x_est(t) = x_est(t) + K * (y - x_est(t)); % 用观测值更新估计值P_est = (eye(N) - K * P) * P_est; % 用观测噪声更新协方差矩阵
end
end

其中:

  • N是数据长度,也就是需要在卡尔曼滤波中处理的数据点数量
  • dt 是时间间隔
  • T 是总时间,也就是需要对数据进行的处理次数
  • x 是初始状态,P 是初始估计协方差矩阵,Q 是过程噪声协方差,R 是观测噪声协方差
  • K 是卡尔曼增益矩阵,它决定了如何使用观测值来更新估计值和协方差矩阵
  • x_est 是估计状态,它是在卡尔曼滤波过程中不断更新的值
  • P_est 是估计协方差矩阵,描述了估计状态的精度
  • 在循环中,首先进行更新过程,然后进行预测部分(噪声)数据加上观测值进行修正,最后使用新的观测值来更新估计值和协方差矩阵。这个过程会重复 T 次。

http://www.mrgr.cn/p/27864727

相关文章

5G前传光纤传输的25G光模块晶振SG2016CAN

一款适用于5G前传光纤传输网络中的25G光模块的5G晶振SG2016CAN。随着5G时代的到来,5G晶振的重要性也不言而喻,小体积宽温晶振SG2016CAN可以用于5G前传的25G光模块,具有高稳定性、小体积、宽温等优势。在5G前传光纤传输网络中,25G光…

医药垃圾分类管理系统|基于SSM医药垃圾分类管理系统的系统设计与实现(源码+数据库+文档)

医药垃圾分类管理系统 目录 基于SSM医药垃圾分类管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1系统登录模块 2管理员模块实现 3用户模块实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取: 博…

Spring SpringMVC——前端控制器初始化过程

创建完DispatcherServlet对象时,会执行类中的init方法如果不配置 load-on-startup,那么 DispatcherServlet 将在第一次收到请求时才会被实例化和初始化。这意味着 DispatcherServlet 不会在服务器启动时立即执行创建和初始化的操作。当第一个请求到达时,Servlet 容器(如 To…

Transformer详解:从放弃到入门(完结)

前几篇文章中,我们已经拆开并讲解了Transformer中的各个组件。现在我们尝试使用这些方法实现Transformer的编码器。   如图所示,编码器(Encoder)由N个编码器块(Encoder Block)堆叠而成,我们依次实现。 class EncoderBlock(nn.Module):def …

rust容器、迭代器

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家:点击跳转 目录 一,std容器 1,Vec(向量、栈) 2,VecDeque(队列、双端队…

社交客户关系管理(SCRM),和传统CRM的区分

一、SCRM是什么 SCRM是社交客户关系管理(Social Customer Relationship Management)的缩写,是指通过利用社交媒体和社交网络来管理和建立与客户之间的关系。SCRM将传统的客户关系管理(CRM)与社交媒体的互动和数据整合…

sql注入工具-​sqlmap

介绍: sqlmap是一款开源的自动化SQL注入工具,用于自动化检测和利用Web应用程序中的SQL注入漏洞。它具有强大的参数化查询和自定义注入脚本的功能,可以通过检测和利用SQL注入漏洞来获取数据库的敏感信息,如用户名、密码和其他重要…

【VMware vSphere】存储提供程序中I/O 筛选器状态显示为脱机以及证书已到期的解决办法。

存储提供程序是由 VMware 提供或由第三方通过 vSphere APIs for Storage Awareness (VASA) 开发的软件组件。存储提供程序也可以称为 VASA 提供程序。存储提供程序可与包含外部物理存储和存储抽象的各种存储实体(例如 vSAN 和 Virtual Volumes)集成。存储提供程序也可以支持软…

在 Linux 中复制文件和目录

目录 ⛳️推荐 前言 在 Linux 命令行中复制文件 将文件复制到另一个目录 复制文件但重命名 将多个文件复制到另一个位置 复制时处理重复文件 交互式复制文件 在 Linux 命令行中复制目录 仅复制目录的内容(不是目录) 复制多个目录 测试你的知…

图数据库 之 Neo4j 与 AI 大模型的结合绘制知识图谱

引言 随着信息时代的到来,海量的文本数据成为了我们获取知识的重要来源。然而,如何从这些文本数据中提取出有用的信息,并将其以可视化的方式展示出来,一直是一个具有挑战性的问题。近年来,随着人工智能技术的发展&…

Partisia Blockchain 生态首个zk跨链DEX现已上线

在5月1日,由Partisia Blockchain与zkCross创建合作推出的Partisia zkCrossDEX在Partisia Blockchain生态正式上线。Partisia zkCrossDEX是Partisia Blockchain上重要的互操作枢纽,其融合了zkCross的zk技术跨链互操作方案,并利用Partisia Bloc…

Vue 中 $nextTick 的作用是什么?

目录 一、NextTick是什么 为什么要有nexttick 二、使用场景 三、实现原理 一、NextTick是什么 官方对其的定义 在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM 什么意思呢? 我们可以理解成&#xff0c…

服务器分层拓扑架构图形化显示工具

目录服务器分层拓扑架构图形化显示工具 --- HWLOC下载依赖包安装源码编译安装执行命令示例显示 PCI 层次结构参考文档服务器分层拓扑架构图形化显示工具 --- HWLOC可移植硬件局部 (hwloc) 软件包提供了现代架构分层拓扑的可移植抽象(跨操作系统、版本、体系结构等),包括 N…

台湾精锐APEX行星减速机噪音产生及优化策略

台湾精锐APEX行星减速机在各种机械装置中的应用逐渐广泛。然而,其噪音问题也日益凸显。噪音不仅影响工作环境,还可能对设备的正常运行和使用寿命产生负面影响。因此,了解APEX行星减速机噪音的产生以及优化噪音问题变得至关重要。 APEX行星减…

流畅的python学习笔记

示例1-1 一摞有序的纸牌知识点:collections.namedtuple 构建了一个简单的类,表示单张纸牌。from collections import namedtuple Card = namedtuple(Card, [rank, suit])class FrenchDeck:ranks = [str(n) for n in range(2,11)] + list(JQKA)suits = spades diamonds clubs …

网络安全零信任学习1:基本概念

读书《白话零信任》一书笔记系列: 1)基本概念 传统安全模式在某种程度上假设内网用户、设备和系统是可信的, 忽视了来自内网的威胁。企业一般专注于对外部的防御,内网用户 的访问行为往往只受到很少的限制。 随着网络攻击手段的提…

算法提高之能量项链

算法提高之能量项链 核心思想&#xff1a;区间dp 通过观察发现可以将n个珠子最后的n1个数看作石子 合并石子 在l~r的范围内 找k作隔断 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 110,M N<<…

n-Track Studio Suite for Mac激活版:打造您的专属音频工作室

n-Track Studio Suite for Mac是一款功能强大的数字音频工作站软件&#xff0c;让您在家中就能享受到专业录音棚的待遇。无论是录制人声、乐器还是MIDI序列&#xff0c;都能轻松应对。 n-Track Studio Suite for Mac激活版下载 这款软件拥有实时音高校准、时间拉伸和自动补足功…

+63+条消息++狂神+docker+学习笔记_GaleTeng+的博客+-+CSDN+博客

+63+条消息++狂神+docker+学习笔记_GaleTeng+的博客+-+CSDN+博客 文章目录前言Docker 概述1.Docker 为什么会出现?2.Docker 历史3.Docker 能干嘛Docker 安装1. Docker 的基本组成2. 安装 Docker3. 阿里云镜像加速4. 回顾 HelloWorld 流程5. 底层原理Docker 常用命令1. 帮助命令…

GeometryCollection 的类型映射器(TypeHandler)

GeometryCollection 是 GeoJSON 数据模型中的一个类型,用于表示一个几何对象的集合。MySQL8 中支持了 GeometryCollection 类型,在对数据库和实体类进行对象映射时需要我们自己编写类型映射器来完成映射。java 本身不支持 GeometryCollection 类型,我们需要引入第三方包来获…