mne.time_frequency.psd_welch#
- mne.time_frequency.psd_welch(inst, fmin=0, fmax=inf, tmin=None, tmax=None, n_fft=256, n_overlap=0, n_per_seg=None, picks=None, proj=False, n_jobs=None, reject_by_annotation=True, average='mean', window='hamming', *, verbose=None)[source]#
Warning
DEPRECATED: Function
psd_welch()
is deprecated; for Raw/Epochs/Evoked instances usespectrum = instance.compute_psd(method="welch")
instead, followed byspectrum.get_data(return_freqs=True)
.Compute the power spectral density (PSD) using Welch’s method.
Calculates periodograms for a sliding window over the time dimension, then optionally averages them together for each channel/epoch.
- Parameters:
- instinstance of
Epochs
orRaw
orEvoked
The data for PSD calculation.
- fmin, fmax
float
The lower- and upper-bound on frequencies of interest. Default is
fmin=0, fmax=np.inf
(spans all frequencies present in the data).- tmin, tmax
float
|None
First and last times to include, in seconds.
None
uses the first or last time present in the data. Default istmin=None, tmax=None
(all times).- n_fft
int
The length of FFT used, must be
>= n_per_seg
(default: 256). The segments will be zero-padded ifn_fft > n_per_seg
. If n_per_seg is None, n_fft must be <= number of time points in the data.- n_overlap
int
The number of points of overlap between segments. Will be adjusted to be <= n_per_seg. The default value is 0.
- n_per_seg
int
|None
Length of each Welch segment (windowed with a Hamming window). Defaults to None, which sets n_per_seg equal to n_fft.
- picks
str
| array_like |slice
|None
Channels to include. Slices and lists of integers will be interpreted as channel indices. In lists, channel type strings (e.g.,
['meg', 'eeg']
) will pick channels of those types, channel name strings (e.g.,['MEG0111', 'MEG2623']
will pick the given channels. Can also be the string values “all” to pick all channels, or “data” to pick data channels. None (default) will pick good data channels (excluding reference MEG channels). Note that channels ininfo['bads']
will be included if their names or indices are explicitly provided.- proj
bool
Whether to apply SSP projection vectors before spectral estimation. Default is
False
.- n_jobs
int
|None
The number of jobs to run in parallel. If
-1
, it is set to the number of CPU cores. Requires thejoblib
package.None
(default) is a marker for ‘unset’ that will be interpreted asn_jobs=1
(sequential execution) unless the call is performed under ajoblib.parallel_backend()
context manager that sets another value forn_jobs
.- reject_by_annotation
bool
Whether to omit bad segments from the data before fitting. If
True
(default), annotated segments whose description begins with'bad'
are omitted. IfFalse
, no rejection based on annotations is performed.Has no effect if
inst
is not amne.io.Raw
object.New in version 0.15.0.
- average
str
|None
How to average the segments. If
mean
(default), calculate the arithmetic mean. Ifmedian
, calculate the median, corrected for its bias relative to the mean. IfNone
, returns the unaggregated segments.New in version 0.19.0.
- window
str
|float
|tuple
Windowing function to use. See
scipy.signal.get_window()
.New in version 0.22.0.
- verbose
bool
|str
|int
|None
Control verbosity of the logging output. If
None
, use the default verbosity level. See the logging documentation andmne.verbose()
for details. Should only be passed as a keyword argument.
- instinstance of
- Returns:
- psds
ndarray
, shape (…, n_freqs) or (…, n_freqs, n_segments) The power spectral densities. If
average='mean
oraverage='median'
and input is of type Raw or Evoked, then psds will be of shape (n_channels, n_freqs); if input is of type Epochs, then psds will be of shape (n_epochs, n_channels, n_freqs). Ifaverage=None
, the returned array will have an additional dimension corresponding to the unaggregated segments.- freqs
ndarray
, shape (n_freqs,) The frequencies.
- psds
See also
Notes
New in version 0.12.0.
Examples using mne.time_frequency.psd_welch
#
Rejecting bad data spans and breaks
The Spectrum and EpochsSpectrum classes: frequency-domain data