code: def get_window(window, Nx, fftbins=True):
      """
      Return a window.
  
      Parameters
      ----------
      window : string, float, or tuple
          The type of window to create. See below for more details.
      Nx : int
          The number of samples in the window.
      fftbins : bool, optional
          If True (default), create a "periodic" window, ready to use with
          `ifftshift` and be multiplied by the result of an FFT (see also
          `fftpack.fftfreq`).
          If False, create a "symmetric" window, for use in filter design.
  
      Returns
      -------
      get_window : ndarray
          Returns a window of length `Nx` and type `window`
  
      Notes
      -----
      Window types:
  
          `boxcar`, `triang`, `blackman`, `hamming`, `hann`, `bartlett`,
          `flattop`, `parzen`, `bohman`, `blackmanharris`, `nuttall`,
          `barthann`, `kaiser` (needs beta), `gaussian` (needs standard
          deviation), `general_gaussian` (needs power, width), `slepian`
          (needs width), `dpss` (needs normalized half-bandwidth),
          `chebwin` (needs attenuation), `exponential` (needs decay scale),
          `tukey` (needs taper fraction)
  
      If the window requires no parameters, then `window` can be a string.
  
      If the window requires parameters, then `window` must be a tuple
      with the first argument the string name of the window, and the next
      arguments the needed parameters.
  
      If `window` is a floating point number, it is interpreted as the beta
      parameter of the `kaiser` window.
  
      Each of the window types listed above is also the name of
      a function that can be called directly to create a window of
      that type.
  
      Examples
      --------
      >>> from scipy import signal
      >>> signal.get_window('triang', 7)
      array([ 0.125,  0.375,  0.625,  0.875,  0.875,  0.625,  0.375])
      >>> signal.get_window(('kaiser', 4.0), 9)
      array([ 0.08848053,  0.29425961,  0.56437221,  0.82160913,  0.97885093,
              0.97885093,  0.82160913,  0.56437221,  0.29425961])
      >>> signal.get_window(4.0, 9)
      array([ 0.08848053,  0.29425961,  0.56437221,  0.82160913,  0.97885093,
              0.97885093,  0.82160913,  0.56437221,  0.29425961])
  
      """
      sym = not fftbins
      try:
          beta = float(window)
      except (TypeError, ValueError):
          args = ()
          if isinstance(window, tuple):
              winstr = window[0]
              if len(window) > 1:
                  args = window[1:]
          elif isinstance(window, string_types):
              if window in _needs_param:
                  raise ValueError(
                      "The '" + window + "' window needs one or "
                      "more parameters -- pass a tuple."
                  )
              else:
                  winstr = window
          else:
              raise ValueError(
                  "%s as window type is not supported."
                  % str(type(window))
              )
  
          try:
              winfunc = _win_equiv[winstr]
          except KeyError:
              raise ValueError("Unknown window type.")
  
          params = (Nx,) + args + (sym,)
      else:
          winfunc = kaiser
          params = (Nx, beta, sym)
  
      return winfunc(*params)
  
imports: from __future__ import division, print_function, absolute_import
  import operator
  import warnings
  import numpy
  from scipy import fftpack, linalg, special
  from scipy._lib.six import string_types
label_desc: Use image node_id 29 for calling a global function with example usage: get_window(window, Nx, fftbins) and returns: winfunc