Le rééchantillonnage un échantillon sonore, ce filtre dois-je utiliser?

Je suis en train de ré-échantillonner un signal sonore (exemple) à partir d'un taux d'échantillonnage, à un taux d'échantillonnage plus élevé.
Malheureusement, elle a besoin d'une sorte de "filtre", comme certains "aliasing" semble se produire, et je ne suis pas familier avec les filtres. Voici ce que j'ai trouvé:

int i, j, a, b, z;

a = 44100;
b = 8363;

//upsample by a
for(i = z = 0; i < samplen; i++)
    for(j = 0; j < a; j++)
        cbuf[z++] = sampdata[i];

//some filter goes here???

//downsample by b
for(j = i = 0; i < z; i += b)
    buf[j++] = cbuf[i];

Le nouvel échantillon est très semblable à l'original, mais il a une sorte de bruit.
Pouvez-vous s'il vous plaît dites-moi ce filtre j'ai besoin de l'ajouter, et, de préférence, un peu de code liées à ce filtre?

Son Original: http://www.mediafire.com/?9gnga1in52d6t4x
Re-son: http://www.mediafire.com/?x34h7ggk8n9k8z1

Commencer avec une simple interpolation linéaire: au lieu de définir cbuf[z] à sampdata[i], il sampdata[i] + (j/(double)a)(sampdata[i+1] - sampdata[i]). Je ne sais pas assez sur son traitement pour savoir si c'est encore loin d'être suffisant, mais il va vous tenir occupé jusqu'à ce que quelqu'un qui connaît leurs trucs 🙂 Vous pouvez aussi avoir besoin d'anti-alias le sous-échantillonner.

OriginalL'auteur X-N2O | 2010-12-08