卡尔曼滤波简介 —— 一维卡尔曼滤波

这篇具有很好参考价值的文章主要介绍了卡尔曼滤波简介 —— 一维卡尔曼滤波。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

原文:The alpha - beta - gamma filter (kalmanfilter.net)

一维卡尔曼滤波

        在本章中,我们将在一个维度上推导出卡尔曼滤波。本章的主要目标是简单直观地解释卡尔曼滤波的概念,而不使用可能看起来复杂和令人困惑的数学工具。

        我们将逐步推进卡尔曼滤波方程。

        在本章中,我们推导出没有过程噪声的卡尔曼滤波方程。在下一章中,我们将添加过程噪声。

无过程噪声的一维卡尔曼滤波

        正如我前面提到的,卡尔曼滤波器基于五个方程。我们已经熟悉其中的两个:

  • 状态更新公式
  • 动态模型方程

        在本章中,我们推导出另外三个卡尔曼滤波方程并修正状态更新方程。

        与 滤波器一样,卡尔曼滤波器采用“测量、更新、预测”算法。

        与 滤波器相反,卡尔曼滤波器将测量值、当前状态估计和下一个状态估计(预测)视为正态分布的随机变量。随机变量由均值和方差描述。

         下图提供了卡尔曼滤波算法的低级示意图描述:

卡尔曼滤波简介 —— 一维卡尔曼滤波

        让我们回顾一下我们的第一个示例(金条重量测量);我们进行了多次测量,并通过平均计算了估计值。

我们得到了以下结果:

卡尔曼滤波简介 —— 一维卡尔曼滤波

        上图显示了真实值、测量值和估计值与测量次数的关系。

估计为随机变量

        估计值(红线)和真值(绿线)之间的差值是估计误差。如您所见,当我们进行额外的测量时,估计误差会变小,并且它收敛于零,而估计值收敛于真实值。我们不知道估计误差,但我们可以估计状态不确定性

        我们用  p  表示状态估计方差。

作为随机变量进行测量

        测量误差是测量值(蓝色样本)和真实值(绿线)之间的差异。由于测量误差是随机的,我们可以通过方差来描述它们。测量误差的标准偏差 ( ) 是测量误差是测量值(蓝色样本)和真实值(绿线)之间的差异。

注意:在一些文献中,测量不确定度也称为测量误差

        我们用  r  表示测量方差。

        测量误差的方差可以由测量设备供应商提供,计算或通过校准程序凭经验得出。

        例如,在使用秤时,我们可以通过对具有已知重量的物品进行多次测量来校准秤,并根据经验得出标准偏差。秤供应商还可以提供测量不确定度参数。

        对于雷达等高级传感器,测量不确定度取决于几个参数,如SNR(信噪比)、波束宽度、带宽、目标时间、时钟稳定性等。每个雷达测量都有不同的SNR、波束宽度和目标时间。因此,雷达计算每次测量的不确定性并将其报告给跟踪器。

        让我们看一下权重测量PDF(概率密度函数)。

        下图显示了金条重量的十个测量值。

  • 蓝色圆圈描述测量值。
  • 真实值由红色虚线描述。
  • 绿线描述了测量的概率密度函数。
  • 绿色粗体区域是测量的标准偏差( ),即测量值位于该区域内的概率为 68.26%。

        如您所见,7 个测量值中有 10 个在 1 边界内。

卡尔曼滤波简介 —— 一维卡尔曼滤波

状态预测

        在我们的第一个例子中,金条重量的测量,动态模型是恒定的:

                                ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

         

        在第二个例子中,一维雷达案例,我们使用运动方程将当前状态(目标位置和速度)外推到下一个状态:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        即,预测位置等于当前估计位置加上当前估计速度乘以时间。预测速度等于当前速度估计值(假设速度模型恒定)。

        动态模型方程取决于系统。

        由于卡尔曼滤波将估计值视为随机变量,我们还必须将估计方差 外推到下一个状态。

卡尔曼滤波简介 —— 一维卡尔曼滤波

        在我们的第一个示例(金条重量测量)中,系统的动态模型是恒定的。因此,估计不确定性外推为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        其中:

         p  是金条权重的估计方差。

        在第二个示例中,估计不确定性外推为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        其中:

