The main goal of this research project was to classify hand movements from raw EEG (electroencephalogram) signals, using machine learning and signal processing algorithms. The general idea used was to extract spectral features from the raw EEG signals (power spectral density) and use these features to train a convolutional neural network (CNN) for classification.
- TensorFlow
- NumPy
- Scikit-learn
- Matplotlib
- MATLAB: MATLAB code to generate data files and data files.
- auxiliary: auxiliary functionality.
- plotting: visualization of raw signals and calculated features.
- plot_features.py
- RawPSD_class.py
- unit_tests: unit tests.
- average_PSD_test.py
- example_generation_test.py
- PCA_on_PSD_test.py
- power_spectral_density_test.py
- RawPSD_class_test.py
- spectrogram_test.py
- plotting: visualization of raw signals and calculated features.
- documentation: documentation of algorithms implemented.
- Feature Calculation Algorithms.pdf
- Research Report.pdf
- models: end-to-end models for feature extraction and classification.
- classifiers: classification models.
- CNN: convolutional neural network implementation.
- conv_neural_net.py
- evaluate_CNN.py
- hyperparam_search.py
- run_CNN.py
- example_generation.py
- CNN: convolutional neural network implementation.
- data_reading: Python code to read data files.
- data_reader.py
- feature_calculation: feature calculation algorithms.
- average_PSD.py
- feature_algorithms.py
- PCA_on_PSD.py
- power_spectral_density.py
- spectrogram.py
- classifiers: classification models.
- run_CNN.py: trains and evaluates a CNN model for multiple subjects.
- file path: models/classifiers/CNN/run_CNN.py
- hyperparam_search.py: tunes hyperparameters of a CNN model across multiple subjects.
- file path: models/classifiers/CNN/hyperparam_search.py
- plot_features.py: plots raw EEG signals and several calculated features.
- file path: auxiliary/plotting/plot_features.py
- unit tests:
- power_spectral_density_test.py: unit tests for functions in power_spectral_density.py.
- file path: auxiliary/unit_tests/power_spectral_density_test.py
- average_PSD_test.py: unit tests for functions in average_PSD.py.
- file path: auxiliary/unit_tests/average_PSD_test.py
- PCA_on_PSD_test.py: unit tests for functions in PCA_on_PSD.py.
- file path: auxiliary/unit_tests/PCA_on_PSD_test.py
- spectrogram_test.py: unit tests for functions in spectrogram.py.
- file path: auxiliary/unit_tests/spectrogram_test.py
- example_generation_test.py: unit tests for functions in example_generation.py.
- file path: auxiliary/unit_tests/example_generation_test.py
- RawPSD_class_test.py: unit tests for functions in RawPSD_class.py.
- file path: auxiliary/unit_tests/RawPSD_class_test.py
- power_spectral_density_test.py: unit tests for functions in power_spectral_density.py.