NOTE: The following is based on an unanswered question posted here: How to plot the Hilbert Spectrum in Hilbert-Huang transform? , based on the usage of the "plot_hht" from here: (https://www.mathworks.com/matlabcentral/fileexchange/19681-hilbert-huang-transform)

From what I understand the "plot_hht" does, after applying EMD to a signal, the IMF's of the signal remain. The Hilbert Transform is then applied to each IMF, and the resulting phase angles are somehow used to help find the instantaneous frequency (with respect to time).

Is it possible to represent these instantaneous frequencies vs time, with a third dimension, its strength/amplitude?

Thanks in advance.

EDIT P.S.: For clarity, the desired result is a graph that looks like this: Desired result, as taken from an article titled "Detecting position dependent tremor with the Empirical mode decomposition".

  • $\begingroup$ Plu, can you please help with how to plot the curves as you have posted as above? I have been trying for over a week, but no success.I even checked the link hilbertspectrum.com, but couldn't locate the file that helps achieve this. $\endgroup$
    – Tahm
    Commented Aug 17, 2017 at 9:42
  • $\begingroup$ Did you figure out how to plot the 2D picture? I am lost... $\endgroup$ Commented Oct 24, 2017 at 21:22
  • $\begingroup$ @Tahm I probably won't be able to help you directly, but to get results, you first need to do the empirical mode decomposition; Then from each IMF obtained, you use the Hilbert transform to help get the instantaneous frequency and amplitude from every point of the IMF. $\endgroup$
    – plu
    Commented Oct 25, 2017 at 22:11
  • $\begingroup$ @AnnieLiangli FYI, its actually a 3D picture, you've got time, frequency, and amplitude (strength indicated by colours). $\endgroup$
    – plu
    Commented Oct 25, 2017 at 22:12

1 Answer 1


I figured out an answer.

From here: https://web.cs.dal.ca/~tt/CSCI690611/papers/HHT.pdf

The Hilbert spectrum $x(t)$ is:

$$x(t)=\Re\left\{\sum_{j=1}^{n}a_j(t)\mathrm{exp}\left[ i\int \omega_j(t)dt \right] \right\}$$

where $a$ is the instantaneous amplitude of the resulting IMF's (i.e.: an absolute value of the Hilbert Transform applied to every point of one IMF), and $\omega$ is the instantaneous frequency of the resulting IMF's, calculated from differencing of $\theta$ over time:

$$\omega=\frac{d\theta}{dt} $$

where $\theta$ is the inverse tan of the imaginary divided by real components such as

$$\theta(t)=\mathrm{arctan}\left( \frac{y}{x}\right)$$

So adding the results using all the IMF's should provide the 3D time-frequency-amplitude information.

  • $\begingroup$ For anyone else having the same confusion I had, info and code from this website can more directly help: www.hilbertspectrum.com $\endgroup$
    – plu
    Commented Feb 3, 2017 at 1:23
  • 1
    $\begingroup$ For further clarification, here's a video from CERN presented by Norden Huang, the inventor of the Hilbert Huang Transform: cds.cern.ch/record/1115835?ln=en $\endgroup$
    – plu
    Commented Dec 11, 2018 at 22:56

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.