mne.time_frequency.psd_array_multitaper(x, sfreq, fmin=0.0, fmax=inf, bandwidth=None, adaptive=False, low_bias=True, normalization='length', output='power', n_jobs=None, verbose=None)[source]#

Compute power spectral density (PSD) using a multi-taper method.

xarray, shape=(…, n_times)

The data to compute PSD from.


The sampling frequency.


The lower frequency of interest.


The upper frequency of interest.


The bandwidth of the multi taper windowing function in Hz.


Use adaptive weights to combine the tapered spectra into PSD (slow, use n_jobs >> 1 to speed up computation).


Only use tapers with more than 90% spectral concentration within bandwidth.

normalization‘full’ | ‘length’

Normalization strategy. If “full”, the PSD will be normalized by the sampling rate as well as the length of the signal (as in Nitime). Default is 'length'.


The format of the returned psds array. Can be either 'complex' or 'power'. If 'power', the power spectral density is returned. If output='complex', the complex fourier coefficients are returned per taper.

n_jobsint | None

The number of jobs to run in parallel. If -1, it is set to the number of CPU cores. Requires the joblib package. None (default) is a marker for ‘unset’ that will be interpreted as n_jobs=1 (sequential execution) unless the call is performed under a joblib.parallel_backend() context manager that sets another value for n_jobs.

verbosebool | str | int | None

Control verbosity of the logging output. If None, use the default verbosity level. See the logging documentation and mne.verbose() for details. Should only be passed as a keyword argument.

psdsndarray, shape (…, n_freqs) or (…, n_tapers, n_freqs)

The power spectral densities. All dimensions up to the last (or the last two if output='complex') will be the same as input.


The frequency points in Hz of the PSD.


The weights used for averaging across tapers. Only returned if output='complex'.


New in version 0.14.0.