Я пытаюсь повторно сэмплировать сигнал (звуковой сэмпл) с одной частоты дискретизации до более высокой частоты дискретизации.К сожалению, для этого нужен какой-то фильтр, так как, похоже, происходит какое-то «наложение», и я не знаком с фильтрами.Вот что я придумал:
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];
Новый сэмпл очень похож на оригинальный, но в нем есть какой-то шум.Подскажите, пожалуйста, какой фильтр мне нужно добавить, и, желательно, какой-нибудь код, связанный с этим фильтром?
Исходный звук: http://www.mediafire.com/?9gnga1in52d6t4x Повторный звук: http://www.mediafire.com/?x34h7ggk8n9k8z1