Multivariate Variational Mode Decomposition (MVMD)

The function MVMD applies the Multivariate Variational Mode Decomposition (MVMD) algorithm to multivariate or multichannel data.
2.2K Downloads
Updated Thu, 16 Apr 2020 14:40:30 +0000

View License

The function MVMD applies the Multivariate Variational Mode Decomposition (MVMD) algorithm [1] to multivariate or multichannel data sets. The method is an alternative to another popular algorithm named Multivariate Empirical Mode Decomposition (MEMD). We have verified this code through simulations involving synthetic and real world data sets containing 2-16 channels. However, there is no reason that it shouldn't work for data with more than 16 channels.

% Input and Parameters:
% ---------------------
signal - input multivariate signal that needs to be decomposed

alpha - the parameter that defines the bandwidth of extracted modes (low value of alpha yields higher bandwidth)

tau - time-step of the dual ascent ( pick 0 for noise-slack )
K - the number of modes to be recovered
DC - true if the first mode is put and kept at DC (0-freq)
init - 0 = all omegas start at 0
1 = all omegas start uniformly distributed
2 = all omegas initialized randomly

tol - tolerance value for convergence of ADMM

% Output:
% ---------------------

u - the collection of decomposed modes
u_hat - spectra of the modes
omega - estimated mode center-frequencies

[1] N. Rehman, H. Aftab, Multivariate Variational Mode Decomposition, arXiv:1907.04509, 2019.

Cite As

Naveed ur Rehman (2024). Multivariate Variational Mode Decomposition (MVMD) (https://www.mathworks.com/matlabcentral/fileexchange/72814-multivariate-variational-mode-decomposition-mvmd), MATLAB Central File Exchange. Retrieved .

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

Inspired by: Variational Mode Decomposition

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes
1.1

This is an optimized code that runs faster in Matlab as compared to the previous version. We are thankful to Dr. Maik Neukrich who helped us in developing a this newer version of the code.

1.0.1

Just changed the title.

1.0.0