code: def butterworthFilter(
      data,
      wPass,
      wStop=None,
      gPass=2.0,
      gStop=20.0,
      order=1,
      dt=None,
      btype="low",
      bidir=True,
  ):
      """return data passed through bessel filter"""
      try:
          import scipy.signal
      except ImportError:
          raise Exception(
              "butterworthFilter() requires the package scipy.signal."
          )
  
      if dt is None:
          try:
              tvals = data.xvals("Time")
              dt = (tvals[-1] - tvals[0]) / (len(tvals) - 1)
          except:
              dt = 1.0
  
      if wStop is None:
          wStop = wPass * 2.0
      ord, Wn = scipy.signal.buttord(
          wPass * dt * 2.0, wStop * dt * 2.0, gPass, gStop
      )
      # print "butterworth ord %f   Wn %f   c %f   sc %f" % (ord, Wn, cutoff, stopCutoff)
      b, a = scipy.signal.butter(ord, Wn, btype=btype)
  
      return applyFilter(data, b, a, bidir=bidir)
  
file_path: pyqtgraph/pyqtgraph/flowchart/library/functions.py
imports: import numpy
  from ...metaarray import MetaArray
label_desc: Use image node_id 4 for calling a global function with example usage: butterworthFilter(data, wPass, wStop, gPass, gStop, order, dt, btype, bidir) and returns: applyFilter