好的,我需要做的是:
我想使用卡尔曼滤波器进行一些跟踪(可能是自适应的)。我的测量(当它们可用时)非常好,实际测量的误差非常小。在某些情况下,虽然测量值会跳到一个值,但是从我正在寻找的正确位置完全偏离,然后在几帧之后回到正确的位置。
问题在于,如果我的滤波器(非自适应)具有测量噪声协方差(R)和状态误差协方差(Q)矩阵的特定值,则结果不是很准确,因为即使对于这些1%的情况,我也必须在R和Q之间做出妥协。
所以我决定使用自适应卡尔曼滤波器,如下所示:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.367.1747&rep=rep1&type=pdf
他们基于创新序列估计测量噪声协方差矩阵。 基本上,他们在先前的样本上使用移动窗口并且计算先前测量 - 先前估计之间的误差的协方差。对于例如5次过去的测量和5次先前的估计。当窗口下方的测量错误时,协方差增加,因此R也增加。
但实际上R增加(但不够)所以在下一步中,估计仍然很好但只是有点朝向错误的测量。在下一步(因为现在先前的估计已经朝着一点点走向测量)R变小,结果新的估计更接近测量,依此类推。
在几帧之后的最后估计遵循错误的测量。这是一个更好地理解我的意思的情节。
https://www.dropbox.com/s/rkv0tjcm4s54kv3/untitled.tif
也许我想要做的事情是完全错误的,并且不能用自适应卡尔曼滤波器来完成。可能是过去曾与卡尔曼滤波器广泛合作的人,他在遇到这个问题之前可以提供帮助。
欢迎任何想法!
答案 0 :(得分:1)
在回答之前,我想确定我遇到了你正确的问题。
您有测量,其中一些是好的(低测量噪音),而另一些是异常值 您遇到的问题是调整测量噪声协方差矩阵。
实际上,你需要调整好的测量值 使用误差协方差来拒绝异常值测量。 如果创新超出椭圆,您使用误差协方差矩阵定义测量被拒绝 每当测量被拒绝时,您只需再次应用预测步骤并等待另一次测量。
答案 1 :(得分:0)
是的,问题就是这个。
然而我设法解决它而不需要定义任何椭圆。我正在做的是正确的,除非我有很多(比方说是五十个)连续异常值的事实不起作用。
如果您考虑窗户的大小,这是正常的。例如,只有10个样本而且您有20个异常值,显然它不会起作用。但是连续5个异常值工作得很好。一般我没有&#39 ; t建议使用任何阈值("如果创新落在椭圆之外")拒绝测量。我保持测量但是在我开始有异常值的同时,误差测量协方差变得非常大因此,估计更多地基于先前的估计而不是当前的测量。
如果我使用的方法确实更合乎逻辑(拒绝当前测量,如果它是基于阈值的异常值)我有一个问题,我必须先验地定义这个阈值,对吗?也许我错过了某些东西..