code: def complex_to_real(complex_fid):
      
      np = complex_fid.shape[0]
      real_fid = numpy.zeros(np * 2)
      real_fid[:np] = complex_fid.real
      real_fid[np:] = complex_fid.imag[::-1]
      return real_fid
docs: Standard optimization routines as used in lmfit require real data. This
      function takes a complex FID and constructs a real version by concatenating
      the imaginary part to the complex part. The imaginary part is also reversed
      to keep the maxima at each end of the FID and avoid discontinuities in the
      center.
  
      :param complex_fid: the complex FID to be converted to real.
      :return: the real FID, which has twice as many points as the input.