6

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

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

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

当存在抖动等时,指数滤波器在噪声消除方面更有用,而卡尔曼滤波器对实际的多传感器融合很有用。这个对吗?

此外,遗传算法对传感器融合有多大用处?我正在尝试结合磁罗盘和陀螺仪来估计真实方向。

4

2 回答 2

6

“卡尔曼滤波器和指数滤波器的优缺点是什么?我认为,卡尔曼滤波器的计算更复杂,但它具有更详细的系统模型,因此在多传感器融合中更准确(?)。”

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

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

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

“我正在尝试结合磁罗盘和陀螺仪来估计真实方向。”

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

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

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

    predictedAngle = oldAngle+rotationRate*dt

2)根据您的测量更新模拟状态

    rotationRate  = alpha1*rotationRate  +(1-alpha1)*gyro.rotationRate
    filteredAngle = alpha2*predictedAngle+(1-alpha2)*compass.angle

这基本上是该系统的卡尔曼(最简单)过滤器的框架。所缺少的是:

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

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

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

于 2012-01-21T01:43:22.970 回答
2

指数滤波器是卡尔曼滤波器的一个特例,它限制考虑

  1. 具有微不足道(恒定)动力学的系统,以及
  2. 植物与(植物+测量)噪声的固定比率(这决定了 alpha 参数)。

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

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

于 2013-02-26T18:43:20.683 回答