I am using a Matlab code to process the data of EMG during a gait. The code is Below:
raw is the raw EMG, collected with 1500Hz
bandpass=[20,450]; % Bandpas filter
lowpass= 10; % Low pass filter: smooth data
% 1. remove the offset
raw_DC=raw-mean(raw);
% 2. bandpass filter: butterworth, 4th order, 20-450Hz
[b,a] = butter(4, bandpass/750);
raw_band=filtfilt(b,a,raw_DC);
% 3. rectify
raw_rec= abs(raw_band);
% 4. smooth by lowpass filter: 4th order, 10 Hz
[b, a] = butter(4,lowpass/750,'low');
raw_low=filtfilt(b,a,raw_rec);
My question is: I have filtered the EMG with the bandpass filter of 20-450Hz. Does it mean there is no EMG with the frequency below 20Hz? So why I should filter the rectified EMG with lowpass of 10Hz in the end? Or how can I do that, because there is no EMG below 20Hz after the bandpass as I assumed.
Thanks
raw is the raw EMG, collected with 1500Hz
bandpass=[20,450]; % Bandpas filter
lowpass= 10; % Low pass filter: smooth data
% 1. remove the offset
raw_DC=raw-mean(raw);
% 2. bandpass filter: butterworth, 4th order, 20-450Hz
[b,a] = butter(4, bandpass/750);
raw_band=filtfilt(b,a,raw_DC);
% 3. rectify
raw_rec= abs(raw_band);
% 4. smooth by lowpass filter: 4th order, 10 Hz
[b, a] = butter(4,lowpass/750,'low');
raw_low=filtfilt(b,a,raw_rec);
My question is: I have filtered the EMG with the bandpass filter of 20-450Hz. Does it mean there is no EMG with the frequency below 20Hz? So why I should filter the rectified EMG with lowpass of 10Hz in the end? Or how can I do that, because there is no EMG below 20Hz after the bandpass as I assumed.
Thanks
Comment