examples.rst
Examples
********
Some examples can be found in PyEMD/example directory.
EMD
===
Quick start
-----------
In most cases default settings are enough. Simply
import :py:class:`EMD` and pass your signal to `emd` method.
.. code:: python
from PyEMD import EMD
s = np.random.random(100)
emd = EMD()
IMFs = emd.emd(s)
Something more
``````````````
Here is a complete script on how to create and plot results.
.. code:: python
from PyEMD import EMD
import numpy as np
import pylab as plt
# Define signal
t = np.linspace(0, 1, 200)
s = np.cos(11*2*np.pi*t*t) + 6*t*t
# Execute EMD on signal
IMF = EMD().emd(s,t)
N = IMF.shape[0]+1
# Plot results
plt.subplot(N,1,1)
plt.plot(t, s, 'r')
plt.title("Input signal: $S(t)=cos(22\pi t^2) + 6t^2$")
plt.xlabel("Time [s]")
for n, imf in enumerate(IMF):
plt.subplot(N,1,n+2)
plt.plot(t, imf, 'g')
plt.title("IMF "+str(n+1))
plt.xlabel("Time [s]")
plt.tight_layout()
plt.savefig('simple_example')
plt.show()
The Figure below was produced with input:
:math:`S(t) = cos(22 \pi t^2) + 6t^2`
|simpleExample|
EEMD
====
Simplest case of using Ensemble EMD (EEMD) is by importing `EEMD` and passing your signal to `eemd` method.
.. code:: python
from PyEMD import EEMD
import numpy as np
import pylab as plt
# Define signal
t = np.linspace(0, 1, 200)
sin = lambda x,p: np.sin(2*np.pi*x*t+p)
S = 3*sin(18,0.2)*(t-0.2)**2
S += 5*sin(11,2.7)
S += 3*sin(14,1.6)
S += 1*np.sin(4*2*np.pi*(t-0.8)**2)
S += t**2.1 -t
# Assign EEMD to `eemd` variable
eemd = EEMD()
# Say we want detect extrema using parabolic method
emd = eemd.EMD
emd.extrema_detection="parabol"
# Execute EEMD on S
eIMFs = eemd.eemd(S, t)
nIMFs = eIMFs.shape[0]
# Plot results
plt.figure(figsize=(12,9))
plt.subplot(nIMFs+1, 1, 1)
plt.plot(t, S, 'r')
for n in range(nIMFs):
plt.subplot(nIMFs+1, 1, n+2)
plt.plot(t, eIMFs[n], 'g')
plt.ylabel("eIMF %i" %(n+1))
plt.locator_params(axis='y', nbins=5)
plt.xlabel("Time [s]")
plt.tight_layout()
plt.savefig('eemd_example', dpi=120)
plt.show()
|eemdExample|
.. |simpleExample| image:: https://github.com/laszukdawid/PyEMD/raw/master/example/simple_example.png
:align: middle
:alt: Oh, the quality. Please click on the image for better resolution.
:target: https://github.com/laszukdawid/PyEMD/raw/master/example/simple_example.png
.. |eemdExample| image:: https://github.com/laszukdawid/PyEMD/raw/master/example/eemd_example.png?raw=true
:width: 720px
:height: 540px