eXtended Empirical Mode Decomposition

Signals are decomposed into oscillatory modes by empirical mode decomposition and its ensemble, complementary ensemble, complete ensemble, masked, bivariate and multivariate variants, by variational mode decomposition and its multivariate and successive variants, and by local mean decomposition, iterative filtering, time varying filter empirical mode decomposition and the empirical wavelet transform; the synchrosqueezed wavelet transform is also provided. Empirical mode decomposition is due to Huang et al. (1998) , its ensemble variant to Wu and Huang (2009) and variational mode decomposition to Dragomiretskiy and Zosso (2014) . The modes can be described by their instantaneous amplitude and frequency and their Hilbert spectrum, tested as intrinsic mode functions or against white noise, selected by energy and compared through orthogonality, mode splitting, reconstruction quality, ensemble dispersion and similarity measures. Acceleration, velocity and displacement records stored as a long table of time, value, quantity and component are decomposed for every record and quantity in one call, with a warning and a regularization of the time grid when it is not uniform.


xemd

xemd provides R functions for signal decomposition and mode analysis. The library and the xemd command-line interface are installed together from the repository root with the product installer.

In empirical mode decomposition (EMD), the signal's extrema define the local scales used to extract components. Each extracted component is subtracted from the remaining signal, leaving a final residue. Hilbert analysis describes each component through its analytic signal: its modulus gives instantaneous amplitude, and the derivative of its continuous phase divided by $2\pi$ gives instantaneous frequency where that phase is defined and differentiable. The introduction develops these concepts alongside an EMD example and a variational mode decomposition (VMD) example.

A decomposition gives a representation of the observed signal. Its modes do not automatically identify separate physical sources or isolate noise. The methods guide explains how the methods define their components; the interpretation guide distinguishes numerical convergence, reconstruction, mode diagnostics and evidence for retaining a component.

Guides

Task Documentation
Understand modes, residues and instantaneous frequency Introduction
Choose a method and understand its controls Methods and controls
Organize seismic records and reconstruct a selection Seismic records
Interpret diagnostics, noise comparisons and selection Validation and interpretation
Check exact arguments, units and returned fields Function reference
Find the published work on the methods Bibliography

EMD example

This signal combines sinusoidal oscillations with a trend. The sifting controls specify the envelope-centering test, the boundary treatment and the iteration limit; they are the configuration of this example.

library(xemd)

Time <- seq(0, 9, length.out = 3000)
Signal <- sin(pi * Time) + sin(2 * pi * Time) + sin(6 * pi * Time) +
    0.5 * Time
Sifting <- list(stopRule = "doubleThreshold", thresholds = c(0.05, 0.5),
                fraction = 0.05, maxSift = 2000, boundary = "reflection",
                maxModes = Inf)
OUT <- decomposeEMD(Signal, sifting = Sifting)

OUT$modes contains the extracted components and OUT$residue contains what remains. Their sum reconstructs the input up to rounding. This additive identity does not establish whether an extracted mode recovers one of the original sinusoids. OUT$converged reports acceptance by the chosen sifting rule, while OUT$stopReason reports why extraction ended. The worked introduction shows those outputs, a reconstruction check and the IMF diagnostics.

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("xemd")

0.1.5 by Alejandro Verri Kozlowski, 6 hours ago


https://kanameishi.github.io/xemd/


Browse source code at https://github.com/cran/xemd


Authors: Alejandro Verri Kozlowski [aut, cre, cph, trl] (ORCID: , G. Rilling [ctb] (emd.m code) , Marcelo A. Colominas [cph] (CEEMDAN distribution of emd.m) , Pierre Masselot [ctb] (emdr code) , Vinícius Rezende Carvalho [ctb, cph] (ewtpy code) , Eduardo Mazoni [cph] (ewtpy code) , Jerome Gilles [ctb, cph] (pyewt code; MATLAB EWT code translated in ewtpy) , Kathryn Heal [ctb] (MATLAB EWT boundary detection translated in ewtpy) , Emanuele Papini [ctb, cph] (fifpy code) , Antonio Cicone [ctb] (MATLAB iterative filtering code translated in fifpy) , Shubhra Prakash [ctb] (LMD code) , Stefano Bianchi [ctb, cph] (pytvfemd code) , Alessandro Longo [ctb, cph] (pytvfemd code) , Eugene Brevdo [ctb] (Synchrosqueezing Toolbox code ported in SynchWave) , Hau-Tieng Wu [ctb] (Synchrosqueezing Toolbox code ported in SynchWave) , Jianfeng Lu [ctb] (curve_ext of the Synchrosqueezing Toolbox , ported in SynchWave) , Dongik Jang [ctb] (SynchWave code) , Hee-Seok Oh [ctb] (SynchWave code) , Donghoh Kim [ctb] (SynchWave code)


Documentation:   PDF Manual  


GPL-3 license


Imports data.table, pracma, splines, stats, utils

Suggests hht, knitr, rmarkdown


See at CRAN