Documentation Site Map Main Page Reference List Motion Capture Visual3D Overview Visual3D Installation License Activation Getting Started Visual3D Documentation Overview Pipeline Commands Reference Expressions Overview CalTester Mode Overview List of Tutorials Visual3D Examples Overview Troubleshooting Sift Sift Overview Installation Getting Started Sift Documentation Overview Knowledge Discovery for Biomechanical Data Tutorial Overview Troubleshooting Inspect3D Inspect3D Overview Inspect3D Installation Overview Inspect3D Getting Started Overview Inspect3D Documentation Overview Knowledge Discovery in Inspect3D Inspect3D Tutorials Overview Troubleshooting DSX Suite DSX Overview DSX Definitions DSX Suite Installation DSX Tutorials DSX Release Notes xManager Overview PlanDSX Overview Surface3D Overview Orient3D Overview CalibrateDSX Overview Locate3D Overview X4D Overview
This is an old revision of the document!
1 signal management]] * [[#global_normalized_signal_mean|1.1 global_normalized_signal_mean]] * [[#meta-command_-_create_global_means_for_left_right|1.1.1 meta-command - create_global_means_for_left_right]] * [[#find_representative_signal|1.2 find representative signal]] * [[#merge_data|1.3 merge_data]] * [[#copy_folder|1.4 copy_folder]] * [[#rename_folder|1.5 rename_folder]] * [[#delete_folder|1.6 delete_folder]] * [[#remove_signals|1.7 remove_signals]] * [[#rename_signals|1.8 rename_signals]] ===== signal management ===== ==== global_normalized_signal_mean ==== time normalize a signal (in this case knee flexion angle) between events (rhs to rhs) for right knee angles and (lhs to lhs) for left knee angles, and compute a global mean and standard deviation. note: the global_normalized_signal_mean command only works on one component at at time for each signal. (you must select either y, y or z as the signal_components.) first add the global_normalized_signal_mean command to the pipeline. double click on the command to launch the dialog. gmsm_1.jpg select the rknee_angle signal and the event sequence (e.g rhs to rhs) and select **add a new signal** gnsm_2.jpg select the lknee_angle signal and the event sequence (e.g lhs to lhs) and select **add a new signal** gnsm_3.jpg enter the **p2d result signal name** and click **create standard deviation** button gnsm_4.jpg when you select **ok** the text representation of the command should be as follows: <code> global_normalized_signal_mean /signal_types=link_model_based+link_model_based /signal_names=rknee_angle+lknee_angle /signal_folder=original+original /signal_components=x+x /start_label= /end_label= /event_sequence= rhs+rhs++lhs+lhs ! /exclude_events= /result_name=knee_flexion ! /result_folder=original /normalize_points=101 /create_standard_deviation=true ! /calculate_per_file=false ; </code> **note:** if **calculate_per_file=false** signals from all active files are used to compute the mean. **note:** if **calculate_per_file=true** the mean value is computed for signals from each active files. the global mean value is then the mean value of the mean values. **note:** the output signal is a p2d signal, which is associated with every file. the resulting signal, therefore, is stored in the global_workpace === meta-command - create_global_means_for_left_right === a meta-command can be created for processing all 3 components of a number of model based signals using one pipeline command. let the original cmo file contain the following signals: **rankle_angle**, **rknee_angle**, **rhip_angle**, **lankle_angle**, **lknee_angle**, and **lhip_angle**. let the events for heel strike be labeled **lhs** and **rhs**. the mean signal should be computed from heel strike to heel strike. the pipeline call for the meta-command below is: <code> create_global_means_for_left_right /type=angle /joints=ankle+knee+hip /start_event=hs /end_event=hs ; </code> the meta-command, which should be placed in the meta_command folder within the plugins folder is as follows: <code> ! begin_meta ! meta_cmd_name=create_global_means_for_left_right ! meta_param= type : string ::yes ! meta_param= joints : string ::yes ! meta_param= start_event : string ::yes ! meta_param= end_event : string ::yes ! end_meta ! create a global_normalized_signal_mean event for left and right sides with common labels (e.g.rhs and lhs) for_each /iteration_parameter_name=index1 /items=::joints ; for_each /iteration_parameter_name=index2 /items=x+y+z ; global_normalized_signal_mean /signal_types=link_model_based+link_model_based /signal_names=r&::index1&_&::type+l&::index1&_&::type /signal_folder=original+original /signal_components=::index2+::index2 /start_label=r&::start_event+l&::end_event /end_label=r&::start_event+l&::end_event ! /event_sequence= ! /exclude_events= /result_name=::index1&_&::type&_&::index2 ! /result_folder=original ! /normalize_points=101 ! /create_standard_deviation=false ! /calculate_per_file=false ; end_for_each /iteration_parameter_name=index2 ; end_for_each /iteration_parameter_name=index1 ; </code> ==== find representative signal ==== find the signal that is most representative of a set of signals. this implementation is based on the following article: shadmehr r and mussa-ivaldi fa (1994) **adaptive representation of dynamics during learning of a motor task**. j. neuroscience 14(5), pp 3208-3224. **note:** that there is an error in the appendix that we have accounted for. for example, to find the representative knee flexion angle over the range rhs to rhs. <code> find_representative_signal /signal_types=link_model_based /signal_names=rknee_angle /signal_folder=original /signal_components=x /event_sequence=rhs+rhs ! /exclude_events= ! /normalize_result_points= /result_name=rknee_angle_rep ! /result_folder=original ; </code> ==== merge_data ==== merges data from more than one data name into a single signal either by **append_to_end** (appending one signal to the end of another signal) or by **merge_as_new_components** (treat each original signal as a component of the new signal) for example, create a vector from 3 analog signals. <code> merge_data /signal_names=analog1+analog2+analog3 /signal_types=analog+analog+analog /signal_folder=original+original+original /signal_components=0+0+0 /result_name=vector /result_type=derived /result_folder=processed /merge_type=merge_as_new_components ; </code> **note:** if the signal_components parameter is empty, all components of the signals will be used. ==== copy_folder ==== makes a copy of an existing folder. if the new folder already exists, select whether these signals should be overwritten (replaced). <code> copy_folder /signal_type= /existing_folder= /new_folder_name= /overwrite_existing_signals=false ; </code> ==== rename_folder ==== rename the specified data tree folder. <code> rename_folder /signal_type= /existing_folder= /new_folder_name= ; </code> ==== delete_folder ==== deletes the specified folder. **note:** that original folders cannot be deleted. <code> delete_folder /signal_type= /folder= ; </code> ==== remove_signals ==== remove a signal from the workspace. **note:** that visual3d will not allow the user to delete original signals. <code> remove_signals /signal_types= /signal_names= ! /signal_folder=original ; </code> for example, remove one derived signal and one metric <code> remove_signals /signal_types=derived+metric /signal_names= derived1+metric1 ! /signal_folder=processed+processed ; </code> ==== rename_signals ==== rename a signal in the workspace. for example, rename a derived signal in all of the active files <code> rename_signals ! /file_name= /signal_types=derived /signal_names=derived1 /signal_folder=processed /new_signal_name=derived2 ! /append_to_old_signal_name=false ; </code> }}}}}}