i have been seeking for a better Transform than STFT with high overleaping. The Transform should more suitble for the human auditory system.

And i learned that there are at least 3 Methods i may use like MFCC, CQT and CWT. Just ignore MFCC and considering of CQT and CWT, i have red some paper and thesis, but can't really tell which is better. Some of the papers i red says that CWT is only special case of CQT, and CQT is better. Other says CQT is the special case of CWT. (like this question here :Difference between CQT and WT) Some Paper said that the CQT is not invertible because some samples never get analysed

So i'm now confused, what is the difference between CQT and CWT? Which is better if i need both time and spectral analyse? And if im seeking for a good transform for both speech and music analyse, which transform would be best for me?

And a stupid question: do these Transforms need overleap in order to get better result?

  • 1
    $\begingroup$ "more suitble for the human auditory system" - what does this mean? The reason that you find some papers describing CQT as better, and other papers preferring WT, is because different people are trying to do different things! $\endgroup$
    – MSalters
    Commented Sep 19, 2017 at 13:18
  • $\begingroup$ Toward *let-wavelet stuff adapted to the auditory system, you can also check dsp.stackexchange.com/q/38817/15892 $\endgroup$ Commented Sep 19, 2017 at 18:06
  • $\begingroup$ Emm, for "more suitble for the human auditory system" i mean, which can better describe our auditory system and our preception of sounds. Cause i'm trying to findout an alternative for FFTs used in cochlear implants $\endgroup$
    – tyker1
    Commented Sep 20, 2017 at 7:20
  • $\begingroup$ but improving the window/ buffer size for low frequencies means that the time precision is lowoer, isn't it? $\endgroup$
    – user35642
    Commented May 9, 2018 at 16:46
  • $\begingroup$ yes, improving window/buffer size will decrese time precision, but think about the frequences in lower band, they are like some hundered Hz, u dont need that high time precision in such low frequence, because they dont change that fast $\endgroup$
    – tyker1
    Commented May 14, 2018 at 8:48

1 Answer 1


A Constant Q transform is a variation on the DFT. In other words, it is a type of wavelet transform.

I only have a casual understanding of both types of transforms myself, so take what I'm saying with a grain of salt.

A standard DFT uses a constant window size throughout all frequencies. This typically leads to a pretty consistent, fully continuous transform. However, the constant bin size for all frequencies leads to some problems when you map frequency on a logarithmic scale. Specifically, peaks on the lower end are incredibly wide (sometimes up to half an octave), lacking any sort of detail.

This is an issue for emulating human perception because humans perceive frequency on a logarithmic scale.

A Constant Q transform seeks to solve this problem by increasing the window size for lower frequencies, and alleviate some of the computational strain caused by this by reducing the window size used for high frequencies. It's pretty effective at this, but has a few drawbacks.

The computational complexity of a Constant Q transform is only slightly larger than that of a standard DFT, but because the window size changes per frequency, it is impossible to apply the typical optimizations of the FFT to a Constant Q transform.

In other words, a Constant Q transform will yield better results where low frequencies and logarithmic frequency mapping are concerned, but it's extremely difficult to make it run realtime and has slightly less detail in the far upper frequencies.

P.S. If I am wrong about any of this, please correct me.

  • $\begingroup$ Can you elaborate more on what is buffer size? When I search for DFT or FFT, I cannot find the exact definition for buffer size in this context. $\endgroup$ Commented Aug 1, 2019 at 7:02
  • $\begingroup$ In this context, buffer size represents the length of the sample array you perform the FFT, DFT or Constant Q transform on. Generally speaking, the frequency bins an FFT has will be equal to [buffer size]/2 $\endgroup$ Commented Aug 2, 2019 at 10:50
  • $\begingroup$ I would like to edit the answer here as "window size" is more commonly understood than "buffer size" in this context. $\endgroup$
    – Matt M.
    Commented Aug 19, 2021 at 3:41

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