SignalUtils.RealCepstrum Method

procedure RealCepstrum(const Src: TVec; const Dst: TVec; DumpDC: Boolean; WindowType: TSignalWindowType; Magnitude: Boolean);

Compute the real cepstrum.

#NameTypeDescription
1SrcTVec
2DstTVec
3DumpDCBoolean
4WindowTypeTSignalWindowType
5MagnitudeBoolean

Result: stored in self (calling object)

Remarks:

Computes the real cepstrum of Src and places it in Dst. The real cepstrum is the inverse transform of the log-magnitude spectrum: c_x[q] = F^(-1){ logbigl| F{x[n]}bigr| }[q],

rc = IFFT(log(abs(FFT(x)))

x.. time series

where q is the quefrency (a time-like index). Because the magnitude spectrum is even, the result is real. A periodicity in the magnitude spectrum (for example an echo at delay D) appears as a peak in the cepstrum at quefrency q=D, which is the basis of echo and pitch detection. If DumpDC is True the DC component is removed before the forward FFT, and WindowType selects the analysis window (the Hanning window is a good default). When Magnitude is True the magnitude of the cepstrum is returned. The argument of the logarithm is the spectrum magnitude, which is non-negative, so no complex logarithm is needed.

References:

[1] Discrete-time signal processing, Oppenheim and Schafer, Prentice-Hall, 1989.

See Also: SignalUtils.CplxCepstrum, SignalUtils.CplxCepstrumInv