EEMD

This is about empirical EMD.

class PyEMD.EEMD(trials=100, noise_width=0.05, ext_EMD=None, **config)[source]

Ensemble Empirical Mode Decomposition

Ensemble empirical mode decomposition (EEMD) [Re8a0cfda063a-Wu2009] is noise-assisted technique, which is meant to be more robust than simple Empirical Mode Decomposition (EMD). The robustness is checked by performing many decompositions on signals slightly perturbed from their initial position. In the grand average over all IMF results the noise will cancel each other out and the result is pure decomposition.

Parameters:
trials : int (default: 100)

Number of trials or EMD performance with added noise.

noise_width : float (default: 0.05)

Standard deviation of Gaussian noise (\(\hat\sigma\)). It’s relative to absolute amplitude of the signal, i.e. \(\hat\sigma = \sigma\cdot|\max(S)-\min(S)|\), where \(\sigma\) is noise_width.

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

[Re8a0cfda063a-Wu2009]Z. Wu and N. E. Huang, “Ensemble empirical mode decomposition: A noise-assisted data analysis method”, Advances in Adaptive Data Analysis, Vol. 1, No. 1 (2009) 1-41.
eemd(self, S, T=None, max_imf=-1)[source]

Performs EEMD on provided signal.

For a large number of iterations defined by trials attr the method performs emd() on a signal with added white noise.

Parameters:
S : numpy array,

Input signal on which EEMD is performed.

T : numpy array, (default: None)

If none passed samples are numerated.

max_imf : int, (default: -1)

Defines up to how many IMFs each decomposition should be performed. By default (negative value) it decomposes all IMFs.

Returns:
eIMF : numpy array

Set of ensemble IMFs produced from input signal. In general, these do not have to be, and most likely will not be, same as IMFs produced using EMD.

emd(self, S, T, max_imf=-1)[source]

Vanilla EMD method.

Provides emd evaluation from provided EMD class. For reference please see PyEMD.EMD.

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.

noise_seed(self, seed)[source]

Set seed for noise generation.