DIGITAL IC DESIGN LAB
(SEGMENT - 1)
MICROELECTRONICS AND VLSI DESIGN
SUBMITTING BY : GUIDED BY :
VIKAS CHANDRAKAR (EE24MTECH14120 PROF.AMIT ACHARYYA
RAJ KUMAR (EE24MTECH11035) CHEDULURI GANESH(TA)
HARSHAVARDHAN(EE24MTECH14002) DIPTASRI GHOSH(TA)
Evaluation of feature extraction techniques and
classifiers for finger movement recognition using
surface electromyography signal Data!
Assignment work report
(Segment 1-2)
MICROELECTRONICS AND VLSI DESIGN
Submitted by
VIKAS CHANDRAKAR (EE24MTECH14120
RAJ KUMAR (EE24MTECH11035)
HARSHAVARDHAN(EE24MTECH14002)
Under the Supervision of
Prof.Amit Acharyya
Cheduluri Ganesh(TA)
Diptsri Ghosh(TA)
Table of Contents: Page No:
1. Abstract 4-5
2. Introduction 6-7
3. Theory 8-11
4. Materials and Methods 12-15
5. Implimentaion of C code 13-27
6. Result 28-42
7. Discussion 43
8. Conculsion 44
9. Reference 45
Abstract
Electromyography (EMG) in a bio-driven system is used as a
control signal, for driving a hand prosthesis or other wearable
assistive devices. Processing to get informative drive signals
involves three main modules: preprocessing, dimensionality
reduction, and classification. This paper proposes a system for
classifying a six-channel EMG signal from 14 finger movements.
A feature vector of 66 elements was determined from the six-
channel EMG signal for each finger movement. Subsequently,
various feature extraction techniques and classifiers were tested
and evaluated. We compared the performance of six feature
extraction techniques.In addition, we also evaluated the
performance of seven classifiers consisting of support vector
machine (SVM), linear classifier (LC), naive Bayes (NB), k-nearest
neighbors (KNN), radial basis function extreme learning machine
(RBF-ELM), adaptive wavelet extreme learning machine (AW-
ELM), and neural network (NN). The results showed that the
combination of SRELM as the feature extraction technique and
NN as the classifier yielded the best classification accuracy of
99%, which was significantly higher than those from the other
combinations tested.
1.Introduction
The loss of finger functions is a major disability that limits
everyday capabilities and interactions [1]. Hence, myoelectric
control-based devices using residual muscles, such as the
muscles of the shoulder and/or arm, are used for improving the
quality of life for people with physical disabilities [2, 3]. Surface
electromyography (EMG) observes electrical activities of the
muscles by detection with surface electrodes [4]. The EMG signal
contains useful information related to muscular activity,
neuromuscular disease, and movements intended [5]. It can be
used for controlling a prosthetic arm or hand, as well as with
other devices such as a wheelchair, a mouse, and a keyboard.
This requires that the pattern of an EMG signal is classified into a
predefined class that is matched with the command for
controlling the device [6, 7]. A finger movement classification
system consists of three main modules, namely preprocessing,
dimensionality reduction, and classification. In the preprocessing
module,a D-dimensional vector of numerical features is
generated from each segment of EMG data. Then, to increase the
classification accuracy and decrease the computational
complexity, the dimensionality reduction techniques are applied
in the second module. As a result, a d-dimensional vector is
obtained. Note that the dimension of the reduced feature vector
is smaller than the dimension of the original feature vector
Finally, the reduced feature vector is used as an input of a
classifier for finger movement classification in the last module.
When the number of movements to be classified was small, the
dimensionality reduction was not applied because the dimension
of the original feature vector was also not high. Classification of
eight finger movements was proposed in [8] using mean absolute
value (MAV), and the spectra from Gabor transform as feature
values. The number of EMG channels was 2, resulting in the
dimension of the feature vector 16. The classification ac curacy
was 85.10%. Uchida et al. [9] reported that the classification
accuracy of five finger movements with the feature values based
on fast Fourier transform (FFT) was 86% when the feature vector
with dimension 20 (10 FFT coefficients × two-channel EMG) was
used. When the number of movements to be classified increases,
the number of elements in the feature vector increases to
improve the classification accuracy. The high-dimensional
feature vector has been proposed by combining time domain,
frequency domain, and/or statis tical feature values. However,
the increase in the dimension of feature vector can introduce
redundancy and add to the computational complexity of
classification. Therefore, various dimensionality reduction
techniques were proposed to reduce the redundancy and
computational complexity [10]. There are two main strategies of
dimensionality reduction, i.e., feature extraction and feature
selection.
2 Theory
2.1 Preprocessing methods
In the preprocessing methods, we transform segments of EMG
data into an original feature vector. Feature values, which are
elements of the original feature vector, are usually determined
from the EMG data in the time domain and/or the frequency
domain [6]. Recent studies have proposed further feature values
based on statistical methods. In this paper, we used Hudgins’s
feature set [2, 3, 19]: MAV, waveform length (WL), zero crossing
(ZC), and slope sign change (SSC), which are popular time domain
features used in previous studies. In addition, we also used the
fourth-order autoregressive (AR) coefficient for representing
information on the prediction model [12, 20], mean frequency
(MNF) for representing information on the power spectral
density [21] for representing information on peakedness of
distribution [22], and skewness (SKW) for representing
information on the symmetry of distribution in the EMG signal
[13]. As a result, the original feature vector of 11 elements from
each segment of EMG data per EMG channel con sists of (1) MAV,
(2) WL, (3) ZC, (4) SSC,(5) MNF. The detailed mathematical
definition of each feature is as follows:
(1) MEAN ABSOLUTE VALUE :
MAV represents the signal energy, which is
frequently used for detecting the onset of an EMG
signal. MAV feature is the average of the absolute
value of the EMG signal. It can be defined as [2]
where xi is the amplitude of the EMG signal at sample
i and N is the length of the EMG signal
(2) WILSON LENGTH :
WL is the cumulative length of the EMG
waveform over the segment and is indicative of the
complexity of the EMG signal
(3) ZERO CROSSINGS
ZC is the number of times that the EMG
signal amplitude crosses zero.In other words,it is
the number of times that the signal amplitude
changes its sign.A threshold must be set to
reduce the noise (i.e., threshold was set to
10μV).It can be defined as[2]
(4) SLOPE SIGN CHANGES
SSC is the number of times that the slope of
the EMG signal changes sign.It is defined as[2]
(5) MEAN FREQUENCY
MNF is the average frequency. It is defined as
the sum of the product of power spectrum and
frequency divided by the total spectrum intensity,
which can be expressed as
Where fj is the frequency of spectrum at frequency
bin, j, Pj is the EMG power spectrum at frequency bin
j, and M is the number of bins. It can be expressed
as[2]
3 Materials and methods
3.1 EMG data acquisition and experimental setup
A commercial EMG measurement system (Mobi6-6b,
TMS International B.V.) with built-in band-pass filter
(20–500 Hz) and amplifier with a gain factor of 19.5
was used for recoding EMG signals at a sampling rate
of 1024Hz. The EMG signals from six forearm muscles
were recorded using 12 pairs of bipolar disposable
Ag/AgCl electrodes (H124SG, Kendel ARBO) with an
inter-electrode distance of 20 mm. In addition, an
Ag/AgCl electrode was placed on the wrist to provide
a common ground reference. Figure 1 (left) shows
the electrode placements on the six forearm muscles
used for EMG data acquisition. While the first group
of muscles, namely extensor carpiulnaris (CH6),
extensor carpi radialis longus (CH5), and extensor
digitorum (CH4), is located on the posterior
compartment of the forearm to perform extension at
the fingers, the second group of muscles, namely
flexor carpiulnaris (CH3), palmaris longus (CH2), and
flexor carpi radialis (CH1), is located on the anterior
compartment of the forearm to produce flexion at
the fingers.
3.2 Methods
Figure 3 shows the method for evaluating feature
extraction techniques and classifiers used in
recognizing the EMG signals from finger movements
in this paper. After six channels of EMG signals from
14 hand and finger movements were acquired, they
were processed using the analytical method
consisting of five steps, i.e., (1) segmentation, (2)
feature generation, (3) feature extraction, (4)
performance evaluation with RES index, and (5)
performance evaluation with classifiers. The details
on each step are as follows: Sample of Feature :
4.Implimentaion Of Feature Extraction In
C Language
From The Above mentioned Feature
Extraction Logic we Just implemented in the C
language respectively. The C language is run in the
Xilinx Vivado Via FPGA Platform. The Code Follow as:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define TOTAL_VALUES 1024
#define GROUP_SIZE 128
#define TOTAL_GROUPS 8
#define THRESHOLD 10
#define M 128 // Number of frequency bins
// Function to calculate RMS of a group
double rms_emg(int signal[], int n) {
double sum = 0.0;
for (int i = 0; i < n; i++) {
sum += signal[i] * signal[i];
}
return sqrt(sum / n);
}
// Function to count zero crossings in a group
int zero_crossings(int signal[], int n) {
int count = 0;
for (int i = 0; i < n - 1; i++) {
if ((signal[i] * signal[i + 1] < 0) &&
(abs(signal[i] - signal[i + 1]) >= THRESHOLD))
{
count++;
}
}
return count;
}
// Function to count slope sign changes in a group
int slope_sign_changes(int signal[], int n) {
int count = 0;
for (int i = 1; i < n - 1; i++) {
if (((signal[i] - signal[i - 1]) * (signal[i] - signal[i +
1]) > 0) &&
(abs(signal[i] - signal[i - 1]) >= THRESHOLD ||
abs(signal[i] - signal[i + 1]) >= THRESHOLD)) {
count++;
}
}
return count;
}
// Function to calculate Wilson Length (WL)
double w_l(int signal[], int n) {
double wl = 0.0;
for (int i = 0; i < n - 1; i++) {
wl += fabs(signal[i + 1] - signal[i]);
}
return wl;
}
// Function to calculate Mean Frequency (MNF)
double mean_frequency(double freq[], double
power[], int n) {
double num = 0.0, denom = 0.0;
for (int j = 0; j < n; j++) {
num += freq[j] * power[j];
denom += power[j];
}
return (denom != 0) ? (num / denom) : 0;
}
// Function to separate the data into groups
void separateGroups(int data[], int
groups[TOTAL_GROUPS][GROUP_SIZE]) {
for (int i = 0; i < TOTAL_GROUPS; i++) {
for (int j = 0; j < GROUP_SIZE; j++) {
groups[i][j] = data[i * GROUP_SIZE + j];
}
}
}
// Function to print the groups along with computed
features
void printGroups(int
groups[TOTAL_GROUPS][GROUP_SIZE]) {
double freq[M]; // Frequency bins
double power[M]; // Power at each frequency
// Simulated frequency bins and power values
(replace with real FFT results)
for (int j = 0; j < M; j++) {
freq[j] = j * 5.0; // Example: 0Hz, 5Hz, 10Hz,
...
power[j] = rand() % 100; // Simulated power
values
}
for (int i = 0; i < TOTAL_GROUPS; i++) {
printf("Group %d:\n", i + 1);
for (int j = 0; j < GROUP_SIZE; j++) {
printf("%d ", groups[i][j]);
}
printf("\n\n");
printf("Group %d RMS Value: %f\n", i + 1,
rms_emg(groups[i], GROUP_SIZE));
printf("Group %d Zero Crossings: %d\n", i + 1,
zero_crossings(groups[i], GROUP_SIZE));
printf("Group %d Slope Sign Changes: %d\n", i +
1, slope_sign_changes(groups[i], GROUP_SIZE));
printf("Group %d Wilson Length (WL): %f\n", i +
1, w_l(groups[i], GROUP_SIZE));
printf("Group %d Mean Frequency (MNF): %f
Hz\n", i + 1, mean_frequency(freq, power, M));
printf("\n\n");
}
}
int main() {
// Define the data array with the given values
int data[TOTAL_VALUES] = {10, 18, 2, -19, -7, 2, -3,
-10, -16, -17, -19, -21, -16, -5, 4, 5, 2, -4, 22, 34, 26,
22, 18, 15, 8, -3, -7, -11, -12, -17, -17, -16, -14, -11, -
8, -1, 5, 10, 16, 20, 21, 19, 17,13, 5, 0, -3, -12, -13, -
16, -20, -20, -17, -13, -7, -1, 5, 11, 15, 17, 21, 21, 20,
17, 13, 8, 4, -3, -12, -18, -19, -17, -17, -14, -11, -5, 2,
10, 15, 16, 23, 29, 26, 14, 13, 9,6, -1, -6, -11, -12, -14,
-16, -12, -7, -2, 3, 7, 14, 17, 21, 23, 21, 18, 14, 12, 6,
0, -5, -12, -16, -19, -21, -19, -14, -10, -5, 2, 7, 11, 16,
15, 18, 18, 17, 15, 12, 7, -4, -9, -13, -18, -23, -19, -13,
-6, 1, 6, 10, 13, 16, 22, 22, 20, 21, 22, 11, 5, 0, -5, -9,
-15, -16, -16, -17, -15, -9, -3, 3, 8, 13, 16, 17, 19, 20,
17, 11, 5, 2, -3, -8, -10,-17, -19, -21, -17, -10, -7, -1, 7,
13, 16, 19, 20, 19, 16, 14, 10, 4, -3, -8, -8, -11, -16, -
18, -16, -11, -11, -6, 2, 7, 7, 13, 16, 20, 21, 16, 12, 8,
6, -1, -8, -15, -20, -14, -12, -17, -12, -7, -2, 6, 13, 15,
19, 22, 22, 20, 13, 6, 0, -4, -9, -11, -15, -20, -20, -19, -
15, -6, -1, 5, 8, 10, 17, 19, 16, 15, 12, 8, 4, 2, -4, -9, -
11, -15, -19, -22, -20, -13, -5, 1, 3, 9, 11, 17, 20, 19,
16, 14, 10, 2, -4, -8, -13, -17, -19, -17, -19, -15, -11, -
4, 1, 8, 8, 14, 18, 19, 14, 12, 14, 11, 4, 0, -1, -7, -23, -
27, -20, -14, -12, -9,-1, 4, 10, 16, 21, 23, 17, 16, 13,
12, 12, 8, -1, -10, -16, -19, -19, -15, -8, -4, -2, 3, 8, 13,
18, 22, 22, 22, 20, 16, 9, 3, -4, -7, -11, -15, -19, -15, -
15, -10, -5, 1, 6, 10, 13, 18, 20, 19, 17, 13, 8, 5, -2, -7,
-9, -13, -18, -19, -14, -11, -8, -2, 6, 10, 14, 17, 17, 20,
19, 13, 10, 5, 2, -2, -6, -9, -17, -24, -22, -17, -12, -7, 0,
5, 10, 14, 21, 24, 23, 20, 18, 12, 6, 1, -5, -9, -16, -19, -
18, -14, -8, -4, 2, 4, 3, 7, 16, 23, 22, 19, 13, 10, 10, 2,
7, 9, -4, -19, -26, -23, -15, -9, -3, 2, 7, 10, 22, 35, 29,
10, 6, 5, 9, 8, 5, 0, -2, -10, -24, -25, -19, -14, -8, -3, 3,
7, 14, 18, 20, 21, 19, 14, 12, 4, -1, -6, -9, -14, -20, -20,
-19, -13, -7, -3, 0, 6, 9, 13, 16, 15, 15, 14, 12, 13, 8, 1,
-3, -7, -6, -12, -17, -21, -23, -5, 5, 4, 3, 8, 18, 27, 35,
30, 15, 12, 8, 3, -2, -4, -4, -14, -18, -20, -17, -13, -7, 3,
8, 13, 17, 21, 24, 22, 21, 16, 13,7, 0, -4, 0, -16, -23, -
23, -22, -16, -7, 1, 6, 10, 16, 21, 26, 24, 19, 17, 13, 5,
1, -4, -8, -12, -15, -15, -14, -13, -9, -4, 3, 9, 13, 19, 23,
24, 22, 19, 13, 8, 3, -2, -10, -12, -13, -16, -14, -10, -8,
-4, 0, 5, 12, 18, 22, 25, 25, 24, 21, 17, 8, 3, 2, -1, -9, -
17, -16, -14, -8, -1, 5, 9, 16, 19, 28, 31, 28, 26, 23, 19,
12, 11, 8, 0, -9, -7, -10, -15, -16, -14, -8, -3, 3, 7, 12,
14, 18, 21, 21, 17, 10, 5, 2, -2, -9, -17, -19, -20, -20, -
15, -9, -3, 6, 11, 14, 18, 22, 21, 17, 17, 20, 16, 6, -6, -
13, -14, -18, -18,-15, -13, -9, -4, 2, 3, 6, 9, 17, 18, 23,
25, 16, 11, 5, -1, -5, -9, -9, -12, -15, -16, -12, -7, -3, 6,
10, 11, 10, 18, 22, 21, 23, 21, 16, 7, 1, -4, -11, -14, -
15, -15, -13, -9, -6, -2, 4, 9, 16, 18, 20, 21, 20, 13, 12,
7, 1, -3, -8, -12, -17, -22, -18, -13, -7, 0, 1, 3, 9, 13, 17,
21, 18, 17, 13, 10, 6, 1, -3, -6, -11, -16, -15, -13, -10, -
3, 9, 11, 11, 14, 21, 31, 29, 17, 10, 4, -4, -4, -1, -8, -12,
-11, -15, -19, -4, 5, -2, 4, 9, 15, 18, 22, 24, 23, 20, 17,
15, 13, 7, -4, -8, -13, -15, -14, -13, -10, -5, -5, -1,5, 11,
20, 24, 24, 24, 19, 13, 11, 6, 1, -4, -8, -12, -16, -19, -
12, -7, 0, 7, 13, 17, 21, 23, 25, 22, 18, 16, 10, 3, 0, -4,
-13, -16, -20, -20, -18, -14, -6, 2, 7, 12, 15, 17, 21, 20,
16, 23, 21, 8, 1, -2, -6, -11, -14, -14, -11, -6, -7, -3, 5,
10, 15, 24, 28, 23, 22, 16, 12, 9, 3, -2, -4, -12, -14, -15,
-15, -12, -7, -1, 4, 8, 12, 17, 24, 30, 36, 26, 24, 18, -4,
-7, -5, -6, -11, -12, -16, -20, -17, -12, -3, 5, 9, 13, 17,
17, 18, 20, 19, 14, 8, 3, -2, -7, -7, -8, -16, -17, -11, -7,
-1, 3, 6, 11, 18, 21, 25, 28, 25,18, 9, 4, -2, -4, -10, -13,
-17, -18, -15, -10, -5, 1, 6, 12, 15, 16, 15, 20, 21, 19,
18, 11, 3, -2, -7, -12, -15, -18, -15, -12, -9, -3, 6, 10,
11, 12, 19, 24, 22, 17, 15, 11, 5, 0, -6, -14, -17, -18, -
18, -9, -6, -6, -0, 7, 12, 14, 19, 22, 23, 22, 18, 15, 9, 6,
6, 5, -6, -16, -23, -19, -14, -10, -4, 2, 9, 13, 17, 25, 28,
27, 22, 15, 7, 6, 1, -6, -9, -13, -16, -15, -14, -11, -3, 2,
5, 9, 14, 20, 22, 19, 31, 32, 18, 6, 3, -1, -3, -8, -12, -16,
-18, -11, -7, -3, 6, 20, 21, 11, 17, 24};
int groups[TOTAL_GROUPS][GROUP_SIZE];
// Separate the data into groups
separateGroups(data, groups);
// Print the computed features for each group
printGroups(groups);
return 0;
}
5 Results :
The C code is Complied in the Xilinx Vivado via Fpga
Board. we gotten as below results of 5 different
Feature Extractions as mentioned in above!
The Expected Results of Feature Extractions :
Group 1:
10 18 2 -19 -7 2 -3 -10 -16 -17 -19 -21 -16 -5 4 5 2 -4
22 34 26 22 18 15 8 -3 -7 -11 -12 -17 -17 -16 -14 -11 -
8 -1 5 10 16 20 21 19 17 13 5 0 -3 -12 -13 -16 -20 -20
-17 -13 -7 -1 5 11 15 17 21 21 20 17 13 8 4 -3 -12 -18
-19 -17 -17 -14 -11 -5 2 10 15 16 23 29 26 14 13 9 6 -
1 -6 -11 -12 -14 -16 -12 -7 -2 3 7 14 17 21 23 21 18 14
12 6 0 -5 -12 -16 -19 -21 -19 -14 -10 -5 2 7 11 16 15
18 18 17 15 12 7
Group 1 RMS Value: 14.366574
Group 1 Zero Crossings: 3
Group 1 Slope Sign Changes: 4
Group 1 Wilson Length (WL): 601.000000
Group 1 Mean Frequency (MNF): 320.574430 Hz
Group 2:
-4 -9 -13 -18 -23 -19 -13 -6 1 6 10 13 16 22 22 20 21
22 11 5 0 -5 -9 -15 -16 -16 -17 -15 -9 -3 3 8 13 16 17
19 20 17 11 5 2 -3 -8 -10 -17 -19 -21 -17 -10 -7 -1 7 13
16 19 20 19 16 14 10 4 -3 -8 -8 -11 -16 -18 -16 -11 -11
-6 2 7 7 13 16 20 21 16 12 8 6 -1 -8 -15 -20 -14 -12 -
17 -12 -7 -2 6 13 15 19 22 22 20 13 6 0 -4 -9 -11 -15 -
20 -20 -19 -15 -6 -1 5 8 10 17 19 16 15 12 8 4 2 -4 -9 -
11 -15 -19
Group 2 RMS Value: 13.499132
Group 2 Zero Crossings: 0
Group 2 Slope Sign Changes: 1
Group 2 Wilson Length (WL): 515.000000
Group 2 Mean Frequency (MNF): 320.574430 Hz
Group 3:
-22 -20 -13 -5 1 3 9 11 17 20 19 16 14 10 2 -4 -8 -13 -
17 -19 -17 -19 -15 -11 -4 1 8 8 14 18 19 14 12 14 11 4
0 -1 -7 -23 -27 -20 -14 -12 -9 -1 4 10 16 21 23 17 16
13 12 12 8 -1 -10 -16 -19 -19 -15 -8 -4 -2 3 8 13 18 22
22 22 20 16 9 3 -4 -7 -11 -15 -19 -15 -15 -10 -5 1 6 10
13 18 20 19 17 13 8 5 -2 -7 -9 -13 -18 -19 -14 -11 -8 -
2 6 10 14 17 17 20 19 13 10 5 2 -2 -6 -9 -17 -24 -22 -
17 -12 -7 0
Group 3 RMS Value: 13.624140
Group 3 Zero Crossings: 0
Group 3 Slope Sign Changes: 0
Group 3 Wilson Length (WL): 532.000000
Group 3 Mean Frequency (MNF): 320.574430 Hz
Group 4:
5 10 14 21 24 23 20 18 12 6 1 -5 -9 -16 -19 -18 -14 -8
-4 2 4 3 7 16 23 22 19 13 10 10 2 7 9 -4 -19 -26 -23 -
15 -9 -3 2 7 10 22 35 29 10 6 5 9 8 5 0 -2 -10 -24 -25 -
19 -14 -8 -3 3 7 14 18 20 21 19 14 12 4 -1 -6 -9 -14 -
20 -20 -19 -13 -7 -3 0 6 9 13 16 15 15 14 12 13 8 1 -3
-7 -6 -12 -17 -21 -23 -5 5 4 3 8 18 27 35 30 15 12 8 3 -
2 -4 -4 -14 -18 -20 -17 -13 -7 3 8 13 17 21 24
Group 4 RMS Value: 14.481400
Group 4 Zero Crossings: 3
Group 4 Slope Sign Changes: 4
Group 4 Wilson Length (WL): 625.000000
Group 4 Mean Frequency (MNF): 320.574430 Hz
Group 5:
22 21 16 13 7 0 -4 0 -16 -23 -23 -22 -16 -7 1 6 10 16
21 26 24 19 17 13 5 1 -4 -8 -12 -15 -15 -14 -13 -9 -4 3
9 13 19 23 24 22 19 13 8 3 -2 -10 -12 -13 -16 -14 -10
-8 -4 0 5 12 18 22 25 25 24 21 17 8 3 2 -1 -9 -17 -16 -
14 -8 -1 5 9 16 19 28 31 28 26 23 19 12 11 8 0 -9 -7 -
10 -15 -16 -14 -8 -3 3 7 12 14 18 21 21 17 10 5 2 -2 -9
-17 -19 -20 -20 -15 -9 -3 6 11 14 18 22 21 17 17 20 16
6
Group 5 RMS Value: 15.003906
Group 5 Zero Crossings: 0
Group 5 Slope Sign Changes: 1
Group 5 Wilson Length (WL): 546.000000
Group 5 Mean Frequency (MNF): 320.574430 Hz
Group 6:
-6 -13 -14 -18 -18 -15 -13 -9 -4 2 3 6 9 17 18 23 25 16
11 5 -1 -5 -9 -9 -12 -15 -16 -12 -7 -3 6 10 11 10 18 22
21 23 21 16 7 1 -4 -11 -14 -15 -15 -13 -9 -6 -2 4 9 16
18 20 21 20 13 12 7 1 -3 -8 -12 -17 -22 -18 -13 -7 0 1
3 9 13 17 21 18 17 13 10 6 1 -3 -6 -11 -16 -15 -13 -10
-3 9 11 11 14 21 31 29 17 10 4 -4 -4 -1 -8 -12 -11 -15
-19 -4 5 -2 4 9 15 18 22 24 23 20 17 15 13 7 -4 -8 -13
-15
Group 6 RMS Value: 13.537275
Group 6 Zero Crossings: 2
Group 6 Slope Sign Changes: 2
Group 6 Wilson Length (WL): 537.000000
Group 6 Mean Frequency (MNF): 320.574430 Hz
Group 7:
-14 -13 -10 -5 -5 -1 5 11 20 24 24 24 19 13 11 6 1 -4 -
8 -12 -16 -19 -12 -7 0 7 13 17 21 23 25 22 18 16 10 3
0 -4 -13 -16 -20 -20 -18 -14 -6 2 7 12 15 17 21 20 16
23 21 8 1 -2 -6 -11 -14 -14 -11 -6 -7 -3 5 10 15 24 28
23 22 16 12 9 3 -2 -4 -12 -14 -15 -15 -12 -7 -1 4 8 12
17 24 30 36 26 24 18 -4 -7 -5 -6 -11 -12 -16 -20 -17 -
12 -3 5 9 13 17 17 18 20 19 14 8 3 -2 -7 -7 -8 -16 -17 -
11 -7 -1 3
Group 7 RMS Value: 14.485985
Group 7 Zero Crossings: 1
Group 7 Slope Sign Changes: 1
Group 7 Wilson Length (WL): 555.000000
Group 7 Mean Frequency (MNF): 320.574430 Hz
Group 8:
6 11 18 21 25 28 25 18 9 4 -2 -4 -10 -13 -17 -18 -15 -
10 -5 1 6 12 15 16 15 20 21 19 18 11 3 -2 -7 -12 -15 -
18 -15 -12 -9 -3 6 10 11 12 19 24 22 17 15 11 5 0 -6 -
14 -17 -18 -18 -9 -6 -6 0 7 12 14 19 22 23 22 18 15 9
6 6 5 -6 -16 -23 -19 -14 -10 -4 2 9 13 17 25 28 27 22
15 7 6 1 -6 -9 -13 -16 -15 -14 -11 -3 2 5 9 14 20 22 19
31 32 18 6 3 -1 -3 -8 -12 -16 -18 -11 -7 -3 6 20 21 11
17 24
Group 8 RMS Value: 14.780424
Group 8 Zero Crossings: 1
Group 8 Slope Sign Changes: 4
Group 8 Wilson Length (WL): 580.000000
Group 8 Mean Frequency (MNF): 320.574430 Hz
FPGA BOARD RESULTS :
Table : Different Features of 8 Different Groups
Group RMS ZC SSC WL MNF
1 14.36 3 4 601 323HZ
2 13.49 0 1 515 323HZ
3 13.62 0 0 532 323HZ
4 14.48 3 4 625 323HZ
5 15 0 1 546 323HZ
6 13.53 2 2 537 323HZ
7 14.48 1 1 555 323HZ
8 14.78 1 4 580 323HZ
Matlab Exceution : Different Groups Features
6. Discussion
The extracted features were compared with
techniques discussed in the paper Evaluation of
Feature Extraction Techniques and Classifiers for
Finger Movement Recognition Using Surface
Electromyography Signals. The paper utilized
additional dimensionality reduction techniques such
as Principal Component Analysis (PCA), Linear
Discriminant Analysis (LDA), and Spectral
Regression Extreme Learning Machine (SRELM) to
improve classification accuracy. In contrast, our
implementation focuses on feature computation
without classification.
The findings suggest that our features align with
standard EMG analysis methods but could be further
optimized using advanced feature selection and
classifier pairing as described in the paper. For
example, the paper reports a 99% accuracy using
SRELM with a neural network classifier, which could
be a future extension of this work.
7. Conclusion
This study successfully extracted key time-
domain and frequency-domain features from EMG
signals. These features provide meaningful insights
into muscle activity. Future work may include
implementing classifiers and comparing
classification accuracy using different feature
extraction methods.
8. References
• Phukpattaranont, P., Thongpanja, S., Anam, K.,
Al-Jumaily, A., & Limsakul, C. (2018).
Evaluation of feature extraction techniques and
classifiers for finger movement recognition using
surface electromyography signals. Medical &
Biological Engineering & Computing, 56, 2259-
2271.
• Anam K,Al-Jumaily A (2015) A novel extreme
learning machine for dimensionality reduction
on finger movement classification using sEMG.
In: Proc 7th International IEEE/EMBS Conference
on Neural Engineering (NER), pp. 824–827
• KuikenTA,LiG,LockBA,LipschutzRD,MillerLA,Stub
blefield KA, Englehart K (2009) Targeted muscle
reinnervation for real time myoelectric control of
multifunction artificial arms. J Am Med Assoc
301(6):619–628
• Oskoei MA, Hu H (2007) Myoelectric control
systems—asurvey. Biomed Signal Proces
2(4):275–294
• KhushabaRN,KodagodaS,Takruri M,Dissanayake
G (2012) Toward improved control of prosthetic
fingers using surface electromyogram (EMG)
signals. Expert Syst Appl 39(12):10731–10738