ECG Noise Removal Using Segmented-beat Modulation

For some strange reason, I stumbled with a paper that I had downloaded long time ago. It explains a simple algorithm for removing artifacts in ECG signal.

A complete, detailed explanation of it can be found in

Agostinelli, Angela, Corrado Giuliani, and Laura Burattini. “Extracting a clean ECG from a noisy recording: a new method based on segmented-beat modulation”. Computing in Cardiology Conference (CinC), 2014. IEEE, 2014.

Since I have a short time-off after the submission of my PhD thesis (yey!), I thought it would be cool to actually code the algorithm and give it a go. Please note that my only contribution is the implementation of the algorithm in Python and MATLAB. Full credit for the algorithm itself goes to the authors of the paper (if you use it, don’t forget to reference it properly!).

Top: median cardiac cycle. Bottom: clean ECG signal in blue; (removed) motion artifact in gray.

You can find the submission in my Github repository, which includes sample ECG data (as a .mat file) as well as a main/demo file, which I suggest you to try in order to understand how it works. The scripts include plenty of comments in which I tried to explain each of the steps as clear as possible. If you still have questions about the implementation or, even better, suggestions for its improvement, please leave a comment here or file a new issue in Github.