neurodsp.filt.checks.check_filter_properties

neurodsp.filt.checks.check_filter_properties(filter_coefs, a_vals, fs, pass_type, f_range, transitions=(-20, -3), verbose=True)[source]

Check a filters properties, including pass band and transition band.

Parameters:
filter_coefs1d or 2d array

If 1d, interpreted as the B-value filter coefficients. If 2d, interpreted as the second-order (sos) filter coefficients.

a_vals1d array or None

The A-value filter coefficients for a filter. If second-order filter coefficients are provided in filter_coefs, must be None.

fsfloat

Sampling rate, in Hz.

pass_type{‘bandpass’, ‘bandstop’, ‘lowpass’, ‘highpass’}

Which kind of filter to apply:

  • ‘bandpass’: apply a bandpass filter

  • ‘bandstop’: apply a bandstop (notch) filter

  • ‘lowpass’: apply a lowpass filter

  • ‘highpass’ : apply a highpass filter

f_rangetuple of (float, float) or float

Cutoff frequency(ies) used for filter, specified as f_lo & f_hi. For ‘bandpass’ & ‘bandstop’, must be a tuple. For ‘lowpass’ or ‘highpass’, can be a float that specifies pass frequency, or can be a tuple and is assumed to be (None, f_hi) for ‘lowpass’, and (f_lo, None) for ‘highpass’.

transitionstuple of (float, float), optional, default: (-20, -3)

Cutoffs, in dB, that define the transition band.

verbosebool, optional, default: True

Whether to print out transition and pass bands.

Returns:
passesbool

Whether all the checks pass. False if one or more checks fail.

Examples

Check the properties of an FIR filter:

>>> from neurodsp.filt.fir import design_fir_filter
>>> fs, pass_type, f_range = 500, 'bandpass', (1, 25)
>>> filter_coefs = design_fir_filter(fs, pass_type, f_range)
>>> passes = check_filter_properties(filter_coefs, 1, fs, pass_type, f_range)
Transition bandwidth is 0.5 Hz.
Pass/stop bandwidth is 24.0 Hz.