docs: def bandpass_filter(data: FLOATS_TYPE,
                      sampling_freq_hz: float,
                      lower_freq_hz: float,
                      upper_freq_hz: float,
                      numtaps: int) -> FLOATS_TYPE:
      """
      Apply a band-pass filter to the data.
  
      Args:
          data: time series of the data
          sampling_freq_hz: sampling frequency :math:`f_s`, in Hz
              (or other consistent units)
          lower_freq_hz: filter cutoff lower frequency in Hz
              (or other consistent units)
          upper_freq_hz: filter cutoff upper frequency in Hz
              (or other consistent units)
          numtaps: number of filter taps
  
      Returns:
          filtered data
  
      Note: number of filter taps = filter order + 1
      """
      f1 = normalized_frequency(lower_freq_hz, sampling_freq_hz)
      f2 = normalized_frequency(upper_freq_hz, sampling_freq_hz)
      coeffs = firwin(
          numtaps=numtaps,
          cutoff=[f1, f2],
          pass_zero=False
      )
      filtered_data = lfilter(b=coeffs, a=1.0, x=data)
      return filtered_data