How can i filter ECG signals with high motion artifact ?

10 views (last 30 days)
I am working on a mini project where we need to analyse ECG signals for people while running on treadmill, all the codes I've found do not eliminate the high peaks resulted from motion of the person so i cant detect the R peaks. Could anyone help me please because this is the first time for me dealing with Matlab >< am really lost

Answers (1)

Star Strider
Star Strider on 26 Feb 2016
First, do a fft on your data, to see what the frequency of the baseline drift is. It should be much lower than your EKG frequencies. Then, if you have the Signal Processing Toolbox, design a bandpass filter with the low frequency cutoff high enough to eliminate your baseline drift (usually 1 to 5 Hz), and a high frequency cutoff of between about 45 to 100 Hz, depending on your signal. (My filter design procedure is here: How to design a lowpass filter for ocean wave data in Matlab?) You may also need a notch filter to eliminate mains frequency noise. That’s in the MATLAB documentation: Remove the 60 Hz Hum from a Signal. Filter design usually requires some experimentation, so you will have to determine what frequencies are best for your signals. Be sure to sample them with a sampling frequency of at least 250 Hz so that your filters will work most efficiently. If you sample at a lower frequency, you may not be able to design the filter you want.
  10 Comments
Ru'a Khaled
Ru'a Khaled on 28 Feb 2016
oh!! am sorry that you had to spend all that time to help me ..and thank you for your advice ^^
Star Strider
Star Strider on 28 Feb 2016
My pleasure!
That is typical for filter design. I wanted to be sure I gave you a filter that worked correctly and was as robust as I could design it.
Also, if my Answer solved your problem, please Accept it.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!