1
$\begingroup$

Usually when I see the Kalman filter in lectures (or other resources like 1), the state equation is

$$\mathbf{x}_{k+1} = A_k \mathbf{x}_k + B_k a_k + r_k^{(s)},$$

and the measurement equation is

$$z_k = H \cdot \mathbf{x}_k + r_k^{(m)}$$

where $r_k^{(m)}, r_k^{(s)}$ is normal distributed noise of the same shape as the state vector $\mathbb{x}_k$.

Then, the covariance in the prediction step is usually stated as

$$P_{k+1}^{(P)} = A P_k A^T + C_k^{(r_s)}$$

where $C_k^{(r_s)}$ is the covariance matrix of the system noise.

However, in one lecture the state equation was stated as

$$\mathbf{x}_{k+1} = A_k \mathbf{x}_k + B_k a_k + G r_k^{(s)}$$ and the prediction for the covariance matrix of the system noise was $$P_{k+1}^{(P)} = A P_k A^T + G Q G^T$$

Why does it make sense to model the noise as something which gets multiplied by a matrix $G$ in contrast to simply having a noise vector which has the same shape as the state vector?

(See my article for detailed explanations of the variables / how I understand the Kalman filter right now.)

$\endgroup$
  • $\begingroup$ What is $C_k^{(r_s)}$? What is $Q$? What is $G$? $\endgroup$ – Peter K. Jul 12 '16 at 9:26
  • $\begingroup$ I've added an explanation for $C_k^{(r_s)}$. For $Q$ and $G$ I can't add one, because I don't know it. I hoped that somebody would be familiar with this notation, as the Kalman filter is pretty well-known and somebody might have seen this notation before. $\endgroup$ – Martin Thoma Jul 12 '16 at 9:35
  • $\begingroup$ Obviously, $Q$ and $G$ are matrices. I could also add which shape they have to have, but I guess that doesn't help. $\endgroup$ – Martin Thoma Jul 12 '16 at 9:36
  • $\begingroup$ Reopening, but I think $Q$ is the process noise covariance, not $C_k^{(r_s)}$. Will look up shortly. $\endgroup$ – Peter K. Jul 12 '16 at 9:46
  • $\begingroup$ @PeterK. What I named $C_k^{(r_s)}$ is named $Q$ by greg.czerniak.info/guides/kalman1 (and probably other sources, too). I just think $C_k^{(r_s)}$ ($C$ for covariance, $k$ for the $k$-th step, $r_s$ for "random" and "system") makes more sense. $\endgroup$ – Martin Thoma Jul 12 '16 at 9:55
1
$\begingroup$

Why does it make sense to model the noise as something which gets multiplied by a matrix $G$ in contrast to simply having a noise vector which has the same shape as the state vector?

The usual reason is because the model has some states that are not directly driven by the process noise. For example, suppose your states are: $$ \mathbf{x}_k = \left [ \begin{array}{c} d_k\\ v_k\\ a_k \end{array} \right] $$ where $d_k$ is displacement, $v_k$ is velocity, and $a_k$ is acceleration all at time index $k$.

Suppose, as with a car, you can only change the acceleration component of the state (by pressing on the accelerator or the brake [decelerator]):

$$ \mathbf{x}_{k+1} = \mathbf{A} \mathbf{x}_{k} + \left [ \begin{array}{c} 0\\ 0\\ 1 \end{array} \right] v_k $$

In this case, $$ G = \left [ \begin{array}{c} 0\\ 0\\ 1 \end{array} \right] $$

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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