EMD
EMD: Empirical Mode Decomposition and Hilbert-Huang Spectral Analyses in Python - Published in JOSS (2021)
Science Score: 89.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 1 DOI reference(s) in JOSS metadata -
○Academic publication links
-
✓Committers with academic emails
5 of 14 committers (35.7%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Mathematics
Computer Science -
84% confidence
Last synced: 4 months ago
·
JSON representation
Repository
Empirical Mode Decomposition in Python <a href="https://gitlab.com/ajquinn/emd/commits/master"><img alt="pipeline status" src="https://gitlab.com/ajquinn/emd/badges/master/pipeline.svg" /></a>
Basic Info
- Host: gitlab.com
- Owner: emd-dev
- License: gpl-3.0+
- Default Branch: master
Statistics
- Stars: 26
- Forks: 24
- Open Issues: 9
- Releases: 0
Created over 6 years ago
https://gitlab.com/emd-dev/emd/blob/master/
A python package for Empirical Mode Decomposition and related spectral analyses.
Please note that this project is in active development for the moment - the API may change relatively quickly between releases!
# Installation
You can install the latest stable release from the PyPI repository
```
pip install emd
```
or clone and install the source code.
```
git clone https://gitlab.com/emd-dev/emd.git
cd emd
pip install .
```
Requirements are specified in requirements.txt. Main functionality only depends
on numpy and scipy for computation and matplotlib for visualisation.
# Quick Start
Full documentation can be found at https://emd.readthedocs.org and development/issue tracking at gitlab.com/emd-dev/emd
Import emd
```python
import emd
```
Define a simulated waveform containing a non-linear wave at 5Hz and a sinusoid at 1Hz.
```python
sample_rate = 1000
seconds = 10
num_samples = sample_rate*seconds
import numpy as np
time_vect = np.linspace(0, seconds, num_samples)
freq = 5
nonlinearity_deg = .25 # change extent of deformation from sinusoidal shape [-1 to 1]
nonlinearity_phi = -np.pi/4 # change left-right skew of deformation [-pi to pi]
x = emd.simulate.abreu2010(freq, nonlinearity_deg, nonlinearity_phi, sample_rate, seconds)
x += np.cos(2*np.pi*1*time_vect)
```
Estimate IMFs
```python
imf = emd.sift.sift(x)
```
Compute instantaneous frequency, phase and amplitude using the Normalised Hilbert Transform Method.
```python
IP, IF, IA = emd.spectra.frequency_transform(imf, sample_rate, 'hilbert')
```
Compute Hilbert-Huang spectrum
```python
freq_range = (0, 10, 100) # 0 to 10Hz in 100 steps
f, hht = emd.spectra.hilberthuang(IF, IA, freq_range, sum_time=False)
```
```
Make a summary plot
```python
import matplotlib.pyplot as plt
plt.figure(figsize=(16, 8))
plt.subplot(211, frameon=False)
plt.plot(time_vect, x, 'k')
plt.plot(time_vect, imf[:, 0]-4, 'r')
plt.plot(time_vect, imf[:, 1]-8, 'g')
plt.plot(time_vect, imf[:, 2]-12, 'b')
plt.xlim(time_vect[0], time_vect[-1])
plt.grid(True)
plt.subplot(212)
plt.pcolormesh(time_vect, f, hht, cmap='ocean_r')
plt.ylabel('Frequency (Hz)')
plt.xlabel('Time (secs)')
plt.grid(True)
plt.show()
```
JOSS Publication
EMD: Empirical Mode Decomposition and Hilbert-Huang Spectral Analyses in Python
Published
March 31, 2021
Volume 6, Issue 59, Page 2977
Authors
Andrew J. Quinn
Oxford Centre for Human Brain Activity, Wellcome Centre for Integrative Neuroimaging, Department of Psychiatry, University of Oxford, Oxford, UK
Oxford Centre for Human Brain Activity, Wellcome Centre for Integrative Neuroimaging, Department of Psychiatry, University of Oxford, Oxford, UK
Vitor Lopes-dos-Santos
Medical Research Council Brain Network Dynamics Unit, Nuffield Department of Clinical Neurosciences, University of Oxford, Oxford, OX1 3TH, United Kingdom
Medical Research Council Brain Network Dynamics Unit, Nuffield Department of Clinical Neurosciences, University of Oxford, Oxford, OX1 3TH, United Kingdom
David Dupret
Medical Research Council Brain Network Dynamics Unit, Nuffield Department of Clinical Neurosciences, University of Oxford, Oxford, OX1 3TH, United Kingdom
Medical Research Council Brain Network Dynamics Unit, Nuffield Department of Clinical Neurosciences, University of Oxford, Oxford, OX1 3TH, United Kingdom
Anna Christina Nobre
Oxford Centre for Human Brain Activity, Wellcome Centre for Integrative Neuroimaging, Department of Psychiatry, University of Oxford, Oxford, UK, Department of Experimental Psychology, University of Oxford, Oxford, OX2 6GG, UK
Oxford Centre for Human Brain Activity, Wellcome Centre for Integrative Neuroimaging, Department of Psychiatry, University of Oxford, Oxford, UK, Department of Experimental Psychology, University of Oxford, Oxford, OX2 6GG, UK
Mark W. Woolrich
Oxford Centre for Human Brain Activity, Wellcome Centre for Integrative Neuroimaging, Department of Psychiatry, University of Oxford, Oxford, UK
Oxford Centre for Human Brain Activity, Wellcome Centre for Integrative Neuroimaging, Department of Psychiatry, University of Oxford, Oxford, UK
Tags
Time-series Non-linear DynamicsPapers & Mentions
Total mentions: 2
Genome-wide measurement of spatial expression in patterning mutants of Drosophila melanogaster
- DOI: 10.12688/f1000research.9720.1
- OpenAlex ID: https://openalex.org/W2949842483
- Published: January 2017
Last synced: 3 months ago
The fractal organization of ultradian rhythms in avian behavior
- DOI: 10.1038/s41598-017-00743-2
- OpenAlex ID: https://openalex.org/W2598346570
- Published: April 2017
Last synced: 3 months ago
Committers
Last synced: 4 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Andrew Quinn | a****n@p****k | 425 |
| Andrew Quinn | a****1@g****m | 141 |
| marcoFabus | m****s@n****k | 12 |
| ajquinn | a****n@h****k | 5 |
| Mark Hymers | m****s@y****k | 3 |
| David P. Sanders | d****s@g****m | 2 |
| Jan C. Brammer | j****r@g****m | 2 |
| AJQuinn | A****n@u****m | 1 |
| Evan Edmond | e****d@g****m | 1 |
| Lourenço A. Rodrigues | l****s@g****m | 1 |
| Mark Hymers | m****s@h****k | 1 |
| Mats | m****s@p****k | 1 |
| Roland Widmer | r****r@h****m | 1 |
| mhlg | m****i@m****m | 1 |
Committer Domains (Top 20 + Academic)
psych.ox.ac.uk: 2
mac.com: 1
hankel.co.uk: 1
ynic.york.ac.uk: 1
hbaws34.ohba.ox.ac.uk: 1
ndcn.ox.ac.uk: 1
Issues and Pull Requests
Last synced: 4 months ago
Packages
- Total packages: 2
-
Total downloads:
- pypi 7,340 last-month
-
Total dependent packages: 6
(may contain duplicates) -
Total dependent repositories: 15
(may contain duplicates) - Total versions: 24
- Total maintainers: 1
pypi.org: emd
Empirical Mode Decomposition
- Documentation: https://emd.readthedocs.io/
- License: GNU General Public License v2 or later (GPLv2+)
-
Latest release: 0.8.1
published 10 months ago
Rankings
Dependent packages count: 2.3%
Dependent repos count: 3.7%
Average: 4.1%
Downloads: 6.2%
Maintainers (1)
Last synced:
4 months ago
conda-forge.org: emd
Empirical Mode Decomposition tools in Python
- Homepage: https://pypi.org/project/emd/
- License: GPL-3.0-or-later
-
Latest release: 0.5.5
published over 3 years ago
Rankings
Dependent repos count: 34.0%
Forks count: 35.4%
Average: 41.9%
Stargazers count: 46.8%
Dependent packages count: 51.2%
Last synced:
4 months ago
Dependencies
requirements.txt
pypi
- coverage *
- flake8 *
- ipywidgets *
- joblib *
- matplotlib >=1.1.0
- myst-parser *
- numpy *
- numpydoc *
- pandas *
- pydata-sphinx-theme *
- pytest *
- pytest-cov *
- pyyaml >=5.1
- scipy >1.0.0
- setuptools >=41.0.1
- sphinx_gallery *
