# Can a Kalman filter improve location accuracy without location measurements?

Is the Kalman filter expected to improve accuracy if there is no measurement of the final desired state variable?

Take the example of a self-driving car with accelerometer data and speedometer data, but no GPS system. Without a filter, we could integrate this data to derive location, but the noise in measurements will cause location to drift away from its true value.

Alternatively, a Kalman filter can be used to generate more accurate estimates of acceleration and speed from the noisy data -- then the estimates can be integrated to derive location.

Mathematically and practically, I don't see how the location estimate using Kalman estimates should be more accurate (this question shows an example). The estimates are closer on average to their true values, but after integration, symmetric errors tend to cancel each other regardless of noise scale. The Kalman filter's slight delay in tracking true changes in process variables can only result in greater integrated error than the previous no-filter integration.

Of the Kalman filter examples I've seen online, each falls into one of these groups:

1. Direct measurement of the desired variable is available.
2. Direct measurement unavailable, and integration to desired variable isn't shown.
3. Direct measurement unavailable, integration to desired variable is shown, but comparison to a pre-Kalman-filter integration isn't shown (i.e., the supposed improvement to accuracy isn't demonstrated).

A Kalman filter, or any other kind of state estimator, requires that the system is detectable in order for the estimated state to be able to converge to within some bound of the true state (where this bound depends on the noise acting on the system and the accuracy of your model of the system). It can be noted that detectability is a slightly weaker notion than observability.

For linear time invariant (LTI) systems observability can be checked using

$$\text{rank}\left( \begin{bmatrix} C \\ C\,A \\ C\,A^2 \\ \vdots \\ C\,A^{n-1} \end{bmatrix} \right) = n,$$

where $$A\in\mathbb{R}^{n\times n}$$ and $$C\in\mathbb{R}^{m\times n}$$. This method of checking for observability does not have a similar check for detectability. However, the Hautus lemma does. Namely, for observability instead one can check

$$\text{rank}\left( \begin{bmatrix} C \\ A - \lambda\,I \end{bmatrix} \right) = n,\ \forall\ \lambda\in\mathbb{C}.$$

For detectability one does not have to check all complex numbers, but only the "unstable" values. For discrete time systems "unstable" values means all complex numbers outside or on the unit circle and for continuous time systems it means all complex numbers with a non-negative real part. It can be noted that one does not have to check all those complex numbers. Namely, that matrix can only lose rank when $$\lambda$$ is an eigenvalue of $$A$$.

It can be noted that a Kalman filter is optimal in minimizing the state error covariance matrix, often denoted with $$P_{k|k}$$. So in that sense a Kalman filter might be better at estimating the state, even when the system isn't detectable. Furthermore, it can be noted that if the system isn't detectable that this state error covariance matrix will grow without a bound.