АЦП и ЦАП

Как напряжение превращается в числа при записи и снова в напряжение при воспроизведении?

Опубликовано Дополнено 11 мин чтения

В треках:Программист, этап 3Звукорежиссёр, этап 3Музыкант, этап 4Меломан, этап 4

Микрофон (microphone)микрофон (microphone) — Устройство, преобразующее звуковые колебания в электрический сигнал. В идеальной модели напряжение на выходе пропорционально звуковому давлению. выдаёт меняющееся напряжение, а компьютер хранит числа. При записи нужно измерить напряжение и записать результат числом; при воспроизведении — получить из чисел электрический сигнал для усилителя и динамика. За эти переходы отвечают два преобразователя.

Что делают АЦП и ЦАП

Аналого-цифровое преобразование (analog-to-digital conversion, A/D conversion)аналого-цифровое преобразование (analog-to-digital conversion, A/D conversion) — Перевод аналогового сигнала в последовательность цифровых отсчётов: выбор моментов измерений и квантование их значений. — перевод аналогового аудиосигнала (analog audio signal)аналоговый аудиосигнал (analog audio signal) — Электрическое напряжение или ток, непрерывные во времени и по значению и представляющие звуковые колебания. В идеальной модели форма сигнала повторяет изменения звукового давления. в последовательность цифровых отсчётов (sample)отсчёт (sample) — Значение сигнала в один момент дискретизации, одно число. В звукозаписи его также называют сэмплом.. Его выполняет аналого-цифровой преобразователь, АЦП (analog-to-digital converter, ADC)АЦП (analog-to-digital converter, ADC) — Аналого-цифровой преобразователь: устройство, которое измеряет аналоговый электрический сигнал и выдаёт цифровые коды отсчётов.. На входе у него напряжение, на выходе — коды результатов измерений.

Обратный переход называется цифро-аналоговым преобразованием (digital-to-analog conversion, D/A conversion)цифро-аналоговое преобразование (digital-to-analog conversion, D/A conversion) — Преобразование последовательности цифровых отсчётов в аналоговый электрический сигнал; восстановительный фильтр подавляет высокочастотные спектральные копии.. Цифро-аналоговый преобразователь, ЦАП (digital-to-analog converter, DAC)ЦАП (digital-to-analog converter, DAC) — Цифро-аналоговый преобразователь: устройство, которое получает цифровые отсчёты и формирует соответствующий им аналоговый электрический сигнал. получает отсчёты и формирует соответствующий им аналоговый сигнал. Компьютер может изменить числа между записью и воспроизведением: например, уменьшить все значения вдвое, чтобы ослабить сигнал.

АЦП работает с электрическим сигналом, который создал микрофон. ЦАП тоже выдаёт электрический сигнал; в колебания воздуха его превращает динамик. Фильтры до и после преобразователей входят в тракт записи и воспроизведения (Smith, глава 3.4).

Два шага оцифровки

При дискретизации (sampling)дискретизация (sampling) — Измерение непрерывного сигнала через равные промежутки времени: вместо функции времени сохраняется последовательность отсчётов. напряжение измеряют через равные интервалы времени. Каждый результат — отсчётотсчёт (sample) — Значение сигнала в один момент дискретизации, одно число. В звукозаписи его также называют сэмплом.. В математической модели дискретизации это точное значение напряжения: например, 0,371 В.

Чтобы записать результат конечным числом бит, нужно выбрать один из заранее заданных уровней. Такое округление (rounding)округление (rounding) — Замена числа ближайшим допустимым значением, например ближайшим целым для round. Выбор при равном расстоянии до двух значений определяется отдельным соглашением. называется квантованием (quantization)квантование (quantization) — Замена значения отсчёта одним из конечного набора представимых уровней. Разность между выбранным уровнем и исходным значением называется ошибкой квантования.. Если ближайший уровень равен 0,375 В, вместо 0,371 В будет сохранён его код. Разница составляет +0,004 В. Эти шаги ограничивают разные свойства сигнала (Smith, глава 3.1).

Таблица 1 сопоставляет два шага. Это модель преобразования; внутри микросхемы они могут быть устроены сложнее.

