[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Cepstrum computation

Argaris and Jont opined:
>> Incredible. I couldn't imagine that the "quick & dirty" way
>> ie log(x+epsilon) was the proper way to compute the cepstrum.
>You cannot compute the cepstrum of a signal that has no DC term, as
>that would be a zero at f=0, or of a narrow band signal.

Actually, for any real signals and any real filters, the power
spectral density as seen through any channel of the analysis filters
will be somewhat nonzero, in which case the probability of any
power coefficient in any frame of the analysis being exactly equal
to zero is identically zero.  Even true if you use an AC-coupling
or DC-cut filter.

So if you use floats, a zero will 'never' occur, and 'when it does'
you can whack it down with negligible consequence.  If you're using
fixed point, you'll often quantize right into the singularity, so
you'll need to be more careful.

If you have no DC (or otherwise bandlimited signals--which are not
theoretically possible in 'real-valued' signals), then add some, since
it doesn't matter how much.  It just puts your cepstrum into a
different place, and doesn't affect cepstral differences, which is
all you should care about.

But there's really no 'proper' way to compute a thing that's always
operating on the edge of a singularity like that.  So go with a
quick & dirty way or find your own way...