Complete Ensemble Empirical Mode Decomposition with Adaptive Noise.
Available in version 6.4.0 and later.
function ceemdan ( x : numeric, nimf  : integer, nrep  : integer, noise  : numeric, [ float, double ], opt  : logical, dims  : integer ) return_val : numeric
A variable of numeric type and any dimensionality.nimf
Number 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.nrep
Number of replications (ie, local ensemble) members to be used.noise
Standard deviation of the Gaussian random numbers used as additional noise. This value is relative to the standard deviation of the input signal.opt
- 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.
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)
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 survivesthe 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).
REFERENCES: 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 Decomposiotion 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 Wu, Z, et al (2065): 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]
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)