EMG during Walking : On/Off detection

9 次查看(过去 30 天)
I would like to define an accurate threshold to detect ON/OFF bursts.
Please find attached my EMG signal (rectified).
I am able to code when the muscle activity exceeds the double or triple SD rang (i.e. the muscle is defined to be
“On” or activated).
Threshold=std(A(1:800,1)).*(2.5)
if A>Threshold
DataON=A>Threshold
DataONOFF=diff(DataON)
BUT : Because single spontaneous spikes can easily exceed the SD range, I need to define
a minimum time (minimum subperiod duration) that the EMG signal has to constantly stay OVER the threshold
to be accepted as “On” (e.g. 50 ms). So I would like to translate something like that :
if A>Threshold (and data over threshold during 50 ms)
  2 个评论
Star Strider
Star Strider 2024-2-9
The 'Threshold' value is really low — about 17.5 — with the peaks in the range of 100 to 2000. Also, the sampling frequency is missing, so it’s not possible to determine the activation duration. I would use a differerent approach to this, however I first need to understand what exactly you want to do.
It would also help to know what release you’re using, and if you have the Signal Processing Toolbox.
Marie-Caroline
Marie-Caroline 2024-2-9
The sampling frequency is 2000 Hz.
My objective is to define subperiods (each walking step) within my entire trial.
I use Matlab R2023b and have the Signal processing Toolbox.
Many thanks in advance for your help !

请先登录,再进行评论。

采纳的回答

Alex Wu
Alex Wu 2024-3-25
Hi Marie-Caroline
You may find sigrangebinmask useful.
Please check this example Label High-Amplitude Regions in EMG Signal, where we use sigrangebinmask function to label regions where the EMG amplitude is greater than 0.25 (threshold) for at least 0.5 seconds (minimum subperiod duration).

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Spectral Measurements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by