NCL Home> Application examples> Data Analysis || Data files for some examples

Example pages containing: tips | resources | functions/procedures

NCL: EEMD: Extended Empirical Mode Decomposition

CEEMDAN: Complete Ensemble Empirical Mode Decomposition with Adaptive Noise Analysis

An overview of Empirical Mode Decomposition is provided by Lambert. A project website for the course ELEC 301 at Rice University.

EMD (Empirical Mode Decomposition) is an adaptive time-space analysis method suitable for processing series that are non-stationary and non-linear. EMD performs operations that partition a series into 'modes' (IMFs; Intrinsic Mode Functions) without leaving the time domain. It can be compared to other time-space analysis methods like Fourier Transforms and wavelet decomposition. Like these methods, EMD is not based on physics. However, the modes may provide insight into various signals contained within the data. In particular, the method is useful for analyzing natural signals, which are most often non-linear and non-stationary. Some common examples would include the Southern Oscillation Index (SOI), NINO-3.4 Index, etc.

EEMD (Ensemble EMD) is a noise assisted data analysis method. EEMD consists of "sifting" an ensemble of white noise-added signal. EEMD can separate scales naturally without any a priori subjective criterion selection as in the intermittence test for the original EMD algorithm.

Wu and Huang (2005) state: "White noise is necessary to force the ensemble to exhaust all possible solutions in the sifting process, thus making the different scale signals to collate in the proper intrinsic mode functions (IMF) dictated by the dyadic filter banks. As the EMD is a time space analysis method, the white noise is averaged out with sufficient number of trials; the only persistent part that survives the averaging process is the signal, which is then treated as the true and more physical meaningful answer." Further, they state: "[EEMD] represents a substantial improvement over the original EMD and is a truly noise assisted data analysis (NADA) method."

CEEMDAN (Complete Ensemble Empirical Mode Decomposition with Adaptive Noise) is a variation of the EEMD algorithm that provides an exact reconstruction of the original signal and a better spectral separation of the IMFs.

Some comments:

  • Salisbury and Wimbush (2002): "This empirical mode decomposition (EMD) method extracts the energy associated with various intrinsic time scales in generating a collection of intrinsic mode functions (IMFs). The IMFs have well-behaved Hilbert transforms, from which instantaneous frequencies can be calculated. Thus, we can localize any event in time as well as frequency."

  • Lambert et al: "The fact that the functions into which a signal is decomposed are all in the time-domain and of the same length as the original signal allows for varying frequency in time to be preserved. Obtaining IMFs from real world signals is important because natural processes often have multiple causes, and each of these causes may happen at specific time intervals. This type of data is evident in an EMD analysis, but quite hidden in the Fourier domain or in wavelet coefficients."

IMPORTANT NOTE: NCL interfaces to C code provided by Luukko et al. (2016). There have been reports that for some of the modes, this code suffers from the mode mixing problem due to the stoppage criterion that is used in P. Luukko's code. The NCL team is looking into another version of EEMD to see if this issue can be improved.


Colominas, M. A., Schlotthauer, G., and Torres, M. E. (2014). 
         Improved complete ensemble EMD: 
                  A suitable tool for biomedical signal processing. 
         Biomedical Signal Processing and Control, 14, 19-29.
Hsuan, R.  (2014): 
         Ensemble Empirical Mode Decomposition Parameters Optimization for 
         Spectral Distance Measurement in Hyperspectral Remote Sensing Data
         Remote Sens. 2014, 6(3), 2069-2083; doi:10.3390/rs6032069 

Kim, D., and HS. Uh (2009):
         EMD: A Package for Empirical Mode Decomposition and Hilbert Spectrum

Lambert et al
         Empirical Mode Decomposiotion

Meta Trader 
         Introduction to the Empirical Mode Decomposiotion Method

Salisbury, J.I. and Wimbush, M. (2002): 
         Using modern time series analysis techniques to predict 
               ENSO events from the SOI time series
         Nonlinear Processes in Geophysics (2002) : 341-345

Torres, M. E., Colominas, M. A., Schlotthauer, G., & Flandrin, P. (2011, May): 
        A complete ensemble empirical mode decomposition with adaptive noise
        (ICASSP), 2011 (pp. 4144-4147). DOI: 10.1109/ICASSP.2011.5947265. 

Wang, T., M. Zhang, Q. Yu, and H. Zhang, 2012:
        Comparing the applications of EMD and EEMD on time-frequency analysis 
             of seismic signal.
        J. Appl. Geophys., 83, 29-34, doi:

Wu, Z. and Huang, N. (2009):
        Ensemble Empirical Mode Decomposition: A Noise-Assisted Data Analysis Method.
        Advances in Adaptive Data Analysis. Vol. 1, No. 1 (2009) 1-41.

Wu, Z, et al (2015):
         Fast multidimensional ensemble empirical mode decomposition for the 
              analysis of big spatio-temporal datasets
         Philos Trans A Math Phys Eng Sci. 2016 Apr 13; 374(2065): 20150197.  
         doi:  10.1098/rsta.2015.0197

Wu, Y. and Shen, BW (2016):
         An Evaluation of the Parallel Ensemble Empirical Mode Decomposition Method
                    in Revealing the Role of Downscaling Processes Associated with
                    African Easterly Waves in Tropical Cyclone Genesis 
         [lots of references]

There are two Ensemble Empirical Mode Decomposition functions: eemd and ceemdan.

NCL version 6.4.0 or higher is required to use the code below. The scripts below are intended to be 'guide' to usage. They may work directly but, generally, the user will have to make some changes to the scripts.

eemd_1.ncl / eemd_1a.ncl: This is based on the simple sinusod presented in Kim and Ho (2009). Results from both eemd (middle figure) and ceemdan (rightmost figure) are shown.

eemd_2.ncl / eemd_2a.ncl: This is based on the intermittent signal presented in Kim and Ho (2009) Results from both eemd (middle figure) and ceemdan (rightmost figure) are shown.

eemd_3.ncl: Perform both an EEMD and CEEMDAN on the Southern Oscillation Index (SOI). It is based upon Salisbury, J.I. and Wimbush, M. (2002). The SOIs used are calculated differently from those in the paper. Also, the paper did not include any mention of assorted parameter settings. Only selected IMFs are plotted.

eemd_4.ncl: Read grid surface temperatures from latitudes nearest the North Pole. [Source: L. Terray, CERFACS]