Kalman filter

last updated: Oct 20, 2023

A series of three posts on the Kalman filter:

  1. Voiding the warranty: how the Kalman filter updates on data: https://jbconsulting.substack.com/p/voiding-the-warranty-how-the-kalman
  2. Unstable systems demand fast reflexes: https://jbconsulting.substack.com/p/unstable-systems-demand-fast-reflexes
  3. Is the Kalman filter just a low-pass filter? Sometimes! https://jbconsulting.substack.com/p/is-the-kalman-filter-just-a-low-pass

I would love to learn more about these filters and write an interactive toy for exploring them.

There are good comments on the hn post :

There are many ways to think about the Kalman filter. Here are a few that I like:

and:

Imagine you want to know the depth of liquid in a tank you're filling up - and you've got a noisy depth gauge and a noisy flow-rate meter.

If you merely take the mean of the last 10 depth gauge readings, your smoothed depth reading will always lag behind the true depth, being about 5 readings out-of-date.

By fusing together the noisy depth gauge, and the noisy flow-rate meter, and a model saying how fast depth rises with flow, you can average out the noise without creating the same level of lag.

This is useful in applications like GPS receivers - there's noise so you do need filtering, but for driving through complex junctions, the last thing you want is a 5 second delay!

How they relate to particle filters:

One of the main problems of Kalman Filters is that they can only be used in order to model situations which can be described in terms of Gaussian Noises. Although, many non-gaussian processes can be either approximated in gaussian terms or transformed in Gaussian distributions through some form of transformation (eg. logarithmic, square root, etc..).

In order to overcome this type of limitation, an alternative method can be used: Particle Filters.

pryo looks like a very neat library

↑ up