Metadata-Version: 2.1
Name: vmdpy
Version: 0.1
Summary: Variational Mode Decomposition (VMD) algorithm
Home-page: http://github.com/vrcarva/vmdpy
Author: Vinicius Rezende Carvalho
Author-email: vrcarva@ufmg.br
License: UNKNOWN
Keywords: VMD,variational,decomposition
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Requires-Dist: numpy

# Variational mode decomposition Python Package

Function for calculating Variational Mode Decomposition (Dragomiretskiy and Zosso, 2014) of a signal  
Original VMD paper:  
Dragomiretskiy, K. and Zosso, D. (2014) â€˜Variational Mode Decompositionâ€™, 
IEEE Transactions on Signal Processing, 62(3), pp. 531â€“544. doi: 10.1109/TSP.2013.2288675.

original MATLAB code: https://www.mathworks.com/matlabcentral/fileexchange/44765-variational-mode-decomposition  


## Installation 

1) Dowload the project from https://github.com/vrcarva/vmdpy, then run "python setup.py install" from the project folder

OR

2) pip install vmdpy

## Citation and Contact
If you find this package useful, we kindly ask you to cite it in your work.   
Vinicius Carvalho (2019-), Variational Mode Decomposition in Python  

A paper will soon be submitted and linked here.  

contact: vrcarva@ufmg.br  
VinÃ­cius Rezende Carvalho  
Programa de PÃ³s-GraduaÃ§Ã£o em Engenharia ElÃ©trica â€“ Universidade Federal de Minas Gerais, Belo Horizonte, Brasil  
NÃºcleo de NeurociÃªncias - Universidade Federal de Minas Gerais  


## Example script
```python
#%% Simple example  
import numpy as np  
import matplotlib.pyplot as plt  
from vmdpy import VMD  

#. Time Domain 0 to T  
T = 1000  
fs = 1/T  
t = np.arange(1,T+1)/T  
freqs = 2*np.pi*(t-0.5-fs)/(fs)  

#. center frequencies of components  
f_1 = 2  
f_2 = 24  
f_3 = 288  

#. modes  
v_1 = (np.cos(2*np.pi*f_1*t))  
v_2 = 1/4*(np.cos(2*np.pi*f_2*t))  
v_3 = 1/16*(np.cos(2*np.pi*f_3*t))  

f = v_1 + v_2 + v_3 + 0.1*np.random.randn(v_1.size)  

#. some sample parameters for VMD  
alpha = 2000       # moderate bandwidth constraint  
tau = 0.            # noise-tolerance (no strict fidelity enforcement)  
K = 3              # 3 modes  
DC = 0             # no DC part imposed  
init = 1           # initialize omegas uniformly  
tol = 1e-7  


#. Run actual VMD code  
u, u_hat, omega = VMD(f, alpha, tau, K, DC, init, tol)  
```

