## NOTE: This is a hosting of the works of A.J. Fisher who died on February 29 2000.

Source can be found at https://github.com/university-of-york/cs-www-users-fisher

### If you would like this to be taken down, please contact me at johan@anteeo.se

# Truncated Coefficients

The design program calculates and displays the filter coefficients as floating-point numbers.
If you intend to execute your filter on a floating-point process, you can use the coefficients
directly. If however you are targetting a fixed-point processor, or a dedicated FIR chip
which uses fixed-point, then you will have to convert the coefficients to fixed-point numbers.
This entails truncation of the coefficients, so that they will fit in a given number of bits.
This truncation will affect the response of the filter to some extent. The ``truncate to ... bits'' option
allows you to investigate the extent of this distortion of the response.

Entering a value (an integer, *n* say) in the ``truncate to ... bits'' box tells the filter
generation program to generate coefficients which can be represented exactly in 1:(*n*-1) fixed-point,
that is with a sign bit and *n*-1 bits after the binary point. It doesn't actually display the
coefficients in that form: that's up to you. (C doesn't have a syntax for fixed-point.)

In more detail, what happens is this.
First, the coefficients are all scaled so that they lie in the range

-1 .. +(2^{n-1}-1) / 2^{n-1} .

Then each coefficient *x* is adjusted to the closest value which can be represented in
1:(*n*-1) fixed-point, namely
where fix denotes ``nearest integer to''.

Tony Fisher /
fisher@minster.york.ac.uk