Опубликовано: 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 (читать). Скачивайте также бесплатные плагины на сайте.

RSS подписка
Подписаться на канал
Подписаться на канал

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

 
 

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

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