# vmdpy: Variational mode decomposition in Python
Function for decomposing a signal according to the Variational Mode Decomposition ([Dragomiretskiy and Zosso, 2014](https://doi.org/10.1109/TSP.2013.2288675)) method.
This package is a Python translation of the original [VMD MATLAB toolbox](https://www.mathworks.com/matlabcentral/fileexchange/44765-variational-mode-decomposition)
## Installation
1) pip install vmdpy
OR
2) Dowload the project from https://github.com/vrcarva/vmdpy, then run "python setup.py install" from the project folder
## Citation and Contact
Paper available at: https://doi.org/10.1016/j.bspc.2020.102073
If you find this package useful, we kindly ask you to cite it in your work:
Vinícius R. Carvalho, Márcio F.D. Moraes, Antônio P. Braga, Eduardo M.A.M. Mendes,
Evaluating five different adaptive decomposition methods for EEG signal seizure detection and classification,
Biomedical Signal Processing and Control,
Volume 62,
2020,
102073,
ISSN 1746-8094,
https://doi.org/10.1016/j.bspc.2020.102073.
If you developed a new funcionality or fixed anything in the code, just provide me the corresponding files and which credit should I include in this readme file.
For suggestions, questions, comments, etc: vrcarva@ufmg.br
Vinicius 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)
```
Raw data
{
"_id": null,
"home_page": "http://github.com/vrcarva/vmdpy",
"name": "vmdpy",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "VMD,variational,decomposition",
"author": "Vinicius Rezende Carvalho",
"author_email": "vrcarva@ufmg.br",
"download_url": "",
"platform": "",
"description": "# vmdpy: Variational mode decomposition in Python\r\n\r\nFunction for decomposing a signal according to the Variational Mode Decomposition ([Dragomiretskiy and Zosso, 2014](https://doi.org/10.1109/TSP.2013.2288675)) method. \r\n\r\nThis package is a Python translation of the original [VMD MATLAB toolbox](https://www.mathworks.com/matlabcentral/fileexchange/44765-variational-mode-decomposition) \r\n\r\n\r\n## Installation \r\n\r\n1) pip install vmdpy \r\n\r\nOR\r\n\r\n2) Dowload the project from https://github.com/vrcarva/vmdpy, then run \"python setup.py install\" from the project folder\r\n\r\n## Citation and Contact\r\nPaper available at: https://doi.org/10.1016/j.bspc.2020.102073\r\n\r\nIf you find this package useful, we kindly ask you to cite it in your work: \r\nVin\u00edcius R. Carvalho, M\u00e1rcio F.D. Moraes, Ant\u00f4nio P. Braga, Eduardo M.A.M. Mendes,\r\nEvaluating five different adaptive decomposition methods for EEG signal seizure detection and classification,\r\nBiomedical Signal Processing and Control,\r\nVolume 62,\r\n2020,\r\n102073,\r\nISSN 1746-8094,\r\nhttps://doi.org/10.1016/j.bspc.2020.102073. \r\n\r\nIf you developed a new funcionality or fixed anything in the code, just provide me the corresponding files and which credit should I include in this readme file. \r\n\r\nFor suggestions, questions, comments, etc: vrcarva@ufmg.br \r\nVinicius Rezende Carvalho \r\nPrograma de P\u00f3s-Gradua\u00e7\u00e3o em Engenharia El\u00e9trica \u2013 Universidade Federal de Minas Gerais, Belo Horizonte, Brasil \r\nN\u00facleo de Neuroci\u00eancias - Universidade Federal de Minas Gerais \r\n\r\n\r\n## Example script\r\n```python\r\n#%% Simple example \r\nimport numpy as np \r\nimport matplotlib.pyplot as plt \r\nfrom vmdpy import VMD \r\n\r\n#. Time Domain 0 to T \r\nT = 1000 \r\nfs = 1/T \r\nt = np.arange(1,T+1)/T \r\nfreqs = 2*np.pi*(t-0.5-fs)/(fs) \r\n\r\n#. center frequencies of components \r\nf_1 = 2 \r\nf_2 = 24 \r\nf_3 = 288 \r\n\r\n#. modes \r\nv_1 = (np.cos(2*np.pi*f_1*t)) \r\nv_2 = 1/4*(np.cos(2*np.pi*f_2*t)) \r\nv_3 = 1/16*(np.cos(2*np.pi*f_3*t)) \r\n\r\nf = v_1 + v_2 + v_3 + 0.1*np.random.randn(v_1.size) \r\n\r\n#. some sample parameters for VMD \r\nalpha = 2000 # moderate bandwidth constraint \r\ntau = 0. # noise-tolerance (no strict fidelity enforcement) \r\nK = 3 # 3 modes \r\nDC = 0 # no DC part imposed \r\ninit = 1 # initialize omegas uniformly \r\ntol = 1e-7 \r\n\r\n\r\n#. Run actual VMD code \r\nu, u_hat, omega = VMD(f, alpha, tau, K, DC, init, tol) \r\n```\r\n\r\n",
"bugtrack_url": null,
"license": "",
"summary": "Variational Mode Decomposition (VMD) algorithm",
"version": "0.2",
"project_urls": {
"Homepage": "http://github.com/vrcarva/vmdpy"
},
"split_keywords": [
"vmd",
"variational",
"decomposition"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0a9623fdc1b42a835e3c64bae636bd1b2249680c4c70bbb416f09e8a29a1d8d8",
"md5": "1f8e8a6097251a883cfded4a0adb2a9a",
"sha256": "331e3013dbc95beb564fe7ce70a0f95a09efb44d0ec56a28f61e9ab40fe16c1b"
},
"downloads": -1,
"filename": "vmdpy-0.2-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "1f8e8a6097251a883cfded4a0adb2a9a",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 6547,
"upload_time": "2020-08-11T22:08:45",
"upload_time_iso_8601": "2020-08-11T22:08:45.708952Z",
"url": "https://files.pythonhosted.org/packages/0a/96/23fdc1b42a835e3c64bae636bd1b2249680c4c70bbb416f09e8a29a1d8d8/vmdpy-0.2-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2020-08-11 22:08:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "vrcarva",
"github_project": "vmdpy",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "vmdpy"
}