laszukdawid / PyEMD

Python implementation of Empirical Mode Decompoisition (EMD) method
https://pyemd.readthedocs.io/
Apache License 2.0
867 stars 224 forks source link

Type of noise added for EEMD #89

Closed pgupta18 closed 3 years ago

pgupta18 commented 3 years ago

Hello Sir, I have a question. The theory of EEMD says that different noise should be added in each trial. In your source code of EEMD, 0.05 standard deviation is mentioned for Gaussian noise by default. Is it means that only Gaussian noise is added in the signal for each trail? or I am missing something?

laszukdawid commented 3 years ago

Hey,

I think I've already answered this in an email but for anyone else looking for answer to this: Yes, only normal (Gaussian) noise is added.

However, to highlight, it isn't about type of noise but about properties of the noise. In ensemble theory, noise adds the infinite perturbation in all direction to exhaust all potential decompositions and obtain the "mean" with "errors". In case of linear system any perturbation would result in additive term which means that all these perturbations would cancel each other out. EMD isn't a linear system and in fact it's rather sensitive to tiny perturbations so that's all a bit wishy-washy. However, the whole system is empirical and so this method is also empirical, so all is good.

Maybe a bit more formally, the assumption is (if I recall correctly): E[ EMD(S + N) ] --> EMD( E[S + N] ) --> EMD( E[S] + E[N] ) -> EMD(S)

where E is an estimate (mean), S is the signal and N is the noise. This means, but again, please check this, any "noise" that is stationary and with zero estimate can be use instead of Gaussian.

Also, in theory the std value doesn't matter, since in theory we have infinite executions. In practise, however, we really want that noise estimate to be close to zero which means either larger ensemble (n), or small amplitude (A) as the E[N] ≈ sum(A) / N.

Hope this helps at least a bit.

laszukdawid commented 3 years ago

Closing issue as there hasn't been response in a long while.