File Exchange

image thumbnail

Empirical Mode Decomposition

version (4.86 KB) by Manuel Ortigueira
It decomposes a given signal into a set of intrinsic mode functions that are essentially AM/FM modul


Updated 11 Sep 2008

View License

The Empirical Mode Decomposition is a technique to decompose a given signal into a set of elemental signals called Intrinsic Mode Functions. The Empirical Mode Decomposition is the base of the so-called “Hilbert-Huang Transform” that comprises also a Hilbert Spectral Analysis and an instantaneous frequency computation. A modified improved algorithm for the Empirical Mode Decomposition is implemented. The output is a set of AM/FM modulated signal.
To use it, it is enough to input the signal, two resolutions in dB (~50) and a step value <=1 (normally =1).

Comments and Ratings (37)

Wentao Zhao

hi, i have the data for both hands, and open eye, but i can use this code, can anyone help me, plz, its very necessary

payam lord

how to optimize this code to extract only 2 first imf ? any help appritiated

Many thanks !


Justin Igwe

Hi I got the error

"Debug: Max-Min sequence mismatch.
Debug: Max-Min reverse sequence mismatch."
How can i solve this please?


It really works!

easy adin

hi i'm stil at the basics of matlab but i need to implement this algorithm in a project.
based on my knowledge 3 inputs are required from the user which are the input signal, 2 resolution in dB(~50) and a step value <=1(normally =1). my question is what code should be entered based on speech processing to get the modulation frequency and modulation level.

i'll appreciate any help

can i know what does it mean by qResol, qResid, qAlfa ?

Suja Alex

Error using rParabEmd__L (line 34) rParabEmd__L: Use with 4 inputs.

I'm getting this error.How can I correct this?Pls help me


I assume that the Spline Toolbox is no longer required, as it no longer exists. Presumably 'spline()' in base Matlab is sufficient ?
Some example data would be a nice addition to this submission (eg from the original paper).



How do i run this files? if im not wrong X value is able to get from audioread wav file. But how do i get the other 4 value ?


Hello Syahrul Fithry
I think you get that error because ,the file 'rParabEmd_L' is not in the current direcctory. To avoid that error you copy this function in your current directory and run.

Dear all.

I had used this function on a row input signal, v, i.e v= [ 1 2 3 4 5]'

so i call the function by typing rParabEmd_L(v,50,50,1)

However, this error message appears

??? Undefined function or method 'rParabEmd_L' for input arguments of type

I am pleased if anyone of the experts here could advice me on this problem.





Fan D.Chen

This program is very helpful to me, so I have to say, thank you


Thanks a lot !



I also have this error:
"Debug: Max-Min sequence mismatch.
Debug: Max-Min reverse sequence mismatch."

what does it mean?


hi sir i get error when doing emd on a signal
please send me code of emd


Hi I get the error

"Debug: Max-Min sequence mismatch.
Debug: Max-Min reverse sequence mismatch."

What does this mean?

I am putting in the arguments:

rParabEmd__L(v, 50, 50, 1)

where v = [1,6,2,7,3,8,5,9,5,9,1,3,2,4,3,5,4,6,5,7,6,8,7,9,2,3]

Do you know what I am doing wrong? thanks

Beautiful! Thanks

King Maple


Di Geng

Was looking for it. Thanks Manuel. :)

Thanks for sharing.

G.B. Yang


Its based on the paper "On the HHT, its problems, and some solutions".

It was tagged as "companion software" by the author, but no link to a book or other package was provided. What is the book or other package to which this is the companion?

MATLAB Release Compatibility
Created with R13
Compatible with any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.

Learn About Live Editor