mne_denoise.dss.denoisers.CombFilterBias#

class mne_denoise.dss.denoisers.CombFilterBias(fundamental_freq: float, sfreq: float, *, n_harmonics: int = 3, q_factor: float = 30.0, weights: ndarray | None = None)[source]#

Comb filter bias for harmonic frequency extraction.

Applies a comb filter that passes the fundamental frequency and its harmonics. Ideal for SSVEP analysis where stimulus frequency creates responses at multiple harmonic frequencies.

Parameters:
  • fundamental_freq (float) – Fundamental frequency in Hz (e.g., 15 Hz for SSVEP).

  • sfreq (float) – Sampling frequency in Hz.

  • n_harmonics (int) – Number of harmonics to include (1 = fundamental only). Default 3.

  • q_factor (float) – Quality factor for each peak. Default 30.

  • weights (array-like, optional) – Weights for each harmonic. If None, uses 1/harmonic_number weighting (decreasing importance of higher harmonics).

Examples

>>> # SSVEP at 15 Hz with 3 harmonics (15, 30, 45 Hz)
>>> from mne_denoise.dss.denoisers import CombFilterBias
>>> bias = CombFilterBias(fundamental_freq=50, sfreq=1000, n_harmonics=5)
>>> biased_data = bias.apply(data)
>>> # Custom weighting (equal weight for all harmonics)
>>> bias = CombFilterBias(
...     fundamental_freq=12, sfreq=500, n_harmonics=4, weights=[1.0, 1.0, 1.0, 1.0]
... )

See also

PeakFilterBias

For single frequency targets.

Notes

Implements a sum of peak filters at each harmonic. Harmonics above Nyquist frequency are automatically excluded.

References

Särelä & Valpola (2005). Section 4.1.2 “DENOISING BASED ON FREQUENCY CONTENT”

__init__(fundamental_freq: float, sfreq: float, *, n_harmonics: int = 3, q_factor: float = 30.0, weights: ndarray | None = None) None[source]#

Methods

__init__(fundamental_freq, sfreq, *[, ...])

apply(data)

Apply comb filter bias.

Attributes

harmonic_frequencies

Return list of harmonic frequencies being filtered.