Таблица 1. Дискретизация выбирает моменты измерений, квантование — представимые уровни
ШагЧто ограниченоЧем задаётся
ДискретизацияМоменты времениЧастотой дискретизации, Гц
КвантованиеЗначения отсчётовРазрядностью, бит, и диапазоном напряжений, В

Частота дискретизации (sample rate)частота дискретизации (sample rate) — Число отсчётов в каждом канале за одну секунду, то же число кадров аудиоданных в секунду. Измеряется в герцах: 44 100 Гц означает 44 100 отсчётов на канал в секунду. fsf_s задаёт число отсчётов за секунду. При 48 кГц интервал равен 1/48 000≈20,81/48\,000 \approx 20{,}8 мкс.

Разрядность (bit depth)разрядность (bit depth) — Число бит для представления одного квантованного отсчёта. B бит дают 2ᴮ кодов; при равномерном квантовании шаг зависит также от полного диапазона сигнала. BB — число бит для представления одного квантованного отсчёта. Бит принимает два значения, 0 или 1; из BB бит можно составить 2B2^B разных кодов. При 16 битах их 65 536, при 24 — 16 777 216. Коды обозначают уровни напряжения, а не моменты времени.

Шаг квантования на числовом примере

При равномерном квантовании (uniform quantization)равномерное квантование (uniform quantization) — Квантование с одинаковым расстоянием между соседними представимыми уровнями. Это расстояние называется шагом квантования. расстояние между соседними уровнями одинаково. Если полный диапазон входного напряжения разделён на 2B2^B равных интервалов, шаг квантования (quantization step)шаг квантования (quantization step) — Разность между соседними уровнями равномерного квантования. Для диапазона шириной R, разделённого на 2ᴮ равных интервалов, шаг Δ = R/2ᴮ. задаёт формула 1.

Δ=R2B\Delta = \frac{R}{2^B}
Δ\Delta
шаг квантования, В;
RR
ширина полного диапазона входного напряжения, В;
BB
разрядность одного отсчёта, бит.

Возьмём учебный АЦП с диапазоном от −1 до +1 В и разрядностью 3 бита. Ширина диапазона R=2R = 2 В, кодов восемь, шаг Δ=2/8=0,25\Delta = 2/8 = 0{,}25 В. Уровни поместим в центры восьми интервалов: −0,875; −0,625; −0,375; −0,125; +0,125; +0,375; +0,625; +0,875 В. Назначим им коды от 000 до 111 по возрастанию.

Это выбранное для примера кодирование: код 000 здесь означает −0,875 В, а 111 — +0,875 В. Битовая запись сама по себе не задаёт ни знак, ни напряжение — нужно знать соответствие кодов уровням.

Таблица 2 показывает несколько измерений. Ошибка квантования (quantization error)ошибка квантования (quantization error) — Разность между выбранным представимым уровнем и исходным значением отсчёта. При округлении к ближайшему уровню внутри предусмотренного диапазона её модуль не превышает половины шага. равна выбранному уровню минус исходное значение.

Таблица 2. Учебный 3-битный АЦП: округление к ближайшему уровню с шагом 0,25 В
Вход, ВУровень, ВКодОшибка, В
−0,960−0,875000+0,085
−0,371−0,375010−0,004
+0,371+0,375101+0,004
+0,620+0,625110+0,005

При округлении к ближайшему уровню ошибка не превышает половины шага, пока вход остаётся в предусмотренном диапазоне: здесь Δ/2=0,125\Delta/2 = 0{,}125 В. В точке между двумя уровнями оба одинаково близки; для этого примера выберем верхний. Поэтому 0 В кодируется как +0,125 В, с ошибкой ровно в половину шага. Эта модель не имеет отдельного нулевого уровня; реальные форматы аудио могут иметь его и иначе распределять крайние значения.

При том же диапазоне 2 В и 16 битах шаг составит 2/65 536≈30,52/65\,536 \approx 30{,}5 мкВ. Ещё один бит удваивает число уровней и уменьшает шаг вдвое. Частота измерений при этом не меняется.

При том же диапазоне 2 В разрядность увеличили с 3 до 4 бит. Как изменятся шаг квантования и число отсчётов за секунду?

Уровней станет 16, шаг уменьшится до 2/16=0,1252/16 = 0{,}125 В. Число отсчётов за секунду останется прежним, если частоту дискретизации не меняли.

