ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
26 августа
414428 Топик полностью
fk0, легенда (01.06.2013 07:16, просмотров: 46) ответил MegaJohn на кому интересно, работающий ресемплер (интерполятор)[>]
Очевидно, что при значительном понижении частоты дискретизации данный метод начинает пропускать входные отсчёты с каким-то большим шагом. Преобразуемый же сигнал не фильтруется для исключения слишком высоких частот, не представимых в выходном 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]