Reading P. Andrews et al. I see that it is very common to do the following approximation of the process noise covariance matrix:

$$Q_{k} = G_{k-1}QG_{k-1}^{T}\Delta t$$

so that the propagation becomes:

$$P_{k} = F_{k-1}P_{k-1}F_{k-1}^{T} + Q_{k}$$

however, when I try it in a simulation I need to scale it once more:

$$P_{k} = F_{k-1}P_{k-1}F_{k-1}^{T} + Q_{k}\Delta t$$

else the discretization is wrong - I am not sure why this happens.

The simulated process noise is by adding the following to the ground truth:

velocity_measured = velocity_true + sigma * np.random.randn(1)
position = position + velocity_measured * dt

so that the process noise before discretization becomes:

Q = sigma * sigma. 

1 Answer 1


I've never dealt with discretization in the kalman filter ( my models were already discrete ) so take the following with a level of uncertainty ( no pun intended ). Also, you didn't show the original equations so I'll refer to them as the observation equation and the system equation. Based on your updating equations, it seems that you're using the non-lagged formulation where the observation equation and the system equations are updated at the "same" time rather than the observation equation being one lag ahead.

So, assuming the above is correct ( without the original equations, it's a little hard to tell ), the reason it's multiplied by $\triangle t$ twice is because there are two updates to the system noise due to discretization of the two equation process. The first update is due to the $G_k$ matrix multiplying the variables in the observation equation at time $k$. That's what causes the first $\triangle t$ multiplication. But then, you also have the update of the system equation at time $k$ due to the multiplication of the state variables by $F_{k-1}$. This is why $\triangle t$ is used a second time.

But, rather than think of the discretization as using multiplication twice, you can think of it as using multiplication sequentially. It looks as though once is multiplying twice because, in your formulation, the observation equation and system equation are not lagged with respect to each other. But it's really just sequential multiplication due to sequential updating. Note that if you used the other KF formulation where there is lagging, then the discretization process would probably be easier to see. I hope this helps some.

  • $\begingroup$ It's best to write out the exact equations that you are using. $\endgroup$
    – mark leeds
    Jul 10, 2020 at 12:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.