开发者

Kalman Filter vs Exponential Filter

开发者 https://www.devze.com 2023-01-29 13:44 出处:网络
I was wondering, what are the advantages and disadvantages of Kalman Filter and Exponential Filter? I have a multi-sensor fusion problem and I\'m trying to decide which method to choose.

I was wondering, what are the advantages and disadvantages of Kalman Filter and Exponential Filter? I have a multi-sensor fusion problem and I'm trying to decide which method to choose.

I think, Kalman filter is more computationally complicated but it has a more detailed model of the system so it is more accurate(?) in multi-sensor fusion.

Whereas the Exponential filter is a simple equation but it is limited by the choice of alpha (Higher alpha => less "memory" of the filter and thus lesser smoothing, but more weightage on measurements whereas lower alpha has higher degree of smoothing but sudden changes are not reflected properly.

The Exponential filter is more useful in开发者_如何学Python noise cancellation, when there is jitter etc. whereas the Kalman filter is useful for the actual multi-sensor fusion. Is this correct?

Also, how useful is the Genetic Algorithm for sensor fusion? I am trying to combine a magnetic compass and gyroscope for estimating true orientation.


"what are the advantages and disadvantages of Kalman Filter and Exponential Filter? I think, Kalman filter is more computationally complicated but it has a more detailed model of the system so it is more accurate(?) in multi-sensor fusion."

That's basically it, in general the better your model the system is, the better your filter will be, regardless of whether you're using a Kalman filter.

"The Exponential filter is more useful in noise cancellation, when there is jitter etc. whereas the Kalman filter is useful for the actual multi-sensor fusion. Is this correct?"

I would disagree with this statement. The Kalman filter is being smart about the noise cancellation. It's a lot smarter than a low pass filter can be because it takes full advantage of all the information stored in the covariance matrix. If the performance measure you're looking at is "How closely does the filtered value match the true value?" I think the best a simple low pass filter can hope to do is match it's performance, and that is only in the simplest case of a random walk . As soon as you have an interesting state-transition matrix I think the low pass filter has no chance, because it can't see how velocity uncertainty leaks into position uncertainty, for example.

"I am trying to combine a magnetic compass and gyroscope for estimating true orientation."

This is exactly the sort of thing a Kalman filter is designed for.

But if you're worried about the complexity of implementing a kalman filter, start by implementing the low pass filter version:

1) Start with a simple simulation

    predictedAngle = oldAngle+rotationRate*dt

2) Update the simulation state based on your measurements

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

That is basically the framework for the kalman (simplest) filter for this system. All that's missing is to:

  • Write everything in matrix format
  • Add "process noise" during the simulation step
  • Add a step to Calculate the "optimal kalman gains" instead of using fixed values for the alpha's
  • Add a step to update the filter's covariance.

"Also, how useful is the Genetic Algorithm for sensor fusion?"

I don't see where they would fit in. Can you elaborate?


The exponential filter is a special case of the Kalman filter that restricts consideration to

  1. Systems with trivial (constant) dynamics, and
  2. a fixed ratio of plant to (plant+measurement) noise (this is what determines the alpha parameter).

Thus, in cases where these assumptions apply, they are equivalent. In other cases, you can achieve better results using the Kalman filter (if you appropriately model the system).

The other main decision is whether you include the velocity in the state space; if you do, then the Kalman filter is the way to go.

0

精彩评论

暂无评论...
验证码 换一张
取 消