I am implementing a filter in hardware, and the intended maximum data input is 16-bit. The question is, if the output is to be re-quantized to 16-bit, does this mean certain coefficients are effectively 'useless' - as outlined here:
The filter is a fractional delay filter (FIR), so for very small fractional delays some of the coefficients are very small, while the center tap is large. (large coefficient dynamic range)
In the current design the coefficients have been quantized - and in integer form, the smallest is +1, while the largest is 195890 so a range of 2 bit (signed) to 20 bit (signed).
So the question is - if I quantized the output to 16-bit, does this mean the smaller coefficients are effectively unused. For example, if I do an impulse response test, I will get zeros for any coefficients that are smaller than 4-bits, due to the fact the 20-bit coefficient sets where the MSB of the output is.
For practical data, I imagine these smaller coefficients may have a minor impact as they may effect the output - but it is interesting that the impulse response would show them as dropped.
Is there any guideline that says if the coefficients dynamic range is larger than the output bit-width, that they are effectively unused?
Clarification of the question
- Data-width is 16-bit, Largest coeff width is 20-bit, Smallest Coeff width is 2-bit.
- Filter internal word-size is ~ 16+20+G, where G are the guard bits.
- This full precision value is truncated/rounded to a 16-bit output.
Doing an impulse response test on this filter, I will see the larger coefficients, but the smaller ones will come out as 0, due to the fact the output can only take 16-bit, while the difference between the largest and smallest coefficient is 20-2 = 18 bit. Does this mean these smaller coefficients are not effective, given the impulse response 'cant see' them.