I read in "Discrete-Time Signal Processing" Reference, in transposed Direct Form II filters section, that it implements zeros first then poles(unlike Direct form II which implements poles first), Which is important in the presence of quantization of finite precision or noise without adding further explanation.

Why implementing Zeros first is better than implementing poles first?


Compared to the Direct Form I, Direct Form-II has pros and cons.

  • The advantage of DF-II is its more efficient usage of the delay lines. Although both use separate all-pole and all-zero sections, the DF-II can share the delay lines between them and reduce the number of required delays to implement the same transfer function.

  • The disadvantage of DF-II is that it precedes the poles and imposes a higher dynamic range on the intersecting delay line in some frequencies. Therefore, unlike the DF-I which first implements the zeros and is almost immune to overflow, DF-II is prone to such effects.

In the transposed DF-II the zeros are implemented first AND the delay lines are shared between the all-pole and the all-zero section. Hence, the transposed DF-II has the advantage of DF-II and also offers a better robustness similar to the behavior of DF-I.

Also, it is stated here that they are more robust when filters with a sharp-transition are implemented.

  • $\begingroup$ if you implement DF1 without a double-wide accumulator, then, instead of the danger of overflow that the DF2 has, the DF1 has the disadvantage of a greater quantization noise. the zeros reduce the signal strength before the poles amplify it back. but the poles will amplify the quantization error unless there is no quantization error because a double-wide accumulator is use. $\endgroup$ – robert bristow-johnson Jul 30 '17 at 6:44
  • $\begingroup$ Yes, thanks for noting. There is a subtle presumption that all direct forms follow the more common double-precision accumulator/quantizer design as opposed to the multiply-quantize approach with single precision accumulators. $\endgroup$ – msm Jul 30 '17 at 7:22

One key consideration is the transfer functions from the input to the state variable(s). For DF1 this is trivial, since the state variables are the input & output itself. For DF2 and DF1 transposed, some of the transfer functions are the poles. For typical audio filters, these can result in a gain of 100 dB or more. This enormous gain makes any type of fixed point implementation very tricky and can be a source of significant noise even in 32-bit floating point.

DF2 transposed is generally benign. The max gain between either input or output and any of the state variables is about 10dB or thereabouts.


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.