mne_denoise.dss.denoisers.TanhMaskDenoiser#

class mne_denoise.dss.denoisers.TanhMaskDenoiser(alpha: float = 1.0, *, normalize: bool = True)[source]#

Tanh mask denoiser (Standard FastICA nonlinearity).

Implements the hyperbolic tangent nonlinearity used widely in ICA for super-Gaussian source extraction. It is robust to outliers compared to kurtosis ($s^3$).

Formula:

$s_{new} = \tanh(\alpha \cdot s)$

Parameters:
  • alpha (float) – Scaling factor controlling the saturation slope. Default 1.0.

  • normalize (bool) – If True, normalizes the source to unit variance before applying tanh, then rescales back. This ensures $\alpha=1$ has a consistent meaning. Default True.

Examples

>>> # Use for robust ICA
>>> from mne_denoise.dss.denoisers import TanhMaskDenoiser, beta_tanh
>>> denoiser = TanhMaskDenoiser()
>>> dss = IterativeDSS(denoiser=denoiser, beta=beta_tanh)

References

Särelä & Valpola (2005). Section 4.2.2 “BETTER ESTIMATE FOR THE SIGNAL VARIANCE”

__init__(alpha: float = 1.0, *, normalize: bool = True) None[source]#

Methods

__init__([alpha, normalize])

denoise(source)

Apply tanh nonlinearity.