"Toward Talent Scientist: Sharing and Learning Together" --- Jingwei Too
- This toolbox offers 40 types of EMG features
- The
A_Main
file demos how the feature extraction methods can be applied using generated sample signal.
X
: signal ( 1 x samples )opts
: parameter settings ( some methods have parameters: refer here )
feat
: feature vector ( you may use other name like f1 or etc. )
The main function jfemg
is adopted to perform feature extraction. You may switch the method by changing the 'mav'
to other abbreviations
- If you wish to extract mean absolute value ( MAV ) then you may write
feat = jfemg('mav', X);
- If you want to extract enhanced wavelenght ( EWL ) then you may write
feat = jfemg('ewl', X);
% Generate a sample random signal X
fs = 1000; % Sampling frequency
Ts = 1 / fs; % Period
t = 0 : Ts : 0.25;
X = 0.01 * (cos(2 * pi * fs * t) + randn(1, length(t)));
% Plot sample signal
plot(t,X); grid on
xlabel('Number of samples');
ylabel('Amplitude');
% Enhanced Mean Absolute Value
f1 = jfemg('emav', X);
% Average Amplitude Change
f2 = jfemg('aac', X);
% Waveform Length
f3 = jfemg('wl', X);
% Maximum Fractal Length
f4 = jfemg('mfl', X);
% Root Mean Square
f5 = jfemg('rms', X);
% Feature vector
feat = [f1, f2, f3, f4, f5];
% Display features
disp(feat)
% Generate a sample random signal X
fs = 1000; % Sampling frequency
Ts = 1 / fs; % Period
t = 0 : Ts : 0.25;
X = 0.01 * (cos(2 * pi * fs * t) + randn(1, length(t)));
% Zeros Crossing
opts.thres = 0.01;
f1 = jfemg('zc', X, opts);
% Slope Sign Change
opts.thres = 0.01;
f2 = jfemg('ssc', X, opts);
% Temporal Moment
opts.order = 3;
f3 = jfemg('tm', X, opts);
% Feature vector
feat = [f1, f2, f3];
% Display features
disp(feat)
- Some methods contain parameter to be adjusted. If you do not set the parameter then the feature will be extracted using default setting
- For convenience, you may extract the feature with parameter using default setting as following. That is, you don't have to set the
opts
feat = jfemg('zc', X);
- You can use
opts
to set the parameterthres
: thresholdorder
: the number of orders
No. | Abbreviation | Name | Parameter ( default ) |
---|---|---|---|
40 | 'emav' |
Enhanced Mean absolute value | - |
39 | 'ewl' |
Enhanced Wavelength | - |
38 | 'fzc' |
New Zero Crossing | - |
37 | 'asm' |
Absolute Value of Summation of exp root | - |
36 | 'ass' |
Absolute Value of Summation of Square Root | - |
35 | 'msr' |
Mean Value of Square Root | - |
34 | 'ltkeo' |
Log Teager Kaiser Energy Operator | - |
33 | 'lcov' |
Log Coefficient of Variation | - |
32 | 'card' |
Cardinality | opts.thres = 0.01 |
31 | 'ldasdv' |
Log Difference Absolute Standard Deviation | - |
30 | 'ldamv' |
Log Difference Absolute Mean Value | - |
29 | 'dvarv' |
Difference Variance Value | - |
28 | 'vo' |
V-Order | opts.order = 2 |
27 | 'tm' |
Temporal Moment | opts.order = 3 |
26 | 'damv' |
Difference Absolute Mean Value | - |
25 | 'ar' |
Auto-Regressive Model | opts.order = 4 |
24 | 'mad' |
Mean Absolute Deviation | - |
23 | 'iqr' |
Interquartile Range | - |
22 | 'skew' |
Skewness | - |
21 | 'kurt' |
Kurtosis | - |
20 | 'cov' |
Coefficient of Variation | - |
19 | 'sd' |
Standard Deviation | - |
18 | 'var' |
Variance | - |
17 | 'ae' |
Average Energy | - |
16 | 'iemg' |
Integrated EMG | - |
15 | 'mav' |
Mean Absolute Value | - |
14 | 'ssc' |
Slope Sign Change | opts.thres = 0.01 |
13 | 'zc' |
Zero Crossing | opts.thres = 0.01 |
12 | 'wl' |
Waveform Length | - |
11 | 'rms' |
Root Mean Square | - |
10 | 'aac' |
Average Amplitude Change | - |
09 | 'dasdv' |
Difference Absolute Standard Deviation Value | - |
08 | 'ld' |
Log Detector | - |
07 | 'mmav' |
Modified Mean Absolute Value | - |
06 | 'mmav2' |
Modified Mean Absolute Value 2 | - |
05 | 'myop' |
Myopulse Percentage Rate | opts.thres = 0.016 |
04 | 'ssi' |
Simple Square Integral | - |
03 | 'vare' |
Variance of EMG | - |
02 | 'wa' |
Willison Amplitude | opts.thres = 0.01 |
01 | 'mfl' |
Maximum Fractal Length | - |
@article{too2019classification,
title={Classification of hand movements based on discrete wavelet transform and enhanced feature extraction},
author={Too, Jingwei and Abdullah, Abdul Rahim and Saad, Norhashimah Mohd},
journal={International Journal of Advanced Computer Science and Applications},
volume={10},
number={6},
pages={83--89},
year={2019}
}
@article{too2019emg,
title={EMG feature selection and classification using a Pbest-guide binary particle swarm optimization},
author={Too, Jingwei and Abdullah, Abdul Rahim and Mohd Saad, Norhashimah and Tee, Weihown},
journal={Computation},
volume={7},
number={1},
pages={12},
year={2019},
publisher={Multidisciplinary Digital Publishing Institute}
}