Counting sEMG RMS Peaks
Show older comments
I am reaching out to see if I can get some assistance. I am using the Signal Processing Toolbox to analyze RMS sEMG signals. Is it possible to have the Signal Processing Toolbox to average the peak amplitudes within a certain time period? Also, is it possible to obtain the slopes of all the peak amplitude to examine out the burst pattern changes over time? If so, how is this performed?
Thank you for any assistance anyone can provide.
Accepted Answer
More Answers (1)
Chris Myers
on 10 Jan 2019
Edited: Chris Myers
on 10 Jan 2019
0 votes
3 Comments
Star Strider
on 10 Jan 2019
As always, my pleasure.
The EMG has a mean of 0, if I remember correctly. So it seems to me that you want the RMS value over the burst. Squaring the energy in the burst to ‘rectify’ it, then integrating it and taking the square root would likely work.
Another option would be to take the absolute value of the burst (actual full-wave rectification), and then integrating it with the trapz function. Then divide by the length of the burst to get the mean amplitude.
A third option would be to either use a lowpass filter or the envelope function to detect the envelope of a full-wave rectified signal, then use the trapz function to integrate the derived envelope, and divide by the length of the burst to get the mean amplitude.
I’ve not done anything with EMG signals in a while, so perhaps looking through the literature to see how others did this would be best (especially if there’s a generally-accepted method that you could reference in your ‘Materials and Methods’ section). If you use a generally-accepted method, you would not also have to ‘prove’ that your method provides reliable data.
If you can find such a published method and need help programming it, attach the PDF of the paper that describes it in sufficient detail to a Comment here. I’ll do what I can to help you write code to implement it.
Chris Myers
on 10 Jan 2019
Star Strider
on 11 Jan 2019
As always, my pleasure.
The essence of their signal processing appears to be in References 33-36. (The article in 36 is not available online for free. I cannot find any freely-available description of the Lee and Sung algorithm anywhere, so I cannot help you with it.)
Their signal; processing approach appears to be full-wave rectification and filtering, so I would use the techniques I outlined, along with the filter frequency parameters they used. (The elliptical filters created by the lowpass function are superior to the Butterworth designs they used.) I would use the lowpass function to do the filtering. Design the filter once (this is the second ‘d’ output of the function, so save it to the variable name of your choice), and then use it with the filtfilt function to filter your signals (not filter as suggested in the documentation).
I’m not sure I can help with the Lee and Sung algorithm even if I have it. I will nevertheless at least look at it of you can provide a detailed description of it and its application in this context.
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!