Skip to content

BritnieS/EMG-Analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

EMG Signal Processing & Force Prediction

MATLAB Status Subject

📌 Project Overview

This project focuses on the processing and analysis of electromyography (EMG) signals to investigate neuromuscular activity and predict generated force. It was conducted as part of the "Interfacing the Neuromuscular System" course at Friedrich-Alexander-Universität (FAU).

The objective is to implement a complete signal processing pipeline—from raw data preprocessing and spectral analysis to feature extraction (RMS) and force prediction using linear regression.

📂 Dataset

The dataset consists of simultaneous recordings of high-density surface EMG (HD-sEMG) and intramuscular EMG (iEMG).

  • Data_1: 64-channel HD-sEMG grid (provided in ADC binary) and Force data (%MVC).
  • Data_2: 3 bipolar iEMG channels (provided in µV).
    • Channel 1: Flexor Digitorum Superficialis (FDS).
    • Channel 2: Extensor Digitorum (ED) - Distal.
    • Channel 3: Extensor Digitorum (ED) - Proximal.

⚙️ Methodology & Pipeline

1. Preprocessing & Visualization

  • Unit Conversion: Converted ADC binary outputs to millivolts (mV) using the specific gain factor.
  • Filtering: Implemented digital filters to remove noise and artifacts:
    • 50Hz Notch Filter (Line interference removal).
    • 20-500Hz Bandpass Filter (4th order Butterworth).
  • Spectral Analysis: Performed Fast Fourier Transform (FFT) to visualize the frequency domain before and after filtering.

2. Feature Extraction (RMS)

  • Calculated the Root Mean Square (RMS) to quantify signal power.
  • Spatial Smoothing: Averaged every 8 consecutive HD-sEMG channels.
  • Temporal Smoothing: Analyzed the impact of different window lengths on signal quality:
    • Windows tested: 50ms, 100ms, 200ms, 500ms.

3. Machine Learning: Force Prediction

  • Correlation Analysis: Quantified the relationship between the normalized RMS of the sEMG signal and the recorded Force data (Correlation Coefficient R).
  • Regression Model: Fitted a Multiple Linear Regression model to predict the subject's force output based on the processed EMG features.
  • Evaluation: Assessed model performance using Root Mean Squared Error (RMSE).

💻 Tech Stack

  • Language: MATLAB (or Python).
  • Toolboxes: Signal Processing Toolbox.
  • Techniques: Digital Filtering, FFT, Regression Analysis, Data Visualization.

📊 Key Results

  • Filtering: Successfully removed power line noise and motion artifacts outside the physiological EMG range (20-500Hz).
  • RMS Analysis: Larger window sizes (e.g., 200ms-500ms) resulted in smoother envelopes but introduced higher latency compared to shorter windows.
  • Force Prediction: The linear regressor demonstrated a strong positive correlation between the processed sEMG envelope and the isometric force generated.

🚀 How to Run

  1. Clone the repository.
  2. Ensure Data_1 and Data_2 are in the root directory.
  3. Open the script in MATLAB.
  4. Run sections individually (Ctrl+Enter) or the full script to generate plots for Tasks 1.1 through 2.3.

👤 Author

Britnie Sinthuja M.Sc. Medical Engineering Student at FAU Erlangen-Nürnberg


Disclaimer: This repository contains coursework for the Neuromuscular Physiology and Neural Interfacing Laboratory at FAU.

About

Interfacing the Neuromuscular System: Applications to Human/Machine Interfaces and Neurophysiology - Exercise 01

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages