Papers › Outlier-Insensitive Kalman Filtering Using NUV Priors

Outlier-Insensitive Kalman Filtering Using NUV Priors

12 Oct 2022arXiv:2210.06083archive 2025-07-28

Shunit Truzman, Guy Revach, Nir Shlezinger, Itzik Klein

The Kalman filter (KF) is a widely-used algorithm for tracking the latent state of a dynamical system from noisy observations. For systems that are well-described by linear Gaussian state space models, the KF minimizes the mean-squared error (MSE). However, in practice, observations are corrupted by outliers, severely impairing the KFs performance. In this work, an outlier-insensitive KF is proposed, where robustness is achieved by modeling each potential outlier as a normally distributed random variable with unknown variance (NUV). The NUVs variances are estimated online, using both expectation-maximization (EM) and alternating maximization (AM). The former was previously proposed for the task of smoothing with outliers and was adapted here to filtering, while both EM and AM obtained the same performance and outperformed the other algorithms, the AM approach is less complex and thus requires 40 percentage less run-time. Our empirical study demonstrates that the MSE of our proposed outlier-insensitive KF outperforms previously proposed algorithms, and that for data clean of outliers, it reverts to the classic KF, i.e., MSE optimality is preserved

PaperPDFCode

Code

kalmannet/oikf_icassp23 officialmentioned in paper report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

Not run by Syntology. Nothing on this page verifies that the listed code works.

Tasks

State Space Models

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Methods

AM

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections