Last updated on

Dec 12, 2014

Main page

Upper page

SRC

ТЕСТ КОНВЕРТЕРОВ ЧАСТОТЫ ДИСКРЕТИЗАЦИИ

Алексей Лукин

Статья напечатана в журнале «Звукорежиссер», №3, 2007.

Конвертеры частоты дискретизации (SRC) повсеместно используются в работе с цифровым звуком даже тогда, когда пользователь об этом не подозревает. Практически любой АЦП и ЦАП, будь то дорогой внешний прибор или дешевая встроенная звуковая карта, работают с так называемой передискретизацией, то есть осуществляют собственно АЦ- и ЦА-преобразование с повышенной частотой дискретизации (до мегагерцовых значений) и пониженной разрядностью (чаще всего 1 бит). Такая передискретизация производится цифровыми методами в цифровом сигнальном процессоре (DSP) конвертера.

Программное изменение частоты дискретизации (передискретизация) применяется как независимо для пользователя — внутри семплера или при микшировании звуковых потоков с разной частотой дискретизации в операционной системе, — так и по желанию пользователя, например, при преобразовании проекта из формата 96 кГц в 44,1 кГц в процессе мастеринга Audio-CD.

Рис. 1. Восстановление тона 13 кГц интерполяцией нулевого порядка и частотно-ограниченной интерполяцией

Существует популярное представление, что цифровой звук — это «ступеньки», аппроксимирующие звуковую волну, и когда ЦАП воспроизводит волну, аналоговый сигнал получается ступенчатым. На самом же деле правильнее представлять цифровую волну как мгновенные значения аналоговой волны в дискретные моменты времени. А ЦАП, чтобы восстановить аналоговую волну, осуществляет гладкую интерполяцию между цифровыми отсчетами. Вид этой интерполяции определяется фильтром передискретизации и, как правило, является приближением к частотно-ограниченной интерполяции с помощью sinc-функций. Это позволяет избежать искажений при работе с высокочастотными сигналами. На рис. 1 показан пример восстановления тона с частотой 13 кГц при частоте дискретизации 44,1 кГц. При «ступенчатой» интерпретации волна даже отдаленно не напоминает синусоиду, а корректная передискретизация восстанавливает тон практически идеально. Кстати, этот пример показывает еще один интересный факт: аналоговая волна может иметь более высокие пиковые значения, чем цифровые отсчеты, и это может перегружать ЦАП при воспроизведении.

Алгоритмы передискретизации

Наиболее просты алгоритмы изменения частоты дискретизации в целое число раз. При уменьшении частоты дискретизации в N раз частота Найквиста (половина частоты дискретизации) становится в N раз ниже, т.е. частотный диапазон сужается. Поэтому для предотвращения наложения спектра (алиасинга) применяют НЧ-фильтр, подавляющий все частотные составляющие выше будущей частоты Найквиста. После фильтрации отсчеты сигнала прореживаются в N раз. При этой операции спектр сигнала ниже новой частоты Найквиста остается неискаженным.

Для увеличения частоты дискретизации в M раз сигнал сначала интерполируется («разбавляется») нулями. Это сохраняет неизменным спектр сигнала ниже частоты Найквиста, но создает копии спектра выше частоты Найквиста. После этого возникшие копии спектра отфильтровываются НЧ-фильтром.

Понятно, что параметры алгоритма определяются свойствами НЧ-фильтра. Гладкость АЧХ и ФЧХ фильтра в полосе пропускания обеспечивает неискаженную передачу сигнала в допустимом частотном диапазоне. Степень подавления в полосе подавления определяет, насколько будут подавлены помехи, не укладывающиеся в допустимый частотный диапазон при уменьшении частоты дискретизации, или насколько будут подавлены возникшие копии спектра при увеличении частоты. Переходная полоса фильтра покажет поведение фильтра вблизи частоты Найквиста (для Audio-CD — вблизи 22 кГц). Форма импульсной характеристики фильтра покажет осцилляции, которые фильтр вносит в сигнал во временной области. В реальных фильтрах эти параметры взаимосвязаны (см. «Цифровые эквалайзеры», «Звукорежиссер» 8/2006). Например, для улучшения параметров частотной характеристики приходится использовать фильтры с более длинным импульсным откликом и большим количеством пульсаций во временной области.

