Multitaper power spectral density estimate

returns Thomson’s
multitaper power spectral density (PSD) estimate, `pxx`

= pmtm(`x`

)`pxx`

, of the input
signal, `x`

. When `x`

is a vector, it is treated as a
single channel. When `x`

is a matrix, the PSD is computed independently for
each column and stored in the corresponding column of `pxx`

. The tapers are
the discrete prolate spheroidal (DPSS), or Slepian, sequences. The time-halfbandwidth,
`nw`

, product is 4. By default, `pmtm`

uses the first 2
× `nw`

– 1 DPSS sequences. If `x`

is
real-valued, `pxx`

is a one-sided PSD estimate. If `x`

is
complex-valued, `pxx`

is a two-sided PSD estimate. The number of points,
`nfft`

, in the discrete Fourier transform (DFT) is the maximum of 256 or
the next power of two greater than the signal length.

`[`

returns a frequency vector, `pxx`

,`f`

] = pmtm(___,`fs`

)`f`

, in cycles per unit time. The sample rate,
`fs`

, is the number of samples per unit time. If the unit of time is
seconds, then `f`

is in cycles/sec (Hz). For real–valued signals,
`f`

spans the interval [0,`fs`

/2] when
`nfft`

is even and [0,`fs`

/2) when
`nfft`

is odd. For complex-valued signals, `f`

spans the
interval [0,`fs`

). `fs`

must be the fourth input to
`pmtm`

. To input a sample rate and still use the default values of the
preceding optional arguments, specify these arguments as empty, `[]`

.

`[`

returns the two-sided multitaper PSD estimates at the frequencies specified in the vector,
`pxx`

,`f`

] = pmtm(`x`

,`nw`

,`f`

,`fs`

)`f`

. The vector `f`

must contain at least two elements,
because otherwise the function interprets it as `nfft`

. The frequencies in
`f`

are in cycles per unit time. The sample rate, `fs`

,
is the number of samples per unit time. If the unit of time is seconds, then
`f`

is in cycles/second (Hz).

`[___] = pmtm(`

uses
the cell array, `x`

,`dpss_params`

)`dpss_params`

, to pass input arguments
to `dpss`

except the number of elements in the
sequences. The number of elements in the sequences is the first input
argument to `dpss`

and is not included in `dpss_params`

.
An example of this usage is `pxx = pmtm(randn(1000,1),{2.5,3})`

.

`[___] = pmtm(___,'DropLastTaper',`

specifies
whether `dropflag`

)`pmtm`

drops the last taper in the computation
of the multitaper PSD estimate. `dropflag`

is a
logical. The default value of `dropflag`

is `true`

and
the last taper is not used in the PSD estimate.

`[___] = pmtm(___,`

returns
the multitaper PSD estimate over the frequency range specified by `freqrange`

)`freqrange`

.
Valid options for `freqrange`

are `'onesided'`

, `'twosided'`

,
and `'centered'`

.

`[___,`

returns
the `pxxc`

] = pmtm(___,'ConfidenceLevel',`probability`

)`probability`

× 100%
confidence intervals for the PSD estimate in `pxxc`

.

`pmtm(___)`

with no output arguments
plots the multitaper PSD estimate in the current figure window.

[1] Percival, D. B., and A. T. Walden, *Spectral
Analysis for Physical Applications: Multitaper and Conventional Univariate
Techniques*. Cambridge, UK: Cambridge University Press,
1993.

[2] Thomson, D. J., “Spectrum estimation
and harmonic analysis.” *Proceedings of the IEEE ^{®}*.
Vol. 70, 1982, pp. 1055–1096.

`dpss`

| `periodogram`

| `pwelch`