mne_denoise.ssa.SingularSpectrumAnalysis#

class mne_denoise.ssa.SingularSpectrumAnalysis(sfreq: float | None = None, window_length: int | None = None, drop_freq_max: float = 3.0, drop_band: tuple[float, float] | None = None, n_check: int | None = None, max_window: int = 100, verbose: bool | str | int | None = None, *, window_seconds: float | None = None)[source]#

Frequency-guided, channel-wise Basic SSA transformer.

Parameters:
sfreqfloat | None, default=None

Sampling frequency in Hz. NumPy input requires it; MNE input supplies it from metadata.

window_lengthint | None, default=None

Embedding dimension in samples.

drop_freq_maxfloat, default=3.0

Dominant-frequency upper bound in Hz.

drop_bandtuple of float | None, default=None

Inclusive dominant-frequency rejection interval in Hz.

n_checkint | None, default=None

Number of leading numerical-rank components to inspect.

max_windowint, default=100

Maximum automatic embedding dimension.

verbosebool, str, int, or None, default=None

Logging level.

window_secondsfloat | None, default=None

Embedding duration in seconds, mutually exclusive with window_length.

Attributes:
sfreq_float

Sampling frequency used for fitting.

n_channels_in_int

Number of fitted data channels.

ch_names_in_tuple of str | None

Fitted MNE channel names and order, or None for arrays.

diagnostics_dict | list of dict

Diagnostics from the most recent transform.

dropped_counts_ndarray

Number of rejected components per channel or epoch and channel.

dropped_frequencies_list

Dominant frequencies of rejected components.

See also

LocalSingularSpectrumAnalysis

Local delay-vector clustering and reconstruction.

compute_basic_ssa

One-shot Basic SSA interface.

Notes

The estimator is transductive: fit records the operating point and channel layout, while each transform decomposes its input records independently. [1].

References

Examples

>>> import numpy as np
>>> from mne_denoise.ssa import SingularSpectrumAnalysis
>>> rng = np.random.default_rng(0)
>>> data = rng.standard_normal((8, 2000))
>>> model = SingularSpectrumAnalysis(sfreq=250.0, drop_freq_max=3.0)
>>> clean = model.fit_transform(data)