- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
尝试使用 Kálmán 滤波器找到时间序列数据的稳定状态。
对于一个标量可以看到卡尔曼算法如下:
预测:
x(k|k-1) = Ax(k-1|k-1) + B U(k)
P(k|k-1) = AP(k-1|k-1) + W(k)
更新:
y(k) = c x(k) + v(k)
K(k) = P(k|k-1)C/(CP(k|k-1) + v(k)
P(k|k) = (1-K(k)C)P(k|k-1)
我试图理解 P(k|k) 和 P(k|k-1) 之间的区别。
当这个实现时,P(k|k) 是否会在下一次迭代中变成 P(k|k-1)?如果是,P(k|k-1) 中的误差协方差 W(k) 是否未包含在计算中,或者它们是不同的项?
最佳答案
您示例中的预测
和更新
步骤都属于迭代k
。
从迭代 k
的角度来看,您具有以下协方差:
P(k-1|k-1)
- 迭代k-1
(测量处理后)的后验协方差
P(k|k-1)
- 迭代 k
时的先验协方差(预测步骤之后,测量处理之前)
P(k|k)
- 迭代 k
的后验协方差(在测量处理之后)
所以 P(k|k)
和 P(k|k-1)
的区别在于 P(k|k)
包含上次测量的信息,P(k|k-1)
不包含。
这是两次不同迭代的同一件事:
迭代k-1
:
P(k-1|k-2) = P(k-2|k-2) + W(k-1)
P(k-1|k-1) = (1-K(k-1))P(k-1|k-2)
迭代 k
:
P(k|k-1) = P(k-1|k-1) + W(k)
P(k|k) = (1-K(k))P(k|k-1)
关于algorithm - 标量卡尔曼滤波器实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57129675/
为了帮助人们理解我要问的问题,我选择完全改写它。我希望这能解决问题。 我正在以 1 秒的速率收集 GPS 数据(纬度/经度)。了解此数据可能不是 100% 准确,并且偶尔有一个(1 个或多个)数据点偏
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我正在关注 Matlab编码器kalman教程在 Matlab帮助。使用时 codegen ,出现如下错误: /usr/bin/ld: cannot find -lstdc++ collect2: l
我是一名优秀的程序员,十分优秀!