All Projects → vrcarva → vmdpy

vrcarva / vmdpy

Licence: MIT license
Variational mode decomposition (VMD) in Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to vmdpy

ewtpy
Empirical wavelet transform (EWT) in Python
Stars: ✭ 52 (-67.09%)
Mutual labels:  signal-processing, eeg-signals-processing, seizure-detection
SP Lib
Signal processing method and algorithm library
Stars: ✭ 93 (-41.14%)
Mutual labels:  signal-processing, vmd
Fourier-and-Images
Fourier and Images
Stars: ✭ 81 (-48.73%)
Mutual labels:  signal-processing, signal-analysis
FastPCC
Compute interstation correlations of seismic ambient noise, including fast implementations of the standard, 1-bit and phase cross-correlations.
Stars: ✭ 24 (-84.81%)
Mutual labels:  signal-processing
Awesome-Human-Activity-Recognition
An up-to-date & curated list of Awesome IMU-based Human Activity Recognition(Ubiquitous Computing) papers, methods & resources. Please note that most of the collections of researches are mainly based on IMU data.
Stars: ✭ 72 (-54.43%)
Mutual labels:  signal-analysis
QuakeMigrate
A Python package for automatic earthquake detection and location using waveform migration and stacking.
Stars: ✭ 101 (-36.08%)
Mutual labels:  signal-processing
Music-Genre-Classification
Automatic Music Genre Classification with Machine Learning Techniques
Stars: ✭ 49 (-68.99%)
Mutual labels:  signal-processing
bakk
🎓 "Digital audio-watermarking for analog transmission channels", 2014, Bachelor Thesis, TU Wien
Stars: ✭ 16 (-89.87%)
Mutual labels:  signal-processing
nmmn
Miscellaneous methods for: astronomy, dealing with arrays, statistical distributions, computing goodness-of-fit, numerical simulations and much more
Stars: ✭ 16 (-89.87%)
Mutual labels:  signal-processing
Shifter
Pitch shifter using WSOLA and resampling implemented by Python3
Stars: ✭ 22 (-86.08%)
Mutual labels:  signal-processing
adaptive-filters
My collection of implementations of adaptive filters.
Stars: ✭ 32 (-79.75%)
Mutual labels:  signal-processing
spafe
🔉 spafe: Simplified Python Audio Features Extraction
Stars: ✭ 310 (+96.2%)
Mutual labels:  signal-processing
computer-vision
Notebook series on interesting topics in computer vision
Stars: ✭ 17 (-89.24%)
Mutual labels:  signal-processing
computer-vision-notebooks
👁️ An authorial set of fundamental Python recipes on Computer Vision and Digital Image Processing.
Stars: ✭ 89 (-43.67%)
Mutual labels:  signal-processing
Signal-Processing-and-Pattern-Classification
Signal-Processing-and-Pattern-Classification - Atrial fibrillation & PCG classification
Stars: ✭ 47 (-70.25%)
Mutual labels:  signal-processing
SpleeterRT
Real time monaural source separation base on fully convolutional neural network operates on Time-frequency domain.
Stars: ✭ 111 (-29.75%)
Mutual labels:  signal-processing
dsp-collection-java
A collection of Java classes for Digital Signal Processing
Stars: ✭ 41 (-74.05%)
Mutual labels:  signal-processing
FScape
A standalone audio rendering software for time domain and spectral signal processing.
Stars: ✭ 61 (-61.39%)
Mutual labels:  signal-processing
msda
Library for multi-dimensional, multi-sensor, uni/multivariate time series data analysis, unsupervised feature selection, unsupervised deep anomaly detection, and prototype of explainable AI for anomaly detector
Stars: ✭ 80 (-49.37%)
Mutual labels:  signal-processing
bsuir-csn-cmsn-helper
Repository containing ready-made laboratory works in the specialty of computing machines, systems and networks
Stars: ✭ 43 (-72.78%)
Mutual labels:  signal-processing

vmdpy: Variational mode decomposition in Python

Function for decomposing a signal according to the Variational Mode Decomposition (Dragomiretskiy and Zosso, 2014) method.

This package is a Python translation of the original VMD MATLAB toolbox

Installation

  1. pip install vmdpy

OR

  1. 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: [email protected]
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

#%% Simple example: generate signal with 3 components + noise  
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 VMD 
u, u_hat, omega = VMD(f, alpha, tau, K, DC, init, tol)  

#. Visualize decomposed modes
plt.figure()
plt.subplot(2,1,1)
plt.plot(f)
plt.title('Original signal')
plt.xlabel('time (s)')
plt.subplot(2,1,2)
plt.plot(u.T)
plt.title('Decomposed modes')
plt.xlabel('time (s)')
plt.legend(['Mode %d'%m_i for m_i in range(u.shape[0])])
plt.tight_layout()
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].