1
$\begingroup$

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.

$\endgroup$
  • $\begingroup$ i dunno why, but i can't quite decode the question. for fixed-point and signed values 16-bit means the integer values are $-2^{1/(16-1)} \le x \le 2^{1/(16-1)} - 1$. the coefficients, $c$ have $N$ bits and are signed. that means $-2^{1/(N-1)} \le c \le 2^{1/(N-1)} - 1$ because it's signed multiplication, you can virtually get way with $16-1+N$ bits for the product, but you will need more guard bits to the left. if you never expect to sum more than $2^G$ terms, then $G$ guard bits suffice. $\endgroup$ – robert bristow-johnson May 4 '16 at 21:58
  • $\begingroup$ Hi Robert - thanks for the reply, and sorry if the question is confusing. I agree with your assessment on the bit-growth. The question really starts with the full-precision filter-output would of ~16+N bits wide - if I then truncate/round the output back to 16 bit, what does it mean for the very small coefficients. - lets say N is 20 bit for the largest coeff - > total filter output is 36-bit (+G). Then assume I round the output to ~16-bits. The question is, if I also have a very small coefficient in this filter - say 2 bits wide - if I do an impulse response, I see 0 @ output $\endgroup$ – John McGrath May 4 '16 at 22:04
  • $\begingroup$ @robertbristow-johnson I've attempted to clarify the question above, and also in my previous comment. Thanks again for the help. $\endgroup$ – John McGrath May 4 '16 at 22:18
  • $\begingroup$ as long as your accumulator has $16-1+N+G$ bits, there is no information lost until you truncate (or round) and saturate (in necessary) the result. now, if any tiny coefficients (that could be represented with $N$ bits each) were to not have effect, it is because their contribution to the accumulator (after multiplying the 16-bit value) does not cause a change of rounding (or cause a crossing of the truncation boundary). that will likely be the case most samples but not all. $\endgroup$ – robert bristow-johnson May 5 '16 at 0:09
  • $\begingroup$ the way coefficient quantization (that is quantizing to $N$ bits) has a real effect, particularly for FIR, is that something that looks sorta like white noise gets added to your frequency response and that will crap up the stopband (in dB) much more than the passband. $\endgroup$ – robert bristow-johnson May 5 '16 at 0:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.