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 35 of 77
8.12 =fc20
8.12.1 Description
This command allows the user to change the final output filtering from the built-in Butterworth,
Chebyshev, or Uniform Averager to a custom, user-specified filter. The user can define the
filters used for accelerometer and/or gyro data individually directly through the coefficients. If
the RESET parameter option is sent, this will engage the default output filters that will scale
automatically with the output rate.
The final output filter is used for proper decimation (low-pass filtering and downsampling) of
the internal processes to the output data rate. Normally the final filter stage is computed
automatically, according to the selected data rate and filter type, and is typically either a
Chebyshev or Butterworth type.
The final output filter is implemented as a four stage cascaded biquadratic (biquad) filter (8
th
order total). The coefficients specify the direct form 1 of the biquad having the classic transfer
function in the z-domain as follows:
In the z-domain, z
-n
represents a time shift of n sample periods. The b
n
coefficients specify the
feedforward coefficients for the new sample and its time-delayed values, the a
n
coefficients
specify the feedback coefficients of the time-delayed outputs, and the a
0
coefficient is
normalized to a value of 1.
The IMU signal-processing will implement each of the biquad stages as the following:
y[n] = b
0
*x[n] + b
1
*x[n-1] + b
2
*x[n-2] + a
1
*y[n-1] + a
2
*y[n-2]
Where y[n] is the output and x[n] is the input and the n-1 and n-2 terms are their time-delayed
values.
When designing custom filters, the user should be conscious of anti-aliasing (Nyquist-Shannon
sampling theorem) based on the output data rate. The filtering operation uses single-precision
floating-point values. Installing filter coefficients that span a large numeric range (i.e., have
high precision) may result in quantization errors and numerical instability. After installing
custom coefficients, be sure to use the =TESTFILT command to verify the impulse response of
the system is as you intended.