Очевидно, что при значительном понижении частоты дискретизации данный метод начинает пропускать входные отсчёты с каким-то большим шагом. Преобразуемый же сигнал не фильтруется для исключения слишком высоких частот, не представимых в выходном https://ccrma.stanford.edu/~jos/resample/Theory_Ideal_Bandlimited_Interpolation.html
файле. В итоге имеем жуткий алиасинг. Функция resample вычисляет значения для каждого dest[i] на основании src[j +- 2]. Жизненно нужен фильтр низких частот до выполнения функци resample. Вообще метод с полиномами не является математически корректным. Да, он даёт "сглаживание", но необходимость "сглаживания" она вообще в определённой степени надумана, корректней было бы говорить о восстановлении формы сигнала
С теорией рекомендую ознакомиться по ссылке.
Есть более близкие к железу и простые для понимания методы, заключающиеся в значительном повышении частоты дискретизации путём "zero stuffing" (каждое входное значение во времени разбавляется последователными N нулями), последующей фильтрации (чтоб удовлетворить критерий Котельникова-Найквиста для результирующей частоты дискретизации), после чего берётся попросту каждый M-ный отсчёт. ratio=N/M. Такой метод проще, возможно, для DSP и/или FPGA. Или есть метод с использованием БПФ и обратного преобразования, он тоже очевиден...
Википедия имеет не самые плохие статьи: http://en.wikipedi …Sample_rate_conversion
http://ru.wikipedi …0%B0%D1%86%D0%B8%D1%8F
[ZX]
файле. В итоге имеем жуткий алиасинг. Функция resample вычисляет значения для каждого dest[i] на основании src[j +- 2]. Жизненно нужен фильтр низких частот до выполнения функци resample. Вообще метод с полиномами не является математически корректным. Да, он даёт "сглаживание", но необходимость "сглаживания" она вообще в определённой степени надумана, корректней было бы говорить о восстановлении формы сигнала
![](http://upload.wikimedia.org/math/b/9/b/b9bae61d7bed33e83620565c4b4846f5.png)