Tuning an Extended Kalman Filter
Tuning an Extended Kalman Filter
The Kalman filter is an algorithm that seeks to find the optimal representation for a series of observations by averaging over successive states, a type of Bayesian model. In its simplest form, it exploits the mathematical fact that the product of two Gaussians is another Gaussian.
This Demonstration shows an interactive version of an example from [1] for estimating height and speed of a falling object that experiences aerodynamic drag. You can adjust the observation noise (sigma ζ), process noise (sigma ξ), number of Monte Carlo iterations, the random seed, the internal integrator for the nonlinear differential equations of motion (Euler, second-order Runge–Kutta, fourth-order Runge–Kutta), and the logarithm of the internal integration time step in seconds (, , ).
-3
-2
-1
The filter diverges for many settings and converges for some with varying levels of execution speed. Convergence means the dots stay mostly inside the one-sigma rails on the residuals plots. Some of the settings are quite slow, on purpose, and your goal is to find the settings that yield convergence with the fastest execution time. This is an exercise in time-accuracy tradeoff.