Difference between revisions of "Kalman Filter"
m |
m |
||
Line 34: | Line 34: | ||
<h3><strong>Displaying the Results</strong></h3> | <h3><strong>Displaying the Results</strong></h3> | ||
− | <h2><strong>Applying the Filter to Other | + | <h2><strong>Applying the Kalman Filter to Other Applications</strong></h2> |
<h2><strong>History</strong></h2> | <h2><strong>History</strong></h2> |
Revision as of 10:45, 25 February 2012
Source Code
Not yet available
Introduction
The following tutorial implements a simple Kalman Filter. The code is derived originally from and article witten by Roy on morethantechnical.com. It has been very kindly translated to C# EMGU by uxmanz and bojoeb.
The Kalman filter is an algorithm which operates recursively on streams of noisy input data to produce a statistically optimal estimate of the underlying system state (Original Paper). The filter is named for Rudolf (Rudy) E. Kálmán, one of the primary developers of its theory. More information is available at Wikipedia, the Kalmn Filter was derived to solve the Wiener filter problem. The Wiener filter problem is to reduce the amount of noise present in a signal by comparison with an estimation of the desired noiseless signal. The discrete-time equivalent of Wiener's work was derived independently by Kolmogorov and published in 1941. Hence the theory is often called the Wiener-Kolmogorov filtering theory.
In this example the signal processes is the movement of the mouse. While a simple application the algorithm can have numerous applications including image smoothing, edge tracking and optical flow to name a few. This tutorial is designed to give a rather basic introduction to the filter design.
Assumed Knowledge
The following tutorial is of an intermediate level. It is assumed that you can set up your own project and reference the appropriate files accordingly. For reference to errors or if you are a beginner then a good starting point is here: Setting up EMGU C#.
The Code
Setting Up the Kalman Filter
Obtaining The mouse Co-Ordinates and up Setting the Data
Use of Timers
Displaying the Results
Applying the Kalman Filter to Other Applications
History