Для передискретизации сигнала в нецелое число раз (например, из 96 кГц в 44,1 кГц) можно скомбинировать повышение и понижение частоты дискретизации в целое число раз (например, 44100 = 96000×M/N = 96000×147/320). Поскольку НЧ-фильтрация выполняется после повышения частоты дискретизации в M раз, но до понижения ее в N раз, то две фильтрации можно совместить в одну, установив частоту среза фильтра на минимум из двух необходимых частот среза. Отметим, что фильтр в данном случае работает над сигналом с повышенной в M раз частотой дискретизации.

Специальные алгоритмы полифазной фильтрации позволяют избежать явного вычисления такого промежуточного сигнала, сокращая число операций. Они сразу вычисляют отсчеты выходного сигнала как взвешенную сумму окружающих отсчетов входного сигнала и подмножества коэффициентов фильтра. При этом число операций почти не зависит от величин M и N, а зависит лишь от порядка интерполяции, то есть от числа взвешиваемых отсчетов входного сигнала.

Большинство конвертеров частоты дискретизации работают именно по принципу полифазной фильтрации, а в качестве фильтра используется НЧ-фильтр с линейной фазой.

Тестирование алгоритмов

Канадской студией Infinite Wave было организовано тестирование некоторых объективных параметров алгоритмов SRC в режиме преобразования записей из 96 кГц в 44,1 кГц (такой режим считается «трудным» из-за некратности частот дискретизации). Набор тестовых сигналов согласовывался с инженерами компании Weiss, участниками сообщества Mastering Web-board и автором статьи. В качестве тестовых сигналов использовались:

  • скользящий тон с амплитудой –6 дБFS, охватывающий частоты от 0 до 48 кГц за 8 секунд. В качестве результата строятся спектрограммы преобразованного сигнала, по которым можно оценить нелинейные искажения, вносимые в сигнал, и наложение спектров (рис. 2). Динамический диапазон спектрограмм составляет 180 дБ;
  • тон 1 кГц с амплитудами –0.1 и –60 дБFS. В качестве результата строится спектр преобразованного сигнала, показывающий нелинейные искажения и шумы квантования (рис. 3);
  • серия импульсов, по которой во многих случаях можно восстановить ядро используемого НЧ-фильтра и проанализировать его АЧХ, ФЧХ и импульсный отклик. В качестве результата строится АЧХ фильтра в полосе пропускания (рис. 4) и переходной полосе (рис. 5), а также ФЧХ в полосе пропускания (рис. 6).

Входные файлы подавались на SRC с наилучшей поддерживаемой разрядностью (32 бит int, 32 бит float, 24 бит), в такой же разрядности записывались и результаты. Построение графиков велось с помощью модифицированной версии программы RightMark Audio Analyzer (RMAA), а также специально разработанных программ анализа. Сгенерированные графики доступны для сравнения на сайте http://src.infinitewave.ca

Какие же параметры алгоритмов можно оценить по приведенным графикам? Рассмотрим это на примере результатов SRC, встроенного в программу Sony Vegas 7.

На спектрограмме скользящего тона можно увидеть искажения, добавляемые к тону в процессе преобразования. До отметки в 5 секунд тон находится в слышимой области, поэтому уровень гармоник и наложений спектра в левой части спектрограммы показывает, насколько искажаются звуковые сигналы различных частот в слышимом диапазоне.

После отметки в 5,5 секунд тон уходит выше 22 кГц и не может быть представлен в формате 44,1 кГц, поэтому в идеале он должен быть подавлен НЧ-фильтром. Данная спектрограмма показывает, что фильтрация недостаточно эффективно подавила ультразвуковой тон, и он отразился в слышимую часть спектра (эффект наложения спектров или алиасинг).

Общий фон на спектрограмме практически черный. Это показывает, что у данного алгоритма SRC шумы квантования очень малы.

Рис. 2. Спектрограмма скользящего тона с нелинейными искажениями

На спектре синусоиды 1 кГц можно более подробно рассмотреть структуру нелинейных искажений и шумов квантования для данной частоты тестового тона при двух различных уровнях сигнала.

