![body-worn sensors](https://private-user-images.githubusercontent.com/4992116/314020078-3519df7c-d93d-40ce-b415-f0e7129ec85e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg1MDA5MDMsIm5iZiI6MTcxODUwMDYwMywicGF0aCI6Ii80OTkyMTE2LzMxNDAyMDA3OC0zNTE5ZGY3Yy1kOTNkLTQwY2UtYjQxNS1mMGU3MTI5ZWM4NWUucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MTZUMDExNjQzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZmI1M2ExMTk2MDA5ODg1MzJkNzZkZGRlMTBmMjQzMDUwOGI2ZWUyNGQxOTlhZGVkYjJkNDFiYzYxYWU5YjVlNyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.rhbeq9GWzc3D52FLj5IdUqVWV5oS8An3WLHiV3Err9E)
![data](https://private-user-images.githubusercontent.com/4992116/314020808-afd31985-249a-4755-98e3-71613f6457f8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg1MDA5MDMsIm5iZiI6MTcxODUwMDYwMywicGF0aCI6Ii80OTkyMTE2LzMxNDAyMDgwOC1hZmQzMTk4NS0yNDlhLTQ3NTUtOThlMy03MTYxM2Y2NDU3ZjgucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MTZUMDExNjQzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9ZGRmNjkwMWM5MDM3ODczNDliZGY1MDZlZWUwZGFjYjcxNWM5YmE5NzExMTVlZDE3YzNmZDhiOGIwZDU1NGYzMyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.A3YALejhN1lePtBF3nfoYFMmyAOYtXNsbExI53nm9n8)
![result](https://private-user-images.githubusercontent.com/4992116/314022767-e18d7256-b534-4f7d-8613-154a86a16d19.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg1MDA5MDMsIm5iZiI6MTcxODUwMDYwMywicGF0aCI6Ii80OTkyMTE2LzMxNDAyMjc2Ny1lMThkNzI1Ni1iNTM0LTRmN2QtODYxMy0xNTRhODZhMTZkMTkucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDYxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA2MTZUMDExNjQzWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YWUzNGM4Zjc0ZjRkOTEzZTIwNDdhNDVjMDVkMjgwYmRjMDI5MDNmMjc2YTZjZWVmN2NlYWEyOWQ5YWJlZjI3MCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.K1H9OL_NTEkmW_3_AP2LC_sHlK86jmp3ylix7GwvmP8)
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