File Exchange

image thumbnail

Two-dimensional Variational Mode Decomposition

version (356 KB) by Dominique Zosso
Variationally decompose a 2D signal into k band-separated modes.


Updated 18 Mar 2014

View Version History

View License

Spectrum-based decomposition of a 2D input signal into k band-separated modes. Here, we propose an entirely non-recursive variational mode decomposition model, where the modes are extracted concurrently. The model looks for an ensemble of modes and their respective center frequencies, such that the modes collectively reproduce the (2D) input signal, while each being smooth after demodulation into baseband. The variational model is efficiently optimized using an alternating direction method of multipliers approach.
This is a generalization of 1D VMD:
See: K. Dragomiretskiy and D. Zosso, Variational Mode Decomposition, IEEE Trans. Signal Processing 62(3):531-544, 2014.


K. Dragomiretskiy and D. Zosso, Two-Dimensional Variational Mode Decomposition, IEEE Int. Conf. Image Proc. 2014, (submitted). Preprint:

Cite As

Dominique Zosso (2020). Two-dimensional Variational Mode Decomposition (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (4)

mo yu

JL Kuah

Hi anyone, can someone guide me in how to use the vmd code on image? no matter how many time I tried, it fail.

mohan arun

good work

Dominique Zosso

Small glitch in the visualization part of the test file:

Where the evolution of the center frequencies is traced, the plot-line should read as follows:

plot( size(f,2)*(0.5+omega(:,1,k)), size(f,1)*(0.5+omega(:,2,k)), colors(k) );

(size(f,1) and size(f,2) need to be swapped).

This does not affect the decomposition itself, however.

MATLAB Release Compatibility
Created with R2012a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!