  The ensemble empirical mode decomposition (EEMD) and its complete variant
(CEEMDAN) are adaptive, noise-assisted data analysis methods that improve on
the ordinary empirical mode decomposition (EMD). All these methods decompose
possibly nonlinear and/or nonstationary time series data into a finite amount
of components separated by instantaneous frequencies. This decomposition
provides a powerful method to look into the different processes behind a given
time series data, and provides a way to separate short time-scale events from a
general trend. We present a free software implementation of EMD, EEMD and
CEEMDAN and give an overview of the EMD methodology and the algorithms used in
the decomposition. We release our implementation, libeemd, with the aim of
providing a user-friendly, fast, stable, well-documented and easily extensible
EEMD library for anyone interested in using (E)EMD in the analysis of time
series data. While written in C for numerical efficiency, our implementation
includes interfaces to the Python and R languages, and interfaces to other
languages are straightforward.
