Skip to content

Innovation Residual Filter

Recursive estimation method — instantiates Predictive Residual Processing

Updates a running state estimate using only the innovation — the gap between predicted and measured — weighted by how much to trust the model versus the measurement.

An Innovation Residual Filter maintains a single running estimate of a hidden state and corrects it using only the innovation: the difference between what the model predicted the next measurement would be and what was actually measured. Its defining idea — the one that separates it from every other residual mechanism here — is that the correction is scaled by a comparison of two uncertainties: how much the filter trusts its own forward prediction against how much it trusts the incoming measurement. A confident model barely flinches at a noisy reading; an uncertain model snaps toward a trustworthy one. This is the logic of the Kalman filter, where the innovation drives the update and the gain that weights it is set by the model's and the sensor's covariances.[1]

Example

A delivery drone estimates its altitude by fusing two noisy sources: a barometer that drifts and a downward rangefinder that stutters over uneven ground. Rather than average the raw streams, the filter carries one altitude estimate plus a measure of how sure it is. Each cycle it predicts the next barometer and rangefinder readings from its current estimate and its motion model, then forms the innovation — say the rangefinder reads ≈2.1 m below the predicted altitude. Because the drone is over broken terrain (high measurement uncertainty) but the motion model has been reliable (low process uncertainty), the filter trusts itself and moves the estimate only a little toward the reading. Moments later, over flat tarmac where the rangefinder is dependable, the same 2.1 m gap is treated as real and the estimate jumps to meet it. Only the innovations are ever processed; the large predictable part of each reading is never re-derived.

How it works

  • Predict, then compare. From the current state and a motion/dynamics model, forecast the next measurement; subtract it from the actual to get the innovation. That residual — not the raw reading — is the working signal.
  • Carry uncertainty alongside the estimate. The filter tracks not just where it thinks the state is but how sure it is, as an explicit uncertainty that grows on prediction and shrinks on correction.
  • Weight the correction by relative trust. The innovation is applied through a gain set by process uncertainty versus measurement uncertainty — the single knob that decides whether the model or the sensor wins.
  • Fold the correction back into state. The estimate and its uncertainty are both updated, then the cycle repeats — a recursive loop that never stores history, only the current belief.

Tuning parameters

  • Process uncertainty — how much the model expects the true state to wander between steps. Raise it and the filter believes measurements more and reacts faster but jitters; lower it and it smooths but lags real change.
  • Measurement uncertainty — assumed sensor noise. Setting it too low lets outliers yank the estimate; too high and good data is ignored.
  • Innovation gating — reject or down-weight innovations beyond a set size as likely faults. Protects against bad readings but can also blind the filter to genuine step-changes.
  • Model order — how rich the dynamics model is (position only, position + velocity, …). More states track complex motion but need more data to stay identifiable.

When it helps, and when it misleads

Its strength is disciplined fusion under noise: it produces a smooth, uncertainty-tagged estimate from jittery inputs, processes only the innovation, and degrades gracefully because it always knows how sure it is. Wherever a system must track a moving state from imperfect sensors, this is the workhorse.

It misleads when its assumptions quietly break. If the real dynamics or noise depart from the model — a nonlinearity, a biased sensor, a maneuver the motion model can't represent — the innovations stop being zero-mean and the filter grows confidently wrong, its shrinking uncertainty band no longer matching reality. The classic misuse is trusting a tightly-tuned filter's narrow confidence as ground truth after conditions have changed, or hand-setting the noise terms to make the output look smooth rather than to reflect real uncertainty. The discipline is to watch the innovation sequence itself: persistently large or correlated innovations are the filter's own confession that its model no longer fits — a cue to widen uncertainty, re-tune, or fall back to raw observation.

How it implements the components

This mechanism owns the archetype's single-estimator core — the math that turns one residual into one corrected belief:

  • prediction_comparator — forms the innovation by differencing predicted against measured; this comparison is the filter's input.
  • confidence_and_uncertainty_state — the estimate travels with an explicit, evolving uncertainty that sets how hard each innovation is applied.
  • generative_model_state — the maintained state estimate and dynamics model from which the next prediction is generated.

It does not implement the layered architecture that composes many such loops — that is the Hierarchical Prediction-Error Loop — nor the rule that prioritises which residuals across a system deserve bandwidth, which is the Precision-Weighted Error Gate.

References

[1] The Kalman filter updates a state estimate by the innovation (measured minus predicted) scaled by the Kalman gain, which is fixed by the ratio of process covariance to measurement covariance. A monitored innovation sequence that is not zero-mean white noise is the standard diagnostic that the filter's model has ceased to match the system — the correct, non-fabricated reading of "confidently wrong."