CEEMDAN¶
This is about “Complete ensemble EMD with adaptive noise”.

class
PyEMD.
CEEMDAN
(trials=100, epsilon=0.005, ext_EMD=None, **config)[source]¶ “Complete Ensemble Empirical Mode Decomposition with Adaptive Noise”
“Complete ensemble empirical mode decomposition with adaptive noise” (CEEMDAN) [Rd0298acbfa1bTorres2011] is noiseassisted EMD technique. Word “complete” presumably refers to decomposing completly everything, even added perturbation (noise).
Provided implementation contains proposed “improvmenets” from paper [Rd0298acbfa1bColominas2014].
Any parameters can be updated directly on the instance or passed through a configuration dictionary.
Goodness of the decomposition can be configured by modifying threshold values. Two are range_thr and total_power_thr which relate to the value range (max  min) and check for total power below, respectively.
Parameters:  trials : int (default: 100)
Number of trials or EMD performance with added noise.
 epsilon : float (default: 0.005)
Scale for added noise (\(\epsilon\)) which multiply std \(\sigma\): \(\beta = \epsilon \cdot \sigma\)
 ext_EMD : EMD (default: None)
One can pass EMD object defined outside, which will be used to compute IMF decompositions in each trial. If none is passed then EMD with default options is used.
References
[Rd0298acbfa1bTorres2011] M.E. Torres, M.A. Colominas, G. Schlotthauer, P. Flandrin A complete ensemble empirical mode decomposition with adaptive noise. Acoustics, Speech and Signal Processing (ICASSP), 2011, pp. 4144–4147 [Rd0298acbfa1bColominas2014] M.A. Colominas, G. Schlotthauer, M.E. Torres, Improved complete ensemble EMD: A suitable tool for biomedical signal processing, In Biomed. Sig. Proc. and Control, V. 14, 2014, pp. 19–29 
__init__
(self, trials=100, epsilon=0.005, ext_EMD=None, **config)[source]¶ Configuration can be passed through config dictionary. For example, updating threshold would be through:
>>> config = {"range_thr": 0.001, "total_power_thr": 0.01} >>> emd = EMD(**config)

emd
(self, S, T, max_imf=1)[source]¶ Vanilla EMD method.
Provides emd evaluation from provided EMD class. For reference please see
PyEMD.EMD
.

end_condition
(self, S, cIMFs, max_imf)[source]¶ Test for end condition of CEEMDAN.
Procedure stops if:
 number of components reach provided max_imf, or
 last component is close to being pure noise (range or power), or
 set of provided components reconstructs sufficiently input.
Parameters:  S : numpy array
Original signal on which CEEMDAN was performed.
 cIMFs : numpy 2D array
Set of cIMFs where each row is cIMF.
Returns:  end : bool
Whether to stop CEEMDAN.

generate_noise
(self, scale, size)[source]¶ Generate noise with specified parameters. Currently supported distributions are:
 normal with std equal scale.
 uniform with range [scale/2, scale/2].
Parameters:  scale : float
Width for the distribution.
 size : int
Number of generated samples.
Returns:  noise : numpy array
Noise sampled from selected distribution.