docs: def extract_ZXY_motion(self, ApproxZXYFreqs, uncertaintyInFreqs, ZXYPeakWidths, subSampleFraction=1, NPerSegmentPSD=1000000, MakeFig=True, show_fig=True):
          """
          Extracts the x, y and z signals (in volts) from the voltage signal. Does this by finding the highest peaks in the signal about the approximate frequencies, using the uncertaintyinfreqs parameter as the width it searches. It then uses the ZXYPeakWidths to construct bandpass IIR filters for each frequency and filtering them. If too high a sample frequency has been used to collect the data scipy may not be able to construct a filter good enough, in this case increasing the subSampleFraction may be nessesary.
          
          Parameters
          ----------
          ApproxZXYFreqs : array_like
              A sequency containing 3 elements, the approximate 
              z, x and y frequency respectively.
          uncertaintyInFreqs : float
              The uncertainty in the z, x and y frequency respectively.
          ZXYPeakWidths : array_like
              A sequency containing 3 elements, the widths of the
              z, x and y frequency peaks respectively.
          subSampleFraction : int, optional
              How much to sub-sample the data by before filtering,
              effectively reducing the sample frequency by this 
              fraction.
          NPerSegmentPSD : int, optional
              NPerSegment to pass to scipy.signal.welch to calculate the PSD
          show_fig : bool, optional
              Whether to show the figures produced of the PSD of
              the original signal along with the filtered x, y and z.
  
          Returns
          -------
          self.zVolts : ndarray
              The z signal in volts extracted by bandpass IIR filtering
          self.xVolts : ndarray
              The x signal in volts extracted by bandpass IIR filtering
          self.yVolts : ndarray
              The y signal in volts extracted by bandpass IIR filtering
          time : ndarray
              The array of times corresponding to the above 3 arrays
          fig : matplotlib.figure.Figure object
              figure object containing a plot of the PSD of the original 
              signal with the z, x and y filtered signals
          ax : matplotlib.axes.Axes object
              axes object corresponding to the above figure
          
          """
          [zf, xf, yf] = ApproxZXYFreqs
          zf, xf, yf = get_ZXY_freqs(
              self, zf, xf, yf, bandwidth=uncertaintyInFreqs)
          [zwidth, xwidth, ywidth] = ZXYPeakWidths
          self.zVolts, self.xVolts, self.yVolts, time, fig, ax = get_ZXY_data(
              self, zf, xf, yf, subSampleFraction, zwidth, xwidth, ywidth, MakeFig=MakeFig, show_fig=show_fig, NPerSegmentPSD=NPerSegmentPSD)
          return self.zVolts, self.xVolts, self.yVolts, time, fig, ax