I will be extremely grateful if someone could please answer this basic question.

How can one plot a 3D (translation, scale, amplitude) plot from the Continuous wavelet transform (CWT) coefficients?

The CWT coefficient is a M X N matrix. Which of the axis corresponds to the translation, scale and Magnitude.

Thanks for your help.


2 Answers 2


It suffices to use the translation and scale as $(X,Y)$ axes, and build some elevation map from the absolute values of the CWT (or the phase, the real or imaginary parts). A simple example in Matlab is:

load mtlb
scal = abs(cwt(mtlb,'bump',Fs));
axis tight

CWT wavelet 3D plot as a surface


The output may depend on what package/language you are using to compute the cwt. If you are using matlab's "cwt", the documentation indicates that "If x is real-valued, wt is an Na-by-N matrix, where Na is the number of scales, and N is the number of samples in x."

In other words, the the first dimension corresponds to scale and the second dimension corresponds to sample number (time, usually).

The documentation provides a simple example in matlab which automatically plots the results:

load mtlb cwt(mtlb,"bump",Fs)

documentation in Matlab: https://www.mathworks.com/help/wavelet/ref/cwt.html#responsive_offcanvas


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.