mne.filter.filter_data¶

mne.filter.
filter_data
(data, sfreq, l_freq, h_freq, picks=None, filter_length='auto', l_trans_bandwidth='auto', h_trans_bandwidth='auto', n_jobs=1, method='fir', iir_params=None, copy=True, phase='zero', fir_window='hamming', fir_design='firwin', pad='reflect_limited', verbose=None)[source]¶ Filter a subset of channels.
 Parameters
 data
ndarray
, shape (…, n_times) The data to filter.
 sfreq
float
The sample frequency in Hz.
 l_freq
float
None
For FIR filters, the lower passband edge; for IIR filters, the lower cutoff frequency. If None the data are only lowpassed.
 h_freq
float
None
For FIR filters, the upper passband edge; for IIR filters, the upper cutoff frequency. If None the data are only highpassed.
 picks
list
slice
None
Channels to include. Slices and lists of integers will be interpreted as channel indices. None (default) will pick all channels. Note that channels in
info['bads']
will be included if their indices are explicitly provided. Currently this is only supported for 2D (n_channels, n_times) and 3D (n_epochs, n_channels, n_times) arrays. 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.
 l_trans_bandwidth
float
str
Width of the transition band at the low cutoff frequency in Hz (high pass or cutoff 1 in bandpass). Can be “auto” (default) to use a multiple of
l_freq
:min(max(l_freq * 0.25, 2), l_freq)
Only used for
method='fir'
. h_trans_bandwidth
float
str
Width of the transition band at the high cutoff frequency in Hz (low pass or cutoff 2 in bandpass). Can be “auto” (default in 0.14) to use a multiple of
h_freq
:min(max(h_freq * 0.25, 2.), info['sfreq'] / 2.  h_freq)
Only used for
method='fir'
. n_jobs
int
str
Number of jobs to run in parallel. Can be ‘cuda’ if
cupy
is installed properly and method=’fir’. method
str
‘fir’ will use overlapadd FIR filtering, ‘iir’ will use IIR forwardbackward filtering (via filtfilt).
 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()
. 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'
. The default is'reflect_limited'
.New in version 0.15.
 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.
 data
 Returns
 data
ndarray
, shape (…, n_times) The filtered data.
 data
Notes
Applies a zerophase lowpass, highpass, bandpass, or bandstop filter to the channels selected by
picks
.l_freq
andh_freq
are the frequencies below which and above which, respectively, to filter out of the data. Thus the uses are:l_freq < h_freq
: bandpass filterl_freq > h_freq
: bandstop filterl_freq is not None and h_freq is None
: highpass filterl_freq is None and h_freq is not None
: lowpass filter
Note
If n_jobs > 1, more memory is required as
len(picks) * n_times
additional time points need to be temporaily stored in memory.For more information, see the tutorials Background information on filtering and Filtering and resampling data and
mne.filter.create_filter()
.