Linear envelope of an EMG signal

66 visualizaciones (últimos 30 días)
Ines Shekhovtsov
Ines Shekhovtsov el 29 de Nov. de 2022
Comentada: Mathieu NOE el 7 de Dic. de 2022
Hello,
I am trying to plot an RMS envelope over a single EMG signal from a respiratory muscle. The data was collected at 2000Hz. Prior to envelope calculation and plot i bandpassed the signal using a 6th order butterworth filter from 30-300Hz. For my envelope calculation, i have the following code:
[up,lo]=envelope(RUT,100,'rms');
I wish to plot the upper envelope on top of the original signal and so my code is:
plot(Time,RUT,Time,up,'lineWidth',0.1)
I am expecting the upper envelope to be higer up to the top of the signal and am not sure why it isn't. In all of the examples i've seen for Matlab, the upper envelope hugs the sigal more close to the top. So i am just curious if i did something wrong and what i can do to correct it.
Thank you in advance! My reference figure screenshot is attached below

Respuesta aceptada

Mathieu NOE
Mathieu NOE el 30 de Nov. de 2022
hello Ines
there is no bug here , the plot is correct vs what matlab is supposed to do
when you select 'rms' option, you cannot have the envelope on the 'top' of signal , because the rms of a signal is always less than the spikes amplitude.
here the demo code (from the matlab help) :
load('train');
envelope(y,150,'rms');
will give you this result (lo and up envelopes are displayed here)
now if you use 'peak' option, this is maybe what you wanted :
envelope(y,150,'peak');
  14 comentarios
Ines Shekhovtsov
Ines Shekhovtsov el 6 de Dic. de 2022
Thank you for your help!
Mathieu NOE
Mathieu NOE el 7 de Dic. de 2022
as always, my pleasure !

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Get Started with Signal Processing Toolbox en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by