Опубликовано: 07.08.2020  
Oversampling-upsampling-downsampling-min

Oversampling, upsampling и downsampling. В чём отличия?

В прошлой статье мы познакомились с понятием передискретизация. В этой разберёмся в понятиях oversampling, upsampling и downsampling для чего нужны и в чём отличия.

Oversampling, upsampling и downsampling

Как мы уже упоминали, изменение частоты дискретизации в основном делят на:

  • Понижающая передискретизация — децимация
  • Повышающая передискретизация — интерполяция

Эти понятия нам пригодятся для объяснения различий между терминами.

 

Downsampling

Итак, при уменьшении частоты дискретизации упрощённо происходит два этапа:

  1. Цифровая фильтрация сигнала для того, чтобы удалить высокочастотные составляющие, которые не удовлетворяют пределу Найквиста для новой частоты дискретизации;
  2. Удаление или (отбрасывание) лишних отсчетов (сохраняется каждый N-й отсчёт). Здесь следует пояснить, что при программной реализации алгоритма децимации «лишние» отсчёты не удаляются, а просто не вычисляются (отбрасываются). При этом число обращений к цифровому фильтру уменьшается в определённое количество раз.

Поясним примером:

Signal-decimation

Сверху — исходный сигнал. В середине — этот же сигнал после фильтрации в цифровом фильтре нижних частот. Снизу — децимированный сигнал.

Так вот. Второй этап удаление или (отбрасывание) лишних отсчетов в англоязычной литературе иногда обозначают термином downsampling, что по сути может употребляться как синоним термина «децимация».

 

Upsampling

Этот термин, наоборот, связан с повышающей дискретизацией, при которой тоже упрощённо происходит следующее:

  1. Вставляются нулевые отсчеты на место отсчетов, которые необходимо вычислить;
  2. Происходит фильтрация сигнала цифровым фильтром нижних частот для того, чтобы убрать спектральные составляющие сигнала, которых заведомо не могло быть в исходном сигнале согласно теореме Котельникова. При программной реализации интерполяции нулевые отсчёты не участвуют в вычислении выходного сигнала фильтра, что позволяет оптимизировать процесс вычисления.

Поясним примером:

Signal-interpolation

Сверху — исходный сигнал. В середине — этот же сигнал со вставленными нулевыми отсчётами (зеленые точки). Снизу — интерполированный сигнал (синие точки — интерполированные значения отсчётов)

В данном случае термином upsampling в англоязычной литературе обозначают первый этап (добавление отсчётов), что по сути может употребляться как синоним термина «интерполяция».

 

Oversampling

И децимацию и интерполяцию уже упомянули. Вроде бы и всё. Но в плагинах часто можно увидеть термин oversamplingда ещё и с каким-то настройками. Давайте разбираться.

Есть такое определение как «Дискретизация сигналов с запасом по частоте дискретизации». То есть применяется дискретизация сигнала на частоте, в несколько раз превышающей частоту Котельникова (предел Найквиста) с последующей децимацией. Вот она и называется в англоязычной литературе термином oversampling.

Например, возьмём сигнал с шириной полосы или самой высокой частотой B  = 100  Гц. Зная, что есть предел Найквиста берётся частота дискретизации в 2 раза больше — 200 Гц (100 × 2). При oversampling 4x частота дискретизации в четыре раза превышает частоту дискретизации 800 Гц (200 × 4). В итоге фильтр anti — aliasing работает в переходной полосе 300 Гц. То есть получается следующая формула (( s / 2) — B  = (800 Гц / 2) — 100 Гц = 300 Гц.

 

Что даёт такой тип дискретизации сигнала?

  1. Возможность использовать АЦП (аналого-цифровой преобразователь) с меньшей разрядностью.
  2. Возможность использовать более простой и дешёвый аналоговый фильтр для защиты от наложения спектров.
  3. Подобная передискретизация способна улучшить разрешение и отношение сигнал / шум, а также может помочь избежать наложения спектров и фазовых искажений путем ослабления требований к характеристикам фильтра сглаживания.

Аналогичный подход применяется и при восстановлении сигнала по его отсчётам.

 

Применение oversampling на практике.

Для примера возьмём популярный лимитер FabFilter Pro-L.

Внизу плагина можно увидеть следующие настройки:

oversampling@2x

 

Для чего нужны эти настройки?

Алгоритм лимитера часто должен очень быстро вносить изменения в звук, чтобы убрать пики при сохранении прозрачности и видимой громкости. Эти внезапные изменения могут привести к появлению aliasing (наложение спектров), что вызывает искажения и, как правило, снижает качество аудиосигнала. Передискретизация — это способ уменьшить это наложение, запустив процесс внутреннего ограничения с более высокой частотой дискретизации, которая кратна частоте дискретизации хоста.

 

Когда нужно включить oversampling ?

Когда процесс ограничения звука работает быстрее (с использованием короткого времени lookahead), и когда ограничение более интенсивно, то это приводит к более высокому уровню наложения спектров. Aliasing имеет эффект добавления ложных не музыкальных частот к звуковому сигналу, что ухудшает качество звука. Кроме того, aliasing вызывает более высокие пики между сэмплами, и они могут вызвать искажение позже, например, во время цифро-аналогового преобразования или преобразования в MP3. Но нельзя забывать и о недостатках oversampling, прежде всего увеличение нагрузки на процессор и некоторые проблемы из-за фазово-линейной фильтрации. Как правило, этот эффект настолько мал, что его невозможно услышать, но хорошо знать об этом и не слепо предполагать, что передискретизация это всегда хорошо.

 

Какой параметр oversampling выбрать?

В принципе достаточно 4-кратной (4x) или 8-кратной (8x) передискретизации. Такой параметр уже значительно уменьшит алиасинг и не вызовет чрезмерной загрузки процессора. Опции 16x и 32x могут привести к еще более высокому качеству звука, но для большинства систем это слишком сложно для работы в режиме реального времени, особенно если в сеансе есть и другие плагины. Вы можете использовать эти опции при рендеринге в автономном режиме.

 

Лимитирование и oversampling

Если True Peak Limiting включено, FabFilter Pro-L 2 гарантирует, что истинные пики на выходе не будут превышать потолочный уровень, установленный параметром Output Level в нижней панели. Однако, если передискретизация отключена, будет генерироваться больше пиков между сэмплами, поэтому лимитеру придется проделать большую работу, чтобы удержать их ниже верхнего уровня выходного сигнала. Включение передискретизации (например, с опцией 4x) уменьшит пики между выборками, что позволяет лимитеру увеличить общий выходной уровень и кажущуюся громкость. Короче говоря, рекомендуем использовать передискретизацию в сочетании с true peak, чтобы получить наилучшие результаты.

Спасибо, что читаете New Style Sound (RSS-лента). Подписывайтесь на новости или RSS и делитесь статьями с друзьями. Что такое RSS (читать). Скачивайте также бесплатные плагины на сайте.

Похожие записи

 
 

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.