Name

emd_online — (On Line Empirical Mode Decomposition) computes on-line EMD

Calling Sequence

   [imf,ort,nbit] = emd_online(x)
   [imf,ort,nbit] = emd_online([],x)
   [imf,ort,nbit] = emd_online(t,x)
   [imf,ort,nbit] = emd_online([],x,stop)
   [imf,ort,nbit] = emd_online(t,x,stop)
   [imf,ort,nbit] = emd_online([],x,stop,nbpresift)
   [imf,ort,nbit] = emd_online(t,x,stop,nbpresift)
   [imf,ort,nbit] = emd_online([],x,stop,nbpresift,tst)
   [imf,ort,nbit] = emd_online(t,x,stop,nbpresift,tst)
   [imf,ort,nbit] = emd_online(t,x,stop,nbpresift,tst,tst2)
   [imf,ort,nbit] = emd_online(t,x,stop,nbpresift,tst,tst2)
   

Parameters

inputs:

- x :

analyzed signal

- t (optional) :

sampling times (default : 1:length(x))

- stop (optional) :

threshold, and threshold2 (optional) tolerance, and tolerance2 (both optional) for sifting stopping criterion default : [0.05,0.5,20,100]

- nbpresift (optional) :

number of sifting by blocks iterations (default 4)

- tst (optional) :

if equals to 1 shows sifting steps

- tst2 (optional) :

if equals to 1 shows sifting by blocks steps

outputs:

- imf :

intrinsic mode functions (last line = residual)

- ort :

index of orthogonality

- nbits :

number of iterations for each mode

Description

IMPORTANT: EMD_ONLINE does not truly apply EMD on-line but it does AS IF. It is rather a demonstration that EMD can be applied on-line.

stopping criterion for sifting : at each point : mean amplitude < threshold*envelope amplitude if mean amplitude > mtlb_max(envelope amplitude)/tolerance & at each point : mean amplitude < threshold2*enveloppe amplitude if mean amplitude > mtlb_max(envelope amplitude)/tolerance2

Examples

s = rand(1,512,'normal');
imf = emd_local(s);
emd_visu(s,imf);
See  Also
local_peaks
io
   

Authors

H. Nahrstaedt - Aug 2010
G. Rilling, July 2002
gabriel.rilling@ens-lyon.fr