LINUX.ORG.RU

Посоветуйте наиболее цена/качество алгоритм ресемплинга?


0

1

Интересует любой ресемплинг - и даунсемплинг и апсемплинг, и в чётное кол-во раз и в нечётное, и через FFT и любой другой. Главный критерий - пожирание ЦП, позволяющее делать любой ресемплинг в риалтайме на core2duo 1.8ghz, артефакты должны не особо различаться слушателем в наушниках, только экспертом со спектроанализатором в руках. Интересно описание алгоритма, реализации. Будет реализовываться на C++ с нуля, в составе самодельной библиотеки DSP.

Ответ на: комментарий от jeuta

Топики уходят с первой страницы, приходится флудить, чё.

kiverattes ★☆ ()

libsamplerate

anonymous ()

в чётное кол-во раз и в нечётное

В кратное и некратное, что ли?

В общем, апсемплинг в кратное число раз делается умножением на нормировочный множитель, добавлением пустых отсчётов и прогоном через фильтр низких частот, с частотой среза, равной максимальной частоте, которая есть в исходном сигнале (определяется по частоте Найквиста для исходного представления, переносится на новой представление с учётом того, что семплов стало больше, а эта частота должна остаться той же). ФНЧ сам нагуглишь.

Даунсемплинг в кратное число раз делается обработкой ФНЧ с частотой среза, равной частоте Найквиста после того, как сигнал будет представлен в новой форме, с более низкой частотй дискретизации, после чего отбрасываются все отсчёты кроме каждого n-ого.

Ресемплинг в некратное число раз делается апсемплингом+даунсемплингом. Ну то есть ресемплинг в 3,5 раза = апсемплинг в 7 раз+даунсемплинг в 2 раза.

Методы оптимизации = оптимизация ФНЧ. Быстрая свёртка при помощи БПФ, в первую очередь. Ну и можно снижать порядок фильтров с соответствующим снижением требований к ресурсам и точности интерполяции. В случае даунсемплинга есть хитрость - при обработке ФНЧ можно не вычислять отсчёты, которые потом будут отброшены.

Литература: Сергиенко, «Цифровая обработка сигналов».

Оптимизации в данном случае касаются оптимизаций ФНЧ

prischeyadro ★★★☆☆ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.