Main Content

Signal envelope

`[`

returns
the upper and lower envelopes of the input sequence, `yupper,ylower`

] = envelope(`x`

)`x`

,
as the magnitude of its analytic signal. The analytic signal of `x`

is
found using the discrete Fourier transform as implemented in `hilbert`

. The function initially removes
the mean of `x`

and adds it back after computing
the envelopes. If `x`

is a matrix, then `envelope`

operates
independently over each column of `x`

.

`[`

returns
the envelopes of `yupper,ylower`

] = envelope(`x`

,`fl`

,'analytic')`x`

determined using the magnitude
of its analytic signal. The analytic signal is computed by filtering `x`

with
a Hilbert FIR filter of length `fl`

. This syntax
is used if you specify only two arguments.

`[`

returns
the upper and lower root-mean-square envelopes of `yupper,ylower`

] = envelope(`x`

,`wl`

,'rms')`x`

.
The envelopes are determined using a sliding window of length `wl`

samples.

`[`

returns
the upper and lower peak envelopes of `yupper,ylower`

] = envelope(`x`

,`np`

,'peak')`x`

. The
envelopes are determined using spline interpolation over local maxima
separated by at least `np`

samples.

`envelope(___)`

with no output
arguments plots the signal and its upper and lower envelopes. This
syntax accepts any of the input arguments from previous syntaxes.