QR decomposition in Square Root Kalman Filters - How is root(Q) simply given?

577 Views Asked by At

Looking at this in the context of Square Root Kalman Filters (SRKF).

The covariance matrices of the estimate P and the measurement P(zz) must be reduced to their square root form S and S(zz), respectively. This can be achieved through QR decomposition; however, when I see the QR decomposition, the formulas for S and S(zz) are given with the square root of the process noise Q and measurement noise R.

QR decomposition with root(Q) and root(R) given

I believed the point of QR decomposition was to avoid roots of matrices; how would I then go and find the root(Q) and root(R)? Another QR decomposition?

1

There are 1 best solutions below

3
On BEST ANSWER

A problem with the Kalman filter (KF) is numerical stability, which is due machine precision. For example, the covariance matrix is always positive semi-definite ignoring machine precision; however, due to round off error, the covariance matrix may be indefinite. This is the point of the square root square root Kalman filter (SRKF).

The SRKF maintains the covariance matrix in the factored form $\mathbf{P} = \mathbf{S} \mathbf{S}^T$ where $\mathbf{P}$ is the covariance matrix. This form improves the stability of the Kalman filter because the square root form never allows the covariance matrix to have negative diagonal element or become asymmetric. Mathematically, this is simply because $\mathbf{P} = \mathbf{S}\mathbf{S}^T$.

To compute the matrix $\mathbf{S}$ from $\mathbf{P}$, you may use Cholesky decomposition, but the idea is that you propagate $\mathbf{S}$ instead of $\mathbf{P}$. The procedure of performing Cholesky decomposition does not improve the condition number of the matrix $\mathbf{P}$, but instead, the condition number is improved by maintaining $\mathbf{S}$ instead of $\mathbf{P}$. Therefore, you do not need to perform the decomposition at each time step, and furthermore, a true SRKF maintains $\mathbf{S}$ not $\mathbf{P}$.

Similarly, you can factor the matrices $\mathbf{Q}$ and $\mathbf{R}$ as well, and you do not need to perform the operation at each step unless these matrices are changing at each time step.