This documentation is for development version 0.18.dev0.

# 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.

Applies a zero-phase low-pass, high-pass, band-pass, or band-stop filter to the channels selected by picks.

l_freq and h_freq are the frequencies below which and above which, respectively, to filter out of the data. Thus the uses are:

• l_freq < h_freq: band-pass filter
• l_freq > h_freq: band-stop filter
• l_freq is not None and h_freq is None: high-pass filter
• l_freq is None and h_freq is not None: low-pass 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.

Parameters: data : ndarray, shape (…, n_times) The data to filter. sfreq : float The sample frequency in Hz. l_freq : float | None Low cut-off frequency in Hz. If None the data are only low-passed. h_freq : float | None High cut-off frequency in Hz. If None the data are only high-passed. picks : list | slice | None Channels to include. Slices and lists of integers will be interpreted as channel indices. None (default) will pick all channels. 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 human-readable 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 power-of-two length at least that duration for phase="zero-double". 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 cut-off frequency in Hz (high pass or cutoff 1 in bandpass). Can be “auto” (default in 0.14) 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 cut-off 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 overlap-add FIR filtering, ‘iir’ will use IIR forward-backward filtering (via filtfilt). iir_params : dict | None Dictionary of parameters to use for IIR filtering. See mne.filter.construct_iir_filter for details. If iir_params is None and method=”iir”, 4th order Butterworth will be used. copy : bool 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'. By default, a symmetric linear-phase FIR filter is constructed. If phase='zero' (default), the delay of this filter is compensated for. If phase=='zero-double', then this filter is applied twice, once forward, and once backward. If ‘minimum’, then a minimum-phase, causal filter will be used. 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.13. fir_design : str Can be “firwin” (default) to use scipy.signal.firwin(), or “firwin2” to use scipy.signal.firwin2(). “firwin” uses a time-domain design technique that generally gives improved attenuation using fewer samples than “firwin2”. ..versionadded:: 0.15 pad : str The type of padding to use. Supports all numpy.pad() mode options. Can also be “reflect_limited” (default), which pads with a reflected version of each vector mirrored on the first and last values of the vector, followed by zeros. Only used for method='fir'. New in version 0.15. verbose : bool, str, int, or None If not None, override default verbose level (see mne.verbose() and Logging documentation for more). data : ndarray, shape (…, n_times) The filtered data.

Notes

For more information, see the tutorials Background information on filtering and Filtering and resampling data.