cceps() - Signal Processing
Cepstral analysis is a nonlinear signal processing technique
that is applied most commonly in speech processing and homomorphic
filtering [1].Note
cceps only works on real data.xhat = cceps(x)
returns the complex cepstrum of the real data sequence x using
the Fourier transform. 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, xhat1,
computed using an alternative factorization algorithm [1][2]. This
method can be applied only to finite-duration signals. See the Algorithm
section below for a comparison of the Fourier and factorization methods
of computing the complex cepstrum.[...] = cceps(x,n) zero
pads x to length n and returns
the length n complex cepstrum of x.
Syntax
xhat = cceps(x)[xhat,nd] = cceps(x)[xhat,nd,xhat1] = cceps(x)[...] = cceps(x,n)
Example
Using cceps to show an echoOpen This Example
This example uses cceps to show an echo. Generate a sine of frequency 45 Hz, sampled at 100 Hz. Add an echo with half the amplitude and 0.2 s later. Compute the complex cepstrum of the signal. Notice the echo at 0.2 s.
Fs = 100;
t = 0:1/Fs:1.27;
s1 = sin(2*pi*45*t);
s2 = s1 + 0.5*[zeros(1,20) s1(1:108)];
c = cceps(s2);
plot(t,c)
xlabel('Time (s)')
title('Complex cepstrum')
Output / Return Value
Limitations
Alternatives / See Also
Reference