Analog Data

You must ensure that all ANALOG:GEN_SCALE and ANALOG:SCALE values are set to values that scale the analog data in meaningful ways.  Thus force plate data channels will contain ANALOG:SCALE values that are consistent with the scaling calculations that are required by the force plate TYPE description in the C3D manual.  Other analog channels that containing data with known scaling - for example strain gauge signals, or torque, velocity, and angle data from a dynamometer system etc - should have ANALOG:SCALE values that make sense and are described in the ANALOG:LABEL and ANALOG:DESCRIPTION entries.

Analog data that does not have fixed, known, scaling values (e.g. EMG signals) should be scaled in terms of "volts applied to the ADC input", allowing the data to be viewed and scaled later in sensible terms.  Any post-processing scaling can be applied as a separate value, stored in the C3D parameters, allowing the data to be viewed either in terms of the original "recorded values", or displayed "scaled" by third-party software.  An Excel spreadsheet can be downloaded from the www.c3d.org site that simplifies and documents most common C3D scaling calculations.

It is strongly recommended that all ANALOG:SCALE values are chosen appropriately so that the analog data values are preserved when C3D files are converted between integer and floating point data types.  This means that if your default file storage format is floating point then all analog data should be scaled to produce numbers within a range of a signed 16-bit integer - specifically −32,768 to +32,767 when the C3D file is converted to the integer format.

Failure to follow this recommendation may result in analog data values being corrupted if the C3D file is converted to integer format unless the conversion operation goes to the trouble of rescaling the affected analog channels.  This can be avoided by choosing appropriate analog scale values or, if you are in doubt, always storing your data in integer formatted C3D files.