Zero Delay Feedback Filter
Posted: Sun Feb 23, 2014 12:45 pm
About 2 years ago people at KVR got excited about so-called zero delay feedback (ZDF or 0df) filters. Meanwhile, it appears that these filters have become a sort of de facto standard in music DSP, while direct form biquads, which we have been using all along, are generally being frowned upon (well, they frown on us Synthmakers anyway
). Apart from marketing hype, ZDF filters do have some desirable properties, the most important one being fast modulation stability. (It took me a while to realize that two different filter implementations may have the same static transfer functions but when modulated they may behave quite differently.)
So maybe it's time to catch up a bit and reconsider using our good old RBJ Direct Form I biquad implementations? In the schematic below is a 2nd order ZDF filter along with some test modules with comparisons to various biquad implementations (Direct Forms I and II, as well as Transposed Direct Form II).
The Transfer Function module basically shows that the static (non-modulated) audio response of the filters is equivalent. The Modulation module (hehe) demonstrates how all biquad forms have problems with fast modulation, while the ZDF filter remains stable even at extreme settings. Please watch your ears/speakers while experimenting! Finally, the Step Response module shows limitations of the various biquad forms wrt numerical precision in the sub-audio range. This may be a concern if you want to lowpass filter noise for a random LFO. For cutoff frequencies of 1 s and less, the biquads simply go blank while the ZDF filter performs much better.
Oh, other good news is that ZDF is no worse in complexity or CPU load than the biquad forms.
So maybe it's time to catch up a bit and reconsider using our good old RBJ Direct Form I biquad implementations? In the schematic below is a 2nd order ZDF filter along with some test modules with comparisons to various biquad implementations (Direct Forms I and II, as well as Transposed Direct Form II).
The Transfer Function module basically shows that the static (non-modulated) audio response of the filters is equivalent. The Modulation module (hehe) demonstrates how all biquad forms have problems with fast modulation, while the ZDF filter remains stable even at extreme settings. Please watch your ears/speakers while experimenting! Finally, the Step Response module shows limitations of the various biquad forms wrt numerical precision in the sub-audio range. This may be a concern if you want to lowpass filter noise for a random LFO. For cutoff frequencies of 1 s and less, the biquads simply go blank while the ZDF filter performs much better.
Oh, other good news is that ZDF is no worse in complexity or CPU load than the biquad forms.