Estimate power spectrum or power density spectrum

The `dsp.SpectrumEstimator`

System
object™ computes the power spectrum or the power density spectrum of a signal using the
Welch algorithm or the filter bank approach.

When you choose the Welch method, the object computes the averaged modified periodograms to compute the spectral estimate. When you choose the filter bank approach, an analysis filter bank splits the broadband input signal into multiple narrow subbands. The object computes the power in each narrow frequency band, and the computed value is the spectral estimate over the respective frequency band. For signals with relatively small FFT lengths, the filter bank approach produces a spectral estimate with a higher resolution, a more accurate noise floor, and peaks more precise than the Welch method, with low or no spectral leakage. These advantages come at the expense of increased computation and slower tracking.

The spectrum can be expressed in watts or in decibels. This object can also estimate the max-hold and min-hold spectra of the signal.

To estimate the power density spectrum:

Create the

`dsp.SpectrumEstimator`

object and set its properties.Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects? (MATLAB).

`SE = dsp.SpectrumEstimator`

`SE = dsp.SpectrumEstimator(Name,Value)`

returns a
System
object, `SE`

= dsp.SpectrumEstimator`SE`

, that computes the frequency power spectrum or the
power density spectrum of real or complex signals. This System
object uses the Welch’s averaged modified periodogram method or the filter
bank-based spectral estimation method.

returns a `SE`

= dsp.SpectrumEstimator(`Name,Value`

)`dsp.SpectrumEstimator`

System
object with each specified property name set to the specified value. Unspecified
properties have default values.

**For versions earlier than R2016b, use the step
function to run the System object algorithm. The arguments to
step are the object you created, followed by
the arguments shown in this section.**

**For example, y = step(obj,x) and y = obj(x) perform equivalent operations.**

`pxx = SE(x)`

```
[pxx,pmax]
= SE(x)
```

```
[pxx,pmin]
= SE(x)
```

```
[pxx,pmax,pmin]
= SE(x)
```

To use an object function, specify the
System
object as the first input argument. For
example, to release system resources of a System
object named `obj`

, use
this syntax:

release(obj)

[1] Hayes, Monson H. *Statistical Digital Signal
Processing and Modeling.* Hoboken, NJ: John Wiley & Sons, 1996

[2] Kay, Steven M. *Modern Spectral Estimation: Theory
and Application.* Englewood Cliffs, NJ: Prentice Hall, 1999

[3] Stoica, Petre and Randolph L. Moses. *Spectral
Analysis of Signals.* Upper Saddle River, NJ: Prentice Hall, 2005

[4] Welch, P. D. “The use of fast Fourier transforms for the
estimation of power spectra: A method based on time averaging over short modified
periodograms,” *IEEE Transactions on Audio and Electroacoustics*,
Vol. 15, 1967, pp. 70–73.

[5] Harris, F.J. *Multirate Signal Processing for Communication
Systems*. Prentice Hall. 2004, pp. 208–209.