# Kalman Filter Algorithm for Unknown Process and Measurement Noise

I want to be use kalman filter for the state estimation but I don't know about process and measurement noise. How can I estimate process and measurement noise and use this information for kalman filter?

• Glib suggestion: suck it and see! By that I mean choose some reasonable values for the process and measurement noise variance and "tune them" (change them) to get what you consider a good state estimate.
– Peter K.
Mar 10 at 17:34

Actually adjusting the parameters of the Kalman filter to get things correct is complicated . I'm not going to go into that.

When you do get them correct, however, the difference between the filter's current prediction and the current measurement will be white and will have a covariance that matches the filter's paremeters.

Specifically, the Kalman filter's innovation is defined as

$$y_k - H_k \hat x_k^- \tag 1$$

where $$y_k$$ is the measured value, $$\hat x_k^-$$ is the filter's a-priori (before correction) predicted state, and $$H_k$$ is the filter's output matrix.

If the filter is correctly formulated, then the innovations will be (quoting from ) a zero-mean white stochastic process with covariance

$$H_k P_k^- H_k^T + R_k \tag 2$$

For a simple system, you can try adjusting the parameters until (1) and (2) are met or nearly so, or until you're satisfied with your state estimates for other reasons.

For a complicated system, there are techniques for multivariate system identification out there (referenced in ). You might search on "identify variances for Kalman filters", or see this Mathematics stackexchange post.

 "Optimal State Estimation", Dan Simon, Wiley, 2006, chapter 10