http://bugs.winehq.org/show_bug.cgi?id=14717 --- Comment #198 from Alexander E. Patrakov <patrakov(a)gmail.com> 2011-11-04 09:11:09 CDT --- I took the stopband attenuation figures from the attached plots, and this was my mistake. You can use the following C code for checking the FIRs after generation: /* Just random enough not no hit zeroes in the transfer function by accident */ static const double testfreqs[5] = {0.55, 1.08, 1.31, 1.38, 1.41}; static void checkfir (fir_t* fir) { int i, j; for (j = 0; j < 5; j++) { double dct_coeff = -0.5 * fir->wing[0]; double testfreq = testfreqs[j] / fir->step; for (i = 0; i < fir->size; i++) dct_coeff += fir->wing[i] * cos(M_PI * i * testfreq); dct_coeff *= 2; /* two wings */ fprintf(stderr, "attenuation at %1.2f Fn: %1.1f dB\n", testfreqs[j], 20 * log10(fabs(dct_coeff))); } double interp1 = 0.5 * (fir->wing[1] + fir->wing[2]); double interp3 = 0.625 * (fir->wing[1] + fir->wing[2]) - 0.125 * (fir->wing[0] + fir->wing[3]); double noise = (interp1 - interp3) / interp3; fprintf(stderr, "noise: %1.1f dB\n", 20 * log10(fabs(noise))); } Still, my point stands: the noise and stopband rejection figures are not well-balanced. You can improve the noise figure by increasing the "step" member of the firparams structure. -- Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email Do not reply to this email, post in Bugzilla using the above URL to reply. ------- You are receiving this mail because: ------- You are watching all bug changes.