WHAT WE'VE LEARNED
How and why wavelet filters are applied to EMG signals
How and why power spectrum analysis can be an important tool for classification
How to extract appropriate features from signals to improve classification accuracy
How to use linear and non-linear models of different domain transforms (from electrical (volts) to mechanical (torque), and then from mechanical (torque) to kinematic (angular position, velocity, and acceleration)) from literature to develop a simulation of a moving body
CHALLENGES
Extracting Features from Large Datasets
In our search for a dataset, we looked for the following criteria: diverse data, age and gender specified, and muscle specific tests. We found one such database that met said criteria but there were some obstacles in our way. The largest obstacle, and most significant by far, was trying to access the data. The creators of the database stored all of the signals into two files: a header file, and a .bin file. The header file gave metadata related to the signal and the binary file gave the signal itself. Thankfully, the creators also provided a graphical user interface (GUI) that allowed us to view the signal we desired. However, in conjunction with the GUI being severely outdated, the GUI was extremely difficult to navigate and it took at least five minutes to extract one signal using the GUI. With our goal to analyze the 400 plus signals, we sought to optimize this process. To start this optimization we removed all components of the GUI unrelated to the signal data we were looking for. This optimization reduced the time it took to run the program, and extract the signal, from a handful of minutes down to one to two minutes. A significant improvement but this time did not take into account inputting the file into the filtering and data extraction algorithms which would take a few more minutes additionally. Even with each group mate taking their share, it would still take several hours to complete the herculean task of going through all the data. However, a breakthrough was discovered. It was noticed that the naming scheme of each subject’s trials were named numerically. With this revelation, some adjustment to the file directory code within the GUI, and a for loop, we were able to introduce automation into the program. This meant that instead of choosing each file and getting the signal from it individually, we were able to go through an entire subject's set of signals altogether within seconds. We then integrated our processing algorithms into the automated code for a smoother, and faster, experience. We had also decided that to make the program more user friendly, we reintegrated some of the GUI features into the code so that you did not have to dig into the program to change the main file path every time a new subject was selected. From taking several minutes to complete one signal, it now took us a few minutes to complete the entire data set. With this vastly improved speed, we were afforded the opportunity to rerun our calculations when we wanted to add more defining features or when we found a blunder in our math.
Determining the Accuracy of Extracted Features
We ran all of the normal and myopathy data sets and checked through the extracted features to see if the patterns we expected to see were present. Because we didn’t have much to compare our data to, it was hard to confirm it’s correctness. This process involved many rewrites of the feature extractor code to ensure that we were running all functions correctly and following the suggestions of the research papers we found. In the end, while some myopathy signals had higher values than expected and some normal signals lower, overall the general pattern was larger feature values for normal EMG data and smaller feature values for myopathic signals as expected. We were also able to confirm the peak frequency method used was correct as it had values in the same range as the mean and median frequency values.
ACKNOWLEDGEMENTS
We would like to acknowledge the following individuals for their support and guidance throughout this project:
Professor Laura Balzano and Shih-Tang Su for providing feedback on our project and helping us to shape our project goals
Daniel Schulman, PhD candidate for providing support with Simulink and Simscape debugging