Kalman filtering was introduced to me in a graduate college course
years ago.... and I have never had occasion to learn or understand it...
The last time the subject came up in a thread.... the responses were something
like "easier said than done". Since Kalman filtering is such an integral part
of GPS, I though you might enjoy this indroductory page from "GPS User
Iowa State University
CHAPTER 9: GPS AND KALMAN FILTERING
A GPS receiver measures pseudoranges and pseudorange rates to
the satellites. Knowing the position of the satellites from
the decoded navigation messages, the user position and GPS
system time can be calculated from four or more satellites.
A GPS receiver, however, can never measure exact range to each
satellite. The measurement process is corrupted by noise which
introduces errors into the calculation. This noise includes
errors in the ionospheric corrections and system dynamics not
considered during the measurement process (e.g., user clock
drift). A Kalman filter characterizes the noise sources in
order to minimize their effect on the desired receiver outputs.
When the GPS receiver is aided or integrated with other
navigation sensors (e.g., INS, clock, altimeter or AHRS), then
the Kalman filter can be extended to include the measurements
added by these sensors. In fact, a typical implementation for
integrated systems would be to have a central Kalman filter
incorporating measurements from all available sources.
9.2 KALMAN FILTER PRINCIPLE
The Kalman filter is a linear, recursive estimator that
produces the minimum variance estimate in a least squares
sense under the assumption of white, Gaussian noise processes.
Because the filter is a linear estimator by definition, for
navigation systems it generally estimates errors in the total
navigation state. The Kalman filter also produces a measure of
the accuracy of its error state vector estimate. This level of
accuracy is the matrix of second central moments of the errors
in the estimate and is defined as the covariance matrix.
There are two basic processes that are modeled by a Kalman
filter. The first process is a model describing how the error
state vector changes in time. This model is the system
dynamics model. The second model defines the relationship
between the error state vector and any measurements processed
by the filter and is the measurement model.
Intuitively, the Kalman filter sorts out information and
weights the relative contributions of the measurements and of
the dynamic behavior of the state vector. The measurements and
state vector are weighted by their respective covariance
matrices. If the measurements are inaccurate (large variances)
when compared to the state vector estimate, then the filter
will deweight the measurements. On the other hand, if the
measurements are very accurate (small variances) when compared
to the state estimate, then the filter will tend to weight the
measurements heavily with the consequence that its previously
computed state estimate will contribute little to the latest