control//state estimation//Kalman filter//innovation//innovation gating
Innovation gating protects a filter from readings that cannot be true: before using a measurement, the filter asks how many standard deviations away it is from what was expected, and drops it if the answer is too many. It is the most used fix in the world for noise that is not Gaussian, because the commonest way real noise breaks the bell is a rare, huge error (a GPS fix bounced off a building, a corrupt packet, a sensor glitch), and gating handles exactly that.
Innovation gating protects a filter from readings that cannot be true: before using a measurement, the filter asks how many standard deviations away it is from what was expected, and drops it if the answer is too many. It is the most used fix in the world for noise that is not Gaussian, because the commonest way real noise breaks the bell is a rare, huge error (a GPS fix bounced off a building, a corrupt packet, a sensor glitch), and gating handles exactly that.
The question is asked with the Mahalanobis distance of the innovation yyy against its predicted covariance SSS, the filter's own doubt plus the sensor's:
d2=yTS−1y > γ⟹reject the reading.d^2=y^{\mathsf T}S^{-1}y\;>\;\gamma\quad\Longrightarrow\quad\text{reject the reading.}d2=yTS−1y>γ⟹reject the reading.
The threshold γ\gammaγ comes from the chi-squared table for the number of measured quantities: 9 is three sigma on a single quantity. If the filter expected the GPS within plus or minus 1 m and a fix arrives 15 m away, d2=225d^2=225d2=225 and the reading does not pass customs. A car's navigation filter rejects a GPS that jumps 40 m sideways in a tenth of a second when the IMU felt no lateral acceleration.
It is needed because PPP does not depend on what the sensor said. The covariance update shrinks the uncertainty by the same amount for a good reading and an absurd one, so without a gate one outlier both drags the estimate and makes the filter surer of the wrong answer (inverse-variance weighting).
It relaxes by itself. While readings are rejected the filter only predicts, PPP grows, SSS grows with it, and the gate widens until the filter listens again; a filter that lost the GPS for a minute accepts the first fix after it, even if it is far from the dead-reckoned position.
That same property is its risk. A filter that rejects everything because it has become wrongly confident (a QQQ too small, a real jump in the system) can lock itself out, and the gate then hides the failure instead of the outlier. Counting rejections is part of watching a filter in production.
Dropping is all or nothing. When large errors are not rare accidents but a continuous heavy tail, the gentler alternative is to down-weight them instead (robust Kalman filter).