So far I was using DF1 for biquad filters for audio DSP, but it turns out that it is possible to gain significant performance gains using the new AVX/AVX512 instruction sets using DF2. Are there any relevant problems assuming we are using 64-bit floating point precision?


Depends on how close your poles are to the unit circle. For DF2, the transfer function from the input to the state variables are given by the poles, so there can be substantial gains in there. For typical audio filters, it's not unusual to see 100+ dB of gain and that would definitely be a problem for 32-bit floating point.

These enormous gains also make updating the filters dynamically very tricky since it will typically generate massive transients.

I suggest looking at transposed form 2. It's often as efficient as DF2 but has much better behaved state variables.

| improve this answer | |
  • $\begingroup$ Thanks for the info! I think the gain shouldn't be a problem in double precision processing, but dynamic updating IS a problem. $\endgroup$ – Vojtěch Melda Meluzín Sep 26 '18 at 15:13

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.