Main Content

singerProcessNoise

Process noise matrix for Singer acceleration model

Since R2020b

Description

processNoise = singerProcessNoise(state) returns the process noise matrix for the current state, based on the Singer acceleration model, which assumes the target acceleration decays over time. For more details, see Reference [3].

example

processNoise = singerProcessNoise(state,dt) specifies the time step dt. The default time step is 1 second.

processNoise = singerProcessNoise(state,dt,tau) specifies the target maneuver time constant tau. The default maneuver time constant is 20 seconds.

processNoise = singerProcessNoise(state,dt,tau,sigma) specifies the target maneuver standard deviation sigma. The default maneuver standard deviation is 1 meter per second squared.

Examples

collapse all

Obtain the Singer process noise for a 3-D Singer state that has a default time step, a target maneuver time constant, and a standard deviation.

Q1 = singerProcessNoise((1:9)')
Q1 = 9×9

    0.0049    0.0121    0.0159         0         0         0         0         0         0
    0.0121    0.0321    0.0476         0         0         0         0         0         0
    0.0159    0.0476    0.0952         0         0         0         0         0         0
         0         0         0    0.0049    0.0121    0.0159         0         0         0
         0         0         0    0.0121    0.0321    0.0476         0         0         0
         0         0         0    0.0159    0.0476    0.0952         0         0         0
         0         0         0         0         0         0    0.0049    0.0121    0.0159
         0         0         0         0         0         0    0.0121    0.0321    0.0476
         0         0         0         0         0         0    0.0159    0.0476    0.0952

Set the time step as 2 seconds. Set the target maneuver time constant as 10 seconds in x- and y- axes and as 100 seconds in z-axis. Set the target maneuver standard deviation as 1m/s2 in x- and y- axes and 0 m/s2 in z-axis.

Q2 = singerProcessNoise((1:9)', 2, [10 10 100], [1 1 0])
Q2 = 9×9

    0.2868    0.3508    0.2188         0         0         0         0         0         0
    0.3508    0.4603    0.3286         0         0         0         0         0         0
    0.2188    0.3286    0.3297         0         0         0         0         0         0
         0         0         0    0.2868    0.3508    0.2188         0         0         0
         0         0         0    0.3508    0.4603    0.3286         0         0         0
         0         0         0    0.2188    0.3286    0.3297         0         0         0
         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0
         0         0         0         0         0         0         0         0         0

Input Arguments

collapse all

Input state, specified as a real-valued 3N-by-1 vector. N is the spatial degree of the state. The state vector takes the different forms based on its dimensions.

Spatial DegreesState Vector Structure
1-D[x;vx;ax]
2-D[x;vx;ax;y;vy;ay]
3-D[x;vx;ax;y;vy;ay;z;vz;az]

For example, x represents the x-coordinate, vx represents the velocity in the x-direction, and ax represents the acceleration in the x-direction. If the motion model is in one-dimensional space, the y- and z-axes are assumed to be zero. If the motion model is in two-dimensional space, values along the z-axis are assumed to be zero. Position coordinates are in meters. Velocity coordinates are in m/s. Acceleration coordinates are in m/s2.

Example: [5;0.1;0.01;0;-0.2;-0.01;-3;0.05;0]

Time step, specified as a positive scalar in seconds.

Example: 0.5

Target maneuver time constant, specified as a positive scalar or an N-element vector of scalars in seconds. N is the spatial degree of the state. When specified as a vector, each element applies to the corresponding spatial dimension.

Example: 30

Maneuver standard deviation, specified as a positive scalar or an N-element vector of scalars in m/s2. N is the spatial degree of the state. When specified as a vector, each element applies to the corresponding spatial dimension.

Example: 3

Output Arguments

collapse all

Process noise for a Singer acceleration model, returned as an N-by-N matrix of nonnegative scalars. N is the spatial dimension of the state input.

References

[1] Singer, Robert A. "Estimating optimal tracking filter performance for manned maneuvering targets." IEEE Transactions on Aerospace and Electronic Systems 4 (1970): 473-483.

[2] Blackman, Samuel S., and Robert Popoli. "Design and analysis of modern tracking systems." (1999).

[3] 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.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2020b