I'm struggling with biquad filters multiplication. I have filter that is composed of 7 simple filters (Shelves, peak, low pass, high pass, notch etc). This filter is designed in continuous domain using the variable 's' and the function tf.
I need now to convert it into digital. To do so, I use the function 'c2d'. It works perfectly for the simple filters alone but it shows strange results in low frequencies when I'm using the complete filter. I already tried different method of computation of the discrete model in the c2d options. I have also tried to convert the complete filter with tf2sos with no improvement.
Is this error due to rounding error? Where does this error can come from?
The final aim is to get the digital coefficients for the separated filters but I'm unable to verify that the result is correct.
On the left of the figure, the 7 filters, independantly converted, superimposed correctly on the continuous model. On the right, the total transfer function, results of the multiplication of the seven filters and the digital conversion, showing important differences with the continuous model below 3kHz.
Also note that all combination of two filters are correctly converted to digital.