code: def inverse_complex_cepstrum(ceps, ndelay):
      r"""Compute the inverse complex cepstrum of a real sequence.
      ceps : ndarray
          Real sequence to compute inverse complex cepstrum of.
      ndelay: int
          The amount of samples of circular delay added to `x`.
      Returns
      -------
      x : ndarray
          The inverse complex cepstrum of the real sequence `ceps`.
      The inverse complex cepstrum is given by
      .. math:: x[n] = F^{-1}\left{\exp(F(c[n]))\right}
      where :math:`c_[n]` is the input signal and :math:`F` and :math:`F_{-1}
      are respectively the forward and backward Fourier transform.
      """
  
      def _wrap(phase, ndelay):
          ndelay = numpy.array(ndelay)
          samples = phase.shape[-1]
          center = (samples + 1) // 2
          wrapped = (
              phase
              + numpy.pi
              * ndelay[..., None]
              * numpy.arange(samples)
              / center
          )
          return wrapped
  
      log_spectrum = numpy.fft.fft(ceps)
      spectrum = numpy.exp(
          log_spectrum.real + 1j * _wrap(log_spectrum.imag, ndelay)
      )
      x = numpy.fft.ifft(spectrum).real
  
      return x
  
file_path: cupy/tests/cupyx_tests/signal_tests/acoustics_tests/test_cepstrum.py
imports: import pytest
  import numpy
  import cupy
  from cupy import testing
  import cupyx.signal
label_desc: Use image node_id 3 for calling a global function with example usage: inverse_complex_cepstrum(ceps, ndelay) and returns: x, wrapped