Linear envelope of an EMG signal
61 views (last 30 days)
Show older comments
Ines Shekhovtsov
on 29 Nov 2022
Commented: Mathieu NOE
on 7 Dec 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
0 Comments
Accepted Answer
Mathieu NOE
on 30 Nov 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 Comments
More Answers (0)
See Also
Categories
Find more on Get Started with Signal Processing Toolbox 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!