Kalman Filter 通俗讲解


引言

Kalman Filter,很多人刚听到这个名词时,总是会下意识认为这就是个滤波器。我这里想要重点声明的是,Kalman Filter不是滤波,它是一种信息融合的过程。

那么Kalman Filter到底是什么?它在那些方面有着应用,它的基本原理又是什么。如果你参考国内的论坛或者教材上,你一定会发现,大部分都是一些复杂公式与枯燥抽象的说明。这里我们将通过尽量通俗易懂的讲解来给大家解释下什么叫Kalman Fiter。

先睹为快

正如我前面提到的,从定义及复杂公式去理解卡尔曼滤波,对咱们凡人来说基本是不可能的。我们将公式简化,先从下面的公式来开始讲解:

Kalman Filter 通俗讲解

Kalman Filter 通俗讲解

卡尔曼滤波器为每个结果状态找到最优的平均因子。 不知怎的,还记得一些关于过去的状态。

如何,Kalman Filter神奇吧!

分步指南

下面是分布指南,可以快速开始卡尔曼滤波。

Step1 构建模型

这是最重要的步骤。首先,你必须确保卡尔曼滤波的条件符合你的问题。

我们还记得卡尔曼滤波的两个典型方程(wiki):

Kalman Filter 通俗讲解

Kalman Filter 通俗讲解

Step2 开始处理

如果你成功的将你的模型拟合到卡尔曼滤波器中,那么接下来的步骤就是决定必要的参数及你的初始值。

我们有两个不同的方程集合:时间更新(预测)及测量更新(校准)。两个方程集合都是应用在第k个状态

Kalman Filter 通俗讲解

我们在步骤一中建立模型,因此我们知道矩阵A,B和H。很可能,他们都是数值常量。并且他们极可能都是数值1.

我建议你们重新写下这些公式,并看看如何去简化这些公式。

.

上述公式中最痛苦的事儿就是确定R和Q了。R还相对比较容易找出,因为,通常来讲,我们对环境中的噪声还是比较确定的。但是寻找Q就并不明显了。在这个阶段,我们并不能给你一个指定的方法。

Kalman Filter 通俗讲解

Step3 迭代

在我们收集了我们需要的所有信息后,我们开始处理流程,现在我们可迭代估计。我们要牢记上一状态的估计将成为当前状态的估计的输入。

Kalman Filter 通俗讲解

这里,先验估计指测量更新校准前的粗略估计。这里我们使用在测量更新公式中的先验值

在测量更新公式中,我们找到了在状态k时x的估计。并且找到了为了状态k+1估计所需要的值。

我们计算的卡尔曼增益,在下一个迭代步骤中并不需要。 这是一组方程中隐藏的,神秘的,最重要的部分。

我们在测量更新阶段评估的值也称为后验值。这也是说得通的。

一个简单的例子

如果小伙伴们在看到这里还有点稀里糊涂的,那么接下来我们找个例子来加深下理解。

现在,让我们努力去估计一个标量随机常数,例如来自某个信号源的“电压读数”。假设它有一个恒定的a V电压,但是我们读数会不准确,可能会读高了,也有可能读低了。我们假设测量噪声的的标准差为0.1 V。

现在我们来构建我们的模型:

Kalman Filter 通俗讲解

就像我之前说的,我们可以把方程简化成非常简单的形式。

  • 首先,我们有一个一维的信号的问题,因此我们模型中的每个系数都是数值,而不是矩阵。
  • 我们并没有控制信号u
  • k
  • uk
  • 因为信号是一个常数,那么常数A就是1,因为我们已经知道下一个值等于先前的值。我们很幸运,在这个例子中我们有一个恒定的值,但是即使它具有其他任何线性性质,我们都可以将它假设成1.
  • 值H=1,因为我们知道测量值是由状态值和一些噪声组成的。你很少会遇到现实生活中,H与1不相同的情况

最后,我们假设我们得到了下面的测量值

Kalman Filter 通俗讲解

Kalman Filter 通俗讲解

每一轮计算的步骤:

Kalman Filter 通俗讲解

Kalman Filter 通俗讲解


分享到:


相關文章: