Noise-assisted EMD
Noise-assisted EMD
| Property | Value |
|---|---|
| Method | CEEMDAN |
| Input mode | univariate |
| Trend shape | (96,) |
| Notebook execution | ran |
| Reconstruction RMSE | 0.00000000 |
Notebook example metric: root mean square of input - (trend + season + residual) over all samples and channels. This checks additive bookkeeping; it is not a forecast error or a component-recovery score. The separate teaching input and intermediate arrays for the animation are linked below.
How it works
Method maturity: stable. Implementation: wrapper.
CEEMDAN repeatedly estimates components from perturbed signals and updates a shared residual. The noise modes and ensemble averages are algorithmic inputs, not decorative uncertainty bands.
Deterministic synthetic teaching signal; not a benchmark.
Open GIF · Static PNG · Source arrays (NPZ) · Trace metadata
Follow the four steps
1. Generate perturbations
Normalize the input, draw seeded noise, and decompose the noise realizations.
2. Average first IMFs
Apply EMD to each perturbed input and average its first IMF.
3. Update adaptively
Perturb the current residual with the next noise mode, average local means, and extract the next cIMF.
4. Retain the residue
Continue until the stopping criterion, then retain the remaining signal for additive reconstruction.
Parameters that change the result
| Parameter | Effect on the computation |
|---|---|
trials |
Number of ensemble members; this small animation uses 8, while DeTime's default is 100. |
epsilon |
Controls the perturbation scale; this visibility-oriented trace uses 0.04, not the default 0.005. |
seed and n_jobs |
The trace uses seed 42 and serial execution. Preserve both for reproducibility. |
primary_period |
Affects DeTime's grouping after the upstream component extraction. |
What this animation computes
Trial inputs, first IMFs, and adaptive local means recorded from EMD-signal 1.10.0; max_imf=3 bounds this upstream teaching run. DeTime's example below exposes the public controls and does not set this internal trace cap.
Interpretation
- Different CEEMDAN variants exist; PyEMD includes the later improved formulation documented by its authors.
- An ensemble average does not establish that an IMF is a unique physical component.
- Raw DeTime IMF arrays use (mode, time, channel), including a singleton channel for one series.
Try the method
Use this configuration with DecompositionConfig and decompose. The animation generator supplies the teaching input and records intermediate arrays.
{
"method": "CEEMDAN",
"params": {
"trials": 8,
"epsilon": 0.04,
"primary_period": 24
},
"seed": 42,
"n_jobs": 1,
"backend": "python"
}
See the configuration reference for the full interface and optional dependencies.
Sources and reproduction
- PyEMD CEEMDAN implementation and reproducibility
- Torres et al. (2011)
- Colominas et al. (2014)
- DeTime implementation:
src/detime/methods/ceemdan.py
Regenerate this animation with python scripts/generate_method_animations.py --methods CEEMDAN.
The reproduction guide explains the environment,
numerical checks, coverage manifest, and how to inspect the stored arrays.
Code
case = CASES["CEEMDAN"]
run_gallery_case("CEEMDAN")
Output
CEEMDAN: Noise-assisted EMD wrapper with IMFs in (mode, time, channel) layout. status: ran input mode: univariate trend shape: (96,) backend: python reconstruction RMSE: 0.00000000
Decomposition Plot

