EMG Processing Tools

From Software Product Documentation
Jump to navigation Jump to search
Language:  English  • français • italiano • português • español 

General Processing Steps

Processing EMG signals typically follows some variation of the following steps:

1. High Pass Filter
2. Low Pass Filter
3. Rectify Data
4. Filter Noise
5. Normalize and Scale Data

It should be noted that within both this page and external literature, the term "Linear Envelope" refers to an EMG signal that has been rectified and low pass filtered.

Visual3D has a number of helpful pipeline functions (linked below) that can automate the general processing steps.

Helpful Pipeline Functions

The following links will redirect you to pages detailing the use of Visual3D pipeline commands that are commonly used in the general processing of EMG data:

Meta Commands

This page deals with several examples of using Visual3D Meta-Commands. Meta commands are essentially a way for you to write and upload your own function to the Visual3D pipeline. They have the file extension ".v3m". Meta commands must be stored in a folder labelled Meta-Commands, which should be located in the Visual3D Plugins folder. The Plugins folder may not exist, so you may have to create it yourself. If you receive errors after running a meta-command, navigate to Edit > Preferences in Visual3D and check that the directory of the Plugins folder matches the location Visual3D is looking for it in. Restart Visual3D before running the command again.

Removing Noise from EMG Signals

Placeholder: link download to zip file with sample workspace. Name: EMG_RMS_Example.zip

The text below describes two common methods of removing noise from EMG signals. Before using these methods, ensure you have performed a high and low pass filter on the raw data. You do not need to rectify your data to use the Root Mean Square method or the Teagan Kaiser Energy Operator method as they will both rectify your signals for you.

1. Root Mean Square (RMS): The RMS method is typically used when finding overall energy, muscle activation patterns, or for fatigue analysis. The RMS method takes the square root of the mean square of a set of values. Because it deals with the mean square of a data set, the input EMG signal does not need to be rectified before calculating the RMS. Example application of this command shown below:
! Example 1: Use the Moving RMS Command to Process EMG Data
! Apply a high pass filter with 50 Hz cutoff
Highpass_Filter
/Signal_Types=ANALOG
/Signal_Names=EMG1+EMG2+EMG3
/Signal_Folder=ORIGINAL
! /Result_Suffix=
! /Result_Folder=PROCESSED
! /Filter_Class=BUTTERWORTH
/Frequency_Cutoff= 50
/Num_Reflected= 0
/Total_Buffer_Size=100
/Num_Bidirectional_Passes=1
;
! Apply a low pass filter with 500 Hz cutoff
Lowpass_Filter
/Signal_Types=ANALOG
/Signal_Names=EMG1+EMG2+EMG3
/Signal_Folder=PROCESSED
! /Result_Suffix=
! /Result_Folder=PROCESSED
! /Filter_Class=BUTTERWORTH
/Frequency_Cutoff= 500
/Num_Reflected= 0
/Total_Buffer_Size=100
/Num_Bidirectional_Passes=1
;
! Moving RMS with 100 millisecond window
Moving_RMS 
/SIGNAL_TYPES=ANALOG 
/SIGNAL_NAMES=EMG1+EMG2+EMG3 
/SIGNAL_FOLDER=PROCESSED
! /RESULT_SUFFIX= 
/RESULT_FOLDER=RMS 
/NUM_WINDOW_FRAMES= ( 0.1*PARAMETER::ANALOG::RATE ) + 1
; 
2. Teager Kaiser Energy Operator (TKEO): The TKEO method is typically used when finding muscle onset/offset contracts and analyzing frequency data. The TKEO method is a signal processing technique used to extract information from a time-series signal. It involves calculating the Teager energy of the signal, which is a measure of the signal's instantaneous power, and then smoothing the energy values using a Kaiser window. The resulting smoothed energy values can be used to identify important features in the signal, such as peaks or changes in frequency. Example application of this command shown below:
! Example 2: Use the TKEO Command to Process EMG Data
Highpass_Filter
/SIGNAL_TYPES=ANALOG
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_NAMES=EMG_C
/RESULT_FOLDER=PROCESSED
! /RESULT_SUFFIX=
! /FILTER_CLASS=BUTTERWORTH
/FREQUENCY_CUTOFF=20
/NUM_REFLECTED=0
! /NUM_EXTRAPOLATED=0
/TOTAL_BUFFER_SIZE=100
! /NUM_BIDIRECTIONAL_PASSES=1
;
Lowpass_Filter
/SIGNAL_TYPES=ANALOG
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_NAMES=EMG_C
/RESULT_FOLDER=PROCESSED
! /RESULT_SUFFIX=
! /FILTER_CLASS=BUTTERWORTH
/FREQUENCY_CUTOFF=6.0
/NUM_REFLECTED=6
! /NUM_EXTRAPOLATED=0
/TOTAL_BUFFER_SIZE=6
! /NUM_BIDIRECTIONAL_PASSES=1
;
Teager_Kaiser_Energy
/SIGNAL_TYPES=ANALOG
/SIGNAL_FOLDER=ORIGINAL
/SIGNAL_NAMES=EMG_C
! /RESULT_TYPES=
/RESULT_FOLDERS=PROCESSED
/RESULT_NAME=EMG_C_TKEO
! /APPLY_AS_SUFFIX_TO_SIGNAL_NAME=
;
3. Integrating EMG Signals: Integrating EMG signals can be useful for quantifying muscle activity, comparing muscle activity between conditions, and assessing fatigue. The result of integrating an EMG signal (an iEMG) is a single metric value of microvolts or millivolts. While this isn't strictly a noise reduction method, it does have applications once a signal has been filtered. An example of using Visual3D's pipeline commands to integrate an EMG signal can be found here: EMG Integrate.


4. Removing Background Noise Example

Normalization and Scaling Methods

Your text here.

Retrieved from ""