为啥我们需要估计卡尔曼滤波器中的真实位置?
Posted
技术标签:
【中文标题】为啥我们需要估计卡尔曼滤波器中的真实位置?【英文标题】:Why do we need to estimate the true position in Kalman filters?为什么我们需要估计卡尔曼滤波器中的真实位置? 【发布时间】:2011-01-16 17:43:26 【问题描述】:我正在关注一个可能众所周知的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
?
【问题讨论】:
【参考方案1】:...
好的,再看一遍引用的文章后,我想我明白了。显然,文章中的程序是一个线性系统的模拟(因此,它反复生成新的x作为模拟系统中的新状态)。然后它还模拟了 x 的“噪声”测量,并从该(模拟的)噪声测量中,然后演示使用卡尔曼滤波器对噪声数据进行尝试估计实际(模拟) x的。
因此,您询问的确切 x 计算只是模拟的一部分,不是卡尔曼滤波器本身的一部分或卡尔曼滤波器算法可用的数据。
【讨论】:
亲爱的 RBarryYoung,如果 xhat 是初始估计位置,它应该是一个常数。但是,它确实在循环中发生了变化。当我运行 matlab 代码时,曲线 x 和 xhat 彼此非常接近,这让我得出结论,x 是真实位置,xhat 是估计位置。你能解释一下我的困惑有什么问题吗? 您的新答案是正确的。一分钟前我也收到了文章作者的同样回复。 好的,我已经删除了之前的错误材料。如果您认为我的答案是正确的,请不要忘记将其标记为正确答案(单击答案投票按钮下方的空白复选标记)。【参考方案2】:卡尔曼滤波器(以及一般的随机滤波器)不直接为您提供隐藏过程的估计量:它们为您提供在给定观察的情况下隐藏过程的条件定律(所谓的 过滤法) (*).
如果你想要一个隐藏过程的估计器,那么你必须自己做(后验最大值,后验期望值)。对于卡尔曼滤波器,您计算的滤波器定律是高斯的,您只需更新其平均值和协方差矩阵。您可以将均值作为信号值的估计量,将协方差矩阵作为误差估计量。
确保区分过滤法则(过滤方法的输出)和隐藏信号的估计量。
(*) 实际上对于卡尔曼滤波器,它是 linear 条件定律,但是如果你假设一切都是线性的,并且噪声是高斯白噪声,它是实际的条件定律法律。相反,粒子滤波器通过离散度量来逼近真实的滤波器定律。
【讨论】:
以上是关于为啥我们需要估计卡尔曼滤波器中的真实位置?的主要内容,如果未能解决你的问题,请参考以下文章