Signal Processing Toolbox | ![]() ![]() |
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
|
Inverse complex cepstrum. |
|
Hilbert transform. |
|
Real cepstrum and minimum phase reconstruction. |
|
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.
![]() | buttord | cell2sos | ![]() |