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

server/2024/11/15 8:21:11/

目录

一. 滤波器分类

二.卡尔曼滤波(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.ppmy.cn/server/38138.html

相关文章

【MySQL】6.强化数据防线:MySQL安全机制的配置与应用

数据库作为企业数据的核心存储地,其安全性直接关系到企业的命脉。MySQL,作为广泛使用的开源数据库管理系统,提供了一套全面安全机制来保护数据免受未授权访问和各种潜在威胁。本文将深入探讨MySQL安全机制的组成要素、实际应用以及它们在保障…

Java17 --- SpringCloud之Zipkin链路追踪

目录 一、下载zipkin及运行 二、在父工程中引入pom依赖 三、在子工程8001引入相关pom依赖 3.1、修改yml配置文件 3.2、测试代码 四、在子工程80引入相关pom依赖 4.1、修改yml配置文件 4.2、测试代码 五、测试结果 一、下载zipkin及运行 运行控制台访问地址&#xff1…

如何关闭HDFS的高可用性(HA)

要关闭HDFS的高可用性(HA),你需要执行以下步骤: 1. 停止HDFS服务: 在关闭HA之前,首先需要停止HDFS服务。可以使用以下命令停止HDFS: sudo service hadoop-hdfs-namenode stopsudo service hadoo…

韩国站群服务器提供高级安全防护以确保数据和网站的安全性

韩国站群服务器提供高级安全防护以确保数据和网站的安全性 在当今数字化时代,网站的安全性和数据保护已成为企业和个人不可忽视的重要议题。韩国站群服务器作为一个拥有发达科技和互联网基础设施的国家,通过提供高级安全防护措施,为用户的数…

设计模式——建造者模式(Builder)

建造者模式(Builder Pattern)是一种对象构建的设计模式,它允许你以一种逐步构建的方式来创建复杂对象。建造者模式通常用于构建具有多个组成部分的对象,并且这些组成部分通常具有不同的构建和表示方式。 建造者模式主要包括以下几…

分布式锁之-mysql

使用mysql实现分布式锁的方式这里演示两种: 1:基于 MySQL 实现的乐观锁 2:基于 MySQL 实现的悲观锁 数据库脚本 SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for product_stock -- -----------------------…

环形链表的判断方法与原理证明

(题目来源:力扣) 一.判读一个链表是否是环形链表 题目: 解答: 方法:快慢指针法 内容:分别定义快慢指针(fast和slow),快指针一次走两步,慢指…

【深度学习】优化算法:从梯度下降到Adam

深度学习中的优化算法:从梯度下降到Adam 一、优化算法概述二、一阶优化算法详解梯度下降法(Gradient Descent)随机梯度下降法(Stochastic Gradient Descent) 三、动量法与自适应学习率算法动量法(Momentum&…