定义卡尔曼滤波器及其应用(概念)

Posted

技术标签:

【中文标题】定义卡尔曼滤波器及其应用(概念)【英文标题】:Defining a kalman filter and its application ( Concept) 【发布时间】:2012-06-04 19:43:32 【问题描述】:

我有一个简单的问题。我正在跟踪一个对象并以非均匀的时间间隔获取它的位置。 物体的速度和加速度不是恒定的。

data_=[time x,y,z]

要设计卡尔曼滤波器,我需要定义

z=[x;y;z] % observation

% Estimation vector
xt=[xt;yt;zt;x't;y't;z't]  % ' first derivative



P=Covariance matrix of estimation vector 
R=Covariance matrix of measurement 
Q= covariance of noise

问题1:这两个R&P有什么区别 如果测量精度为 1mm,那么 P 是多少? 问题2:在后期处理中使用这种卡尔曼滤波器有什么好处。如果是的话,它可以得到平滑的轨迹,为什么我们需要它。

希望我能从你们那里得到足够的信息。

【问题讨论】:

【参考方案1】:

问题 1

R 是测量的协方差矩阵。它与您的模型和您的估计无关。

P 是您的估计误差的协方差矩阵。它与您的模型和您估计状态的方式完全相关。 P 与您的测量精度无关。您必须使用 update 方程在每次迭代中计算它。

问题 4

Kalman 的目标是过滤您要跟踪的状态的噪声测量值,因此您可以获得更类似于没有噪声的真实状态的结果(噪声是测量中的不确定性)。

【讨论】:

【参考方案2】:

卡尔曼滤波器可以首先由graphical model 描述,它显示了依赖关系、独立性、隐藏的内容和观察到的内容、事物如何演变;也由probability formulas 编写,然后才通过表示噪声、线性模型等的矩阵显式编写这些概率。理解概率是在将它们编写为矩阵模型之前的第一个不可避免的步骤(一个典型的错误是跳跃在不了解基本概率框架的情况下学习矩阵和线性代数)。

W以下表示世界状态变量(隐藏),X表示测量值;下标 t 是一个时间步长。

问题 1: 您有两个卡尔曼滤波器基于的模型: 一种。 数据模型 P(Xt|Wt) = 给定世界隐藏状态的测量概率;这只是数据中的噪声模型(由 R 表示),它还线性变换 W 以获得 X(使用其他矩阵);请注意,它仅取决于当前步骤 Wt,即不涉及历史记录。 湾。 时间转换模型 P(Wt|Wt-1),显示您的系统如何演变(例如移动、加速);就像之前的模型一样,它也有一些由 P 表示的不确定性(不是噪声,而是类似的),还有一些线性转换矩阵(用于及时转换状态); C。 Q?“噪声协方差”在您的问题中是一个奇怪的术语,因为它没有说明这种噪声来自何处。通常在描述中,Q 是您所指的 P,因此您可能只是将 P 误认为 Q,反之亦然。

问题 2:卡尔曼滤波器的目标是在给定时间 t 的测量值以及测量历史的情况下,给出时间 t 的隐藏世界状态的统计最优估计。由于历史是一次合并一个步骤(马尔可夫属性),您“测量合并”步骤将当前测量与其估计相结合,因此产生的不确定性小于每一条信息。

通俗地说,卡尔曼滤波器对您的数据和数据预测进行加权平均,其中权重是可靠性(与方差成反比)。用统计术语来说,卡尔曼滤波器是一种马尔科夫模型,它假设仅依赖于前一步,并使用 t-1 时的状态后验概率来评估时间 t 的先验(预测步骤),然后结合此先验与贝叶斯框架中的数据概率(测量合并步骤)。像这样阅读下面的公式:

     prediction: current state guess  = transition_model * prev. state guess

P(Wt | Xt1..t-1) = 积分[ P(Wt|Wt-1) * P(Wt-1 | X1..t-1) dWt-1]

          measurement: best estimate = data_noise_model * current state guess

P(Wt | Xt1..t) = P(Xt | Wt) P(Wt | Xt1..t-1) /P(Xt1..t)

请注意 LHS 的微小差异(顶部公式具有 t-1,底部公式具有 t,强调考虑了电流测量)。 注意左侧的相似性,这是卡尔曼滤波器更新的关键:先前的后验变为先验。你学到了一些东西,然后用它作为你的假设来学习/估计更多。

【讨论】:

以上是关于定义卡尔曼滤波器及其应用(概念)的主要内容,如果未能解决你的问题,请参考以下文章

Kalman filtering卡尔曼滤波和Particle Filter粒子滤波及其MATLAB实现

滤波算法 | 无迹卡尔曼滤波(UKF)算法及其Python实现

卡尔曼滤波简介及其算法实现代码(C++/C/MATLAB)

通俗理解卡尔曼滤波及其算法实现(实例解析)

通俗理解卡尔曼滤波及其算法实现(实例解析)

卡尔曼滤波的理解