[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Cepstrum computation
"Argiris A. Kranidiotis" wrote:
> Dear all,
> I have a really simple question about the computation of the Cepstrum.
> The definition of the Cepstrum C(t) is:
> C(t)=|| FFT( log( ||FFT(x)|| ) ) ||
> My question is: what happens when ||FFT(x)||=0 for some x?
> Then we have to compute log(0), which is undefined (as we all know).
> I suspect that I am missing something here, but this problem isn't
> anywhere in my books.
> (BTW: Does anyone know any kind of improvement of the original Cepstrum
> method in order have better pitch estimates?)
> Thanks in advance,
> Argiris A. Kranidiotis
> ____________________________ __________________________________
> / /\ / /\
> / Argiris A. Kranidiotis _/ /\ / University Of Athens _/ /\
> / Doctoral student (Ph.D.) / \/ / Informatics Department / \/
> / in Computer Science /\ / http://www.di.uoa.gr/~akra /\
> /___________________________/ / /_________________________________/ /
> \___________________________\/ \_________________________________\/
> \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
Your formula for the cepstrum seems mostly right, but not exactly.
The cepstrum is the inverse Fourier transform of the log of the
power spectrum. Therefore, it is right to take the absolute value
of the FFT as you have done, but not right to take the absolute value of
the inverse FFT.
You can always add a little broadband noise to keep the power spectrum
finite at all frequencies.