Ошибка квантования и пределы разрядности

У последовательности отсчётов ошибки тоже образуют сигнал. Во многих случаях его приближённо рассматривают как добавленный шум. Но для тихого или периодического сигнала ошибки могут следовать за его формой и давать искажения. Поэтому модель случайного шума требует условий (Kester, MT-001).

Для идеального равномерного преобразователя отношение сигнал/шум (signal-to-noise ratio, SNR)отношение сигнал/шум (signal-to-noise ratio, SNR) — Отношение мощности полезного сигнала к мощности шума; в децибелах — 10 lg(Pсигнал/Pшум). Результат зависит от полосы измерения и условий сигнала. приблизительно равно 6,02B+1,766{,}02B + 1{,}76 дБ: около 98 дБ при 16 битах и 146 дБ при 24. Здесь сигнал — синусоида с амплитудой (amplitude)амплитуда (amplitude) — Наибольший модуль отклонения колеблющейся величины от равновесного значения. Для синусоиды обозначается A; единицы совпадают с единицами сигнала. полной шкалы (full scale)полная шкала (full scale) — Опорная граница уровня выбранного аудиоформата или тракта. Для нормированных аудиоотсчётов обычно принята за ±1; числовой формат с плавающей точкой способен хранить значения за этой границей., а шум квантования считается некоррелированным с ней и измеряется во всей полосе от 0 до fs/2f_s/2. Это расчёт для идеальной модели, не обещание характеристик звуковой карты (Kester, MT-001).

В реальном тракте уже есть шум микрофона и электроники; есть и другие искажения. Увеличение числа бит уменьшает вклад квантования, но не убирает этот шум (Smith, глава 3.1). Связь шума и полезного уровня разобрана в разделе о динамическом диапазоне (dynamic range)динамический диапазон (dynamic range) — Разность самого высокого и самого низкого уровня сигнала или системы в децибелах; у системы нижняя граница — уровень собственного шума..

От чисел к напряжению

При воспроизведении ЦАП получает коды по порядку и преобразует их в соответствующие электрические уровни. В простой модели он удерживает уровень до следующего отсчёта — на выходе получается ступенчатое напряжение. Этот способ называют удержанием нулевого порядка (zero-order hold)удержание нулевого порядка (zero-order hold) — Способ формирования сигнала, при котором значение каждого отсчёта удерживается постоянным до следующего. Получается ступенчатая форма напряжения..

Ступени содержат дополнительные высокочастотные составляющие — спектральные копии (spectral images)спектральные копии (spectral images) — Повторения спектра около кратных частоты дискретизации при восстановлении сигнала. В тракте ЦАПа их подавляет восстановительный фильтр. полезного сигнала. Восстановительный фильтр (reconstruction filter)восстановительный фильтр (reconstruction filter) — Фильтр в тракте цифро-аналогового преобразования, который пропускает полезную полосу сигнала и подавляет высокочастотные спектральные копии. подавляет эти составляющие. Удержание также ослабляет полезные частоты (frequency)частота (frequency) — Число полных колебаний за секунду. Обозначается f и измеряется в герцах; 1 Гц означает одно колебание в секунду. неодинаково; для точного восстановления этот эффект нужно компенсировать.

В аудио-ЦАПах применяют и передискретизацию (oversampling)передискретизация (oversampling) — Работа с частотой дискретизации выше необходимой для полезной полосы. В АЦП уменьшает долю шума квантования в полезной полосе и смягчает требования к входному фильтру, в ЦАПе отодвигает спектральные копии. Новых сведений об исходном звуке не добавляет.: цифровой фильтр вычисляет дополнительные значения, повышая внутреннюю частоту обновления. Спектральные копии отодвигаются от полезной полосы, и требования к аналоговому фильтру становятся мягче. Входная запись при этом сохраняет свою частоту дискретизации; дополнительных сведений об исходном звуке не появляется (Kester, MT-017, с. 1–2).

Передискретизация в АЦП

Передискретизацию применяют и при записи. АЦП измеряет напряжение с частотой LfsL f_s, в LL раз выше нужной. Затем цифровой фильтр нижних частот оставляет полосу до fs/2f_s/2, и из каждых LL отсчётов сохраняется один. Такое понижение частоты дискретизации называют децимацией (decimation)децимация (decimation) — Понижение частоты дискретизации: цифровой фильтр нижних частот ограничивает полосу, затем сохраняется каждый L-й отсчёт. (Zölzer, «Digital Audio Signal Processing», §4.1.2, с. 98–100; Baker, ч. 2). Выигрыш двоякий.

