mne.preprocessing.create_ecg_epochs(raw, ch_name=None, event_id=999, picks=None, tmin=-0.5, tmax=0.5, l_freq=8, h_freq=16, reject=None, flat=None, baseline=None, preload=True, keep_ecg=False, reject_by_annotation=True, verbose=None)[source]

Conveniently generate epochs around ECG artifact events.

raw : instance of Raw

The raw data

ch_name : None | str

The name of the channel to use for ECG peak detection. If None (default), ECG channel is used if present. If None and no ECG channel is present, a synthetic ECG channel is created from cross channel average. Synthetic channel can only be created from MEG channels.

event_id : int

The index to assign to found events

picks : array-like of int | None (default)

Indices of channels to include. If None, all channels are used.

tmin : float

Start time before event.

tmax : float

End time after event.

l_freq : float

Low pass frequency to apply to the ECG channel while finding events.

h_freq : float

High pass frequency to apply to the ECG channel while finding events.

reject : dict | None

Rejection parameters based on peak-to-peak amplitude. Valid keys are ‘grad’ | ‘mag’ | ‘eeg’ | ‘eog’ | ‘ecg’. If reject is None then no rejection is done. Example:

reject = dict(grad=4000e-13, # T / m (gradiometers)
              mag=4e-12, # T (magnetometers)
              eeg=40e-6, # V (EEG channels)
              eog=250e-6 # V (EOG channels)
flat : dict | None

Rejection parameters based on flatness of signal. Valid keys are ‘grad’ | ‘mag’ | ‘eeg’ | ‘eog’ | ‘ecg’, and values are floats that set the minimum acceptable peak-to-peak amplitude. If flat is None then no rejection is done.

baseline : tuple | list of length 2 | None

The time interval to apply rescaling / baseline correction. If None do not apply it. If baseline is (a, b) the interval is between “a (s)” and “b (s)”. If a is None the beginning of the data is used and if b is None then b is set to the end of the interval. If baseline is equal to (None, None) all the time interval is used. If None, no correction is applied.

preload : bool

Preload epochs or not (default True). Must be True if keep_ecg is True.

keep_ecg : bool

When ECG is synthetically created (after picking), should it be added to the epochs? Must be False when synthetic channel is not used. Defaults to False.

reject_by_annotation : bool

Whether to reject based on annotations. If True (default), epochs overlapping with segments whose description begins with 'bad' are rejected. If False, no rejection based on annotations is performed.

New in version 0.14.0.

verbose : bool, str, int, or None

If not None, override default verbose level (see mne.verbose() and Logging documentation for more).

ecg_epochs : instance of Epochs

Data epoched around ECG r-peaks.


Filtering is only applied to the ECG channel while finding events. The resulting ecg_epochs will have no filtering applied (i.e., have the same filter properties as the input raw instance).