# singer

## Syntax

## Description

returns the predicted state, `predictedState`

= singer(`state`

)`predictedState`

, obtained from the current
state, `state`

, based on the Singer acceleration motion model, which
assumes the target acceleration decays over time. The default time step is 1 second.

specifies the time step, `predictedState`

= singer(`state`

,`dt`

)`dt`

, in seconds.

specifies the target maneuver time constant, `predictedState`

= singer(`state`

,`dt`

,`tau`

)`tau`

, in seconds. The
default target maneuver time constant is 20 seconds.

## Examples

## Input Arguments

## Output Arguments

## Algorithms

The Singer acceleration model assumes the acceleration at time step
*k*+1, which depends on the acceleration at time step *k*
with exponential decay as:

$$a(k+1)=a(k)*\mathrm{exp}(-T/\tau )$$

where *a*(*k*) is the acceleration at
time step *k*, *T* is the time step, and
*τ* is the target maneuver time constant.

For a 1-D singer model state *p* = [*x*,
*vx*, *ax*]^{T}, the state
propagation is:

$$p(k)=\left[\begin{array}{ccc}1& T& (\alpha T-1-{e}^{-\alpha T})/{\alpha}^{2}\\ 0& 1& (1-{e}^{-\alpha T})/\alpha \\ 0& 0& {e}^{-\alpha T}\end{array}\right]p(k)+w(k)$$

where *α* = 1/*τ* is the reciprocal of
the target maneuver time constant and *w*(*k*) is the Singer
model process noise at time step *k*. See `singerProcessNoise`

for more
details on the process noise.

## 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

## Version History

**Introduced in R2020b**

## See Also

### Functions

`singerjac`

|`singermeas`

|`singermeasjac`

|`singerProcessNoise`

|`constvel`

|`constacc`

|`constturn`

|`ctrv`

|`initsingerekf`