Цифровая обработка сигналов

Audio DSP: эффекты и кодеки

Каждый раз когда слышите голос в подкасте, музыку в наушниках или звонок в Zoom - работает цепочка DSP: EQ убирает резонансы, компрессор выравнивает уровень, кодек сжимает в 10 раз без слышимых потерь. Эти алгоритмы придуманы в 1960-90х, но работают в каждом аудиоустройстве прямо сейчас.

  • **Spotify / Apple Music** стримят AAC 256 kbps - психоакустическое сжатие 5:1 без слышимых артефактов
  • **Discord / Zoom** используют Opus кодек: переключается между речевым SILK и музыкальным CELT режимом автоматически
  • **Mastering цепочка** любого музыкального релиза: EQ -> Compression -> Limiting (ratio=inf:1) -> Loudness normalization (LUFS)

Reverb: свёрточный и алгоритмический

Сухой вокал, записанный в студии, звучит мёртво. Добавьте реверберацию - и он окажется в концертном зале. **Reverb** моделирует акустику пространства: прямой звук, ранние отражения от стен и пол, и диффузный хвост (затухающий шум реверберации).

**Свёрточный reverb (Convolution Reverb):** записывают импульсный отклик (IR) реального пространства - выстрел стартового пистолета или синус-свип - и свёртывают сухой сигнал с IR. Результат физически точен: звучит именно как конкретный зал Carnegie Hall или пещера. Недостаток - вычислительная сложность: свёртка с IR на 2 секунды при 48 кГц это 96000 операций на каждый отсчёт.

**RT60** - время, за которое уровень реверберации спадает на 60 дБ. Студия записи: RT60 ~ 0.2 с. Концертный зал: ~1.8 с. Собор: ~6-8 с. При свёрточном reverb длина IR прямо соответствует RT60 помещения.

В чём главное преимущество свёрточного reverb перед алгоритмическим?

Эквалайзер: параметрический и графический

Бас-гитара маскирует кик-барабан на 80-100 Гц - звукорежиссёр срезает бас у гитары на этих частотах. Вокал «носит» из-за пика на 1-3 кГц - его подрезают. **Эквалайзер (EQ)** - набор регулируемых полосовых фильтров для коррекции частотного баланса сигнала.

**Параметрический EQ** - каждая полоса задаётся тремя параметрами: центральная частота fc, усиление G (дБ), добротность Q. **Графический EQ** - фиксированные полосы (31, 15 или 10 полос), только регулировка усиления. Параметрический точнее; графический нагляднее для концертного звука.

**Q и ширина полосы:** Q = fc / BW, где BW - полоса по уровню -3 дБ. Q=0.7 - широкая мягкая полоса (масочный характер). Q=10 - узкая хирургическая коррекция (устранение резонанса). В музыке поднимают широко (Q~1-2), срезают узко (Q~4-10).

Голос звучит «гнусаво» из-за резонанса на 900 Гц. Как правильно настроить EQ?

Динамическая компрессия

Вокалист поёт тихо - потом вдруг громко кричит. Разница в уровне 30 дБ. Слушатель постоянно крутит громкость. **Динамический компрессор** автоматически уменьшает громкие участки, позволяя поднять общий уровень - сигнал становится «плотнее» и комфортнее для прослушивания.

ПараметрМалое значениеБольшое значение
Ratio1:1 (нет компрессии)inf:1 (лимитер - жёсткий порог)
AttackКороткий: захватывает транзиентыДлинный: транзиенты проходят, звук «живее»
ReleaseКороткий: «насосный» артефактДлинный: плавная работа, теряет детали
ThresholdНизкий: компрессируется почти всёВысокий: только пики

**Makeup gain:** компрессор уменьшает пики, средний уровень падает. Makeup gain компенсирует это: поднимаем всё на 4-6 дБ после компрессии. Итог: пики на том же месте, но тихие части стали громче - субъективно «плотный» звук.

Компрессор с очень коротким attack (0.1 мс) на барабанах приведёт к:

Аудиокодеки: MP3, AAC, Opus

WAV-файл на 1 минуту стерео 44.1 кГц / 16 bit занимает 10 МБ. Стриминговый сервис хранит 100 миллионов треков. **Аудиокодек** сжимает аудио в 10-20 раз, используя психоакустику - науку о том, что человек реально слышит (а что нет).

Два главных психоакустических эффекта: **маскировка по частоте** - громкий звук на 1 кГц маскирует тихие звуки рядом (980 Гц, 1020 Гц) - их незачем кодировать точно; **маскировка по времени** - 200 мс после громкого звука ухо менее чувствительно. Кодек вычисляет маскировочный порог и выделяет биты там, где ухо различает, и экономит - где нет.

**MDCT (Modified Discrete Cosine Transform)** - основа всех современных кодеков. В отличие от FFT, MDCT имеет перекрывающиеся окна с особым свойством (TDAC), которое устраняет артефакты на границах блоков. Размер окна адаптивный: 2048 сэмплов для стационарного сигнала, 256 - для транзиентов (удар барабана).

MP3 просто срезает высокие частоты выше 15 кГц и поэтому звучит хуже

MP3 адаптивно снижает точность там, где маскировочный порог высок - это происходит на всех частотах, не только высоких. Срез высоких частот возможен только при очень низком bitrate.

При 128 kbps MP3 сохраняет полный спектр до 20 кГц. Ухудшение слышно как «размытость» транзиентов и лёгкий 'плеск' - артефакты квантизации и малого MDCT-окна, а не просто срез частот.

Почему психоакустические кодеки кодируют разные частоты с разной точностью?

Audio DSP: эффекты и кодеки

  • Свёрточный reverb: свёртка с IR реального пространства, физически точен, вычислительно дорог
  • Алгоритмический reverb (Schroeder): comb + allpass фильтры, параметры в реальном времени, менее реалистичен
  • Параметрический EQ: IIR-фильтры с fc, G, Q; Q выбирают узким для срезов, широким для подъёмов
  • Компрессор: attack/release сглаживают огибающую усиления; ratio=inf:1 - лимитер; makeup gain компенсирует снижение уровня
  • MP3/AAC/Opus: MDCT + психоакустическая маскировка + адаптивное распределение бит + Huffman

Связанные темы

Audio DSP эффекты строятся на фундаментальных блоках сигнальной обработки:

  • FIR и IIR фильтры — EQ реализован как IIR; FIR используется в crossover фильтрах
  • Adaptive Filters: LMS, RLS — Адаптивные фильтры применяются в AEC и шумоподавлении аудиоцепочки
  • FFT и спектральный анализ — MDCT в кодеках - модификация DCT, родственная FFT

Вопросы для размышления

  • Почему алгоритмический reverb с параметрами room-size/decay не может точно воспроизвести акустику конкретного зала?
  • Как attack и release компрессора взаимодействуют с восприятием ритма в музыке?
  • Opus использует разные алгоритмы для речи и музыки - почему единый алгоритм хуже для обоих случаев?

Связанные уроки

  • calc-01-sequences
Audio DSP: эффекты и кодеки

0

1

Войти