mne.filter.notch_filter¶

mne.filter.
notch_filter
(x, Fs, freqs, filter_length='auto', notch_widths=None, trans_bandwidth=1, method='fir', iir_params=None, mt_bandwidth=None, p_value=0.05, picks=None, n_jobs=1, copy=True, phase='zero', fir_window='hamming', fir_design='firwin', pad='reflect_limited', verbose=None)[source]¶ Notch filter for the signal x.
Applies a zerophase notch filter to the signal x, operating on the last dimension.
 Parameters
 x
array
Signal to filter.
 Fs
float
Sampling rate in Hz.
 freqs
float
array
offloat
None
Frequencies to notch filter in Hz, e.g. np.arange(60, 241, 60). None can only be used with the mode ‘spectrum_fit’, where an F test is used to find sinusoidal components.
 filter_length
str
int
Length of the FIR filter to use (if applicable):
‘auto’ (default): The filter length is chosen based on the size of the transition regions (6.6 times the reciprocal of the shortest transition band for fir_window=’hamming’ and fir_design=”firwin2”, and half that for “firwin”).
str: A humanreadable time in units of “s” or “ms” (e.g., “10s” or “5500ms”) will be converted to that number of samples if
phase="zero"
, or the shortest poweroftwo length at least that duration forphase="zerodouble"
.int: Specified length in samples. For fir_design=”firwin”, this should not be used.
When
method=='spectrum_fit'
, this sets the effective window duration over which fits are computed. Seemne.filter.create_filter()
for options. Longer window lengths will give more stable frequency estimates, but require (potentially much) more processing and are not able to adapt as well to nonstationarities.The default in 0.21 is None, but this will change to
'10s'
in 0.22. notch_widths
float
array
offloat
None
Width of the stop band (centred at each freq in freqs) in Hz. If None, freqs / 200 is used.
 trans_bandwidth
float
Width of the transition band in Hz. Only used for
method='fir'
. method
str
‘fir’ will use overlapadd FIR filtering, ‘iir’ will use IIR forwardbackward filtering (via filtfilt). ‘spectrum_fit’ will use multitaper estimation of sinusoidal components. If freqs=None and method=’spectrum_fit’, significant sinusoidal components are detected using an F test, and noted by logging.
 iir_params
dict
None
Dictionary of parameters to use for IIR filtering. If iir_params is None and method=”iir”, 4th order Butterworth will be used. For more information, see
mne.filter.construct_iir_filter()
. mt_bandwidth
float
None
The bandwidth of the multitaper windowing function in Hz. Only used in ‘spectrum_fit’ mode.
 p_value
float
Pvalue to use in Ftest thresholding to determine significant sinusoidal components to remove when method=’spectrum_fit’ and freqs=None. Note that this will be Bonferroni corrected for the number of frequencies, so large pvalues may be justified.
 picks
list
slice
None
Channels to include. Slices and lists of integers will be interpreted as channel indices. None (default) will pick all channels. Only supported for 2D (n_channels, n_times) and 3D (n_epochs, n_channels, n_times) data.
 n_jobs
int
str
Number of jobs to run in parallel. Can be ‘cuda’ if
cupy
is installed properly and method=’fir’. copybool
If True, a copy of x, filtered, is returned. Otherwise, it operates on x in place.
 phase
str
Phase of the filter, only used if
method='fir'
. Symmetric linearphase FIR filters are constructed, and ifphase='zero'
(default), the delay of this filter is compensated for, making it noncausal. Ifphase=='zerodouble'
, then this filter is applied twice, once forward, and once backward (also making it noncausal). If ‘minimum’, then a minimumphase filter will be constricted and applied, which is causal but has weaker stopband suppression.New in version 0.13.
 fir_window
str
The window to use in FIR design, can be “hamming” (default), “hann” (default in 0.13), or “blackman”.
New in version 0.15.
 fir_design
str
Can be “firwin” (default) to use
scipy.signal.firwin()
, or “firwin2” to usescipy.signal.firwin2()
. “firwin” uses a timedomain design technique that generally gives improved attenuation using fewer samples than “firwin2”.New in version 0.15.
 pad
str
The type of padding to use. Supports all
numpy.pad()
mode
options. Can also be “reflect_limited”, which pads with a reflected version of each vector mirrored on the first and last values of the vector, followed by zeros. Only used formethod='fir'
. verbosebool,
str
,int
, orNone
If not None, override default verbose level (see
mne.verbose()
and Logging documentation for more). If used, it should be passed as a keywordargument only.
 x
 Returns
 xf
array
The x array filtered.
 xf
See also
Notes
The frequency response is (approximately) given by:
1   \ / H  \ /  \ /  \ / 0       0 Fp1 freq Fp2 Nyq
For each freq in freqs, where
Fp1 = freq  trans_bandwidth / 2
andFs2 = freq + trans_bandwidth / 2
.References
Multitaper removal is inspired by code from the Chronux toolbox, see www.chronux.org and the book “Observed Brain Dynamics” by Partha Mitra & Hemant Bokil, Oxford University Press, New York, 2008. Please cite this in publications if method ‘spectrum_fit’ is used.