Empirical Mode Decomposition in Julia
Install this way.
Pkg.add("https://github.com/jarrison/EMD.jl")
Set-up a signal to be decomposed using the EMD.
julia> using EMD, Plots
julia> t = LinRange(0,1.0,10^3)
julia> s = 3*sin.(2π*8*t) + sin.(2π*4*t)
Apply the decomposition with default values.
julia> imfs = sEMD(s)
julia> plot(imfs)
Typically we want fewer IMFs, the number of sifts will greatly affect the orthogonality of the resulting IMFs.
julia> imfs = sEMD(s,maximfs=5, nsifts=2)
julia> plot(imfs)
Order-Statistics envelopes for extracting IMFs.
(1) Li, H.; Hu, Y.; Li, F.; Meng, G. Succinct and Fast Empirical Mode Decomposition. Mech. Syst. Signal Process. 2017, 85 (August 2015), 879–895.
B-Spline midpoint interpolation method.
(2) Li, H.; Wang, C.; Zhao, D. An Improved EMD and Its Applications to Find the Basis Functions of EMI Signals. 2015, 2015.