ceemdan
Complete Ensemble Empirical Mode Decomposition with Adaptive Noise.
Available in version 6.4.0 and later.
Prototype
function ceemdan ( x : numeric, nimf [1] : integer, nrep [1] : integer, noise [1] : numeric, [ float, double ], opt [1] : logical, dims [1] : integer ) return_val : numeric
Arguments
xA variable of numeric type and any dimensionality.
nimfNumber of Intrinsic Mode Functions (IMFs) to compute. If num_imfs is set to zero, an 'appropriate' value of num_imfs will be used. This corresponds to a maximal number of IMFs. Note that the final residual is also counted as an IMF in this respect, so you most likely want at least num_imfs=2.
nrepNumber of replications (ie, local ensemble) members to be used.
noiseStandard deviation of the Gaussian random numbers used as additional noise. This value is relative to the standard deviation of the input signal.
optOptions parameter.
- S_number - Use the (integer) S-number to specify stopping criterion for the EMD procedure Typical values are in the range 3-8. If S_number is zero, this stopping criterion is ignored. Default is 4
- num_siftings - Use a maximum number of siftings as a stopping criterion. If num_siftings is zero, this stopping criterion is ignored. Default is 50.
- rng_seed - A seed for the random number generator. A value of zero (default) denotes an implementation-defined default value.
The dimension of x on which to perform the EMD.
Return value
A variable containing the Intrinsic Mode Functions (IMFs):
- x(time) - returns IMF(nimf,time)
- x(time,npts) - returns IMF(nimf,time,npts)
- x(time,lat,lon) - IMF(nimf,time,nlat,mlon)
Description
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 Intrinsic Mode Functions (IMFs).
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.
REFERENCES: 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 http://www.mdpi.com/2072-4292/6/3/2069 Kim, D., and HS. Uh (2009): EMD: A Package for Empirical Mode Decomposition and Hilbert Spectrum https://journal.r-project.org/archive/2009-1/RJournal_2009-1_Kim+Oh.pdf Lambert et al Empirical Mode Decomposition: A project website for the course ELEC 301 at Rice University. https://www.clear.rice.edu/elec301/Projects02/empiricalMode/ 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) 9: 341–345 http://www.nonlin-processes-geophys.net/9/341/2002/npg-9-341-2002.pdf Torres, M. E., Colominas, M. A., Schlotthauer, G., and Flandrin, P. (2011, May): A complete ensemble empirical mode decomposition with adaptive noise (ICASSP), 2011 (pp. 4144-4147). DOI: 10.1109/ICASSP.2011.594726 Also: http://ieeexplore.ieee.org/document/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:https://doi.org/10.1016/j.jappgeo.2012.05.002. 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 https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4792406/ 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 doi: http://dx.doi.org/10.1175/JTECH-D-15-0257.1 http://journals.ametsoc.org/doi/abs/10.1175/JTECH-D-15-0257.1 [lots of references]
See Also
Examples
Please see the EEMD Applications page for more extensive examples.
Example 1: This example is based upon the simple sinusoid presented in Kim and Oh (2009).
N = 3000 tt = fspan(0, 9, N) ; x-axis (float) rad = get_r2d(typeof(tt)) pi = get_pi (typeof(tt)) xt = sin(pi*tt) + sin(2*pi*tt) + sin(6*pi*tt) + 0.5*tt ;print(tt+" "+xt) ; set 'ceemdan' arguments and options nrep = 250 nimf = 10 ; nimf=0 , function will calculate noise = 0.2 dims = 0 opt = False e = ceemdan(xt,nimf,nrep,noise,opt,dims) ; (nimf,N) e@long_name = "EEMD" printVarSummary(e) printMinMax(e,0)