This presentation describes a project to introduce upper-division students to digital filtering and smoothing. The project consists of an algorithm and a simulation platform upon which to test implementations of the algorithm. The original simulation platform was a collection of Fortran subroutines that provided a foundation upon which the students could build their implementation of the algorithm. The subroutines included object files that produced trajectories for several bugs. The current simulation platform uses Mathematica 3. This platform has the advantages of a more natural notation, easier creation of graphs showing algorithm effectiveness, and the ability to animate the algorithm.

After the problem is introduced, the mathematical derivation of the algorithm will be summarized, followed by a discussion of the simulation platform and some sample simulation output. The algorithm development contains a nice blend of heuristic motivation and formal derivation. The simulation platform makes good use of many of the new features in Mathematica 3, including mathematical typesetting, user-created palettes, the extendible Mathematica Help Browser, and the new command DumpSave for packages.

The bug tracking problem: A small computer bug is traveling around the x-y plane trying to avoid detection. We can eliminate the bug if we can produce a reasonably accurate approximation to its trajectory. We have a bug detecting device that can be pointed at the plane. It can measure the x and y distances to the bug from where it is pointing if the bug is not too far from where it is pointing. The bug does not want to be tracked, so it sends out jamming signals that somewhat corrupt the bug detecting device's measurements in a random manner. The bug can also choose to change its trajectory in unexpected ways.

Our task is to create a computer algorithm that uses the bug detecting device to do the following.

Screen out the measurement noise. Point at the bug's most likely next position in the plane. Produce an accurate record of the bug's path.