In Acero's Spoken language processing (p. 309) it says that the cepstrum of a finite length impulse train $$x[n] = \sum^{M-1}_{k=0} \delta[n-kN]$$ is given by $$\hat{x}[n] = \sum^{ \infty}_{r=1} \frac{\delta[n-rN]}{r} - \sum^{\infty}_{l=1} \frac{\delta[n-lMN]}{l} $$

from where is clear that the cepstrum should be non-zero only for values of $n$ that are multiples of $N$.

I'm trying to visualise this result with a quick matlab script ($N =5$ and $M =3$):

delta_train = [1 0 0 0 0 1 0 0 0 0 1];

but it gives by result

enter image description here

that is inconsistent with the above expression because it's non-zero for every $n$.

I was thinking that this may be somehow related to the way matlab implements cceps() with the FFT and the fact that the computed cesptrum is actually an aliased version of $\hat{x}[n]$, nevertheless, it should still be zero-valued for those $n$.

  • 1
    $\begingroup$ Try adding 4 more zeros to the end of you impulse train. Then explain why the result cepstrum differs. $\endgroup$
    – hotpaw2
    May 1, 2017 at 5:45
  • 1
    $\begingroup$ @hotpaw2 I can see it know. In that case the cepstrum is aliased in a way it does not converge. I can get the result I want with a good amount of zero-padding so the aliased versions don't affect. thanks! $\endgroup$
    – diegobatt
    May 1, 2017 at 15:04


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.