File Exchange

## Multivariate Variational Mode Decomposition (MVMD)

version 1.1 (3.66 KB) by Naveed ur Rehman

### Naveed ur Rehman (view profile)

The function MVMD applies the Multivariate Variational Mode Decomposition (MVMD) algorithm to multivariate or multichannel data.

Updated 16 Apr 2020

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 (2020). Multivariate Variational Mode Decomposition (MVMD) (https://www.mathworks.com/matlabcentral/fileexchange/72814-multivariate-variational-mode-decomposition-mvmd), MATLAB Central File Exchange. Retrieved .

YuGang

Naveed ur Rehman

### Naveed ur Rehman (view profile)

Thanks for the positive feedback! Based on your suggestion, we have uploaded a faster version of the MVMD function.

Mark

Tomas Ros

### Tomas Ros (view profile)

Great work! fancy implementing a faster version using multicore parallel processing (i.e. parfor loops)?

peipei cao

thank you