я ей не могу ума дать... Хочу батерворта 10 порядка. он мне герерит
такую хню. Почему коэффициентов столько?! что за реализация с
делением?! //
#define GAIN 1.000000000000e+000
#define SECTION 5
static double num[SECTION * 3] = {
6.685638427734e-002, /* 0 */
1.337127685547e-001, /* 1 */
6.685638427734e-002, /* 2 */
6.943893432617e-002, /* 3 */
1.388778686523e-001, /* 4 */
6.943893432617e-002, /* 5 */
7.494354248047e-002, /* 6 */
1.498870849609e-001, /* 7 */
7.494354248047e-002, /* 8 */
8.412551879883e-002, /* 9 */
1.682510375977e-001, /* 10 */
8.412551879883e-002, /* 11 */
9.827995300293e-002, /* 12 */
1.965599060059e-001, /* 13 */
9.827995300293e-002}; /* 14 */
static double den[SECTION * 3] = {
1.000000000000e+000, /* 0 */
-9.727478027344e-001, /* 1 */
2.401847839355e-001, /* 2 */
1.000000000000e+000, /* 3 */
-1.010314941406e+000, /* 4 */
2.880859375000e-001, /* 5 */
1.000000000000e+000, /* 6 */
-1.090423583984e+000, /* 7 */
3.902206420898e-001, /* 8 */
1.000000000000e+000, /* 9 */
-1.224029541016e+000, /* 10 */
5.605316162109e-001, /* 11 */
1.000000000000e+000, /* 12 */
-1.429962158203e+000, /* 13 */
8.230895996094e-001}; /* 14 */
#include "qed_cas.cod"
файл qed_cas.cod
static double *m1, /* intermediate storage */
*m2; /* intermediate storage */
static void cas_d1 () {
int i;
double *a, *b, s0, s1;
a = den; b = num; s0 = GAIN * get_input_data ();
for (i = 0; i < SECTION; i++) {
s1 = (s0 * b[0] + m1[i]) / a[0];
m1[i] = m2[i] + s0 * b[1] - s1 * a[1];
m2[i] = s0 * b[2] - s1 * a[2];
s0 = s1; a += 3; b += 3;
}
send_output_data (s1);
}
static void cas_d2 () {
int i;
double *a, *b, e, d, s;
a = den; b = num; s = GAIN * get_input_data ();
for (i = 0; i < SECTION; i++) {
e = a[0] * s - a[1] * m2[i] - a[2] * m1[i];
d = 1.0 / a[0]; e *= d;
s = b[0] * e + b[1] * m2[i] + b[2] * m1[i];
s *= d; m1[i] = m2[i]; m2[i] = e;
a += 3; b += 3;
}
send_output_data (s);
}
int main (a, v) int a; char *v[]; {
buffer = (double *) calloc (sizeof (double), SECTION * 2);
m1 = buffer; m2 = m1 + SECTION;
while (1) cas_d1 ();
}
//
Почему коэффициентов столько?! что за реализация с делением?!