I want to move an analysis pipeline from Matlab to Python. I'm noticing a slight difference between the IMFs generated by the emd function in Matlab and those created by the emd.sift.sift function for Python. Specifically, I'm calling:

imf = emd(signal,'SiftRelativeTolerance',0.1,'MaxNumIMF',4) #matlab
imf = emd.sift.sift(signal, sift_thresh=0.1, max_imfs=4) #python

And obtain the following IMFs: enter image description here

Comparing the two functions, I can't really figure out what may be driving the difference. Does anyone know what may be causing this (and how to fix it)?


Matlab emd

Python emd



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.