File Exchange

image thumbnail

Two-dimensional Variational Mode Decomposition

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

17 Downloads

Updated 18 Mar 2014

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:
http://www.mathworks.com/matlabcentral/fileexchange/44765-variational-mode-decomposition
See: K. Dragomiretskiy and D. Zosso, Variational Mode Decomposition, IEEE Trans. Signal Processing 62(3):531-544, 2014. http://dx.doi.org/10.1109/TSP.2013.2288675

and

K. Dragomiretskiy and D. Zosso, Two-Dimensional Variational Mode Decomposition, IEEE Int. Conf. Image Proc. 2014, (submitted). Preprint: ftp://ftp.math.ucla.edu/pub/camreport/cam14-16.pdf

Cite As

Dominique Zosso (2019). Two-dimensional Variational Mode Decomposition (https://www.mathworks.com/matlabcentral/fileexchange/45918-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

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.

Updates

1.1.0.0

Fixed the visualization bug described in comments.

Fixed a wrong "division by 2" in the computation of the Hilbert-frequency mask.

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