卡尔曼滤波器与指数滤波器

时间:2010-12-06 05:32:48

标签: filter genetic-algorithm sensor exponential kalman-filter

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

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

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:4)

  

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

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

  

“当存在抖动等时,指数滤波器在噪声消除中更有用,而卡尔曼滤波器对于实际的多传感器融合非常有用。这是正确的吗?”

我不同意这个说法。卡尔曼滤波器对噪声消除非常聪明。它比低通滤波器更智能,因为它充分利用了协方差矩阵中存储的所有信息。如果您正在查看的绩效指标是“过滤后的价值与真实价值的匹配程度有多接近?”我认为最好的简单低通滤波器可以做的就是匹配它的性能,而这只是random walk的最简单的情况。一旦你有一个有趣的状态转移矩阵,我认为低通滤波器没有机会,因为它无法看到速度不确定性如何泄漏到位置不确定性中,例如。

  

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

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

但如果你担心实现卡尔曼滤波器的复杂性,首先要实现低通滤波器版本:

1)从简单的模拟开始

    predictedAngle = oldAngle+rotationRate*dt

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

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

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

  • 以矩阵格式书写所有内容
  • 在模拟步骤中添加“过程噪音”
  • 添加一个计算“最佳卡尔曼增益”的步骤,而不是使用alpha的固定值
  • update the filter's covariance添加一个步骤。
  

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

我看不出他们适合的位置。你能详细说明吗?

答案 1 :(得分:0)

指数滤波器是卡尔曼滤波器的一种特殊情况,它将考虑限制在

  1. 具有微不足道(恒定)动态的系统,
  2. 植物与(植物+测量)噪声的固定比率(这是决定α参数的因素)。
  3. 因此,在这些假设适用的情况下,它们是等价的。在其他情况下,您可以使用卡尔曼滤波器获得更好的结果(如果您对系统进行了适当的建模)。

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