# trackingUKF

Unscented Kalman filter for object tracking

## Description

The `trackingUKF`

object is a discrete-time
unscented Kalman filter used to track the positions and velocities of targets and
objects.

An unscented Kalman filter is a recursive algorithm for estimating the evolving state of a process when measurements are made on the process. The unscented Kalman filter can model the evolution of a state that obeys a nonlinear motion model. The measurements can also be nonlinear functions of the state, and the process and measurements can have noise.

Use an unscented Kalman filter when one of both of these conditions apply:

The current state is a nonlinear function of the previous state.

The measurements are nonlinear functions of the state.

The unscented Kalman filter estimates the uncertainty about the state,
and its propagation through the nonlinear state and measurement equations, by using a
fixed number of sigma points. Sigma points are chosen by using the unscented
transformation, as parameterized by the `Alpha`

,
`Beta`

, and `Kappa`

properties.

## Creation

### Syntax

### Description

`filter = trackingUKF`

creates an unscented Kalman filter object for a
discrete-time system by using default values for the
`StateTransitionFcn`

,
`MeasurementFcn`

, and `State`

properties.
The process and measurement noises are assumed to be additive.

specifies
the state transition function, `filter`

= trackingUKF(`transitionfcn`

,`measurementfcn`

,`state`

)`transitionfcn`

,
the measurement function, `measurementfcn`

, and
the initial state of the system, `state`

.

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

= trackingUKF(___,`Name,Value`

)`Name,Value`

pair arguments and any of the previous
syntaxes. Any unspecified properties have default values.

## Properties

## Object Functions

`predict` | Predict state and state estimation error covariance of tracking filter |

`correct` | Correct state and state estimation error covariance using tracking filter |

`correctjpda` | Correct state and state estimation error covariance using tracking filter and JPDA |

`distance` | Distances between current and predicted measurements of tracking filter |

`likelihood` | Likelihood of measurement from tracking filter |

`clone` | Create duplicate tracking filter |

`residual` | Measurement residual and residual noise from tracking filter |

`smooth` | Backward smooth state estimates of tracking filter |

`initialize` | Initialize state and covariance of tracking filter |

`tunableProperties` | Get tunable properties of filter |

`setTunedProperties` | Set properties to tuned values |

`setMeasurementSizes` | Sets the sizes of the measurement and measurement noise |

## Examples

## More About

## Algorithms

The unscented Kalman filter estimates the state of a process governed by a nonlinear stochastic equation

$${x}_{k+1}=f({x}_{k},{u}_{k},{w}_{k},t)$$

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

*k*.

*f()*is the state transition function,

*u*are the controls on the process. The motion may be affected by random noise perturbations,

_{k}*w*. The filter also supports a simplified form,

_{k}$${x}_{k+1}=f({x}_{k},{u}_{k},t)+{w}_{k}$$

To use the simplified
form, set `HasAdditiveProcessNoise`

to `true`

.

In the unscented Kalman filter, the measurements are also general functions of the state,

$${z}_{k}=h({x}_{k},{v}_{k},t)$$

where
*h(x _{k},v_{k},t)* is the
measurement function that determines the measurements as functions of the state. Typical
measurements are position and velocity or some function of these. The measurements can
include noise as well, represented by

*v*. Again the class offers a simpler formulation

_{k}$${z}_{k}=h({x}_{k},t)+{v}_{k}$$

To use the simplified form, set
`HasAdditiveMeasurementNoise`

to `true`

.

These equations represent the actual motion of the object and the actual measurements. However, the noise contribution at each step is unknown and cannot be modeled exactly. Only statistical properties of the noise are known.

## References

[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.” *Transactions of
the ASME–Journal of Basic Engineering*. Vol. 82, Series D, March 1960,
pp. 35–45.

[3] Wan, Eric A. and R. van der
Merwe. “The Unscented Kalman Filter for Nonlinear Estimation”.
*Adaptive Systems for Signal Processing, Communications, and
Control*. AS-SPCC, IEEE, 2000, pp.153–158.

[4] Wan, Merle. “The
Unscented Kalman Filter.” In *Kalman Filtering and Neural
Networks*. Edited by Simon Haykin. John Wiley & Sons, Inc.,
2001.

[5] Sarkka S. “Recursive Bayesian Inference on Stochastic Differential Equations.” Doctoral Dissertation. Helsinki University of Technology, Finland. 2006.

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

## Extended Capabilities

## Version History

**Introduced in R2018b**

## See Also

### Functions

`constacc`

|`constaccjac`

|`cameas`

|`cameasjac`

|`constturn`

|`constturnjac`

|`ctmeas`

|`ctmeasjac`

|`constvel`

|`constveljac`

|`cvmeas`

|`cvmeasjac`

|`initcaukf`

|`initcvukf`

|`initctukf`