Note: This page has been translated by MathWorks. Click here to see

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

Linear Kalman filter

The `trackingKF`

class creates a
discrete-time linear Kalman filter used for tracking positions and velocities of target
platforms. A Kalman filter is a recursive algorithm for estimating the evolving state of a
process when measurements are made on the process. The filter is linear when the evolution
of the state follows a linear motion model and the measurements are linear functions of the
state. Both the process and the measurements can have additive noise. The filter also
allows for optional controls or forces to act on the vehicle. When the process noise and
measurement noise are Gaussian, the Kalman filter is the optimal minimum mean squared error
(MMSE) state estimator for linear processes.

You can use this object in two ways:

The first way is to specify explicitly the motion model. Set the motion model property,

`MotionModel`

, to`Custom`

and then use the`StateTransitionModel`

property to set the state transition matrix.The second way is to set the

`MotionModel`

property to a predefined state transition model:Motion Model `'1D Constant Velocity'`

`'1D Constant Acceleration'`

`'2D Constant Velocity'`

`'2D Constant Acceleration'`

`'3D Constant Velocity'`

`'3D Constant Acceleration'`

`filter = trackingKF`

returns a linear Kalman filter object for a
discrete-time, 2-D constant-velocity moving object. The Kalman filter uses default values
for the `StateTransitionModel`

, `MeasurementModel`

,
and `ControlModel`

properties. The `MotionModel`

property is set to `'2D Constant Velocity'`

.

specifies
the state transition model, `filter`

= trackingKF(`F`

,`H`

)`F`

, and the measurement
model, `H`

. The `MotionModel`

property
is set to `'Custom'`

.

also
specifies the control model, `filter`

= trackingKF(`F`

,`H`

,`G`

)`G`

. The `MotionModel`

property
is set to `'Custom'`

.

sets the motion model property, `filter`

= trackingKF(`'MotionModel'`

,`model`

)`MotionModel`

, to
`model`

.

configures the properties of the Kalman filter using one or more
`filter`

= trackingKF(___,`Name`

,`Value`

)`Name`

,`Value`

pair arguments. Any unspecified
properties take default values.

clone | Create Linear Kalman filter object with identical property values |

correct | Correct Kalman state vector and state covariance matrix |

correctjpda | Correct state and state estimation error covariance using JPDA |

distance | Distance from measurements to predicted measurement |

initialize | Initialize Kalman filter |

likelihood | Measurement likelihood |

predict | Predict linear Kalman filter state |

residual | Measurement residual and residual covariance |

The Kalman filter describes the motion of an object by estimating its state. The state generally consists of object position and velocity and possibly its acceleration. The state can span one, two, or three spatial dimensions. Most frequently, you use the Kalman filter to model constant-velocity or constant-acceleration motion. A linear Kalman filter assumes that the process obeys the following linear stochastic difference equation:

$${x}_{k+1}={F}_{k}{x}_{k}+{G}_{k}{u}_{k}+{v}_{k}$$

*x _{k}* is the state at step

In the Kalman filter, the measurements are also linear functions of the state,

$${z}_{k}={H}_{k}{x}_{k}+{w}_{k}$$

where *H _{k}* is the measurement
model matrix. This model expresses the measurements as functions of the state. A
measurement can consist of an object position, position and velocity, or its position,
velocity, and acceleration, or some function of these quantities. The measurements can also
include noise perturbations,

These equations, in the absence of noise, model the actual motion of the object and the actual measurements. The noise contributions at each step are unknown and cannot be modeled. Only the noise covariance matrices are known. The state covariance matrix is updated with knowledge of the noise covariance only.

You can read a brief description of the linear Kalman filter algorithm in Linear Kalman Filters.

[1] Brown, R.G. and P.Y.C. Wang. *Introduction to Random Signal Analysis and
Applied Kalman Filtering*. 3rd Edition. New York: John Wiley & Sons,
1997.

[2] Kalman, R. E. "A New Approach to Linear Filtering and Prediction Problems."
*Transaction of the ASME–Journal of Basic Engineering*, Vol. 82,
Series D, March 1960, pp. 35–45.

[3] Blackman, Samuel. *Multiple-Target Tracking
with Radar Applications*, Artech House. 1986.

`trackingABF`

|`trackingCKF`

|`trackingEKF`

|`trackingGSF`

|`trackingIMM`

|`trackingMSCEKF`

|`trackingPF`

|`trackingUKF`