Запись голоса на 48 кГц не воспроизводится корректно на устройстве, жестко настроенном на 44,1 кГц, — звук ускоряется, замедляется или вовсе отсутствует, и именно в этой точке в работу вступает ресемплер. Ресемплер — это программный или аппаратный модуль, который изменяет частоту дискретизации цифрового аудиосигнала, пересчитывая отсчеты из одной сетки дискретизации в другую. Без такого преобразования невозможно совместить файлы с разными частотами в одном проекте, вывести звук на устройство с фиксированной частотой или подготовить материал к публикации под требования конкретной платформы.

Термин происходит от английского resample — «передискретизировать». Операция встречается повсеместно: в операционных системах, аудиоредакторах, плеерах, звуковых картах, цифровых микшерах и даже в браузерах при воспроизведении стриминга. При этом качество ресемплинга напрямую зависит от применяемого алгоритма: примитивная линейная интерполяция заметно искажает звук, тогда как качественные фильтры делают преобразование практически незаметным на слух.

Как устроена частота дискретизации и почему её приходится менять

Цифровой звук — это последовательность измерений амплитуды сигнала, снятых через равные промежутки времени. Частота дискретизации показывает, сколько таких измерений выполняется за секунду: 44 100 Гц для Audio CD, 48 000 Гц для видео и профессиональной записи. Согласно теореме Котельникова (Найквиста—Шеннона), частота дискретизации должна как минимум вдвое превышать наивысшую частоту в сигнале, поэтому 44,1 кГц позволяет передать спектр примерно до 22 кГц — с запасом выше порога человеческого слуха.

Необходимость передискретизации возникает всякий раз, когда источник и приемник работают на разных частотах. Типичные ситуации:

  • 🎵 сведение в одном проекте фонограмм, записанных на 44,1 кГц и 48 кГц;
  • 🎧 вывод звука на внешний ЦАП, поддерживающий ограниченный набор частот;
  • 📼 оцифровка архивных записей и приведение их к единому стандарту;
  • 📺 подготовка звуковой дорожки для видео, где принят стандарт 48 кГц;
  • 📉 снижение частоты дискретизации для экономии места при хранении речевых записей.

Различают апсемплинг (повышение частоты, например с 44,1 до 96 кГц) и даунсемплинг (понижение, например с 96 до 44,1 кГц). Второй случай сложнее: перед удалением «лишних» отсчетов требуется отфильтровать частоты выше новой границы Найквиста, иначе возникнет наложение спектров — алиасинг, слышимый как посторонние призвуки и «зеркальные» тона.

Принцип работы ресемплера

Математически ресемплинг — это интерполяция: по известным отсчетам вычисляются значения сигнала в новые моменты времени. Качественный алгоритм строит непрерывную кривую через исходные точки с помощью sinc-функции (идеальный фильтр нижних частот), а затем снимает с неё отсчеты с новым шагом. На практике идеальный sinc бесконечной длины нереализуем, поэтому применяются оконные аппроксимации и полифазные фильтры.

Упрощенно процесс выглядит так:

  • 🔢 исходный поток отсчетов дополняется нулями при повышении частоты;
  • 🛡️ сигнал пропускается через фильтр нижних частот, подавляющий спектральные копии;
  • ✂️ при понижении частоты лишние отсчеты отбрасываются после фильтрации;
  • 🎚️ при необходимости применяется дизеринг при снижении разрядности.
⚠️ Внимание: даунсемплинг без противоалиасингового фильтра необратимо портит запись — ультразвуковые составляющие «отражаются» в слышимый диапазон, и удалить их постфактум невозможно.

Качество алгоритмов: чем отличаются ресемплеры

Не все ресемплеры одинаковы. Дешевые встроенные решения используют короткие фильтры ради экономии вычислительных ресурсов, что дает завал АЧХ на верхах, фазовые искажения и слабое подавление алиасинга. Качественные библиотеки — например, SoX, libsamplerate (Secret Rabbit Code) или ресемплеры в профессиональных DAW — работают с длинными фильтрами и высокой точностью вычислений.

Основные параметры, по которым оценивают качество ресемплера:

ПараметрЧто показываетПризнак хорошего алгоритма
Подавление алиасингаНасколько подавлены отраженные спектрыГлубокое подавление, отсутствие видимых «зеркал» на спектрограмме
Равномерность АЧХЗавал на верхней границе слышимого диапазонаМинимальный спад вплоть до частоты Найквиста
Преэхо и звонОсцилляции фильтра на резких переходахКороткий отклик, отсутствие слышимого «звона»
Фазовая линейностьРасстройство фаз по спектруЛинейно-фазовый или корректно скомпенсированный фильтр
Вычислительная ценаНагрузка на процессорБаланс качества и скорости под задачу

Существуют открытые сравнительные тесты ресемплеров, где алгоритмы проверяют на синтетических сигналах и измеряют искажения. Из них следует практический вывод: разница между топовыми алгоритмами находится за гранью слышимости, а вот разрыв между ними и примитивными встроенными решениями вполне измерим и иногда различим на качественной аппаратуре.

📊 Слышите ли вы разницу между качественным и простым ресемплингом?