# 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 [1]. 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 [1]) 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 [1]). You might search on "identify variances for Kalman filters", or see this Mathematics stackexchange post.

[1] "Optimal State Estimation", Dan Simon, Wiley, 2006, chapter 10