class_docstr: ShortTimeFourierTransformProcessor class.
  
  Parameters
  ----------
  window : numpy ufunc, optional
      Window function.
  fft_size : int, optional
      FFT size (should be a power of 2); if 'None', it is determined by the
      size of the frames; if is greater than the frame size, the frames are
      zero-padded accordingly.
  circular_shift : bool, optional
      Circular shift the individual frames before performing the FFT;
      needed for correct phase.
  include_nyquist : bool, optional
      Include the Nyquist frequency bin (sample rate / 2).
  
  Examples
  --------
  Create a :class:`ShortTimeFourierTransformProcessor` and call it with
  either a file name or a the output of a (Framed-)SignalProcessor to obtain
  a :class:`ShortTimeFourierTransform` instance.
  
  >>> proc = ShortTimeFourierTransformProcessor()
  >>> stft = proc('tests/data/audio/sample.wav')
  >>> stft  # doctest: +NORMALIZE_WHITESPACE +ELLIPSIS +NORMALIZE_FFT
  ShortTimeFourierTransform([[-3.15249+0.j     ,  2.62216-3.02425j, ...,
                              -0.03634-0.00005j,  0.0367 +0.00029j],
                             [-4.28429+0.j     ,  2.02009+2.01264j, ...,
                              -0.01981-0.00933j, -0.00536+0.02162j],
                             ...,
                             [-4.92274+0.j     ,  4.09839-9.42525j, ...,
                               0.0055 -0.00257j,  0.00137+0.00577j],
                             [-9.22709+0.j     ,  8.76929+4.0005j , ...,
                               0.00981-0.00014j, -0.00984+0.00006j]],
                            dtype=complex64)
class_docstr_tok: ["ShortTimeFourierTransformProcessor","class",".","Parameters","--","--","--","--","--","window",":","numpy","ufunc",",","optional","Window","function",".","fft_size",":","int",",","optional","FFT","size","(","should","be","a","power","of","2",")",";","if","'None","'",",","it","is","determined","by","the","size","of","the","frames",";","if","is","greater","than","the","frame","size",",","the","frames","are","zero-padded","accordingly",".","circular_shift",":","bool",",","optional","Circular","shift","the","individual","frames","before","performing","the","FFT",";","needed","for","correct","phase",".","include_nyquist",":","bool",",","optional","Include","the","Nyquist","frequency","bin","(","sample","rate","\/","2",")",".","Examples","--","--","--","--","Create","a",":","class",":","`","ShortTimeFourierTransformProcessor","`","and","call","it","with","either","a","file","name","or","a","the","output","of","a","(","Framed-",")","SignalProcessor","to","obtain","a",":","class",":","`","ShortTimeFourierTransform","`","instance",".",">",">",">","proc","=","ShortTimeFourierTransformProcessor","(",")",">",">",">","stft","=","proc","(","'tests\/data\/audio\/sample.wav","'",")",">",">",">","stft","#","doctest",":","+NORMALIZE_WHITESPACE","+ELLIPSIS","+NORMALIZE_FFT","ShortTimeFourierTransform","(","[","[","-3.15249+0.j",",","2.62216-3.02425j",",","...",",","-0.03634-0.00005j",",","0.0367","+0.00029j","]",",","[","-4.28429+0.j",",","2.02009+2.01264j",",","...",",","-0.01981-0.00933j",",","-0.00536+0.02162j","]",",","...",",","[","-4.92274+0.j",",","4.09839-9.42525j",",","...",",","0.0055","-0.00257j",",","0.00137+0.00577j","]",",","[","-9.22709+0.j",",","8.76929+4.0005j",",","...",",","0.00981-0.00014j",",","-0.00984+0.00006j","]","]",",","dtype=complex64",")"]
docstr: Perform FFT on a framed signal and return the STFT.
  
  Parameters
  ----------
  data : numpy array
      Data to be processed.
  kwargs : dict, optional
      Keyword arguments passed to :class:`ShortTimeFourierTransform`.
  
  Returns
  -------
  stft : :class:`ShortTimeFourierTransform`
      :class:`ShortTimeFourierTransform` instance.
code: def process(self, data, **kwargs):
      """
      Perform FFT on a framed signal and return the STFT.
  
      Parameters
      ----------
      data : numpy array
          Data to be processed.
      kwargs : dict, optional
          Keyword arguments passed to :class:`ShortTimeFourierTransform`.
  
      Returns
      -------
      stft : :class:`ShortTimeFourierTransform`
          :class:`ShortTimeFourierTransform` instance.
  
      """
      # instantiate a STFT
      data = ShortTimeFourierTransform(
          data,
          window=self.window,
          fft_size=self.fft_size,
          circular_shift=self.circular_shift,
          include_nyquist=self.include_nyquist,
          fft_window=self.fft_window,
          fftw=self.fftw,
          **kwargs,
      )
      # cache the window used for FFT
      # Note: depending on the signal this may be scaled already
      self.fft_window = data.fft_window
      self.fftw = data.fftw
      return data
  
imports: from __future__ import absolute_import, division, print_function
  import warnings
  import numpy
  import scipy.fftpack
  from ..processors import Processor
  from .signal import Signal, FramedSignal
label_desc: Use image node_id 2 for calling the ShortTimeFourierTransformProcessor obj's underlying member method code with example usage: obj.process(data) and returns: data