首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卡尔曼滤波与指数滤波

卡尔曼滤波与指数滤波
EN

Stack Overflow用户
提问于 2010-12-06 05:32:47
回答 2查看 6K关注 0票数 6

我想知道,卡尔曼滤波指数滤波的优缺点是什么?我有一个多传感器融合的问题,我试图决定选择哪种方法。

我认为,卡尔曼滤波在计算上更复杂,但它有一个更详细的系统模型,所以它更准确(?)在多传感器融合中。

指数滤波器是一个简单的方程,但它受到α(较高的α=>较少的“记忆”滤波器)的选择的限制,因而较小的平滑度,但对测量的权重较高而较低的α具有较高的平滑度,但突然的变化没有得到适当的反映。

指数滤波在存在抖动等噪声消除方面更为有用,而卡尔曼滤波则适用于实际的多传感器融合。这是正确的吗?

此外,遗传算法在传感器融合中的作用有多大?我试图结合一个磁罗盘和陀螺仪来估计真正的方位。

EN

回答 2

Stack Overflow用户

发布于 2012-01-21 01:43:22

卡尔曼滤波和指数滤波的优点和缺点是什么?我认为,卡尔曼滤波在计算上比较复杂,但是它对系统有一个更详细的模型,因此它在多传感器融合中更精确。

基本上就是这样,一般来说,你的系统模型越好,你的滤波器就越好,不管你是否使用卡尔曼滤波器。

指数滤波在存在抖动等噪声消除方面更有用,而卡尔曼滤波则适用于实际的多传感器融合。这是正确的吗?

我不同意这一说法。卡尔曼滤波器在消除噪声方面很聪明。它比低通滤波器聪明得多,因为它充分利用了存储在协方差矩阵中的所有信息。如果您正在查看的性能度量是“筛选后的值与真实值的匹配程度如何?”我认为一个简单的低通滤波器所能做的最好的事情就是匹配它的性能,而这只是在随机游动中最简单的情况下。当你有一个有趣的状态转移矩阵,我认为低通滤波器没有机会,因为它看不出速度不确定性如何泄漏到位置不确定性,例如。

“我正试图结合一个磁罗盘和陀螺仪来估计真实方位。”

这正是卡尔曼滤波器设计的目的。

但是,如果您担心实现kalman滤波器的复杂性,请从实现低通滤波版本开始:

1)从一个简单的模拟开始

代码语言:javascript
复制
    predictedAngle = oldAngle+rotationRate*dt

2)根据测量结果更新模拟状态

代码语言:javascript
复制
    rotationRate  = alpha1*rotationRate  +(1-alpha1)*gyro.rotationRate
    filteredAngle = alpha2*predictedAngle+(1-alpha2)*compass.angle

这基本上是这个系统的kalman (最简单)滤波器的框架。所缺少的就是:

  • 用矩阵格式写所有东西
  • 在模拟步骤中添加“过程噪声”
  • 增加一个步骤来计算“最优卡尔曼增益”,而不是使用alpha的固定值。
  • 更新过滤器的协方差添加一个步骤。

“此外,遗传算法对于传感器融合有多大用处?”

我看不出他们适合哪里。你能详细说明一下吗?

票数 6
EN

Stack Overflow用户

发布于 2013-02-26 18:43:20

指数滤波器是Kalman滤波器的特例,它限制了对

  1. 具有平凡(常数)动力学的系统,以及
  2. 固定的设备与(plant+measurement)噪声的比率(这是决定alpha参数的因素)。

因此,在适用这些假设的情况下,它们是等价的。在其他情况下,使用Kalman滤波器可以获得更好的结果(如果您对系统进行了适当的建模)。

另一个主要的决定是你是否在状态空间中包含速度;如果你包含了,那么卡尔曼滤波就是要走的路。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4363514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档