I am trying to use the Matlab FDAtool to generate IIR filter coefieficients. I am a bit confused as to the format of the data.
Numerator Section 1 = 1, -1.706681886025, 1 Denominator Section 1 = 1, -1.527217053584, 0.7184480476664 Numerator section 2 = 1, 0.4714206650502, 1 Denominator section 2 = 1, -0.7855219502704, 0.1828606950272 Numerator section 3 = 1, -1.844088863607, 1 Denominator section 3 = 1, -1.826943294536, 0.9574809532943 Numerator section 4 = 1, -1.355793289995, 1 Denominator section 4 = 1, -1.198817610676, 0.4794199882168 Numerator section 5 = 1, -1.810111156144, 1 Denominator section 5 = 1, -1.714882124594, 0.8614509371445
I tried multipying the numbers by (2^23-1 )and then scaling them by 6 dB or in other words multiplying them by (2^22-1) to prevent an overflow. My question is do I have to divide the N1 and D1 by two and negate D1 and D2 based on the equation in the data sheet (5.1). Any way I tried two scenarioios and neither one seems to work.
Int16 BiquadCoeff[50] = { //ChebyII 10th order 5 section biquad 022210 from Jeff Solum //Section 1 0x3F,0xFFFF, 0xC9,0x62DD, 0x3F,0xFFFF, 0xCF,0x210A, 0x2D,0xFB0E, //Section 2 0x3F,0xFFFF, 0x0F,0x15E0, 0x3F,0xFFFF, 0xE6,0xDD02, 0x0B,0xB3FD, //Section 3 0x3F,0xFFFF, 0xC4,0xFD39, 0x3F,0xFFFF, 0xC5,0x89AF, 0x3D,0x475E, //Section 4 0x3F,0xFFFF, 0xD4,0x9D57, 0x3F,0xFFFF, 0xD9,0xA34A, 0x1E,0xAED1, //Section 5 0x3F,0xFFFF, 0xC6,0x1392, 0x3F,0xFFFF, 0xC9,0x1FC0, 0x37,0x2203, }; /*Int16 BiquadCoeff[50] = { //ChebyII 10th order 5 section biquad 022210 from Jeff Solum with signs changed on D1 and D2 //Section 1 0x3F,0xFFFF, 0xC9,0x62DD, 0x3F,0xFFFF, 0x30,0xDEF6, 0xD2,0x04F2, //Section 2 0x3F,0xFFFF, 0x0F,0x15E0, 0x3F,0xFFFF, 0x19,0x22FE, 0xF4,0x4C03, //Section 3 0x3F,0xFFFF, 0xC4,0xFD39, 0x3F,0xFFFF, 0x3A,0x7651, 0xC2,0xB8A2, //Section 4 0x3F,0xFFFF, 0xD4,0x9D57, 0x3F,0xFFFF, 0x26,0x5CB6, 0xE1,0x512F, //Section 5 0x3F,0xFFFF, 0xC6,0x1392, 0x3F,0xFFFF, 0x36,0xE040, 0xC8,0xDDFD, };*/