I've been a little confused lately about the use of these two functions in the final step of computing the MFCCs. I often see them used interchangeably, but they do the opposite thing. And my confusion is compounded by the use of the inverse Fourier transform in the final stage, which appears to be the more cited method. I don't see how converting back to the time domain would obtain the spectral envelope of the spectrum. It makes more sense to me when the DCT is used. But then again, I'm mostly clueless about all this stuff.

Also, this may be a bit more related to programming, but how exactly do we get the corresponding quefruencies on the x-axis. After computing the discrete Fourier transform of a signal, you're left with N frequency bins, where N is the number of samples considered in the DFT. So to get the corresponding frequency for each coefficient, you just subdivide the sample rate into N evenly spaced frequency bins, using something like np.linspace(0, sample_rate, N). But how would you get the corresponding quefruency for the cepstral coefficients? I know the unit of the quefruency is in fact ms, but what does this even represent?


  • $\begingroup$ Welcome to SE.SP! There appears to be a similar question to yours, at least with respect to the IFT vs DCT step. I'm closing this as a duplicate of that question, but please edit your question to refocus it on the stuff you're still unsure about. I can reopen it once you've done that. $\endgroup$
    – Peter K.
    May 28 at 15:21