mne.time_frequency.psd_array_welch#

mne.time_frequency.psd_array_welch(x, sfreq, fmin=0, fmax=inf, n_fft=256, n_overlap=0, n_per_seg=None, n_jobs=None, average='mean', window='hamming', *, output='power', verbose=None)[source]#

Compute power spectral density (PSD) using Welch’s method.

Welch’s method is described in Welch1.

Parameters
xarray, shape=(…, n_times)

The data to compute PSD from.

sfreqfloat

The sampling frequency.

fminfloat

The lower frequency of interest.

fmaxfloat

The upper frequency of interest.

n_fftint

The length of FFT used, must be >= n_per_seg (default: 256). The segments will be zero-padded if n_fft > n_per_seg.

n_overlapint

The number of points of overlap between segments. Will be adjusted to be <= n_per_seg. The default value is 0.

n_per_segint | None

Length of each Welch segment (windowed with a Hamming window). Defaults to None, which sets n_per_seg equal to n_fft.

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_config context manager that sets another value for n_jobs.

averagestr | None

How to average the segments. If mean (default), calculate the arithmetic mean. If median, calculate the median, corrected for its bias relative to the mean. If None, returns the unaggregated segments.

New in v0.19.0.

windowstr | float | tuple

Windowing function to use. See scipy.signal.get_window().

New in v0.22.0.

outputstr

The format of the returned psds array, 'complex' or 'power':

  • 'power' : the power spectral density is returned.

  • 'complex' : the complex fourier coefficients are returned per window.

New in v1.4.0.

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.

Returns
psdsndarray, shape (…, n_freqs) or (…, n_freqs, n_segments)

The power spectral densities. If average='mean or average='median', the returned array will have the same shape as the input data plus an additional frequency dimension. If average=None, the returned array will have the same shape as the input data plus two additional dimensions corresponding to frequencies and the unaggregated segments, respectively.

freqsndarray, shape (n_freqs,)

The frequencies.

Notes

New in v0.14.0.

References

1

Peter D. Welch. The use of fast Fourier transform for the estimation of power spectra: A method based on time averaging over short, modified periodograms. IEEE Transactions on Audio and Electroacoustics, 15(2):70–73, 1967. doi:10.1109/TAU.1967.1161901.

Examples using mne.time_frequency.psd_array_welch#

Creating MNE-Python data structures from scratch

Creating MNE-Python data structures from scratch

Compute Spectro-Spatial Decomposition (SSD) spatial filters

Compute Spectro-Spatial Decomposition (SSD) spatial filters