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

Re: Cepstrum computation

Laszlo Toth wrote:

> if(||FFT(x)||==0) { y=-BigNumber}
> else {y=log(||FFT(x)||)
> Where "BigNumber" is some big constant.

This is not correct, since you would like to preserve monotonicity, i.e. the relation that
smaller ||FFT(x)|| means smaller y (or at least not larger y). So it would have to be:

if (||FFT(x)|| <= exp(-BigNumber)) { y=-BigNumber}
else {y=log(||FFT(x)||)

But note that adding a small number makes the function differentiable:

    y = log (||FFT(x)|| + epsilon)

Bill Hartmann wrote:

> You can always add a little broadband noise to keep the power spectrum
> finite at all frequencies.

The "epsilon" trick is equivalent to adding white noise.
Perhaps we should instead add a noise whose spectrum is equivalent to
the zero-phon curve?

Paul Boersma
Institute of Phonetic Sciences, University of Amsterdam
Herengracht 338, 1016CG Amsterdam, The Netherlands