EMG Processing Tools: Difference between revisions

From Software Product Documentation
Jump to navigation Jump to search
Line 34: Line 34:
== Removing Noise from EMG Signals ==
== Removing Noise from EMG Signals ==


The text below describes two common methods of removing noise from EMG signals. The following methods assume 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.  
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.  


#''' 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. Three examples of using this command are shown below:
#''' 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: Apply the Moving RMS with a 51 frame window:
  ! Example 1: Use the Moving RMS Command to Process EMG Data
  Moving_RMS
/Signal_Types=ANALOG
/Signal_Names=EMG1+EMG2+EMG3
/Signal_Folder=PROCESSED
/Num_Window_Frames= 51
;
 
! Example 2: 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
;
 
! Example 3: Putting it all together
  ! Apply a high pass filter with 50 Hz cutoff
  ! Apply a high pass filter with 50 Hz cutoff
  Highpass_Filter
  Highpass_Filter
  /Signal_Types=ANALOG
  /Signal_Types=ANALOG
  /SIgnal_Names=EMG1+EMG2+EMG3
  /Signal_Names=EMG1+EMG2+EMG3
  /Signal_Folder=ORIGINAL
  /Signal_Folder=ORIGINAL
  ! /Result_Suffix=
  ! /Result_Suffix=
Line 70: Line 52:
  /Num_Bidirectional_Passes=1
  /Num_Bidirectional_Passes=1
  ;
  ;
  ! Apply a low pass filter with 500 Hz cutoff
  ! Apply a low pass filter with 500 Hz cutoff
  Lowpass_Filter
  Lowpass_Filter
  /Signal_Types=ANALOG
  /Signal_Types=ANALOG
  /SIgnal_Names=EMG1+EMG2+EMG3
  /Signal_Names=EMG1+EMG2+EMG3
  /Signal_Folder=PROCESSED
  /Signal_Folder=PROCESSED
  ! /Result_Suffix=
  ! /Result_Suffix=
Line 84: Line 65:
  /Num_Bidirectional_Passes=1
  /Num_Bidirectional_Passes=1
  ;
  ;
  ! Moving RMS with 100 millisecond window
  ! Moving RMS with 100 millisecond window
  Moving_RMS  
  Moving_RMS  

Revision as of 14:02, 12 May 2023

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

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)

Other blah blah blah

3. Integrating EMG Signals

4. Removing Background Noise Example

Normalization and Scaling Methods

Your text here.

Retrieved from ""