是位置估计方差
是速度估计方差

        即,预测位置估计方差等于当前位置估计方差加上当前速度估计方差乘以时间平方。预测的速度估计方差等于当前速度估计方差(假设速度模型恒定)。

        请注意,对于方差为 的任何正态分布随机变量  x , kx  呈正态分布,方差为,因此不确定性外推方程中的时间项是平方的。您可以在请注意,对于任何正态分布的随机变量中找到详细说明。

        估计不确定性外推方程称为协方差外推方程,它是第三个卡尔曼滤波方程。为什么是协方差?我们将在多元卡尔曼滤波章节中看到这一点。

状态更新

        为了估计系统的当前状态,我们组合了两个随机变量:

  • 先前状态估计(在先前状态预测的当前状态估计)
  • 测量

卡尔曼滤波简介 —— 一维卡尔曼滤波

        卡尔曼滤波是最佳滤波。它将先前的状态估计与测量相结合,以最小化当前状态估计的不确定性。

        当前状态估计值是测量值和先前状态估计值的加权平均值:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        其中 和 是测量值和先验状态估计值的权重。

        我们可以写 如下:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        方差之间的关系由下式给出:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        其中:

        是最优组合估计的方差

        是先验估计值的方差

        是测量值的方差

        请记住,对于方差为 的任何正态分布随机变量  x, kx 呈正态分布,方差为 。您可以在请记住,对于任何正态分布的随机变量中找到详细说明。

        由于我们正在寻找最佳估计,因此我们希望最小化。

        为了找到最小化的 ,我们将 与进行区分并将结果设置为零。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​ 卡尔曼滤波简介 —— 一维卡尔曼滤波

        因此

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        让我们将结果代入当前状态估计:

卡尔曼滤波简介 —— 一维卡尔曼滤波

        我们推导出了一个类似于   过滤器状态更新方程的方程。创新的权重称为我们推导出了一个方程,它看起来类似于(用表示)。

        卡尔曼增益方程是第四个卡尔曼滤波方程。在一个维度上,卡尔曼增益方程如下:

卡尔曼滤波简介 —— 一维卡尔曼滤波        其中:

是外推估计方差
是测量方差

        卡尔曼增益是一个介于 0 和 1 之间的数字:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        最后,我们需要找到当前状态估计的方差。我们已经看到方差之间的关系由下式给出:

        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        权重 是卡尔曼增益:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        让我们找到 ( ) 项:

卡尔曼滤波简介 —— 一维卡尔曼滤波

 卡尔曼滤波简介 —— 一维卡尔曼滤波

         此公式更新当前状态的估计方差。它称为协方差更新方程

        从方程中可以清楚地看出,估计不确定性随着每次滤波器迭代而不断减小,因为 ( )。当测量不确定度较高时,卡尔曼增益较低。因此,估计不确定性的收敛将是缓慢的。然而,当测量不确定度较低时,卡尔曼增益很高。因此,估计不确定性将很快收敛到零。

        因此,由我们决定进行多少次测量。如果我们测量建筑物的高度,并且我们对 3 厘米的精度感兴趣 ( ),我们应该进行测量,直到状态估计方差 ( ) 小于。

把所有东西放在一起

        本节将所有这些部分合并到一个算法中。

 过滤器输入为:

  • 初始化
  • 初始化仅执行一次,它提供两个参数:
    • 初始系统状态 ( ) 
    • 初始状态方差 ( )
  •         初始化参数可以由另一个系统、另一个过程(例如,雷达中的搜索过程)或基于经验或理论知识的有根据的猜测提供。即使初始化参数不精确,卡尔曼滤波器也可以收敛到接近真实值。
  • 测量
  • 测量针对每个过滤器周期执行,并提供两个参数:
    • 测量的系统状态 ()
    • 测量方差 ( )

        滤波器输出为:

  • 系统状态估计 ( )
  • 估计方差 ( )

下表总结了五个卡尔曼滤波方程。

卡尔曼滤波简介 —— 一维卡尔曼滤波

注1:上述公式不包括过程噪声。在下一章中,我们将添加过程噪声。

