I'm confused with the last step of extraction MFCC where we have to take DCT or IDCT.

Cepstrum is defined as IDFT of log(power spectrum). Since MFCC are cepstral coefficients so I think we have to take IDCT at the last step.

It's confirmed by several articles. For example this one (point 2.4 we see F^(-1)) and this one (scheme on the second page). In fact in first link formula below F(^-1) is DCT-2. Why? As wiki says DCT-3 is an inverse transform.

And if we look at implementations they take DCT-2 too. I checked two of them: pyAudioAnalysis (stMFCC method) and implementation (mfcc method) by the guy who writes for practicalcryptography.com. And this is also confirmed by several links: here and here (second page).

Well.. who is right?


1 Answer 1


I don't believe there is a right answer. DCT or IDCT will achieve the same purpose: decorrelating to put most energy in fewer coefficients. Whatever you do next with your MFCC (compression, feature extraction) will work with either approach.

Similarly, I think there are implementations that do an FFT instead of an IFFT for the first stage of the MFCC extraction.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.