This document contains proprietary information of KVH Industries, Inc. and neither this document nor said proprietary information shall be
published, reproduced, copied, disclosed, or used for any purpose without the express written permission of a duly authorized KVH representative.
Page 69 of 77
12.2.4.2 Use with the Uniform Averager Type Filter
The Uniform Averager type is a special filter case and does not use the biquad filter stages.
When selected, data is still passed through the intermediate decimator (filter and
downsampler) and then into the Uniform Averager’s accumulation process. This
accumulation process uses two accumulators: one for the newest downsampled
gyro/accelerometer data and one for one sample back in time. There is also a data counter,
so it can later compute the average when final output is needed. The final accumulated data
is later interpolated and then finally averaged just prior to when the output data is packaged.
The Uniform Averager type filter is thus computing the average of the samples over the
output period and is not a simple moving average. This filter type is automatically configured
if the user selects the external MSYNC type of output data request, but can be subsequently
overridden to use the biquad stages for filtering.
12.2.5 Final Output Data Request
Depending on the configuration, the output of data is triggered from either the MSYNC input
or a divided clock generated by the unit. This is shown in the diagram as an Output Request
selection check box below a selection switch. The data output request will be converted to
the TOV signal output and will trigger the ICB to take a timestamp and signal the process
needed to generate the output according to one of the configured data formats. If the ICB
does not see an output request within 2 secs (1/2 Hz), the ICB will output data on its own,
essentially acting like a watchdog timer. The ICB does not change any filtering to limit
aliasing in this case. One benefit of this is that during testing or development with the IMU, it
can be a useful indication that the unit is working, but perhaps not receiving an external
MSYNC. However, the 1/2 Hz output is not intended to be used as a normal means of
obtaining data.
When the ICB’s main software loop process sees the request for data output, it will “freeze”
the output data containers by making a copy. This is shown as “AARS” or arbitrary
asynchronous resampling. The original containers can then continue to be updated while the
frozen values can be prepared for output. These containers hold the gyro or accelerometer
data for each channel and the timestamps associated with when they were received from the
sub-systems. They also contain a similar set of data/timestamps for the prior sample set (i.e.,
one internal decimated time period old). The difference in time between the new and older
samples would thus depend on the configured data rate and the output filter configuration.
The filtered data old/new pair is then operated on by an interpolation function to compute an
output value based on a linear interpolation model of the new and old values and the delta
time between the internal samples and the output sample request. This is described in detail
in a subsequent section.