注2:状态外推方程和协方差外推方程取决于系统动力学。

注3:上表展示了针对特定情况量身定制的卡尔曼滤波方程的一种特殊形式。方程的一般形式稍后以矩阵表示法的形式呈现。现在,我们的目标是理解卡尔曼滤波器的概念。

        下图提供了卡尔曼滤波器框图的详细说明。

卡尔曼滤波简介 —— 一维卡尔曼滤波

  • 步骤 0:初始化
  • 如上所述,初始化只执行一次,它提供了两个参数:
    • 初始系统状态 ( )
    • 初始状态方差 ( )
    • 初始化后是预测。
  • 第 1 步:测量
  • 测量过程提供两个参数:
    • 测量的系统状态 ( )
    • 测量方差 ( )
  • 第 2 步:状态更新
  • 状态更新过程负责系统当前状态的状态估计。
  • 状态更新过程输入包括:
    • 测量值 ( )
    • 测量方差 ( )
    • 先前预测的系统状态估计 ( )
    • 先前预测的系统状态估计方差 ( )
    • 根据输入,状态更新过程计算卡尔曼增益并提供两个输出:
    • 当前系统状态估计 ( )
    • 当前状态估计方差 ( )
    • 这些参数是卡尔曼滤波输出。
  • 第 3 步:预测
  • 预测过程根据系统的动态模型将当前系统状态估计值及其方差外推到下一个系统状态。

    在第一次筛选器迭代中,初始化被视为“先前状态估计值和方差”。

    预测输出在以下筛选器迭代中用作先前(预测)状态估计和方差。

卡尔曼增益直觉

        让我们重写状态更新公式:

卡尔曼滤波简介 —— 一维卡尔曼滤波

        如您所见,卡尔曼增益 ( ) 是测量权重,( ) 项是当前状态估计值的权重。

        当测量不确定度较高且估计不确定度较低时,卡尔曼增益接近于零。因此,我们对估计值给予很大的权重,对测量给予较小的权重。

        另一方面,当测量不确定度较低且估计不确定度较高时,卡尔曼增益接近1。因此,我们对估计值给予较低的权重,对测量给予显着的权重。

        如果测量不确定度等于估计不确定度,则卡尔曼增益等于 0.5。

        卡尔曼增益 定义测量值的权重和形成新估计值时的先前估计值的权重。它告诉我们测量值对估计值有多大变化。

高卡尔曼增益

        相对于估计不确定度的低测量不确定度将导致较高的卡尔曼增益(接近1)。因此,新的估计数将接近测量值。下图说明了高卡尔曼增益对飞机跟踪应用中估计值的影响。

卡尔曼滤波简介 —— 一维卡尔曼滤波

低卡尔曼增益

        相对于估计不确定度较高的测量不确定度将导致较低的卡尔曼增益(接近0)。因此,新的估计数将接近先前的估计数。下图说明了低卡尔曼增益对飞机跟踪应用中估计值的影响。

卡尔曼滤波简介 —— 一维卡尔曼滤波

        现在我们了解了卡尔曼滤波算法,并为第一个数值示例做好了准备。

示例 5 – 估计建筑物的高度

        假设我们想使用不精确的高度计来估计建筑物的高度。

        我们知道,建筑高度不会随时间而变化,至少在短测量过程中是这样。

卡尔曼滤波简介 —— 一维卡尔曼滤波

数值示例

  • 实际建筑高度为50米。
  • 高度计测量误差(标准偏差)为 5 米。
  • 这十个尺寸是:49.03米,48.44米,55.21米,49.98米,50.6米,52.61米,45.87米,42.64米,48.26米,55.84米。

迭代零

初始化

        人们可以通过简单地观察来估计建筑物的高度。

        用于初始化目的的建筑物的估计高度为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        现在我们将初始化估计方差。人类估计误差(标准差)约为 15 米:。因此方差为 225:。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

预测

        现在,我们将根据初始化值预测下一个状态。

        由于我们系统的动态模型是恒定的,即建筑物不会改变其高度:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        外推估计方差也不会改变:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

