Track and extract RPM profile from vibration signal

`rpm = rpmtrack(x,fs,order,p)`

`rpm = rpmtrack(xt,order,p)`

`rpm = rpmtrack(___,Name,Value)`

`[rpm,tout] = rpmtrack(___)`

`rpmtrack(___)`

returns a time-dependent estimate of the rotational speed,
`rpm`

= rpmtrack(`x`

,`fs`

,`order`

,`p`

)`rpm`

, from a vibration signal `x`

sampled at a rate `fs`

.

The two-column matrix `p`

contains a set of points that lie
on a time-frequency ridge corresponding to a given `order`

.
Each row of `p`

specifies one coordinate pair. If you call
`rpmtrack`

without specifying both
`order`

and `p`

, the function opens an
interactive plot that displays the time-frequency map and enables you to select
the points.

If you have a tachometer pulse signal, use `tachorpm`

to extract
`rpm`

directly.

specifies additional options for any of the previous syntaxes using name-value
pair arguments. Options include the method used to estimate the time-frequency
map and the starting time for the RPM profile.`rpm`

= rpmtrack(___,`Name,Value`

)

`rpmtrack(___)`

with no output arguments plots
the power time-frequency map and the estimated RPM profile on an interactive
figure.

`rpmtrack`

uses a two-step (coarse-fine) estimation method:

Compute a time-frequency map of

`x`

and extract a time-frequency ridge based on a specified set of points on the ridge,`p`

, the`order`

corresponding to that ridge, and the optional penalty parameters`'PowerPenalty'`

and`'FrequencyPenalty'`

. The extracted ridge provides a coarse estimate of the RPM profile.Compute the order waveform corresponding to the extracted ridge using a Vold-Kalman filter and calculate a new time-frequency map from this waveform. The isolated order ridge from the new time-frequency map provides a fine estimate of the RPM profile.

[1] Urbanek, Jacek, Tomasz Barszcz, and Jerome Antoni. "A Two-Step Procedure for
Estimation of Instantaneous Rotational Speed with Large Fluctuations."
*Mechanical Systems and Signal Processing*. Vol. 38, 2013, pp.
96–102.