Cepstral Analysis Object and Template (Spectral Analysis Option)

23.08.2021

The Cepstrum is a non-linear Fourier technique used to "deconvolve" two signals. Its main applications are speech analysis and echo detection.

Algorithm

When you measure a spoken vocal, the signal is the convolution of an excitation function v(t), produced by the vocal chords, and the impulse response of the vocal tract h(t) :

The excitation function has the shape of an impulse series. If we transform the equation above into the Fourier domain, the convolution is replaced by a multiplication:

S(f) is the spectrum of the signal, V(f) is the spectrum of the excitation and H(f) is the transfer function of the vocal tract.

We now take the logarithm of this equation which transforms the multiplication into an addition:

We then apply an inverse FFT to enter the "cepstral" domain:

The term "cepstrum" is derived from "spectrum" by swapping the first four characters. In a similar way, "frequency" becomes "quefrency", "filtering" becomes "liftering" and so on.

The excitation function has the shape of an impulse series whose Fourier transform is an impulse series again. This means that all of the above transforms cannot change the shape of the excitation function and therefore one can see its peaks in the cepstrum. To deconvolve the two parts of the signal, all that is needed is to set all cepstral coefficients to the left or to the right of the first peak to zero and then reconstruct the time domain signal from the cepstral coefficients left after "liftering". If you discard the higher order coefficients, you receive the impulse response h(t). If you discard the opposite, you receive the excitation function v(t).

In a similar manner, a signal which is overlaid by echoes of itself can be seen as a convolution of the original signal with a Dirac series (impulse series). With cepstral analysis it is possible to reconstruct the original signal to some extent and to measure the delay of the echo which is equal to the time value of the peak in the cepstrum.

Cepstral Type - Real Cepstrum

The real cepstrum is defined as follows:

The real data input stream is x. The inverse transform is taken of the logarithm of the magnitude of the FFT. Only the real component of the Fourier inverse is used.

Cepstral Type - Minimum Phase Reconstruction, Length of "Liftering" Window

Since the phase information is lost when the magnitude of the forward transform is taken, only a minimum phase reconstruction is possible in the time domain:

Here, L is a vector containing the "liftering" window. To separate the impulse response function from the excitation function, it is possible to specify the length of this "liftering" window, which will filter out certain cepstral coefficients before reconstructing the time-domain data series. To extract the impulse response function you "lifter" out all higher order coefficients beginning with the peak in the cepstrum which indicates the excitation function. You may measure the position of this peak using the cursors in the cepstrum diagram. If you enter the length as a negative value, then the window is inverted and all lower order coefficients are discarded. The reconstruction then shows the excitation function.

Options - Fixed Scaling, Peaks (Analysis Wizard Only)

The cepstrum often produces sharp peaks with high amplitudes. If automatic scaling for the Y axis is used, these peaks lead to such high end values for the Y axis that all the coefficients of interest are rendered as a horizontal line. To zoom out these coefficients, it is possible to enable Use fixed scaling for Y axis and provide symmetric end values manually.

Options - Peaks (Analysis Wizard Only)

The cepstrum peaks are identified by a local maxima detection algorithm. The peak count is restricted by a maximum value. Peaks are ranked by spectral magnitude. Note that a peak count may not be realized if fewer peaks are detected.

You can view the Y  and/or X values of the peaks in the cepstrum by pressing Toggle Labels.

Options - Set/Clear Reference (Analysis Wizard Only)

This function lets you compare various settings. You can view a copy of the currently displayed cepstrum in the lower pane by pressing Set Reference. Next, you can adjust additional settings that affect the display in the upper pane. With Clear Reference you can remove the copy and the time signal will appear again.

References

Oppenheim, A. V. and Schafer, R. W. (1989). Discrete-Time Signal Processing. Prentice Hall, Englewood Cliffs, NJ.

Bogert, B. P. and Healy, M.J.R. and Tukey J. W. (1963). The Quefrency Alanysis of Time Series for Echoes: Cepstrum, Pseudo-autocovariance, Cross-Cepstrum and Saphe Cracking, from Proc. Symposium Time Series Analysis., ed. Rosenblatt, M. John Wiley and Sons, New York. Pages 209-243.

Share article or send as email:

You might be interested in these articles