mne_denoise.dss.denoisers.WienerMaskDenoiser#
- class mne_denoise.dss.denoisers.WienerMaskDenoiser(window_samples: int = 50, noise_percentile: float = 25.0, *, min_gain: float = 0.01, noise_variance: float | None = None)[source]#
Adaptive Wiener mask denoiser.
The core nonlinear DSS denoiser from Särelä & Valpola (2005). Estimates time-varying signal variance and applies soft Wiener-style masking:
m(t) = σ²_signal(t) / [σ²_signal(t) + σ²_noise] s⁺(t) = s(t) · m(t)
This is adaptive/nonlinear because the mask is estimated from the data. Ideal for bursty, non-stationary signals (spindles, beta bursts, intermittent artifacts).
- Parameters:
window_samples (int) – Window size for local variance estimation. Default 50.
noise_percentile (float) – Percentile of local variance used to estimate noise floor. Lower values = more aggressive denoising. Default 25.
min_gain (float) – Minimum mask value (prevents complete zeroing). Default 0.01.
noise_variance (float, optional) – If provided, use this fixed noise variance instead of estimating.
Examples
>>> from mne_denoise.dss.denoisers import WienerMaskDenoiser >>> denoiser = WienerMaskDenoiser(window_samples=50) >>> denoised = denoiser.denoise(source)
References
Särelä & Valpola (2005). Section 4.4 “Spectral Shift and Approximation of the Objective Function with Mask-Based Denoisings”
- __init__(window_samples: int = 50, noise_percentile: float = 25.0, *, min_gain: float = 0.01, noise_variance: float | None = None) None[source]#
Methods
__init__([window_samples, noise_percentile, ...])denoise(source)Apply Wiener mask denoising.