Core Concepts
UltimateKalman is a flexible linear Kalman filter and smoother that uses orthogonal transformations to provide numerically superior and more flexible filtering, prediction, and smoothing capabilities compared to other Kalman algorithms.
Abstract
The paper introduces UltimateKalman, a flexible linear Kalman filter and smoother implemented in MATLAB, C, and Java. UltimateKalman is based on an elegant algorithm proposed by Paige and Saunders in 1977, which uses orthogonal transformations to provide numerical stability and flexibility.
Key highlights:
UltimateKalman can handle time-dependent problems, state vectors with varying dimensions, varying number of observations, and unknown initial state expectations.
The algorithm uses a specialized QR factorization to compute state estimates, with the ability to "forget" and "roll back" steps to save memory.
UltimateKalman can efficiently perform filtering, prediction, smoothing, and combinations of these operations.
The paper describes the algorithm and its implementation, as well as a test suite of examples demonstrating its capabilities.
Stats
The state evolves according to ui = ui-1 + 0.2.
The observations have a standard deviation of 10, except for o50 which has a standard deviation of 0.25.
Quotes
"UltimateKalman is a flexible linear Kalman filter and smoother implemented in three popular programming languages: MATLAB, C, and Java."
"UltimateKalman is a slight simplification and slight generalization of an elegant Kalman filter and smoother that was proposed in 1977 by Paige and Saunders."
"UltimateKalman is flexible: it can easily handle time-dependent problems, problems with state vectors whose dimensions vary from step to step, problems with varying number of observations in different steps (or no observations at all in some steps), and problems in which the expectation of the initial state is unknown."