Methods and controls
methods.RmdWhat defines a component
The methods differ in how they identify an oscillation. EMD
constructs local envelopes from extrema; VMD fits components
concentrated around estimated spectral centers; EWT constructs a filter
bank from a spectral partition. A shared field named modes
does not make these definitions equivalent.
The choice starts with the representation needed for the signal. The following table connects that choice with the operations and the controls that determine it; it is not a ranking of methods.
| Representation | Operations | Decision that affects the result |
|---|---|---|
| Successive components from local extrema | decomposeEMD() |
Envelope boundaries and the sifting stopping rule |
| Repeated decompositions with auxiliary noise | EEMD, CEEMD, CEEMDAN and ICEEMDAN | Perturbation scale, realizations and averaging procedure |
| Extraction guided by sinusoidal perturbations | Masked and iterated masked EMD | Mask frequency, amplitude and phase schedule |
| Components concentrated around spectral centers | VMD and SVMD | Mode count or extraction termination, and bandwidth penalty |
| Components shared across simultaneous channels | BEMD, MEMD, NA-MEMD and MVMD | Channel grouping and the joint extraction model |
| Components from local demodulation or filtering | LMD, IF and TVF-EMD | Local-mean construction and its stopping criterion |
| Components from a spectral partition or frequency ridges | EWT and SST reconstruction | Spectral boundaries or ridge and reconstruction widths |
Parameter sensitivity and reconstruction answer different questions. Changing a control can redistribute one oscillation among several modes without preventing their sum from reconstructing the record. The interpretation guide explains the diagnostics needed after decomposition.
Signals and records
The scalar decomposition functions receive a numeric signal vector.
The coupled methods receive a matrix with samples in rows and channels
in columns. listDecompositions() lists the methods
available through decomposeTSL(): scalar methods act on
each component separately, while coupled methods act on the components
of a group together. The record guide
describes that interface; the introduction
contains scalar EMD and VMD examples.
EMD
decomposeEMD() extracts modes successively from the
remaining signal. Sifting removes the mean of the upper and lower
envelopes within each extraction. The sifting list defines
the stopping rule and boundary extension.
The definition of an IMF concerns the counts of extrema and zero crossings and the local mean of its envelopes. The stopping rules below measure different aspects of the numerical extraction. A small change between iterations, a stable count and a prescribed iteration count are not interchangeable tests of that definition.
stopRule |
Meaning | Associated controls |
|---|---|---|
"SD" |
Accepts a sufficiently small change between sifting states |
tolerance, maxSift,
boundary
|
"Snumber" |
Requires stable counts of extrema and zero crossings |
stableSift, maxSift,
boundary
|
"doubleThreshold" |
Tests the envelope mean relative to its amplitude and the counting condition |
thresholds, fraction,
maxSift, boundary
|
"fixed" |
Performs a prescribed number of subtractions |
fixedSift, boundary
|
maxModes limits extraction. converged
records mode acceptance, while stopReason records why
extraction ended: a terminal residue, the mode limit or insufficient
extrema for the boundary rule. Fixed sifting reports NA for
convergence; reaching a prescribed iteration count is not an adaptive
acceptance test.
Ensembles
Mode mixing can place different scales in one component or distribute one scale among several components. Intermittency can contribute to this problem because the extrema available to the envelopes change across the record. EEMD perturbs the same observed signal with auxiliary noise and averages the decompositions to address that scale organization.
The auxiliary noise is part of the decomposition procedure. It is distinct from contamination already present in the observation: cancellation of the added perturbations in a reconstruction does not establish removal of the original contamination.
The direct ensemble functions receive noise as a matrix
with one unit-variance realization per column and one row per signal
sample. They use the supplied realizations and draw no random numbers.
amplitudeRatio controls their relative perturbation scale,
and sifting configures the EMD extractor.
| Operation | Concept | Distinguishing control or output |
|---|---|---|
decomposeEEMD() |
Decomposes perturbed copies and averages modes by extraction order |
divisor = "realizations" divides by the total number of
realizations; "available" divides by the number that
produced each mode |
decomposeCEEMD() |
Pairs positive and negative copies of each perturbation | The paired perturbations cancel in the sum of modes and residue, up to rounding |
decomposeCEEMDAN() |
Averages first modes of a common residue perturbed by noise modes | The perturbation-to-residue ratio is maintained at each stage |
decomposeICEEMDAN() |
Computes common residues from averaged local means, then modes from consecutive residues |
normalizeNoise controls normalization of noise modes
from the second stage onward |
EEMD with divisor = "realizations" reconstructs the
signal plus meanNoise, up to rounding. Averaging by
extraction order does not establish physical correspondence between
realizations. EEMD and CEEMD return no stopReason; CEEMDAN
and ICEEMDAN report termination on their common residue.
The averaged components need not satisfy the strict IMF definition even when the individual extractions were accepted. Increasing the ensemble size concerns variability of the average under a fixed perturbation model; it does not by itself resolve modal correspondence or remove bias.
resiftModes() processes an existing sequence of ensemble
modes by re-sifting consecutive sums and carrying the remainder forward.
It preserves the sum of the input modes through its returned modes and
residue, and reports "chainComplete" or
"insufficientExtrema".
Masks
Sinusoidal masks alter the extrema that guide extraction. Their frequency sets a perturbation scale; it is not a fixed cutoff of a linear filter. Separation also depends on the relative amplitudes and the phase schedule.
decomposeMaskedEMD() averages extractions from the
residue with added sinusoidal masks. samplingInterval is in
seconds; mask frequencies are in Hz. The masking list
selects the schedule:
masking$rule |
Required mask controls | Concept |
|---|---|---|
"pair" |
frequency, amplitude
|
Opposite sine masks for one extraction; amplitude is in signal units |
"dyadic" |
firstFrequency, amplitudeRatio
|
Frequencies decrease by successive halves; amplitude follows the residue maxima |
"uniformPhase" |
amplitudeRatio, phaseCount
|
Uniformly spaced phases with the frequency schedule set by the sampling interval |
estimateMaskFrequency() estimates the frequency for the
pair rule from the first unmasked sifted component.
decomposeIteratedMaskedEMD() instead starts with
initialFrequencies and repeatedly updates the mask
frequencies from the extracted modes. Its stopReason
describes the frequency updates ("tolerance" or
"iterationLimit"); innerStopReason describes
the last masked decomposition.
Opposite masks cancel in the average of the perturbed inputs. Because extraction is nonlinear, this does not guarantee cancellation inside each averaged component. A stopping test on mask-frequency updates also remains distinct from acceptance of the inner sifting iterations.
VMD and successive VMD
decomposeVMD() fits a prescribed number of modes
concentrated around center frequencies. initialCenters
supplies those centers in Hz and sets the mode count.
samplingInterval is in seconds, alpha is a
bandwidth penalty in squared seconds, and tau controls the
multiplier update. With tau = 0, the formulation permits a
nonzero fit residual. fixedZeroCenter controls whether the
first center stays at zero.
VMD returns centers and fitResidual
alongside its modes. Its tolerance tests the joint relative
change between sweeps; maxIterations bounds their number.
The result reports "tolerance" or
"iterationLimit" and contains the last sweep in either
case. The introduction explains the returned
diagnostics and the unit conversion used in its example.
decomposeSVMD() extracts variational modes one at a time
from the whole signal while keeping previous centers fixed.
alpha and maxAlpha define the initial and
final penalties; equal values give a fixed penalty. Its
stopping list selects a prescribed "modeCount"
or a known "noisePower" with noiseTolerance
and maxModes. The latter power is in squared signal units.
Its output preserves extraction order; converged describes
the inner iterations of each mode and stopReason describes
the outer extraction. These variational formulations define components
through bandwidth objectives, without imposing the geometric IMF
conditions of EMD. Their stopping tests do not establish that they have
found physically unique components.
Coupled channels
Independent decompositions can give the same index to components of different scales in different channels. Coupled methods instead construct vector components jointly. This alignment is a property of the joint representation; it does not identify a physical source without additional information about the channels.
The coupled methods return modes as an array of samples
by modes by channels. BEMD, MEMD and NA-MEMD return a matrix
residue; MVMD returns fitResidual. A coupled
extraction shares the mode count across its channels.
| Operation | Concept | Controls that distinguish it |
|---|---|---|
decomposeBEMD() |
Treats two channels as the real and imaginary parts of a trajectory and builds envelopes over directions |
directionCount, envelope = "trajectory" or
"projection", and fixed sifting |
decomposeMEMD() |
Builds vector envelopes from projections of two or more channels |
directionCount; reflected boundaries;
"fixed", "consecutive" or
"doubleThreshold" sifting |
decomposeNAMEMD() |
Adds supplied noise channels for the multivariate decomposition, then retains the signal channels |
noiseChannels plus MEMD controls; the direct function
draws no random numbers |
decomposeMVMD() |
Fits channel coordinates of each mode around a shared center frequency | VMD controls, with a joint stopping test over modes and channels |
MEMD and MVMD receive the channel amplitudes as supplied, without standardization. The record guide includes a coupled MVMD example and explains grouping by record and quantity.
In MVMD, a shared center does not impose identical amplitudes or instantaneous frequencies across channels. The grouping and the relative channel scales therefore belong to the interpretation of the joint input.
LMD, iterative filtering and TVF-EMD
| Operation | Concept | Controls and interpretation |
|---|---|---|
decomposeLMD() |
Extracts product functions by subtracting a smoothed local mean and dividing by a smoothed local magnitude |
envelopeTolerance, changeTolerance,
maxIterations and maxSmoothPasses control
extraction; the product-function construction differs from the envelope
conditions defining an IMF |
decomposeIF() |
Repeatedly subtracts a moving average built from a supplied filter prototype |
filter, stretch and boundary
define filtering; tolerance and maxIterations
control iteration |
decomposeTVFEMD() |
Uses a B-spline local mean whose knots follow a time-varying cutoff |
bandwidthThreshold, splineOrder,
intermittencyThreshold and maxSift control
extraction |
These functions operate on sample positions and limit extraction with
maxModes. IF offers boundary = "zero" and
"periodic"; the periodic case uses fast iterative
filtering. LMD’s initial normalization makes its tolerances sensitive to
the input unit when the initial magnitude is close to one in that unit.
TVF-EMD uses a bandwidth-based stopping criterion, distinct from the
intrinsic mode function conditions. Its implementation aggregates the
bandwidth indicator over samples; acceptance by this rule does not
assert that the local inequality holds at every sample. The function help specifies
that rule and the circumstances reported as non-convergence.
Empirical wavelets
decomposeEWT() divides the spectrum into bands and
returns components from an adapted filter bank. The components add up to
the signal; boundaries gives the band boundaries in Hz.
bandCount is an upper limit on the number of bands for the
default midpoint detector, so fewer bands can be returned when fewer
spectral maxima exist.
detection = NULL uses midpoint boundaries between
dominant spectral maxima. A detection list provides
"locmax", "locmaxmin" and
"locmaxminf" rules, with logarithmic transformation and
regularization controls. An automatic count uses
bandCount = NULL with detector = "locmax",
regularization = "none", logarithm = FALSE and
a supplied thresholdRatio. EWT returns modes
and boundaries; it has no iterative stopping rule or
stopReason.
The boundaries partition a global spectrum. Components with changing frequencies can overlap in that spectrum even when their frequencies are separated during part of the record. Reconstruction by the filter bank does not establish that each band has isolated one generating oscillation.
Synchrosqueezing and components
transformSST() reassigns Morlet wavelet coefficients to
frequency cells using their estimated instantaneous frequency. It
returns a complex transform matrix and its
frequency grid in Hz. voiceCount controls
voices per octave, morletCenter defines the wavelet, and
threshold sets the minimum coefficient magnitude for
reassignment in signal units. The record interface has no operation for
this transform.
extractSSTModes() takes that transform and frequency
grid, extracts ridges and reconstructs a component around each ridge.
modeCount sets the number of ridges, penalty
controls jumps between frequency cells, exclusionWidth
separates successive ridge extractions, and
reconstructionWidth sets the band used for reconstruction.
morletCenter identifies the wavelet that produced the
transform. The result is a samples-by-components matrix, with no
residue. Bands can overlap and their components need not sum to the
input signal. The components are defined by ridge reconstruction,
without an IMF-condition test. The ridge choice and reconstruction width
are therefore part of the component definition, not only display
settings.