Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>You don't use the Kalman filter to give you an initial estimate of something; you use it to give you an <strong>improved estimate</strong> based on a series of noisy estimates.</p> <p>To make this easier to understand, imagine you're measuring something that is not dynamic, like the height of an adult. You measure once, but you're not sure of the accuracy of the result, so you measure again for 10 consecutive days, and each measurement is slightly different, say a few millimeters apart. So which measurement should you choose as the best value? I think it's easy to see that taking the <strong>average</strong> will give you a better estimate of the person's true height than using any single measurement.</p> <p>OK, but what has that to do with the Kalman filter?</p> <p>The Kalman filter is essentially taking an average of a series of measurements, as above, but for <strong>dynamic systems</strong>. For instance, let's say you're measuring the position of a marathon runner along a race track, using information provided by a GPS + transmitter unit attached to the runner. The GPS gives you one reading per minute. But those readings are inaccurate, and you want to improve your knowledge of the runner's current position. You can do that in the following way:</p> <p>Step 1) Using the last few readings, you can estimate the runner's velocity and estimate where he will be at any time in the future (this is the <strong>prediction</strong> part of the Kalman filter).</p> <p>Step 2) Whenever you receive a new GPS reading, do a weighted average of the reading and of your estimate obtained in step 1 (this is the <strong>update</strong> part of the Kalman filter). The result of the weighted average is a new estimate that lies in between the predicted and measured position, and is more accurate than either by itself.</p> <p>Note that you must specify the model you want the Kalman filter to use in the prediction part. In the marathon runner example you could use a constant velocity model.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload