User Tools

Site Tools


visual3d:documentation:pipeline:signal_commands:signal_management_commands

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> }}}}}}

visual3d/documentation/pipeline/signal_commands/signal_management_commands.1718801603.txt.gz · Last modified: 2024/06/19 12:53 by sgranger