View Single Post
Old 01-19-2017, 11:18 AM   #29
earlevel
Human being with feelings
 
Join Date: Dec 2015
Posts: 331
Default

Quote:
Originally Posted by Nowhk View Post
When I cascade 2 (or 3) of your Biquad TDF2 (making somethings like an EQ 3 Bands), how would you evalutate filter frequency response?
Tale did somethings similar in his plugin using RBJ filter.

The "# direct evaluation of coefficients at a given angular frequency" will change I guess? Do I just need to stack them (so coefs[] are coefficients of the 3 filters)?
First, I just want to re-iterate that "[my] Biquad TDF2" and "RBJ filter" are essentially indistinguishable in this conversation. You probably understand this, but I just want to make sure we're framing this right. We're just talking about direct form filters, which have a particular set of coefficients.

That said, when you have two filters in series, the transfer functions multiply. Frequency responses multiply.

Think about it in terms of frequency response: Say that you have two lowpass filters. Both have unity gain at 100 Hz. The frequency response there would be 1 x 1 = 1. And let's say that both had a magnitude response of 0.5 at 2000 Hz. You'd get 0.5 x 0.5 = 0.25. No surprises—if one filter cuts the response in half, and the second cuts that in half, it's now a quarter—this is exactly what you'd expect, but this little exercise gives us a little confidence we're on the right track.

So, for a biquad, the transfer function H(z) = (a0 + a1*z^-1 + a2*z-2) / (b0 + b1*z^-1 + b2*z-2). Note that z terms range from z^0 to z^-2 for a biquad. For two biquads with different coefficients and therefore two different transfer functions, you'd have to multiple the two together, collect all those terms, and simplify so that you end up with z terms from z^0 to z^-4, and use those.

More practically, just evaluate the response of each biquad and multiply those responses together.
[/QUOTE]
earlevel is offline   Reply With Quote