code: def fourier_basis(t, freq):
      """
      Create a design matrix with columns given by the Fourier
      basis with a given set of frequencies.
  
      Parameters
      ----------
      t : np.ndarray
          An array of np.float64 values at which to evaluate
          the design. Common examples would be the acquisition
          times of an fMRI image.
      freq : sequence of float
          Frequencies for the terms in the Fourier basis.
  
      Returns
      -------
      X : np.ndarray
  
      Examples
      --------
      >>> t = np.linspace(0,50,101)
      >>> drift = fourier_basis(t, np.array([4,6,8]))
      >>> drift.shape
      (101, 6)
      """
      tval = make_recarray(t, ["t"])
      f = fourier_basis_sym(freq)
      return f.design(tval, return_float=True)
  
imports: import itertools
  from functools import reduce
  from operator import mul
  import numpy
  from nipy.algorithms.statistics.formula import formulae
  from nipy.algorithms.statistics.formula.formulae import Factor, Formula, Term, make_recarray
  from nipy.algorithms.statistics.utils import combinations
  from .hrf import glover
  from .utils import T, blocks, convolve_functions, events
  from .utils import fourier_basis
label_desc: Use image node_id 1 for calling a global function with example usage: fourier_basis(t, freq) and returns: f