mne_denoise.dss.CycleAverageBias#

class mne_denoise.dss.CycleAverageBias(event_samples: Sequence[int] | Sequence[tuple[int, int]], window: tuple[int | float, int | float] = (-100, 200), *, window_unit: Literal['samples', 'seconds'] = 'samples', sfreq: float | None = None, event_origin: Literal['data', 'raw'] = 'data', first_samp: int | None = None, min_events: int = 2)[source]#

Fixed-window event-locked averaging bias.

Parameters:
event_samplesarray-like of int, shape (n_events,) or (n_events, 2)

One-dimensional sample coordinates for 2D input, or (epoch_index, sample_index) pairs for 3D channel-first input.

windowtuple of int or float, default=(-100, 200)

Half-open interval [event + start, event + stop).

window_unit{“samples”, “seconds”}, default=”samples”

Unit for window; seconds require sfreq.

sfreqfloat or None, default=None

Sampling frequency in Hz for second-valued windows.

event_origin{“data”, “raw”}, default=”data”

Origin for one-dimensional coordinates. "raw" requires first_samp.

first_sampint or None, default=None

Acquisition sample offset used with event_origin="raw".

min_eventsint, default=2

Minimum number of unique complete events.

Notes

Windows are half-open. Boundary-crossing or incomplete events raise an error; overlapping contributions are averaged and duplicate coordinates are removed. This fixed-window bias is not the complete variable-period quasiperiodic procedure described in the original DSS work.

apply(data: ndarray) ndarray[source]#

Apply fixed-window event-locked averaging.

Parameters:
datandarray, shape (n_channels, n_times) or (n_channels, n_times, n_epochs)

Continuous or channel-first epoched data.

Returns:
ndarray

Floating-point event-locked estimate with the input shape.