I am using Delsys Bagnoli EMG System to acquire sEMG from forearm muscles. When I use Delsys EMGworks application, output signals are clean as expected with minor interferences. However, when I use the following Matlab script to acquire the signal unusual signal pattern occured (spikes).
%% EMG initialize raw = zeros(1,6); % EMG setup emg = daq.createSession('ni'); ch1 = addAnalogInputChannel(emg, 'Dev1', 0, 'Voltage'); ch2 = addAnalogInputChannel(emg, 'Dev1', 1, 'Voltage'); ch3 = addAnalogInputChannel(emg, 'Dev1', 2, 'Voltage'); ch4 = addAnalogInputChannel(emg, 'Dev1', 3, 'Voltage'); ch5 = addAnalogInputChannel(emg, 'Dev1', 4, 'Voltage'); ch6 = addAnalogInputChannel(emg, 'Dev1', 5, 'Voltage'); emg.Rate = 4000; % sampling rate lh = emg.addlistener('DataAvailable',@stopWhenExceed); emg.NotifyWhenDataAvailableExceeds = 400; % data per one feature set (total of all channels) emg.IsContinuous = true; emg.startBackground(); while 1 % check the existing time.mat file time(end + 1 : end + 1, 1) = str2double(datestr(now,'SS.FFF')); pause(0.01); % this pause should be there to acquire EMG data if (getGlobalSx==0) % if new set of data is available data = getGlobalx; % aquire data setGlobalSx(1); end raw(end +1:end+400, : ) = data; end
ANSWER
Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.
I realized that the pause we provide to the code to acquire EMG data should be equal to the,
emg.NotifyWhenDataAvailableExceeds / emg.Rate
while 1 % check the existing time.mat file time(end + 1 : end + 1, 1) = str2double(datestr(now,'SS.FFF'));
SEE MORE ANSWER CLICK THE LINK
https://www.matlabsolutions.com/resources/how-to-design-multirate-filter-system-for-emg-signals.php
Comments
Post a Comment