neurodsp.filt.checks.check_filter_definition

neurodsp.filt.checks.check_filter_definition(pass_type, f_range)[source]

Check a filter definition for validity, and get filter frequency range of the filter.

Parameters:
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’.

Returns:
f_lofloat or None

The lower frequency range of the filter, specifying the highpass frequency, if specified.

f_hifloat or None

The higher frequency range of the filter, specifying the lowpass frequency, if specified.

Raises:
ValueError

If the filter passtype it not understood, or cutoff frequencies are incompatible.

Examples

Check a filter definition, and get the cutoff frequencies returned, if the filter is valid:

>>> f_hi, f_lo = check_filter_definition(pass_type='bandpass', f_range=(5, 25))

Check a filter definition, for an invalid filter. This example fails since a bandpass filter requires two values for f_range.

>>> try:
...     f_hi, f_lo = check_filter_definition(pass_type='bandpass', f_range=(20))
... except ValueError:
...     print("The filter definition is invalid.")
The filter definition is invalid.