Skip to content

Latest commit

 

History

History
60 lines (46 loc) · 3.47 KB

File metadata and controls

60 lines (46 loc) · 3.47 KB

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.