User Tools

Site Tools


visual3d:documentation:emg:processing_tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
visual3d:documentation:emg:processing_tools [2024/07/03 17:25] – removed sgrangervisual3d:documentation:emg:processing_tools [2024/07/17 15:45] (current) – created sgranger
Line 1: Line 1:
 +====== Processing Tools ======
 +
 +==== Introduction ====
 +
 +The purpose is to offset trial data to accommodate for any DC shift. Quantifying the EMG background noise based on a "Resting Trial" using the following algorithm:
 +
 +Find overall mean of trial:
 +
 +if positive, subtract mean from all values to offset overall average to zero
 +if negative, add mean to all values to offset overall average to zero.
 +Rectify trial around the zero baselines
 +
 +Calculate threshold values for each channel of EMG (level of digitized baseline noise).
 +
 +Determine noise threshold (i.e., the value determined from the resting EMG values fall below; calculated by passing a ceiling through data at successively higher levels until all data values for the 5 second duration fall below the ceiling.
 +==== EMG_Resting_Background ====
 +
 +You can remove the background using a Meta-Command (as described below), or you can see [[Visual3D:Documentation:EMG:Filtering:Resting_Background_Noise_Offset|here]] for an example implementing this in a script.
 +
 +==== EMG_Resting_Background Meta-Command ====
 +
 +The following Meta Command can be Cut-and-Paste into a file named **EMG_Resting_Background.v3m**
 +
 +<code>
 +! BEGIN_META
 +! META_CMD_NAME=EMG_Resting_Background
 +! META_PARAM= SIGNAL_NAMES:string::yes
 +! META_PARAM= SIGNAL_FOLDER:string::yes
 +! META_PARAM= RESULT_FOLDER:string::yes
 +! END_META
 +
 +Set_Pipeline_Parameter
 +/PARAMETER_NAME=FOLDER
 +/PARAMETER_VALUE=::SIGNAL_FOLDER
 +! /PARAMETER_VALUE_SEARCH_FOR=
 +! /PARAMETER_VALUE_REPLACE_WITH=
 +! /PARAMETER_VALUE_PREFIX=
 +! /PARAMETER_VALUE_APPEND=
 +;
 +
 +Set_Pipeline_Parameter
 +/PARAMETER_NAME=RESULT
 +/PARAMETER_VALUE=::RESULT_FOLDER
 +! /PARAMETER_VALUE_SEARCH_FOR=
 +! /PARAMETER_VALUE_REPLACE_WITH=
 +! /PARAMETER_VALUE_PREFIX=
 +! /PARAMETER_VALUE_APPEND=
 +;
 +
 +! ---------------------------------------------------------------
 +! Offset trial data to accommodate for any DC shift
 +! (find overall mean of trial&ldots;if positive,
 +! subtract mean from all values to offset overall average to zero&ldots;
 +! if negative, add mean to all values to offset overall average to zero).
 +! Rectify trial around the zero baselines
 +! (all values set to absolute values).
 +! ---------------------------------------------------------------
 +
 +For_Each
 +/ITERATION_PARAMETER_NAME=INDEX
 +/ITEMS=::SIGNAL_NAMES
 +;
 +
 +Metric_Mean
 +/RESULT_METRIC_NAME=_MEAN
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +! /RESULT_METRIC_FOLDER=PROCESSED
 +/SIGNAL_TYPES=ANALOG
 +/SIGNAL_NAMES=::INDEX
 +/SIGNAL_FOLDER=::FOLDER
 +! /SIGNAL_COMPONENTS=X
 +/EVENT_SEQUENCE=
 +/EXCLUDE_EVENTS=
 +/GENERATE_MEAN_AND_STDDEV=FALSE
 +! /APPEND_TO_EXISTING_VALUES=FALSE
 +;
 +
 +Evaluate_Expression
 +/EXPRESSION=ABS(ANALOG&:&:&::FOLDER&:&:&::INDEX&-&METRIC::PROCESSED&:&:&::INDEX&_MEAN)
 +/RESULT_NAME=::INDEX
 +/RESULT_TYPE=ANALOG
 +/RESULT_FOLDER=::RESULT
 +;
 +
 +End_For_Each
 +/ITERATION_PARAMETER_NAME=INDEX
 +;
 +
 +! ---------------------------------------------------------------
 +! Calculated threshold values for each channel of EMG
 +! (level of digitized baseline noise).
 +! Apply noise threshold (i.e., the value determined from the
 +! resting EMG values fall below).  Calculated by passing a
 +! ceiling through data at successively higher levels until
 +! all data values for the 5 second duration fall below the ceiling.
 +! ---------------------------------------------------------------
 +
 +Metric_Maximum
 +/RESULT_METRIC_NAME=_REST
 +/APPLY_AS_SUFFIX_TO_SIGNAL_NAME=TRUE
 +/RESULT_METRIC_FOLDER=::RESULT
 +/SIGNAL_TYPES=ANALOG
 +/SIGNAL_NAMES=
 +/SIGNAL_FOLDER=::RESULT
 +/SIGNAL_COMPONENTS=X
 +/EVENT_SEQUENCE=
 +/EXCLUDE_EVENTS=
 +/GENERATE_MEAN_AND_STDDEV=FALSE
 +! /APPEND_TO_EXISTING_VALUES=FALSE
 +/CREATE_GLOBAL_MAXIMUM=TRUE
 +;
 +</code>
 +
 +==== Madonna EMG Remove Background Meta-Command ====
 +
 +The following Meta Command removes the background noise from the EMG signals and can be Cut-and-Paste into a file named **Madonna_EMG_Remove_Background.v3m**
 +
 +<code>
 +! BEGIN_META
 +! META_CMD_NAME=Madonna EMG Remove Background
 +! META_PARAM= SIGNAL_NAMES:string::yes
 +! META_PARAM= SIGNAL_FOLDER:string::yes
 +! META_PARAM= RESULT_FOLDER:string::yes
 +! META_PARAM= BACKGROUND_FOLDER:string::yes
 +! END_META
 +
 +Set_Pipeline_Parameter
 +/PARAMETER_NAME=FOLDER
 +/PARAMETER_VALUE=::SIGNAL_FOLDER
 +
 +
 +Set_Pipeline_Parameter
 +/PARAMETER_NAME=RESULT
 +/PARAMETER_VALUE=::RESULT_FOLDER
 +
 +
 +! ---------------------------------------------------------------
 +! Remove the EMG background noise
 +! --------------------------------------------------------------- 
 +
 +For_Each
 +/ITERATION_PARAMETER_NAME=INDEX
 +/ITEMS=::SIGNAL_NAMES
 +
 +
 +Evaluate_Expression
 +/EXPRESSION=ABS(ANALOG&:&:&::FOLDER&:&:&::INDEX&& - GLOBAL::METRIC&:&:&::BACKGROUND_FOLDER&:&:&::INDEX&_REST_MAX)
 +/RESULT_NAME=::INDEX
 +/RESULT_TYPE=ANALOG
 +/RESULT_FOLDER=::RESULT
 +
 +
 +Set_Data_To_New_Values
 +/SIGNAL_TYPES=ANALOG
 +/SIGNAL_NAMES=::INDEX
 +/SIGNAL_FOLDER=::RESULT
 +! /SIGNAL_COMPONENTS=ALL_COMPONENTS
 +! /RESULT_SUFFIX=
 +/RESULT_FOLDER=::RESULT
 +! /EVENT_SEQUENCE=
 +! /EXCLUDE_EVENTS=
 +/START_FRAME=1
 +/END_FRAME=EOF
 +! /USE_POINT_RATE=TRUE
 +/REPLACEMENT_VALUES=0
 +/THRESHOLD_HIGH=DATA_NOT_FOUND
 +/THRESHOLD_LOW=GLOBAL::METRIC&:&:&::BACKGROUND_FOLDER&:&:&::INDEX&_REST_MAX
 +
 +
 +End_For_Each
 +/ITERATION_PARAMETER_NAME=INDEX
 +;
 +</code>
 +
 +==== An example Visual3D Pipeline Command to call these Meta-Commands ====
 +
 +In this example, some files are TAGGED as REST, EMG, and GAIT.
 +
 +<code>
 +!Make the Resting Trial the Active File.
 +
 +For_Each
 +/ITERATION_PARAMETER_NAME=TAGS
 +/ITEMS=REST
 +;
 +
 +Select_Active_File
 +/FILE_NAME=::TAGS
 +!/QUERY=
 +;
 +
 +! Calculates resting background by calling the EMG_Resting_Background Meta-Command.
 +EMG_Resting_Background
 +/SIGNAL_NAMES=LGAS+LGLU+LMED+LTIB+LVAS+RGAS+RGLU+RMED+RTIB+RVAS
 +/SIGNAL_FOLDER=EMG_FILTERED
 +/RESULT_FOLDER=EMG_BACKGROUND
 +;
 +
 +End_For_Each
 +/ITERATION_PARAMETER_NAME=TAGS
 +;
 +
 +! This loop will remove the resting background from the signals.
 +For_Each
 +/ITERATION_PARAMETER_NAME=TAGS
 +/ITEMS=EMG+GAIT
 +;
 +
 +Select_Active_File
 +/FILE_NAME=::TAGS
 +!/QUERY=
 +;
 +
 +! Call the EMG_Remove_Background Meta-Command
 +EMG_Remove_Background
 +/SIGNAL_NAMES=LGAS+LGLU+LMED+LTIB+LVAS+RGAS+RGLU+RMED+RTIB+RVAS
 +/SIGNAL_FOLDER=EMG_FILTERED
 +/BACKGROUND_FOLDER=EMG_BACKGROUND
 +/RESULT_FOLDER=EMG_PROCESSED
 +;
 +
 +End_For_Each
 +/ITERATION_PARAMETER_NAME=TAGS
 +;
 +</code>
 +
 +
  
visual3d/documentation/emg/processing_tools.1720027517.txt.gz · Last modified: 2024/07/03 17:25 by sgranger