[Bug 14717] resampled sound is horrible

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Nov 4 09:11:09 CDT 2011


http://bugs.winehq.org/show_bug.cgi?id=14717

--- Comment #198 from Alexander E. Patrakov <patrakov at 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.



More information about the wine-bugs mailing list