Noise sensitivity of the (classical) Empirical Mode Decomposition routine

I tried to apply a MATLAB Empirical Mode Decomposition routine to denoise a signal, basically retaining only the last IMFs, with a criterion based on the mode energy.

To validate the routine, I have built a synthetic signal with added Gaussian noise + a sinusoidal disturbance. I noticed that the EMD routine (at least mine) seems very sensitive to the noise. In fact, if I launch it twice, the generated noise is of course different and the IMFs are also quite different.

Do you have any suggestions on how to "stabilize" the routine?

Indeed, at least in my experience, computing IMFs can be sensitive to borders, impulse signals and noise realizations. As you are interested in wavelets, note that in Empirical mode decomposition as a filter bank a link is made with DWT:

we report here on numerical experiments based on fractional Gaussian noise. In such a case, it turns out that EMD acts essentially as a dyadic filter bank resembling those involved in wavelet decompositions

Finally, there are regularized EMD schemes than apparently stabilize EMD decomposition, see for instance: A multicomponent proximal algorithm for empirical mode decomposition and related papers by this team.

I'm sure you came across Ensemble. Spr EMD.

I forget where I read this (not my idea) but I have in my head a technique that is basically to add a higher frequency sine wave on top of your signal.

The frequency of wave you add needs to be far from frequency of interest. Speculating as to how this could help I would say the high freq content of your added noise gets pulled toward this added tone by the EMD dyadic nature.

• I have one point: does the EEMD also reduce the sensitivity to perturbations or does it only reduce the "mode mixing" problems? Commented Oct 3, 2020 at 17:18