| Signal Processing Toolbox | Search  Help Desk |
| cceps | See Also |
Syntax
xhat = cceps(x) [xhat,nd] = cceps(x) [xhat,nd,xhat1] = cceps(x) [...] = cceps(x,n)
Description
Cepstral analysis is a nonlinear signal processing technique that is applied most commonly in speech processing and homomorphic filtering [1].xhat = cceps(x)
returns the complex cepstrum of the (assumed real) sequence x. The input is altered, by the application of a linear phase term, to have no phase discontinuity at ±
radians. That is, it is circularly shifted (after zero padding) by some samples, if necessary, to have zero phase at
radians.
[xhat,nd] = cceps(x)
returns the number of samples nd of (circular) delay added to x prior to finding the complex cepstrum.
[xhat,nd,xhat1] = cceps(x)
returns a second complex cepstrum, computed using an alternate rooting algorithm, in xhat1. The alternate method ([1] p.795) is useful for short sequences that can be rooted and do not have zeros on the unit circle. For these signals, xhat1 can provide a verification of xhat.
[...] = cceps(x,n)
zero pads x to length n and returns the length n complex cepstrum of x.
Algorithm
cceps, in its basic form, is an M-file implementation of algorithm 7.1 in [2]. A lengthy Fortran program reduces to three lines of MATLAB code:
h = fft(x);
logh = log(abs(h)) + sqrt(-1)*rcunwrap(angle(h));
y = real(ifft(logh));
rcunwrap is a special version of unwrap that subtracts a straight line from the phase.
See Also
icceps |
Inverse complex cepstrum. |
hilbert |
Hilbert transform. |
rceps |
Real cepstrum and minimum phase reconstruction. |
unwrap |
Unwrap phase angles. |
References
[1] Oppenheim, A.V., and R.W. Schafer. Discrete-Time Signal Processing. Englewood Cliffs, NJ: Prentice-Hall, 1989. [2] IEEE. Programs for Digital Signal Processing. IEEE Press. New York: John Wiley & Sons, 1979.