SCALE

The ANALOG:SCALE parameter is an array of floating-point values that must be applied (together with the ANALOG:GEN_SCALE parameter value) to convert the raw analog data to real world values – normally the units described in the ANALOG:UNITS parameter.  As a result, it is essential that each analog channel have an associated SCALE parameter together with an OFFSET parameter so that the correctly scaled analog values can be calculated.

In the original C3D file description (signed C3D), arrays, such as ANALOG:SCALE, use a signed byte as an index.  Signed bytes have a possible range of –128 to +127 but since the array index is always a positive number, the maximum number of array entries for ANALOG:SCALE is 127.  Since negative array indexes are illegal, the range of the array storage can be extended by interpreting the index as an unsigned byte with a range of 0 to +255.  The use of an unsigned byte for the array index can be assumed if the array index appeared to be negative when read as a signed byte.


To convert the analog signal to volts measured at the ADC inputs, the necessary scale factor is given by the following expression:


 The ANALOG:GEN_SCALE parameter may be used to apply an additional uniform scale factor to all analog channels.  In these discussions it will be assumed that ANALOG:GEN_SCALE = 1.0 and therefore has no effect on the results although we will show it in the calculations thus:


Since the two C3D file variables are both in the ANALOG group, this can be simply stated thus:

The ADC_range is the actual input range of the ADC card that is used to collect the data.  This is normally ±10Volts, which yields an actual ADC_range of 20 – that is to say; the ADC card can record signals as over the range of 10 volts negative to 10 volts positive magnitude, a total range of 20 Volts.

The variable ADC_resolution is the total number of discrete measurement steps available to measure the ADC input signal, which is related to the ADC precision.  An ADC with 12-bit precision can report the value of its input with a resolution of 1 part in 212 – this translates to an ADC_resolution of 4096.  Thus our equation can be written:


In other words, when GEN_SCALE = 1.00 and the ADC has 12-bit precision (212) and a 20Volt range, the individual ANALOG:SCALE value must be 0.004883 to scale the analog data in the C3D file in volts measured at the ADC input.

It’s worth noting that, calculated in this manner, the value 0.00488281 volts is the minimum change in input voltage that is required to increase the ADC output count by one.  This is another way of saying that the smallest input voltage change that we can detect and record (for the configuration described above) is about 0.0049 volts or 4.9mV – any signal change less than 4.9mV will not be recorded.  This is a limitation of the precision used by the ADC recording method, not something that is inherent in the C3D file format.

There are two ways to increase the measurement sensitivity – either increase the measurement resolution (i.e. use a 16-bit ADC with 216 bits of precision) or add additional amplification to the input signal.  Increasing the ADC precision usually means changing hardware and software components of the data collection system and generally affects all the analog channels.  This can be both expensive and technically challenging.  As a result, the common method of increasing measurement sensitivity is to add amplification to the input signal.


Many modern ADC devices have the ability to internally set gains of x1, x2, x4, and x8 etc on individual analog channels within the device itself.  The gain applied to each analog channel internally will directly affect the ADC_range variable for each channel.  For instance, an ADC channel with a nominal ±10 volt input range and an internal ADC_gain of x2 would have an effective input range of ±5Volts due to the additional amplification.  The internal ADC_gain for each individual analog channel can be factored into the ANALOG:SCALE parameter thus:


Using the example of a ADC_gain of x2, will cause the ANALOG:SCALE parameter calculated earlier to be reduced by a factor of 2, thus:


In addition to the internal ADC_gain discussed above, many signal sources may have additional amplification that needs to be taken into account – for example, an electromyography system with an amplification of x5000 would produce an output level of ±5 Volts from an input of ±1mV or ±0.001 Volt.  This additional Gain can also be factored into the individual ANALOG:SCALE calculations as follows:

More:

Calculating SCALE values for EMG systems

Calculating SCALE values for load cells

Calculating SCALE values for force plates