89 smp_type freq, smp_type srate,
93 smp_type A, omega, sn, cs, alpha, beta;
94 smp_type a0, a1, a2, b0, b1, b2;
96 b = malloc(
sizeof(
biquad));
109 A = pow(10.0, dbGain / 40.0);
110 omega = 2.0 * M_PI * freq / srate;
113 alpha = sn * sinh(M_LN2 / 2.0 * bandwidth * omega / sn);
126 b0 = (1.0 - cs) / 2.0;
128 b2 = (1.0 - cs) / 2.0;
138 b0 = (1.0 + cs) / 2.0;
140 b2 = (1.0 + cs) / 2.0;
174 b0 = 1.0 + (alpha * A);
176 b2 = 1.0 - (alpha * A);
177 a0 = 1.0 + (alpha / A);
179 a2 = 1.0 - (alpha / A);
186 b0 = A * ((A + 1.0) - (A - 1.0) * cs + beta * sn);
187 b1 = 2.0 * A * ((A - 1.0) - (A + 1.0) * cs);
188 b2 = A * ((A + 1.0) - (A - 1.0) * cs - beta * sn);
189 a0 = (A + 1.0) + (A - 1.0) * cs + beta * sn;
190 a1 = -2.0 * ((A - 1.0) + (A + 1.0) * cs);
191 a2 = (A + 1.0) + (A - 1.0) * cs - beta * sn;
198 b0 = A * ((A + 1.0) + (A - 1.0) * cs + beta * sn);
199 b1 = -2.0 * A * ((A - 1.0) + (A + 1.0) * cs);
200 b2 = A * ((A + 1.0) + (A - 1.0) * cs - beta * sn);
201 a0 = (A + 1.0) - (A - 1.0) * cs + beta * sn;
202 a1 = 2.0 * ((A - 1.0) - (A + 1.0) * cs);
203 a2 = (A + 1.0) - (A - 1.0) * cs - beta * sn;
biquad * BiQuad_new(int type, smp_type dbGain, smp_type freq, smp_type srate, smp_type bandwidth)
Create a new biquad filter with the specified characteristics.