EMG Resting Background Script

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

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

Set_Pipeline_Parameter
/PARAMETER_NAME=SIGNAL_NAMES
/PARAMETER_VALUE=LGAS+LGLU+LMED+LTIB+LVAS+RGAS+RGLU+RMED+RTIB+RVAS
! /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).
! ---------------------------------------------------------------

Set_Pipeline_Parameter
/PARAMETER_NAME=FOLDER
/PARAMETER_VALUE=EMG_FILTERED
! /PARAMETER_VALUE_SEARCH_FOR=
! /PARAMETER_VALUE_REPLACE_WITH=
! /PARAMETER_VALUE_PREFIX=
! /PARAMETER_VALUE_APPEND=
;

Set_Pipeline_Parameter
/PARAMETER_NAME=RESULT
/PARAMETER_VALUE=EMG_BACKGROUND
! /PARAMETER_VALUE_SEARCH_FOR=
! /PARAMETER_VALUE_REPLACE_WITH=
! /PARAMETER_VALUE_PREFIX=
! /PARAMETER_VALUE_APPEND=
;

Select_Active_File
/FILE_NAME=REST
!/QUERY=
;

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
;

! ---------------------------------------------------------------
! Remove the EMG background noise
! --------------------------------------------------------------- 

! 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=
;
 
Set_Pipeline_Parameter
/PARAMETER_NAME=FOLDER
/PARAMETER_VALUE=EMG_BACKGROUND
! /PARAMETER_VALUE_SEARCH_FOR=
! /PARAMETER_VALUE_REPLACE_WITH=
! /PARAMETER_VALUE_PREFIX=
! /PARAMETER_VALUE_APPEND=
;

Set_Pipeline_Parameter
/PARAMETER_NAME=RESULT
/PARAMETER_VALUE=EMG_PROCESSED
! /PARAMETER_VALUE_SEARCH_FOR=
! /PARAMETER_VALUE_REPLACE_WITH=
! /PARAMETER_VALUE_PREFIX=
! /PARAMETER_VALUE_APPEND=
;

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
;

End_For_Each
/ITERATION_PARAMETER_NAME=TAGS
;
Retrieved from ""