code: def phase_correct_first(spec, freq, k):
      
      c_factor = np.exp(-1j * k * freq)
      c_factor = c_factor.reshape((len(spec.shape) -1) * (1,) + c_factor.shape)
      return spec * c_factor
docs: First order phase correction.
  
      Parameters
      ----------
      spec : float array
          The spectrum to be corrected.
  
      freq : float array
          The frequency axis.
  
      k : float
          The slope of the phase correction as a function of frequency.
  
      Returns
      -------
      The phase-corrected spectrum.
  
      Notes
      -----
      [Keeler2005] Keeler, J (2005). Understanding NMR Spectroscopy, 2nd
          edition. Wiley. Page 88