Because I always promised I was going to, I’m posting my work on a real-time (online) implementation of the Empirical Mode Decomposition. The original application was an extension of Chappell and Payne’s system for detecting gas emboli using Doppler ultrasound, but I believe the applications for an online EMD implementation are much wider.
For those not in the know, the Empirical Mode Decomposition (EMD) is an algorithm for signal processing in the time domain, as opposed to the Fourier Transform and Wavelet transforms, which are frequency-domain approaches. At the time I wrote this there was no decent implementation of the EMD for streaming data, so I tried to write one. I won’t say I was successful, but I like to think I took some steps in the right direction.
- My thesis document, “Online Empirical Mode Decomposition”, L. Yip 2010
- My MATLAB code. Released under the Apache License 2.0, which permits any kind or reuse or modification provided you preserve the copyright notice and disclaimer. See Appendix B of the thesis document for usage instructions. Please tell me if you find it useful!
The thesis document should be considered the documentation for the MATLAB code (that is, read them both.) The MATLAB code is heavily based on some prior work, in particular Rilling, Flandrin and Goncalves (2003), and Meeson (2003). See the thesis document for full references/acknowledgements.