DSPRelated.com
Forums

Calculating noise covariance matrix in Kalman filtering.

Started by chammidhan March 13, 2009
Hello all..

I am developing a vehicle acceleration pattern capturing device using
accelerometers. I intend to use a Kalman filter for noise reduction in the
accelerometer data. I saw elsewhere the following model for the state of
the system for a similar problem.

s(k+1)=s(k)+T*v(k)+0.5*T^2*a(k)
v(k+1)=v(k)+T*a(k)
a(k+1)=a(k)

My first question is, is this model correct regarding the acceleration of
a vehicle? Because I find it pretty awkward that a(k+1)=a(k) when the
acceleration of the vehicle keeps changing constantly.

My biggest problem is how I can find out the covariance matrix for process
noise w(k) and the measurement noise v(k) in the equations,
x(k+1)=Ax(k)+Bu(k)+w(k)
z(k)=Hx(k)+v(k)

Any helpful comment regarding these problems are highly appreciated. Thank
you :)


chammidhan schrieb:
> Hello all.. > > I am developing a vehicle acceleration pattern capturing device using > accelerometers. I intend to use a Kalman filter for noise reduction in the > accelerometer data. I saw elsewhere the following model for the state of > the system for a similar problem. > > s(k+1)=s(k)+T*v(k)+0.5*T^2*a(k) > v(k+1)=v(k)+T*a(k) > a(k+1)=a(k) > > My first question is, is this model correct regarding the acceleration of > a vehicle? Because I find it pretty awkward that a(k+1)=a(k) when the > acceleration of the vehicle keeps changing constantly. > > My biggest problem is how I can find out the covariance matrix for process > noise w(k) and the measurement noise v(k) in the equations, > x(k+1)=Ax(k)+Bu(k)+w(k) > z(k)=Hx(k)+v(k) > > Any helpful comment regarding these problems are highly appreciated. Thank > you :) > >
The model is only a rough approximation but it can be good enough if you model the uncertainities of the model right. For the measurement noise you have two possibilities: 1. Your datasheet of the accelerometer gives you good estimation of the standard deviation 2. You have to determine the measurement noise variance yourself experimentally The process noise is a result of the unknowns about the process model. In your case it would be a result of not knowing the first derivation of your acceleration. By defining what change in your acceleration can occur and using some chi-quare limit you can compute your process noise for acceleration, speed and position. But I would try to model the first derivative of the acceleration also in the state vector...
On Fri, 13 Mar 2009 09:11:58 -0500, chammidhan wrote:

> Hello all.. > > I am developing a vehicle acceleration pattern capturing device using > accelerometers. I intend to use a Kalman filter for noise reduction in > the accelerometer data. I saw elsewhere the following model for the > state of the system for a similar problem. > > s(k+1)=s(k)+T*v(k)+0.5*T^2*a(k) > v(k+1)=v(k)+T*a(k) > a(k+1)=a(k) > > My first question is, is this model correct regarding the acceleration > of a vehicle? Because I find it pretty awkward that a(k+1)=a(k) when the > acceleration of the vehicle keeps changing constantly. > > My biggest problem is how I can find out the covariance matrix for > process noise w(k) and the measurement noise v(k) in the equations, > x(k+1)=Ax(k)+Bu(k)+w(k) > z(k)=Hx(k)+v(k) > > Any helpful comment regarding these problems are highly appreciated. > Thank you :)
Keeping the acceleration as a state models the fact that in normal driving you tend to accelerate for a while, decelerate for a while, stay at a constant speed, etc. Then you have to capture how much of this goes on with your covariance matrix. Finding your input covariance matrix is where you have to exercise some judgment. The measurement noise covariance matrix should just flow from how you measure the vehicle dynamics, but your input covariance matrix has to make the whole model approximate a car and driver together, so it just isn't going to be straightforward. -- http://www.wescottdesign.com