为什么我们需要估计卡尔曼滤波器的真实位置?

时间:2011-01-16 17:43:27

标签: math filter kalman-filter

我正在关注一个关于卡尔曼过滤器的着名tutorial

从这些代码行中:

figure;
plot(t,pos, t,posmeas, t,poshat);
grid;
xlabel('Time (sec)');
ylabel('Position (feet)');
title('Figure 1 - Vehicle Position (True, Measured, and Estimated)')

我了解x是真实位置,y是衡量位置,xhat是估算位置。然后,如果我们可以计算x(此代码:x = a * x + b * u + ProcessNoise;),为什么还需要估算x

2 个答案:

答案 0 :(得分:6)

...

好的,再看看引用的文章后,我想我看到了混乱。显然,本文中的程序是对线性系统的模拟(因此,它在模拟系统中重复生成新的 x 作为新状态)。然后它还模拟 x 的“噪声”测量,并从那个(模拟的)噪声测量中进行模拟,然后使用卡尔曼滤波器对噪声数据进行演示,以尝试估计实际(模拟) X

因此,您询问的确切 x 计算只是模拟的一部分,而 是卡尔曼滤波器本身的一部分或卡尔曼滤波算法可用的数据。

答案 1 :(得分:0)

卡尔曼滤波器(以及一般的随机滤波器)不直接为您提供隐藏过程的估算器:它们为您提供隐藏过程的条件定律,给定观察(所谓的< em>过滤法)(*)。

如果你想要隐藏过程的估算器,那么你必须自己做(后验最大值,后期预期值)。对于卡尔曼滤波器,您计算的滤波器法则是高斯滤波器,您只需更新其平均值和协方差矩阵。您可以将平均值作为信号值的估计值,将协方差矩阵作为误差估计值。

确保滤波器法则(滤波器方法的输出)与隐藏信号的估算器之间存在差异。

(*)实际上对于卡尔曼滤波器,它是线性条件定律,但是如果你做一切都是线性的假设,并且噪声是高斯白噪声,那么它就是实际的条件法。相反,粒子滤波器通过离散测量来逼近真实的滤波器定律。