![body-worn sensors](https://private-user-images.githubusercontent.com/4992116/314020078-3519df7c-d93d-40ce-b415-f0e7129ec85e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM5ODg1NjIsIm5iZiI6MTcyMzk4ODI2MiwicGF0aCI6Ii80OTkyMTE2LzMxNDAyMDA3OC0zNTE5ZGY3Yy1kOTNkLTQwY2UtYjQxNS1mMGU3MTI5ZWM4NWUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MThUMTMzNzQyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MWMzZmUxMGUxNDlhOGVjOTRiNWVhOWMxNDIxNjU5NmIyYjA2MGE4NGFmNjZhOGJhZGU0NjA1ZWUwN2RlZmVlMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.-A1ugjNIGDh79ZRYkMFeYui5E7y-C9y9T4yUAFNDJYA)
![data](https://private-user-images.githubusercontent.com/4992116/314020808-afd31985-249a-4755-98e3-71613f6457f8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM5ODg1NjIsIm5iZiI6MTcyMzk4ODI2MiwicGF0aCI6Ii80OTkyMTE2LzMxNDAyMDgwOC1hZmQzMTk4NS0yNDlhLTQ3NTUtOThlMy03MTYxM2Y2NDU3ZjgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MThUMTMzNzQyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YzE3MzM4Mzk5NzRhZmQ2MzRkNGFlMjQxNzQyZmE5NjY3YTUyZDQ1YzVlZmU3OWQ4YjRkNGM5YTIwODRkYjU1MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.8-6mmeLb8IOzLcCiUw46yp9Vjl3Apry2bqZR8ar2bPI)
![result](https://private-user-images.githubusercontent.com/4992116/314022767-e18d7256-b534-4f7d-8613-154a86a16d19.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM5ODg1NjIsIm5iZiI6MTcyMzk4ODI2MiwicGF0aCI6Ii80OTkyMTE2LzMxNDAyMjc2Ny1lMThkNzI1Ni1iNTM0LTRmN2QtODYxMy0xNTRhODZhMTZkMTkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDgxOCUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA4MThUMTMzNzQyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGJkMWQ3YmQ4M2FlY2E3Mzg4Njk0MWUwOThmMGMxM2E4NzMzYWJiZGY5YmVjZmY4MWMzZDRiZjI0NTVlNmYxNCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.FUlItcYH5lRmx5WTewXh86D5MU2cWO-BJCbgT98dsc8)
Quaternion-Based Gesture Recognition Using Wireless Wearable Motion Capture Sensors
Codes for my Master's Thesis
Replace Missing Values.py - Replaces missing values for the Beta angle after conversion from quaternion to Euclidean.
add_headers.py - adds appropriate header columns to each dataset
columnSorter.py - breaks quaternion datasets in four different datasets that hold individual quaternion components
columnSorter_euclid.py - same as above but for datasets with Euclidean components
columnSorter_pStudy.py - same as above but for individual participant dataset
columnJoiner.py - joins every individual quaternion dataset to create a new dataset with homogenous quaternion component
convert2euclidean.py - convert quaternion components to Euclidean components
outlierRemover.py - removes outliers by applying linear interpolation using a 10-point sliding window
sortLeftRight.py - separates the left and right-hand gestures and turns them into individual datasets
*Training, Validation and Test sets were created using Weka 3.6
featureExtraction.py - Extracts five features from every dataset: Variance, Range, Velocity, Angular Velocity, Covariance
test.py, test2.py, test3.py, testFileSize.py, test_covariance.py, test_range.py, test_variance.py, test_velocity.py *Each file has its own description
countDatapoints.py - counts the total number of datapoints in a dataset
were done in Weka 3.6