卡尔曼滤波器中的观察矩阵

信息处理 信号分析 卡尔曼滤波器
2022-01-09 05:35:50

我一直在尝试理解卡尔曼滤波器的概念。我遇到了这篇很棒的文章,它使这个概念足够清晰。

但是我无法理解矩阵的概念H我认为是观察矩阵。在本文的公式 8 中,传感器使用此矩阵建模。我浏览了这个网站上的一些帖子,在那里我发现H矩阵始终是 1 和 0 的组合。

对于我试图估计速度或位置等参数值的任何系统,这是否总是正确的?

4个回答

如果你能那样做,就可以直接实现卡尔曼滤波器。举个例子 - 考虑笛卡尔坐标中的恒定速度模型,但您唯一测量的是位置(不是速度),并且您正在测量笛卡尔坐标系中的位置。然后你的H矩阵只会像您描述的那样挑选位置值。

现在考虑一个声纳或雷达系统——它测量距离和方位而不是 x、y、z。现在测量在极坐标/球坐标系中进行,但更容易将目标的模型保持为在笛卡尔坐标系中具有恒定速度。现在您的状态传播矩阵与前一种情况相同,但现在您的H矩阵需要将您的笛卡尔状态坐标转换为极坐标/球坐标以进行测量。例如,R=x2+y2+z2. 所以现在你的H矩阵不是简单地提取状态变量之一。事实上你的H甚至不是一个常数值——它随着状态向量的值而变化。因此测量矩阵中的变换H是非线性的,所以卡尔曼滤波器甚至不再是最优的。在这种情况下,您现在进入扩展卡尔曼滤波器以尝试处理转换中的非线性。

这是为了给你一个具体的例子。另外,请注意,还有其他方法可以处理笛卡尔到球面的转换问题。

正是这种形式H矩阵需要取决于您的信号模型。

位置模型的好处是我们在加速度、速度和位置之间有非常清晰的关系——我们用来测量这些量的仪器直接测量它们。

这意味着我们可以根据这些量写下状态更新方程和测量方程——这些量是系统状态的良好选择(有时没有加速度)。

在这种情况下,当我们应用卡尔曼滤波器的系统状态是可直接测量的(通过一些噪声传感器)时,H矩阵只有 1 和 0。

有时情况并非如此。例如,可以使用不同的状态选择来定义等效的状态空间系统。该系统仍然模拟我们的位置问题,但状态不直接映射到位置和速度。

观察矩阵H实际上是一个变换矩阵。它将状态空间转换为测量空间。

例如,系统状态可以是“s”,是两个传感器输出“a”和“b”之和。

s = a + b

现在在更新阶段的状态变量更新期间,卡尔曼增益将应用于测量(也称为观察)数据和预测状态之间的差异。

在我们设计的示例中,预测状态是一个标量,而测量数据是一个向量 [一个包含两个传感器输出的向量]。观察矩阵将预测状态转换为向量,以便可以获取差异并应用卡尔曼增益。

假设我们正在使用雷达/激光雷达跟踪车辆。雷达/激光雷达放置在观察车辆的位置。车辆的状态是

x=[xv],P=[cov(x,x)cov(x,v)cov(v,x)cov(v,v)]

从雷达/激光雷达,我们可以读取回波信号的时间,不是距离,而是时间。为了连接状态向量和测量,我们需要测量矩阵H. 在这种情况下,

H=[1/c0]

在哪里c是光速。

因此,测量是关于时间的,然后我们将估计的状态投影到测量单元。

这是一个例子,xk|k1是基于时间 k-1 的状态在时间 k 的预测状态。我们将预测状态投影到具有观测模型的测量单元系统中Hk,以便在下一步中合并分布。

zk=Hkxk|k1=[1/c0][xk|k1vk|k1]=xk|k1/cvar(Hkxk|k1)=HkPk|k1HkT=var(xk|k1)/c2