Empirical Mode Decomposition (EMD)

emd is a command line utility that calculates the Empirical Mode Decomposition of a dataset.

The Hilbert-Huang transform (HHT) and the Empirical Mode Decomposition (EMD) have offered a breakthrough in the analysis of nonlinear and non-stationary data. This signal processing technique has been used with great success in many applications where traditional methods do not apply. The author has written this software to see how the Empirical Mode Decomposition (EMD) technique helps in the detection of SIDs from recordings of the signal levels of VLF stations. Nevertheless, the application of this tool are not limited to this topic.

A paper "Application of Empirical Mode Decomposition to the detection of Sudden Ionosphéric Disturbances by monitoring the signal of a distant Very Low Frequency transmitter" has been written to summerize the results obtained with this tool:

PDF Application of EMD to the detection of SIDsSID EMD paper download(application/pdf, 980Kb, 10 Dec 2010)

Example

$ emd -i dho38-20070710.txt -o dho38-20070710.out.txt -vvv
Reading file dho38-20070710.txt ...
Read 42250 entries.
Settings: S_number 2. Max Std Dev 0.30. Max IMF 16.
          Epsilon 1.00e-09. Aberrant Limit 1.80e+308.
Starting Analysis ...
IMF 1 - Step 1 [12628 zeros, 8189 min, 8189 max, Std Dev 1.000]
IMF 1 - Step 2 [16382 zeros, 8718 min, 8718 max, Std Dev 0.786]
IMF 1 - Step 3 [17385 zeros, 8913 min, 8913 max, Std Dev 0.921]
IMF 1 - Step 4 [17783 zeros, 9045 min, 9045 max, Std Dev 0.046]
Found IMF 1.
IMF 2 - Step 1 [5459 zeros, 3146 min, 3146 max, Std Dev 1.002]
IMF 2 - Step 2 [6255 zeros, 3262 min, 3262 max, Std Dev 0.928]
IMF 2 - Step 3 [6505 zeros, 3323 min, 3323 max, Std Dev 0.108]
Found IMF 2.
IMF 3 - Step 1 [1906 zeros, 1137 min, 1137 max, Std Dev 0.998]
IMF 3 - Step 2 [2263 zeros, 1189 min, 1189 max, Std Dev 0.605]
IMF 3 - Step 3 [2363 zeros, 1210 min, 1210 max, Std Dev 0.120]
Found IMF 3.
IMF 4 - Step 1 [651 zeros, 402 min, 402 max, Std Dev 0.997]
IMF 4 - Step 2 [795 zeros, 427 min, 427 max, Std Dev 0.571]
IMF 4 - Step 3 [845 zeros, 435 min, 435 max, Std Dev 0.185]
Found IMF 4.
IMF 5 - Step 1 [173 zeros, 124 min, 123 max, Std Dev 1.008]
IMF 5 - Step 2 [236 zeros, 143 min, 142 max, Std Dev 0.226]
Found IMF 5.
IMF 6 - Step 1 [43 zeros, 26 min, 27 max, Std Dev 1.001]
IMF 6 - Step 2 [52 zeros, 28 min, 29 max, Std Dev 0.138]
Found IMF 6.
IMF 7 - Step 1 [18 zeros, 8 min, 9 max, Std Dev 1.056]
IMF 7 - Step 2 [18 zeros, 8 min, 9 max, Std Dev 0.078]
Found IMF 7.
IMF 8 - Step 1 [6 zeros, 3 min, 2 max, Std Dev 0.510]
IMF 8 - Step 2 [6 zeros, 3 min, 2 max, Std Dev 0.021]
Found IMF 8.
Monotonic residue found.
Analysis done. Total of 8 IMF found.
Saving data to dho38-20070710.out.txt
Done

In this example, the sifting process leads to a decomposition into 8 IMFs. We can see that few components are necessary to completely represent the original data. An IMF is deemed valid its when standard deviation gets below a predefined threshold (0.3 in this case). When searching for a new component, from two to four siftings steps are necessary to obtain an IMF meeting the validity criteria. This example shows how the number of extrema and zero-crossings reduces from IMF 1 to IMF 8, thus ensuring the convergence of the algorithm. Each new IMF contains a lower-frequency oscillatory mode. The decomposition is stopped when a monotonic residue is found.

An example of decomposition obtained on a day with a SID is shown here. It clearly shows how the components (particularly IMF 5) react to the disturbance.
Example of empirical mode decomposition

Download

emd has been developped in C ANSI. It has been tested on Linux platforms (gcc) as well as on Windows (Visual Studio C++)

Current version is 1.0.0.
emd binary and source can be downloaded through anonymous SVN at the following address:
https://anonsvn.loudet.org/emd/tags/

Change Log

Installation

Under Windows, the binary runs directly without installation.
Under Linux, the classic installation steps are used: ./configure, make, make install. Please read the INSTALL file from the package for details.

Help

] [-o ]
      [-s ] [-d ] [-n ] [-e ]
      [-a    ...  .
    s   'S number'. Used as termination criteria.
        Strictly positive integer. Defaults to 2.
    d   Maximum Standard Deviation. Used as termination criteria.
        Strictly positive real number. Defaults to 0.3.
    n   Maximum number of intrinsic mode function (IMF) to search for.
    Strictly positive integer. Defaults to 16.
    e   Tolerance on RMS value of IMF. Used as termination criteria.
    Strictly positive real number. Defaults to 0.000 000 001.
    a   Threshold for aberrant values suppression. Difference between two
    consecutive data must not exceed the specified value.
    Aberrant values suppression is not enabled by default. 
]]>
Creative Commons License SID monitoring station by Lionel LOUDET is licensed under a
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Disclaimer
Last Update: 10 Dec 2010
Apache Web Server PHP
Apache/2.4.59 (Debian)
Valid XHTML + RDFa Valid CSS!
Page generated in 0.083 seconds.