earlevel wrote:I've long advocated TDF2 over DF2 for floating point processing due to better floating point characteristics. Summed partial calculations are closer in magnitude, yielding better precision. Maybe it's not the only good reason.
Interesting. Would you care to reveal a bit more detail, because upon the first look I cannot identify the reasons for having significantly different precision there?
I was afraid you might ask!
It might be about 20 years since I've looked at this, but it's based on an analysis of the difference in magnitude of values at the summing nodes. I remember I was tipped off to this by stumbling upon it in some lecture notes from a DSP class—I sent the instructor an email saying how much I appreciated that the info was accessible (back in a time when there wasn't so much available); he didn't reply but the link was no longer accessible.
Wikipedia, under "digital biquad filter", says, "Transposed direct forms—Each of the two direct forms may be transposed by reversing the flow graph without altering the transfer function. Branch points are changed to summers and summers are changed to branch points. These provide modified implementations that accomplish the same transfer function which can be mathematically significant in a real-world implementation where precision may be lost in state storage." That's pretty vague, but it is pointing out that the transposed versions can
be superior numerically.
Back in the day I was doing a lot of precision analysis via mathcad, mostly because I was doing a lot of fixed-point (56k) DSP. Not sure if I have anything to dig up...