第一次迭代

        步骤 1 - 测量

                第一个测量值是:。

                由于高度计测量误差的标准差 ( ) 为 5,因此方差 ( ) 为 25,因此,测量方差为 : () 。

        步骤 2 - 更新

                卡尔曼增益计算:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

                估计当前状态:

卡尔曼滤波简介 —— 一维卡尔曼滤波

                更新当前估计差异:

        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        步骤 3 - 预测

                由于我们系统的动态模型是恒定的,即建筑物不会改变其高度:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

                外推估计方差也不会改变:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

第二次迭代

        单位时间延迟后,上一次迭代的预测估计值将成为当前迭代中的先前估计值:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        外推估计方差变为先验估计方差:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        步骤 1 - 测量

                 第二个测量值为:

                 测量方差为:

        步骤 2 - 更新

                卡尔曼增益计算:

        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

                估计当前状态:

卡尔曼滤波简介 —— 一维卡尔曼滤波

                更新当前估计差异:

        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

步骤 3 - 预测

        由于我们系统的动态模型是恒定的,即建筑物不会改变其高度:

        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

        外推估计方差也不会改变:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        卡尔曼滤波简介 —— 一维卡尔曼滤波

迭代 3-10

        下表汇总了后续迭代的计算:

卡尔曼滤波简介 —— 一维卡尔曼滤波

结果分析

        首先,我们要确保卡尔曼滤波收敛。卡尔曼增益应逐渐减小,直到达到稳定状态。当卡尔曼增益较低时,噪声测量的权重也较低。下图描述了卡尔曼滤波器前一百次迭代的卡尔曼增益。

卡尔曼滤波简介 —— 一维卡尔曼滤波

        我们可以看到卡尔曼增益在前十次迭代中显着降低。卡尔曼增益在大约五十次迭代后进入稳定状态。

        我们还想检查准确性。准确度表示测量值与真实值的接近程度。下图比较了前 50 次迭代的真实值、测量值和估计值。

卡尔曼滤波简介 —— 一维卡尔曼滤波

        估计误差是真实值(绿线)和卡尔费休估计值(红线)之间的差异。我们可以看到,KF的估计误差在滤波器收敛区域减小。

        可以根据特定的应用要求定义精度标准。典型的精度标准是:

  • 最大误差
  • 平均误差
  • RMSE(均方根误差)

        另一个重要参数是估计不确定性。我们希望钦哲基金会的估计是准确的;因此,我们对低估计不确定性感兴趣。

        假设对于建筑物高度测量应用,需要 95% 的置信度。下图显示了 KF 估计值和具有 95% 置信区间的真实值。

卡尔曼滤波简介 —— 一维卡尔曼滤波

        置信区间是根据估计值的不确定性计算的。您可以在此处找到置信区间计算的准则。

        在上图中,置信区间被添加到估计值(红线)中。95% 的绿色样本应在 95% 置信区域内。

        我们可以看到不确定性太高了。让我们降低测量不确定度。

        下图描述了低测量不确定度参数的KF输出。

卡尔曼滤波简介 —— 一维卡尔曼滤波

        尽管我们降低了估计值的不确定性,但许多绿色样本都在 95% 置信区之外。卡尔曼滤波过于自信,对其准确性过于乐观。

        让我们找到产生所需估计不确定度的测量不确定度。

卡尔曼滤波简介 —— 一维卡尔曼滤波

        上图显示,2 个样本中有 50 个略高于 95% 置信区域。这种性能满足了我们的要求。

示例摘要

        在本例中,我们使用一维卡尔曼滤波器测量了建筑高度。与 滤波器不同,卡尔曼增益是动态的,取决于测量设备的精度。

        卡尔曼滤波使用的初始值并不精确。因此,状态更新方程中的测量权重较高,估计不确定度较高。

        每次迭代时,测量重量都更低;因此,估计不确定性较低。

        卡尔曼滤波输出包括估计值和估计不确定性。文章来源地址https://www.toymoban.com/news/detail-492849.html

