Above: a constant acceleration alpha-beta-gamma filter getting snookered by a non-constantly accelerating sine wave.
Robotics and vision researchers deal with dynamic data and often have to
make real-time decisions of interpretation or action based on it.
There is a rich tradition of
Probably the most immediate application in our lab for the ideas I presented is tracking (blobs, people, features). However, for mobile robots particle filters (aka the CONDENSATION algorithm) are useful for egolocation as well as tracking. Leaving petty local concerns behind us, these are ageless, classical ideas at the heart of communications theory and optimal estimation and should be known by all civilized people.
My presentation in 577 was just going over some old transparencies on the general subject of filtering, which I take to include all the other words in the title. I once read somewhere why controllers (in the poles and zeroes sense) were not filters, but I forget the argument.
The overheads from the talk are available for your perusal, along with a hardcopy-only TR from Sheffield on lattice filters.
Two tutorials for Kalman Filters and related ideas (ARMA, lattice), have code in several languages. Brown's tutorial has a few key references that are as primary as those listed below and should not be ignored. Listed below are some older and more recent books.
OpenCV libraries, about which I basically know from nothing, have Kalman and Condensation (particle) filtering capabilities. I got the Linux reference pages, but it would take some work to figure out what to do. The robot team has used the Kalman filters, but I don't think they have done much in the way of specifying models of plants, noise, etc.
I don't even know where actually to go for this stuff but Sourceforge looks likely.
Locally, there is code I've developed over the years (literally... most of it goes back to 1995 at least, and some was done in 1990). Lots of it is gussied up with non-general things for research purposes, like adding random numbers in to simulate noise, I forget what all. But some is better, like the alpha-beta filters. See me if you'd like to use any of this stuff. All the below are most obviously used to track (estimate and predict) some dynamic state vector, like an object's location. None is a fourier-domain image-processing type filter.
Kalman filters: basically zilch, use some commercial product or copy some of the code out of the tutorials.
Alpha-Beta filters: are steady-state KFs with constant noise models and constant plant models (constant velocity and constant acceleration) good for practical tracking. Basic code is about 4 lines, so easy to incorp. Sitting at /u/brown/src/ab/.
Lattice filters: adaptive filters that can learn trajectories like sine waves. Described in a hardcopy TR I have plus books like Goodwin &Sin and Haykin. At /u/brown/src/pred/ .