Первый касается входного фильтра. Без передискретизации аналоговый антиалиасинговый фильтр должен пропустить полосу до fBf_B и подавить всё, что выше fs/2f_s/2: при 48 кГц и полосе 20 кГц на переход остаётся 4 кГц. С передискретизацией резкую границу у fs/2f_s/2 проводит цифровой фильтр перед децимацией, а аналоговому достаточно ослабить частоты около намного более высокой частоты LfsL f_s. Его переходная полоса может быть широкой (там же, с. 100).

Второй касается шума квантования. В модели из раздела об ошибке квантования ошибки соседних отсчётов независимы, а каждая равномерно распределена от −Δ/2-\Delta/2 до +Δ/2+\Delta/2. Её мощность равна Δ2/12\Delta^2/12 и распределена равномерно по полосе от 0 до fs/2f_s/2. При частоте LfsL f_s та же мощность распределяется по полосе в LL раз шире, до Lfs/2L f_s/2, и на полезную полосу приходится только её 1/L1/L-я часть. Остальное убирает цифровой фильтр. Отношение сигнал/шум растёт на 10lg⁡L10 \lg L дБ (формула 2) (Zölzer, §4.1.2, с. 98–100).

SNR≈6,02B+1,76+10lg⁡L\mathrm{SNR} \approx 6{,}02B + 1{,}76 + 10 \lg L
SNR\mathrm{SNR}
отношение сигнал/шум в полезной полосе до fs/2f_s/2, дБ;
BB
разрядность квантователя, бит;
LL
коэффициент передискретизации: во сколько раз частота работы АЦП выше fsf_s.

Удвоение частоты даёт 3 дБ, учетверение — 6 дБ, то есть один бит. 16-битный квантователь при L=64L = 64 выигрывает 18 дБ и даёт отношение сигнал/шум, как 19-битный. Но так выигрыш растёт медленно: чтобы получить 8 дополнительных бит, понадобилось бы L=48=65 536L = 4^8 = 65\,536.

Дельта-сигма: шум уходит вверх

Дельта-сигма-модуляция (delta-sigma modulation)дельта-сигма-модуляция (delta-sigma modulation) — Преобразование с передискретизацией и обратной связью: грубый, часто однобитный квантователь вместе с интегратором выносит шум квантования к высоким частотам, где его убирает фильтр. добавляет к передискретизации обратную связь. Она не уменьшает шум квантования, а переносит его к высоким частотам, за полезную полосу. Такое перераспределение называют формированием спектра шума (noise shaping)формирование спектра шума (noise shaping) — Перераспределение шума квантования по частотам с помощью обратной связи: в полезной полосе шума становится меньше, за её пределами — больше. (Zölzer, §4.1.3, с. 100–107; Baker, ч. 1).

В модуляторе первого порядка интегратор накапливает разность между входом и предыдущим выходом, а грубый квантователь, часто однобитный, выдаёт +1 или −1. Чем выше вход, тем чаще на выходе +1, и в среднем выход следует за входом (Baker, ч. 1). Ошибка квантования каждого отсчёта вычитается на следующем шаге, поэтому выход описывает формула 3 (Zölzer, с. 102, формула 4.7).

y[n]=x[n−1]+e[n]−e[n−1]y[n] = x[n-1] + e[n] - e[n-1]
x[n]x[n]
вход модулятора;
y[n]y[n]
выход квантователя;
e[n]e[n]
ошибка квантования на шаге nn.

Вход проходит на выход с задержкой на отсчёт, а ошибка входит не сама, а разностью соседних значений. Разность почти гасит медленные изменения и усиливает быстрые: синусоида с частотой ff после неё умножается на 2sin⁡(πf/fm)2\sin(\pi f / f_m), где fmf_m — частота работы модулятора. При L=64L = 64 и fs=48f_s = 48 кГц модулятор работает на 3,072 МГц. На краю полезной полосы, у 24 кГц, множитель равен 0,049, а у fm/2f_m/2 — 2. Поэтому шум квантования почти весь оказывается выше полезной полосы, где его убирает фильтр перед децимацией.

