code: def fftfreq(n, d=1.0, *, xp=None, device=None):
      """Return the Discrete Fourier Transform sample frequencies.
  
      The returned float array `f` contains the frequency bin centers in cycles
      per unit of the sample spacing (with zero at the start).  For instance, if
      the sample spacing is in seconds, then the frequency unit is cycles/second.
  
      Given a window length `n` and a sample spacing `d`::
  
        f = [0, 1, ...,   n/2-1,     -n/2, ..., -1] / (d*n)   if n is even
        f = [0, 1, ..., (n-1)/2, -(n-1)/2, ..., -1] / (d*n)   if n is odd
  
      Parameters
      ----------
      n : int
          Window length.
      d : scalar, optional
          Sample spacing (inverse of the sampling rate). Defaults to 1.
      xp : array_namespace, optional
          The namespace for the return array. Default is None, where NumPy is used.
      device : device, optional
          The device for the return array.
          Only valid when `xp.fft.fftfreq` implements the device parameter.
  
      Returns
      -------
      f : ndarray
          Array of length `n` containing the sample frequencies.
  
      Examples
      --------
      >>> signal = np.array([-2, 8, 6, 4, 1, 0, 3, 5], dtype=float)
      >>> fourier = scipy.fft.fft(signal)
      >>> n = signal.size
      >>> timestep = 0.1
      >>> freq = scipy.fft.fftfreq(n, d=timestep)
      >>> freq
      array([ 0.  ,  1.25,  2.5 , ..., -3.75, -2.5 , -1.25])
  
      """
      xp = np if xp is None else xp
      # numpy does not yet support the `device` keyword
      # `xp.__name__ != 'numpy'` should be removed when numpy is compatible
      if hasattr(xp, "fft") and xp.__name__ != "numpy":
          return xp.fft.fftfreq(n, d=d, device=device)
      if device is not None:
          raise ValueError(
              "device parameter is not supported for input array type"
          )
      return np.fft.fftfreq(n, d=d)
  
file_path: scipy/scipy/fft/_helper.py
imports: from functools import update_wrapper, lru_cache
  import inspect
  from ._pocketfft import helper
  import numpy
  from scipy._lib._array_api import array_namespace
label_desc: Use image node_id 3 for calling a global function with example usage: fftfreq(n, d) and returns: np, xp