====== Normalize EMG to Maximum 30 second interval ====== This page shows an example of processing EMG data using the Root Mean Square (RMS) Amplitude Method. ==== Using the Moving_RMS Command ==== === Moving RMS using Frame Window === For example the command below applies the moving RMS with a 51 frame window: Moving_RMS /Signal_Types=ANALOG /Signal_Names=EMG1+EMG2+EMG3 /Signal_Folder=PROCESSED /Num_Window_Frames= 51 ; === Moving RMS using Time Window === When reporting RMS, it's typically stated as an RMS window over a specified time interval of T. An example of running an RMS over a 100 ms (0.1 seconds) window is achieved as: ! Moving RMS with 100ms 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 ; ==== Using the Moving_RMS Command to Process EMG Data ==== An example of "putting it all together". First the signal is Highpass filtered to remove the DC offset, then lowpass filtered and finally rectified: ! 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 100ms 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 ; [[Visual3D:Documentation:EMG:Filtering:EMG_Envelope|If you are using a version of Visual3D older than 4.94, you can use the example here.]]