В модуляторе второго порядка ошибка входит второй разностью, e[n]−2e[n−1]+e[n−2]e[n] - 2e[n-1] + e[n-2], и шум прижимается к высоким частотам ещё сильнее (Zölzer, с. 105–106). Таблица 3 сравнивает выигрыш в полезной полосе с тем же квантователем без передискретизации. Простая передискретизация даёт 3 дБ на каждое удвоение LL, модулятор первого порядка — 9 дБ, второго — 15 дБ.

Таблица 3. Выигрыш в отношении сигнал/шум в полезной полосе по сравнению с тем же квантователем без передискретизации, дБ. Рассчитано интегрированием спектральной плотности шума из Zölzer, §4.1; при L от 8 значения совпадают с приближёнными формулами книги в пределах 0,1 дБ.
LТолько передискретизацияДельта-сигма, 1-й порядокДельта-сигма, 2-й порядок
46,013,017,5
1612,031,047,3
6418,149,077,4
12821,158,092,5

Поэтому модулятору хватает квантователя в один бит. Многоразрядные отсчёты получаются потом: цифровой фильтр усредняет поток однобитных значений, убирает вынесенный вверх шум и при децимации выдаёт отсчёты нужной разрядности на частоте fsf_s (Zölzer, с. 102; Baker, ч. 2). Большинство модуляторов в преобразователях имеют порядок выше первого: у Texas Instruments — со второго по шестой (Baker, ч. 1). В ЦАП путь обратный: отсчёты передискретизируют, цифровой модулятор превращает их в однобитный поток, а аналоговый фильтр убирает вынесенный вверх шум (Zölzer, с. 102, рис. 4.10).

Сколько даёт передискретизация в 16 раз без формирования спектра шума и сколько — с модулятором первого порядка?

Без формирования спектра шума 10lg⁡16≈1210 \lg 16 \approx 12 дБ, то есть два бита. Модулятор первого порядка по таблице 3 даёт около 31 дБ: примерно на 19 дБ больше.

Что можно восстановить

Перед АЦП антиалиасинговый фильтр (anti-aliasing filter)антиалиасинговый фильтр (anti-aliasing filter) — Фильтр перед дискретизацией, который ослабляет составляющие, способные вызвать наложение спектров. В обычном аудиотракте это фильтр нижних частот перед АЦП. ослабляет частоты, которые при дискретизации вызвали бы наложение спектров (aliasing)наложение спектров (aliasing) — Наложение частотных составляющих при дискретизации: разные непрерывные сигналы дают одинаковые отсчёты. Частота выше границы Найквиста может проявиться как более низкая.. После ЦАПа восстановительный фильтр подавляет высокочастотные копии. Их задачи различаются: выходной фильтр не исправляет наложение, которое уже произошло при записи (Smith, глава 3.4).

В идеальной модели без квантования сигнал, все частоты которого строго ниже fs/2f_s/2, можно точно восстановить по отсчётам — это теорема отсчётов (sampling theorem)теорема отсчётов (sampling theorem) — В принятой низкочастотной модели непрерывный сигнал можно точно восстановить по всем точным равномерным отсчётам, если его спектр лежит строго ниже половины частоты дискретизации. Также известна как теорема Котельникова.. В настоящей записи ЦАП получает уже округлённые значения. Например, код 101 из таблицы 2 сообщает уровень +0,375 В, но не позволяет узнать, было на входе +0,371 или +0,380 В. Фильтр не возвращает эту утраченную точность.

На вход АЦП с частотой дискретизации 8 кГц попал тон 5 кГц без антиалиасингового фильтра. Исправит ли запись переход с 16 на 24 бита или лучший выходной фильтр?

Нет. При такой частоте дискретизации тон 5 кГц даёт отсчёты, совместимые с тоном 3 кГц, как показано в разделе о наложении спектров. Разрядность меняет точность уровней, а выходной фильтр не может определить, какой из двух тонов был на входе. Предотвратить это нужно до дискретизации.

Источники

Связи

Поиск

Ищем по названиям, тексту статей и английским терминам. Например: «частота дискретизации», «Nyquist», «аналоговый сигнал».