Skip to main content

Empirical Mode Decomposition

Project description

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

import emd

Define a simulated waveform containing a non-linear wave at 5Hz and a sinusoid at 1Hz.

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

imf = emd.sift.sift(x)

Compute instantaneous frequency, phase and amplitude using the Normalised Hilbert Transform Method.

IP, IF, IA = emd.spectra.frequency_transform(imf, sample_rate, 'hilbert')

Compute Hilbert-Huang spectrum

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()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

emd-0.5.5.tar.gz (78.9 kB view details)

Uploaded Source

Built Distributions

emd-0.5.5-py3.7.egg (153.5 kB view details)

Uploaded Egg

emd-0.5.5-py2.py3-none-any.whl (83.1 kB view details)

Uploaded Python 2Python 3

File details

Details for the file emd-0.5.5.tar.gz.

File metadata

  • Download URL: emd-0.5.5.tar.gz
  • Upload date:
  • Size: 78.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/59.5.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for emd-0.5.5.tar.gz
Algorithm Hash digest
SHA256 f44a1871c72a0599f6197fef08de61cf3742ce49d134e505852c1a6b24d13966
MD5 fa4cdbc818678de72ae98d44d922956e
BLAKE2b-256 b2929f720560313869aaa0ded09cf0785597ddeca58800bdb31ed718d4b676d2

See more details on using hashes here.

File details

Details for the file emd-0.5.5-py3.7.egg.

File metadata

  • Download URL: emd-0.5.5-py3.7.egg
  • Upload date:
  • Size: 153.5 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/59.5.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for emd-0.5.5-py3.7.egg
Algorithm Hash digest
SHA256 2ad69908f45f9833262211c0a529ce347a4de2b41aa1a8359ca588b58540a0bc
MD5 fbbb08051bd28fe456f95e561dcf1899
BLAKE2b-256 a1ebcafa3eeedd48ba50db47e235c6381c333242c2db545c352e2b8fcf5855af

See more details on using hashes here.

File details

Details for the file emd-0.5.5-py2.py3-none-any.whl.

File metadata

  • Download URL: emd-0.5.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 83.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.26.0 setuptools/59.5.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for emd-0.5.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2f7ec91e51f5e6e40929e769c14a0a077095ad10d2f6d4f078b10c41388f626f
MD5 5f6b9944c460afae0a238e9b050f628e
BLAKE2b-256 aab5317804193b67ddb1e6bbb7b945c98ad8e63a4f6cfc40158659285f9ea03d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page