113 lines
4.0 KiB
Markdown
113 lines
4.0 KiB
Markdown
|
libeemd – a C library for performing the ensemble empirical mode decomposition
|
|||
|
==============================================================================
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
[article]: https://dx.doi.org/10.1007/s00180-015-0603-9
|
|||
|
|
|||
|
Acquiring libeemd
|
|||
|
-----------------
|
|||
|
|
|||
|
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][webpage] 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.
|
|||
|
|
|||
|
[bitbucket]: https://bitbucket.org
|
|||
|
[git]: http://git-scm.com
|
|||
|
|
|||
|
Program license
|
|||
|
---------------
|
|||
|
|
|||
|
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/>.
|
|||
|
|
|||
|
[webpage]: https://bitbucket.org/luukko/libeemd
|
|||
|
|
|||
|
Installation
|
|||
|
------------
|
|||
|
|
|||
|
### Dependencies
|
|||
|
|
|||
|
To compile libeemd you need:
|
|||
|
|
|||
|
* A fairly recent C compiler (something that understands C99)
|
|||
|
* GNU [Scientific Library (GSL)][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)][GCC]
|
|||
|
|
|||
|
[Make]: http://www.gnu.org/software/make/
|
|||
|
[GCC]: http://gcc.gnu.org/
|
|||
|
[GSL]: http://www.gnu.org/software/gsl/
|
|||
|
|
|||
|
### Installation
|
|||
|
|
|||
|
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`.
|
|||
|
|
|||
|
Using the C interface
|
|||
|
------------
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
pyeemd, the Python interface to libeemd
|
|||
|
-------------------------
|
|||
|
|
|||
|
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](http://pyeemd.readthedocs.org/).
|
|||
|
|
|||
|
[pyeemd]: https://bitbucket.org/luukko/pyeemd
|
|||
|
|
|||
|
Rlibeemd, the R interface to libeemd
|
|||
|
----------------------------------------
|
|||
|
|
|||
|
There is also a R interface to libeemd. It is available separately at
|
|||
|
<https://github.com/helske/Rlibeemd>.
|
|||
|
|
|||
|
Developing libeemd
|
|||
|
------------------
|
|||
|
|
|||
|
Please report any issues using the Bitbucket issue tracker. If submitting pull
|
|||
|
requests, please use `develop` as a target branch.
|