Optional multivariate VMD backend
Optional multivariate VMD backend
| Property | Value |
|---|---|
| Method | MVMD |
| Input mode | multivariate |
| Trend shape | (96, 3) |
| 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: optional-backend. Implementation: optional-backend.
MVMD couples channel-specific mode spectra through shared center frequencies. The modes can have different amplitudes and phases in each channel.
Deterministic synthetic teaching signal; not a benchmark.
Open GIF · Static PNG · Source arrays (NPZ) · Trace metadata
Follow the four steps
1. Align the channels
Supply measurements on a common time grid and prepare their mirrored spectra.
2. Update channel spectra
Each channel fits a mode around the current shared center.
3. Pool spectral energy
Update each center using the spectral energy from all channels, then repeat.
4. Recover mode stacks
Invert the spectra and retain the (mode,time,channel) organization before application-specific grouping.
Parameters that change the result
| Parameter | Effect on the computation |
|---|---|
K and alpha |
The teaching run uses three modes and bandwidth penalty 1500. |
Upstream trace settings |
Uniform initialization, tau=0, and max_iter=60 bound this PySDKit demonstration; not all are public DeTime parameters. |
primary_period / mode groups |
Controls DeTime's assignment of the returned modes to output components. |
What this animation computes
Captured PySDKit 0.5.0 joint solver arrays on input shaped (channel,time). Internal channels correspond to input indexes [2, 0, 1] (zero-based); applying indexes [1, 2, 0] restores original order in every displayed spectrum and mode. The final trace is checked against the upstream returned modes.
Interpretation
- The optional backend requires aligned multichannel input and an explicitly checked axis convention.
- PySDKit's all-axis FFT shift changes the internal channel order; its final inverse shift restores input order. The animation applies that same restoration to every displayed iterate.
- A shared mode center does not identify a shared causal source, and tau=0 can leave reconstruction error.
Try the method
Use this configuration with DecompositionConfig and decompose. The animation generator supplies the teaching input and records intermediate arrays.
{
"method": "MVMD",
"params": {
"K": 3,
"alpha": 1500.0,
"primary_period": 24
},
"backend": "python"
}
See the configuration reference for the full interface and optional dependencies.
Sources and reproduction
- PySDKit MVMD interface and implementation
- Multivariate variational mode decomposition
- DeTime implementation:
src/detime/methods/mvmd.py
Regenerate this animation with python scripts/generate_method_animations.py --methods MVMD.
The reproduction guide explains the environment,
numerical checks, coverage manifest, and how to inspect the stored arrays.
Code
case = CASES["MVMD"]
run_gallery_case("MVMD")
Output
MVMD: Optional multivariate VMD backend for shared frequency structure. status: ran input mode: multivariate trend shape: (96, 3) backend: python reconstruction RMSE: 0.00000000
Decomposition Plot