到了这里,关于卡尔曼滤波简介 —— 一维卡尔曼滤波的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于卡尔曼滤波的视频跟踪,基于卡尔曼滤波的运动小球跟踪

    完整代码和数据下载链接:基于卡尔曼滤波的视频跟踪,基于卡尔曼滤波的运动小球跟踪(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88738577 卡尔曼滤波原理 RBF的定义 RBF理论 易错及常见问题 RBF应用实例,基于rbf的空调功率预测 代码 结果分析

    2024年02月02日
    浏览(35)
  • 卡尔曼滤波理论小释之卡尔曼增益

    卡尔曼增益是卡尔曼滤波理论中的一个核心概念。一般教材里面是这么给出它的公式的: 图1  卡尔曼增益 直觉上容易理解,所谓的增益是指每次融合数据后不确定性的变化程度。如果融合了新的数据后不确定性降低了,那么这个增益就是正面的,有助于提高预测的准确度。

    2024年02月05日
    浏览(71)
  • 卡尔曼滤波器-概述及用递归思想解读卡尔曼滤波器 | 卡尔曼滤波器应用举例(附Matlab程序)| 数学基础-数据融合、协方差矩阵、状态空间方程

      卡尔曼滤波器是最优化的(Optimal)、递归的(Recursive)、数字处理的(Data Processing)算法(Algorithm)。卡尔曼滤波器更像是观测器,而不是一般意义上的滤波器,应用广泛,尤其是在导航中,它的广泛应用是因为生活中存在大量的不确定性。   当描述一个系统的不确

    2024年02月06日
    浏览(31)
  • 卡尔曼滤波系列_实例(二)均加速运动的卡尔曼滤波

    此系列(一)对卡尔曼滤波的原理进行了简单的阐述,总结了卡尔曼滤波的两大过程:预测和更新。接下来举例对卡尔曼滤波的使用进行介绍,加深对卡尔曼滤波的理解。 1.场景介绍 如上图所示,可知小车的初始速度为0,初始位置也为0,小车向前的加速度为1,小车感知自身

    2024年02月15日
    浏览(22)
  • 卡尔曼滤波介绍

        卡尔曼滤波无论是在单目标还是多目标领域都是很常用的一种算法,将卡尔曼滤波看作一种运动模型,用来对目标的位置进行预测,并且利用预测结果对跟踪的目标进行修正,属于自动控制理论中的一种方法。     在对视频中的目标进行跟踪时,当 目标运动速度较慢 时

    2024年02月14日
    浏览(31)
  • 卡尔曼滤波学习笔记

    从直观上来看,卡尔曼滤波是把两个存在误差的结果 融合 在一起,得到一个从数学上可以得到证明的 最优估计值 。 而这两个存在误差的结果,一个是从理论上推导出来的,称之为 先验估计值 ;一个是用传感器测量出来的,称之为 测量值 。它们之所以存在误差,是因为前

    2024年02月11日
    浏览(30)
  • 【算法系列】卡尔曼滤波算法

    ·【算法系列】卡尔曼滤波算法 ·【算法系列】非线性最小二乘求解-直接求解法 ·【算法系列】非线性最小二乘求解-梯度下降法 ·【算法系列】非线性最小二乘-高斯牛顿法  ·【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法  文章目录 系列文章 文章目录 前言 一、

    2024年02月12日
    浏览(27)
  • 算法介绍及实现——卡尔曼滤波

            本文主要介绍卡尔曼滤波的推导过程及建模步骤,是网站的学习笔记。本文主要是通过例子来引出卡尔曼滤波的建模思想及算法步骤。 参考网站:(这个网站讲得真的很详细很清楚,层层递进,逻辑清晰) Kalman Filter Tutorial https://www.kalmanfilter.net/ 目录 一、引言

    2024年02月14日
    浏览(28)
  • 卡尔曼滤波算法原理及示例

      例程:物体做匀速运动每秒运动1m,观测器观测方差为1m

    2024年02月15日
    浏览(27)
  • 卡尔曼滤波的Python实现

    为了在Python编程环境下实现卡尔曼滤波算法,特编写此程序 主要用到了以下3个模块 numpy(数学计算) pandas(读取数据) matplotlib(画图展示) 代码的核心是实现了一个Kf_Params类,该类定义了卡尔曼滤波算法的相关参数 然后是实现了一个kf_init()函数,用来初始化卡尔曼滤波算

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包