docs: def make_butterworth_b_a(lowcut, highcut, SampleFreq, order=5, btype='band'):
      """
      Generates the b and a coefficients for a butterworth IIR filter.
  
      Parameters
      ----------
      lowcut : float
          frequency of lower bandpass limit
      highcut : float
          frequency of higher bandpass limit
      SampleFreq : float
          Sample frequency of filter
      order : int, optional
          order of IIR filter. Is 5 by default
      btype : string, optional
          type of filter to make e.g. (band, low, high)
  
      Returns
      -------
      b : ndarray
          coefficients multiplying the current and past inputs (feedforward coefficients)
      a : ndarray
          coefficients multiplying the past outputs (feedback coefficients)
      """
      nyq = 0.5 * SampleFreq
      low = lowcut / nyq
      high = highcut / nyq
      if btype.lower() == 'band':
          b, a = scipy.signal.butter(order, [low, high], btype = btype)
      elif btype.lower() == 'low':
          b, a = scipy.signal.butter(order, low, btype = btype)
      elif btype.lower() == 'high':
          b, a = scipy.signal.butter(order, high, btype = btype)
      else:
          raise ValueError('Filter type unknown')
      return b, a