initializes a Singer acceleration extended Kalman filter (
filter = initsingerekf(
trackingEKF) based on the detection input.
The function initializes an acceleration state [x vx ax y vy ay z vz az] in the filter.
Initialize Singer Acceleration Extended Kalman Filter in Rectangular Frame
For a rectangular frame, the Singer acceleration measurement function,
singermeas, assumes a position measurement in 3-D space. Define a position measurement [1;3;0] that has measurement noise [1 0.2 0; 0.2 2 0; 0 0 1].
detection = objectDetection(0, [1;3;0],... 'MeasurementNoise', [1 0.2 0; 0.2 2 0; 0 0 1]);
initsingerekf function to create a
trackingEKF filter using the measurements defined above.
ekf = initsingerekf(detection);
Verify the values of the state and measurement noise.
filterState = ekf.State
filterState = 9×1 1 0 0 3 0 0 0 0 0
filterMeasureNoise = ekf.MeasurementNoise
filterMeasureNoise = 3×3 1.0000 0.2000 0 0.2000 2.0000 0 0 0 1.0000
detection — Object detection
Object detection, specified as an
objectDetection object. You can specify the following fields for the
MeasurementParameters property of the
objectDetection object. When you do not specify a field, the default value
Frame used to report measurements, specified as one of these values:
|Position offset of the origin of the frame relative to the parent frame,
specified as an |
|Velocity offset of the origin of the frame relative to the parent frame,
specified as a |
|Frame rotation matrix, specified as a 3-by-3 real-valued orthonormal matrix.|
|Logical scalar indicating if azimuth is included in the measurement.|
|Logical scalar indicating if elevation is included in the measurement. For
measurements reported in a rectangular frame, and if
|Logical scalar indicating if range is included in the measurement.|
|Logical scalar indicating if the reported detections include velocity
measurements. For measurements reported in the rectangular frame, if
|Logical scalar indicating if |
filter — Extended Kalman filter
Extended Kalman filter, returned as a
You can use the
initsingerekffunction as the
When creating the Kalman filter, the function configures the process noise assuming a target maneuver time constant, τ = 20s and a unit target maneuver standard deviation, σ = 1 m/s2. The function uses the
The Singer process noise assumes an invariant time step and additive process noise.
 Singer, Robert A. "Estimating optimal tracking filter performance for manned maneuvering targets." IEEE Transactions on Aerospace and Electronic Systems 4 (1970): 473-483.
 Blackman, Samuel S., and Robert Popoli. "Design and analysis of modern tracking systems." (1999).
 Li, X. Rong, and Vesselin P. Jilkov. "Survey of maneuvering target tracking: dynamic models." Signal and Data Processing of Small Targets 2000, vol. 4048, pp. 212-235. International Society for Optics and Photonics, 2000.
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
The function returns a filter that uses anonymous functions to define the
StateTransitionCovarianceFcnproperties. As a result, the value of the target maneuver constant (τ = 20s) cannot be modified after construction. To create a Singer-based filter with a different value of τ, you must write your own filter initialization function similar as the
Introduced in R2020b