libeemd is a C library for performing the ensemble empirical mode decomposition (EEMD), its complete variant (CEEMDAN) or the regular empirical mode decomposition (EMD). The details of what libeemd actually computes are available as a separate article, which you should read if you are unsure about what EMD, EEMD and CEEMDAN are.
The easiest way to get up-to-date versions of libeemd is to use Bitbucket, which is a site built for distributing software using the amazing version control system Git. By using libeemd's Bitbucket site you can see recent changes made to the program, report and track bugs found in the program, access user-generated documentation and even create your own versions of libeemd.
libeemd is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
libeemd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with libeemd. If not, see http://www.gnu.org/licenses/.
To compile libeemd you need:
- A fairly recent C compiler (something that understands C99)
- GNU Scientific Library (GSL)
If you want to use the easy route and use the Makefile
distributed with
libeemd, you should have:
- GNU Make
- GNU Compiler Collection (GCC)
If you have Make and GCC installed, you can simply run
make
in the top-level directory of libeemd (the one with the Makefile
). This
command compiles libeemd into a static library libeemd.a
, a dynamic library
libeemd.so
, and copies the header file eemd.h
to the top-level directory.
You can then copy these files to wherever you need them.
You can use make install
to install the library files to your system. By
default this command installs the files under /usr
(so you'll need root
privileges), but you can specify another installation location like this:
PREFIX=$HOME/usr make install
If you set a PREFIX
you need to make sure other programs will find libeemd
in this location. For example, if you set PREFIX
to $HOME/usr
, the
directory $HOME/usr/lib
should be in LIBRARY_PATH
and LD_LIBRARY_PATH
.
To use libeemd in your program include eemd.h
in your header file and link
your program against libeemd.a
or libeemd.so
and GSL. The routines
exported by libeemd are documented in the header file eemd.h
.
To see a short example of libeemd in action, please see the examples
subdirectory.
The official Python interface to libeemd is called pyeemd. You should definitely try it, since data analysis with Python is much more fun than with C. More documentation about pyeemd can be found at Read the Docs.
There is also a R interface to libeemd. It is available separately at https://github.com/helske/Rlibeemd.
Please report any issues using the Bitbucket issue tracker. If submitting pull
requests, please use develop
as a target branch.