Estimation Filters
Sensor Fusion and Tracking Toolbox™ provides estimation filters that are optimized for specific scenarios, such as linear or nonlinear motion models, linear or nonlinear measurement models, or incomplete observability.
Functions
Filters for Object Tracking
trackingKF | Linear Kalman filter for object tracking |
trackingEKF | Extended Kalman filter for object tracking |
trackingUKF | Unscented Kalman filter for object tracking |
trackingABF | Alpha-beta filter for object tracking |
trackingCKF | Cubature Kalman filter for object tracking |
trackingIMM | Interacting multiple model (IMM) filter for object tracking |
trackingGSF | Gaussian-sum filter for object tracking |
trackingPF | Particle filter for object tracking |
trackingMSCEKF | Extended Kalman filter for object tracking in modified spherical coordinates (MSC) |
ggiwphd | Gamma Gaussian Inverse Wishart (GGIW) PHD filter |
gmphd | Gaussian mixture (GM) PHD filter |
Initialization
trackingKF
initcvkf | Create constant-velocity linear Kalman filter from detection report |
initcakf | Create constant-acceleration linear Kalman filter from detection report |
initvisionbboxkf | Create constant-velocity linear Kalman filter for 2-D axis-aligned bounding box from detection report (Since R2024a) |
trackingEKF
initcvekf | Create constant-velocity extended Kalman filter from detection report |
initcaekf | Create constant-acceleration extended Kalman filter from detection report |
initctekf | Create constant turn-rate extended Kalman filter from detection report |
initctrvekf | Create constant turn-rate and velocity-magnitude extended Kalman filter from detection report (Since R2024b) |
initsingerekf | Singer acceleration trackingEKF initialization (Since R2020b) |
trackingUKF
initcvukf | Create constant-velocity unscented Kalman filter from detection report |
initcaukf | Create constant-acceleration unscented Kalman filter from detection report |
initctukf | Create constant turn-rate unscented Kalman filter from detection report |
initctrvukf | Create constant turn-rate and velocity-magnitude unscented Kalman filter from detection report (Since R2024b) |
trackingABF
initcvabf | Create constant velocity tracking alpha-beta filter from detection report |
initcaabf | Create constant acceleration alpha-beta tracking filter from detection report |
trackingCKF
initcvckf | Create constant velocity tracking cubature Kalman filter from detection report |
initcackf | Create constant acceleration tracking cubature Kalman filter from detection report |
initctckf | Create constant turn-rate tracking cubature Kalman filter from detection report |
trackingIMM
initekfimm | Initialize object |
initcvimm | IMM initialization with two constant velocity models (Since R2023b) |
trackingGSF
initapekf | Constant velocity angle-parameterized EKF initialization |
initrpekf | Constant velocity range-parameterized EKF initialization |
trackingPF
initcvpf | Create constant velocity tracking particle filter from detection report |
initcapf | Create constant acceleration tracking particle filter from detection report |
initctpf | Create constant turn-rate tracking particle filter from detection report |
trackingMSCEKF
initcvmscekf | Constant velocity
initialization |
ggiwphd
initcvggiwphd | Create constant velocity ggiwphd filter |
initcaggiwphd | Create constant acceleration ggiwphd filter |
initctggiwphd | Create constant turn-rate ggiwphd filter |
gmphd
initcvgmphd | Create constant velocity gmphd filter |
initcagmphd | Create constant acceleration gmphd filter |
initctgmphd | Create constant turn-rate gmphd filter |
initctrectgmphd | Create constant turn-rate rectangular target gmphd
filter |
Motion Models
Constant Velocity Model
constvel | State transition function for constant-velocity motion model |
constveljac | Jacobian of state transition function based on constant-velocity motion model |
cvmeas | Measurement function for constant-velocity motion model |
cvmeasjac | Jacobian of measurement function for constant-velocity motion model |
constvelmsc | State transition function for constant-velocity motion model in MSC frame |
constvelmscjac | Jacobian of state transition function based on constant-velocity motion model in MSC frame |
cvmeasmsc | Measurement function for constant turn-velocity motion model in MSC frame |
cvmeasmscjac | Jacobian of measurement using constant velocity (CV) model in MSC frame |
Constant Acceleration Model
constacc | State transition function for constant-acceleration motion model |
constaccjac | Jacobian of state transition function based on constant-acceleration motion model |
cameas | Measurement function for constant-acceleration motion model |
cameasjac | Jacobian of measurement function for constant-acceleration motion model |
Singer Acceleration Model
singer | State transition function for Singer acceleration motion model (Since R2020b) |
singerjac | Jacobian of state transition function based on Singer acceleration motion model (Since R2020b) |
singermeas | Measurement function for Singer acceleration motion model (Since R2020b) |
singermeasjac | Jacobian of measurement function for Singer acceleration motion model (Since R2020b) |
singerProcessNoise | Process noise matrix for Singer acceleration model (Since R2020b) |
Constant Turn-Rate Model
constturn | State transition function for constant turn-rate and velocity-magnitude motion model |
constturnjac | Jacobian of state transition function based on constant turn-rate and velocity-magnitude motion |
ctmeas | Measurement function for constant turn-rate and velocity-magnitude motion model |
ctmeasjac | Jacobian of measurement function for constant turn-rate and velocity- magnitude motion model |
ctrv | State transition function for constant turn-rate and velocity-magnitude motion model (Since R2024b) |
ctrvjac | Jacobian of state transition function based on constant turn-rate and velocity-magnitude motion model (Since R2024b) |
ctrvmeas | Measurement function for constant turn-rate and velocity-magnitude motion model (Since R2024b) |
ctrvmeasjac | Jacobian of measurement function for constant turn-rate and velocity-magnitude motion model (Since R2024b) |
Rectangular Object Model for gmphd
ctrect | State transition function of constant turn-rate motion model for rectangular targets |
ctrectjac | Jacobian of state transition function for constant turn-rate motion model for rectangular targets |
ctrectmeas | Measurement function of constant turn-rate motion model for rectangular targets |
ctrectmeasjac | Jacobian of measurement function for constant turn-rate motion model for rectangular targets |
ctrectcorners | Corner measurements of constant turn-rate rectangular target |
Switch Motion Model
switchimm | Model conversion function for
object |
Tracking Filter Tuning
trackingFilterTuner | Tracking filter tuner (Since R2022b) |
tunableFilterProperties | Definition of tunable properties of filter (Since R2022b) |
Topics
- Introduction to Estimation Filters
General review of estimation filters provided in the toolbox.
- Linear Kalman Filters
Estimate and predict object motion using a Linear Kalman filter.
- Extended Kalman Filters
Estimate and predict object motion using an extended Kalman filter.
- Introduction to Out-of-Sequence Measurement Handling
Definition of out-of-sequence measurement and techniques of handling OOSM.
- Motion Model, State, and Process Noise
Introduce kinematic motion model, state, and process noise conventions.
- Generate Code with Strict Single-Precision and Non-Dynamic Memory Allocation
Introduce functions, objects, and blocks that support strict single-precision and non-dynamic memory allocation code generation in Sensor Fusion and Tracking Toolbox.
Featured Examples
Tracking Maneuvering Targets
Track maneuvering targets using various tracking filters. The example shows the difference between filters that use a single motion model and multiple motion models.
Tracking with Range-Only Measurements
Illustrates the use of particle filters and Gaussian-sum filters to track a single object using range-only measurements.
Track Objects with Wrapping Azimuth Angles and Ambiguous Range and Range Rate Measurements
Track objects when measurements wrap in angle, range, or range rate.
- Since R2022a
- Open Live Script
Passive Ranging Using a Single Maneuvering Sensor
Illustrates how to track targets using passive angle-only measurements from a single sensor. Passive angle-only measurements contain azimuth and elevation of a target with respect to the sensor. The absence of range measurements makes the problem challenging as the targets to be tracked are fully observable only under certain conditions.
Handle Out-of-Sequence Measurements with Filter Retrodiction
Handle out-of-sequence measurements using the retrodiction technique at the filter level.
- Since R2021b
- Open Live Script
Smooth Trajectory Estimation of trackingIMM Filter
Smooth state estimates of a target using the smooth object function. Smoothing is a technique to refine previous state estimates using the up-to-date measurements and the state estimate information. In this example, you will learn how to improve previously corrected estimates from an Interacting Multi-Model (IMM) filter by running a backward recursion, which produces smoothed and more accurate state estimates. In the first section, you implement a smooth algorithm to smooth the trajectory of a turning car. In the remainder of this example, you perform smoothing on several highly maneuvering aircraft trajectories, taken from the Benchmark Trajectories for Multi-Object Tracking example.
- Since R2021b
- Open Live Script
Tuning Kalman Filter to Improve State Estimation
Tune process noise and measurement noise of a constant velocity Kalman filter.
- Since R2022a
- Open Live Script
Automatically Tune Tracking Filter for Multi-Object Tracker
Tune a tracking filter and improve the tracking performance of the tracker.
- Since R2022b
- Open Live Script
Automatically Tune Filter to Track Maneuvering Targets
Tune a tracking filter to track maneuvering targets.
- Since R2023a
- Open Live Script
Analyze Truth Data and Define Truth Model
Analyze recorded truth data to model the motion of truth objects and configure a filter to track them.
- Since R2024a
- Open Live Script
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)