The decomposition is achieved via a recursive process called sifting algorithm. There are four main steps in the sifting algorithm: firstly, finding the local maxima and minima of the signal, and then fitting those extrema by cubic spline interpolation in order to obtain the upper and lower envelopes; secondly, calculating the mean of upper and lower envelopes and subtracting it from the original signal; thirdly, recursively implementing the first two steps until the remaining signal satisfy the two criteria of IMF: (1) the number of extrema and the number of zero crossing points cannot differ by more than one; (2) the mean value of upper envelope and lower envelope must be zero Huang et al. (1998); fourthly, subtracting the obtained IMF from the original signal and implementing the aforementioned three steps recursively on the remaining signal until the residual becomes either too small or a monotonic function.