По нему видно, что шумов квантования в данном случае практически нет, а нелинейные искажения присутствуют с относительным уровнем спектральных пиков примерно –110 дБ (их суммарный уровень может быть примерно –100 дБ), что согласуется с рис. 2 (столбец в районе 1,2 сек).

Рис. 3. Тон 1 кГц и нелинейные искажения

График АЧХ фильтра в полосе пропускания показывает ослабление сигналов в звуковом диапазоне при передискретизации.

В данном случае АЧХ ровная, и ее спад начинается после 18 кГц, достигая величины –1 дБ на 20 кГц.

Рис. 4. АЧХ фильтра передискретизации в полосе пропускания

График АЧХ фильтра в переходной полосе показывает ослабление компонент сигнала вблизи частоты Найквиста. В идеале фильтр должен пропускать сигналы ниже этой частоты и подавлять сигналы выше нее. В реальности фильтры не могут иметь бесконечно крутого среза и обычно пропускают некоторые частоты выше частоты Найквиста. При прореживании они будут отражены от частоты Найквиста в диапазон ниже частоты Найквиста (как показано на рис. 2). Если эта частотная полоса с неполным подавлением достаточно узка, то отраженные частоты будут лежать вблизи частоты Найквиста, то есть выше слышимого диапазона.

В данном случае спад фильтра после частоты Найквиста очень пологий, что может привести к наложению спектров, если энергия сигнала выше 22 кГц будет значительной (см. рис. 2). С другой стороны, плавность спада АЧХ обеспечивает хорошие характеристики фильтра во временной области — малое количество «звона».

Отметим, что при передискретизации «звон» фильтров концентрируется вблизи частоты Найквиста, так как именно там проходит изгиб АЧХ. В данном случае — это частоты вблизи 20…24 кГц. Хотя они и находятся в ультразвуковой части диапазона, существуют некоторые свидетельства, что излишний звон фильтров передискретизации негативно влияет на общее звучание, размывая стереопанораму и ухудшая восприятие баса.

Рис. 5. АЧХ фильтра передискретизации в переходной полосе

График ФЧХ фильтра показывает сдвиг фазы в градусах, вносимый фильтром передискретизации на различных частотах. Большинство фильтров, используемых в SRC, имеют линейную ФЧХ (горизонтальная линия). Однако встречаются и другие типы: некоторые алгоритмы имеют минимально-фазовые фильтры, обладающие нелинейной фазой, но зато устраняющие упреждающий звон во временной области. Можно выделить алгоритм iZotope 64-bit SRC, позволяющий управлять балансом упреждающего и постзвона, линеаризуя при этом ФЧХ в звуковом диапазоне.

Рис. 6. ФЧХ фильтра передискретизации

Как видно из графика, данный фильтр обладает нелинейной ФЧХ, но похож на минимально-фазовый. Это видно и по графику импульсного отклика фильтра (рис. 7, вверху).

Типичные же фильтры передискретизации имеют линейную ФЧХ (то есть звон поровну распределен до и после главного импульса) и достаточно крутой срез (рис. 7, внизу).

Рис. 7. Импульсные отклики фильтров передискретизации. Вверху — минимально-фазовый фильтр с пологим срезом, внизу — фильтр с линейной ФЧХ и крутым срезом

Большое значение в алгоритмах передискретизации имеет возможность настройки параметров. Многие протестированные алгоритмы имеют регулятор «качества», который чаще всего влияет на крутизну среза фильтра. Также важными представляются подстройка частоты среза фильтра и выбор типа ФЧХ.

На данный момент в тестировании участвуют порядка 30 различных программ и приборов. Большинство из них обеспечивают достаточно хорошее качество преобразования — графики показывают очень низкие уровни искажений. Показатели качества почти не коррелируют с ценой продукта — в каждом ценовом диапазоне есть продукты с удачными и неудачными вариантами SRC. Вероятно, не всегда по приведенным результатам измерений можно судить о субъективном качестве. Для субъективной оценки звучания планируется расширить тестирование, добавив передискретизацию реальных звуковых фрагментов.