Learn R Programming

hht (version 2.1.1)

EEMD: Ensemble Empirical Mode Decomposition

Description

This function performs ensemble empirical mode decomposition (EEMD).

Usage

EEMD(sig, tt, noise.amp, trials, nimf, trials.dir = NULL, verbose = TRUE, 
    spectral.method = "arctan", diff.lag = 1, tol = 5, max.sift = 200,
    stop.rule = "type5", boundary = "wave", sm = "none",
    smlevels = c(1), spar = NULL, max.imf = 100, interm = NULL, 
    noise.type = "gaussian", noise.array = NULL)

Arguments

Value

  • emd.resultThe result of each individual EMD trial. This is saved directly to files in directory trials.dir (i.e. it is not returned by EEMD.)

Details

This function performs ensemble empirical mode decomposition, a noise assisted version of the EMD algorithm. The EEMD works by adding a certain amplitude of white noise to a time series, decomposing it via EMD, and saving the result. If this is done enough times, the averages of the noise perturbed IMFs will approach the ``true'' IMF set. The EEMD can ameliorate mode mixing and intermittency problems (see references section).

This EEMD algorithm creates a directory trials.dir and saves each EMD trial into this directory. The number of trials is defined using trials. The trial files in this directory can then be processed using EEMDCompile to produce the averaged IMF set, or to plot the Hilbert spectrogram of the data. Keep in mind that the EEMD is an expensive algorithm and may take significant time to run.

References

Wu, Z. A. and Huang, N. E. (2009) Ensemble empirical mode decomposition: {A} noise assisted data analysis method. Advances in Adaptive Data Analysis, 1, 1-41.

See Also

Sig2IMF, CombineTrials, EEMDCompile, PlotIMFs.

Examples

Run this code
data(PortFosterEvent)
trials <- 10
nimf <- 10
noise.amp <- 6.4e-07
trials.dir <- "test"

set.seed(628)
#Run EEMD (this may take some time)
EEMD(sig, tt, noise.amp, trials, nimf, trials.dir = trials.dir)

#Compile the results
EEMD.result <- EEMDCompile(trials.dir, trials, nimf)

#Plot the IMFs
time.span <- c(5, 10)
imf.list <- 1:3
os <- TRUE
res <- TRUE
PlotIMFs(EEMD.result, time.span, imf.list, os, res)

Run the code above in your browser using DataLab