16-битные или 24-битные преобразователи?

Я хочу построить некоторые DSP-эффекты, например, на процессоре STM32F4 с частотой 96 или 192 кГц. Достаточно ли 16-битных преобразователей (АЦП и ЦАП) для такой операции? Могу ли я услышать разницу при выборе 16-бит или 24-бит?

Какова максимальная частота дискретизации ваших АЦП/ЦАП? Это то, что влияет на частоты, которые вы хотите семплировать. Вы можете проверить, услышите ли вы разницу между 16-битным и 24-битным звуком в Windows (щелкните правой кнопкой мыши значок звука на панели инструментов -> Устройства воспроизведения -> выберите тот, который вы используете -> Свойства -> Дополнительно и переключитесь между 24-битные и 16-битные).
К каким сигналам вы применяете эффекты и что вы делаете с этими сигналами.
Я хочу создать платформу, которая позволит мне создавать множество различных эффектов. Я хочу использовать с гитарой. Для начала я хочу сделать простую огибающую ADSR, а затем, возможно, что-то вроде задержки или хоруса.
Гитары имеют гораздо более низкую частотную характеристику и динамический диапазон, чем другие источники звука. 16 бит было бы нормально.
Вы можете взглянуть на хокстонскую сову . Хотя я не был особенно в восторге от демонстрационных звуков, которые есть на их сайте, у них есть схемы и кодовая база на github . Их аппаратное обеспечение включает в себя процессор ARM, кодек WM8731 , несколько кварцевых часов. и т. д.

Ответы (6)

Это зависит от того, кого вы спросите. Большинство людей не могут слышать дальше 20 кГц и 16 бит, поэтому 96 или 192 кГц должно быть достаточно.

Что касается разницы между 16-битными и 24-битными преобразователями, то это зависит от вашего DSP. Ключевое преимущество 24-битных преобразователей заключается в том, что они дают вам массу дополнительного запаса (динамический диапазон), поэтому вы можете выполнять множество математических операций и не добавлять заметного шума квантования.

По моему опыту, я не могу отличить 16-битные и 24-битные преобразователи. Некоторые думают, что могут. На вашем месте я бы выбрал 24-битные преобразователи, так что одной проблемой меньше, и вы можете сосредоточиться на своем коде DSP.

По этой теме доступно много недостоверной информации и звукового бреда, но если вы работаете с одним каналом цифрового звука, частоты дискретизации 96 кГц и 192 кГц — это глупо. Человеческий слух простирается до 20 кГц. Чтобы удовлетворить Найквиста на частоте 20 кГц, нам нужна частота дискретизации выше 40 кГц. Компакт-диски имеют частоту дискретизации 44,1 кГц, а 48 кГц — еще одна распространенная частота дискретизации.

Теперь давайте вспомним, что цифровой звук — это дискретный сигнал, а не непрерывный. Это означает, что имеет значение в каждый момент времени расчета и не определено во все остальные моменты времени. Для сигнала с ограниченной полосой частот, дискретизированного на уровне Найквиста или выше, существует только один сигнал, который проходит через каждую из этих дискретных выборок. Любой другой сигнал, который проходит через все точки выборки, не может удовлетворить Найквиста. Единственная причина для выборки с частотой 96 кГц или 192 кГц для одного канала - это передискретизация с помощью АЦП с низкой битовой глубиной. Это тоже глупо, и мы пойдем туда дальше.

Мы только что обсудили, как серия дискретных выборок соответствует ровно одному сигналу. Это не зависит от разрядности. Это не означает, что битовая глубина не имеет значения. Преобразование в цифру вносит шум квантования. Квантование — это шум, вносимый в цифровой сигнал путем «округления» его до ближайшего цифрового значения, как показано на этом изображении, беззастенчиво украденном из Википедии .

введите описание изображения здесь

Шум квантования напрямую связан с битовой глубиной. Должно быть совершенно очевидно, что чем больше разрешение (значения для округления), тем ниже шум квантования. Более высокая битовая глубина обеспечивает более высокое полное разрешение. Более высокое разрешение уменьшает шум квантования за счет наличия большего количества доступных значений, которые точно соответствуют значению сигнала в выборке. Уменьшение шума квантования снижает уровень шума и увеличивает отношение сигнал/шум (SNR).

Вы слышите разницу между 16-битным и 24-битным квантованием? Держу пари, что ты не сможешь. Это для гитары, а гитары не известны своим динамическим диапазоном. Профессиональная симфония? Может быть, без дифирамба. 16-битный минимальный уровень шума достаточно низок, чтобы его можно было различить, но разница будет измерима.

Таким образом, мой голос за частоту дискретизации 48 кГц и разрешение 16 бит. Я настоятельно рекомендую всем, кто интересуется этой темой, посмотреть это видео .

Это видео было потрясающим. Это вызовет у меня некоторые вопросы.
+1 за разницу между измеримым и различимым - иногда разница слишком мала, чтобы ее можно было услышать.
В идеальных условиях будет достаточно 16-битной выборки с частотой 44 100 Гц. Однако использование более высокой разрядности и частоты дискретизации может упростить некоторые аспекты проектирования системы. Например, для получения отношения сигнал-шум 96 дБ от 16-разрядного АЦП потребуется, чтобы входное усиление было установлено идеально. Если устройство должно принимать входные данные от различных устройств, чей пиковый уровень может отличаться в 100 раз, 16-разрядный АЦП с фиксированным коэффициентом усиления подойдет только для 56 дБ при использовании сигнала низкого уровня. Напротив, типичный 24-разрядный АЦП аудиосигнала сможет обеспечить постоянное полезное соотношение сигнал-шум во всем динамическом диапазоне.
@supercat Справедливое замечание, но отношение сигнал-шум 96 дБ для блока гитарных эффектов, откровенно говоря, смешно.
@MattYoung: Существуют две разные формы SNR: отношение между уровнем сигнала a и уровнем шума, измеренным одновременно , или соотношение между максимальным уровнем сигнала и самым низким уровнем шума, который может быть связан с ненулевым сигналом. . Для первого измерения для гитары будет достаточно даже 48 дБ. Однако для второго требуется гораздо больше. Если разница между самым громким и самым тихим входным уровнем, который должен принимать блок, составляет более 48 дБ, 16-битный АЦП будет иметь отношение сигнал-шум только 48 дБ по второму показателю, что на самом деле недостаточно.
@MattYoung: Что касается частоты дискретизации, если вам нужна полоса пропускания 12 кГц, то для выборки 48 кГц с SNR 48 дБ потребуется фильтр 48 дБ / октава. При использовании дискретизации 96 кГц потребуется фильтр 24 дБ/октава, а при использовании дискретизации 192 кГц потребуется только фильтр 12 дБ/октава. Кроме того, использование грубых алгоритмов интерполяции на частоте 192 кГц может дать результаты, сравнимые с использованием более совершенных алгоритмов фильтрации на частоте 48 кГц, но требует гораздо меньших усилий по кодированию.

Следует учитывать, что производительность ваших АЦП и ЦАП будет во многом зависеть от схемы поддержки и разводки печатной платы. Я не эксперт по АЦП, но я понимаю, что с электрической точки зрения 16-битный — это high-end, а 24-битный — экстремальный. Если вы используете опорное напряжение 5 В, 1 младший бит равен 76 мкВ на 16-битном преобразователе. В лучшем случае минимальный уровень шума составляет -96 дБ. Вы уверены, что можете контролировать шум до такой степени? Имейте в виду, что среда записи также производит шум. Если вы не работаете в студии звукозаписи и у вас нет действительно хорошей печатной платы, я не думаю, что 24-битный АЦП вам поможет. Я также подозреваю, что 96 кГц — это перебор, и что 48 кГц будут работать так же хорошо.

Ради интереса вы можете поэкспериментировать с 12-битным АЦП на STM32F4, чтобы увидеть, услышите ли вы разницу по сравнению с 16-битным.

Причуда систем квантования, таких как АЦП, которую легко упустить из виду, заключается в том, что АЦП, который всегда возвращает значение, ближайшее к входному значению, добавит значительное количество — до ±½ младшего разряда — гармонических искажений, что может быть гораздо более нежелательным, чем было бы. ±½LSB шума широкого спектра. АЦП, который добавляет ±½LSB шума широкого спектра с правильными характеристиками, может устранить гармонические искажения, но если характеристики шума не совсем правильные, некоторые искажения останутся. Хотя не невозможно разработать высококачественный 16-разрядный АЦП с очень хорошей формой источника шума ±½LSB, часто гораздо проще просто расширить измерения до 24 бит, тем самым уменьшив шум квантования (и результирующие гармонические искажения). искажение) не менее чем в 256 раз.

В качестве аналогии предположим, что вам нужно устройство, которое будет сообщать о напряжении с точностью до 0,06 вольта. Было бы проще сконструировать такое устройство с показаниями в десятых долях вольта или в сотых? Если показание в десятых долях, то устройство должно быть в состоянии разрешить разницу между 1,139 и 1,161 вольта (первое должно быть указано как 1,1, а второе как 1,2) — разница чуть более 0,02 вольта. Если бы показания были в сотых долях, он мог бы сообщить значение 1,10 вольта для чего-либо до 1,159 вольта и показание 1,11 вольта для любого значения до 1,061 вольта, разброс около 0,1 вольта. Таким образом, предоставление более значащих цифр в показаниях фактически снижает точность схемы, необходимую для достижения заданной точности результата.

В вашем случае для семплирования электрогитары с максимальной пиковой частотой около 2,5 кГц и крутизной спада не менее 12 дБ на октаву на более высоких частотах я бы согласился с общим мнением о разрешении 48 кГц и 16 бит, хотя если вы получите в тяжелые модификации (например, несколько потоков задержки), тогда 24 бита послужат вам лучше, как указал @crgrace.

Никто еще не упомянул о психоакустике, которая играет важную роль в восприятии цифрового звука, и, поскольку ваш вопрос был о том, слышите ли вы разницу, я думаю, это еще предстоит объяснить. В нашем восприятии звука преобладает информация о фазе, а не частота и искажения. Вы упомянули задержку и хор как ваши следующие интересы после модуляции огибающей. Оба этих эффекта добавляют информацию о фазировании к исходному источнику.

Однако, если вы решили, что хотите расширить масштаб своего проекта, включив в него акустическую гитару или вокал, можно получить заметный эффект при частоте дискретизации 48 кГц и глубине 16 бит. Шипение, звук «с» в речи, часто встречается при вокале. Акустическая гитара с пьезодатчиком также имеет форму шипения (хотя и другого типа), и лучше всего отфильтровать сигналы выше 3-5 кГц, чтобы избежать этой проблемы. Но с вокалом вы мало что можете сделать, кроме применения фильтра деэссинга.

Шипение - это сложный звук, в котором есть взаимодействие информации о фазировании на умеренно высоких частотах. Самый очевидный случай — шипящая тарелка. Включите микрофон и запишите его с разной частотой дискретизации и сравните записанный звук с живым. По мере постепенного уменьшения частоты дискретизации записанный сигнал будет больше походить на резкий шум, пока не станет невыносимым. На хорошей записи вы сможете услышать, как заклепки перемещаются по тарелке. Это одна из причин, по которой некоторые люди предпочитают аналоговые записи компакт-дискам.

Как правило, частота дискретизации должна быть в 10 раз выше максимальной частоты сигнала, чтобы свести к минимуму фазовые искажения. Электрогитара производит несколько обертонов выше 5 кГц, поэтому частота дискретизации 48 кГц вполне подойдет. Но если вы хотите использовать свои эффекты более широко, например, коррекцию высоты тона или хорус для вокала, я бы рекомендовал использовать более высокие частоты дискретизации.

Битовая глубина , о которой говорит ОП, не имеет ничего общего с возможностью слышать какой-то диапазон частот. Другими словами, битовая глубина представляет собой разрешение интенсивности звука. Бьюсь об заклад, если вы получите музыку высокого качества и воспроизведете ее через 16- и 24-битные преобразователи, вы почувствуете разницу! На изображении ниже показана преувеличенная «лестница» квантования при 16-битной выборке:

введите описание изображения здесь

Теперь частота дискретизации , которую OP путает с АЦП, отличается. Я думаю, он имеет в виду 96 кс/с и 192 кс/с, что означало бы передискретизацию. Эти числа обычно представляют собой кратные 24 кГц - максимальную частоту слышимости с некоторыми запасными накладными расходами (из-за неидеальных фильтров нижних частот). Таким образом, частота дискретизации 48 кГц будет немного выше скорости Найквиста, 96 кГц означает просто стерео (два канала), а 192 — квадро.

Таким образом, вам нужно сэмплировать каждый канал на частоте около 48 кГц, и если вы можете получить 24-битный сэмплер АЦП, сделайте это — большинство коммерческих звуковых сэмплов имеют глубину 24 бита. Однако, если ваш источник звука (китар) достаточно шумный, чтобы убить разрешение, то трата дополнительных денег на 24-битный преобразователь не улучшит ваш звук.

И, как сказал @crgrace, более высокая битовая глубина позволит вам уменьшить потерю информации во время цифровой обработки звука из-за ошибок усечения.

Битовая глубина не имеет ничего общего с «интенсивностью звука», а имеет отношение к динамическому диапазону и ОСШ.
@MattYoung Верно, ты перепутал это с громкостью? Я имел в виду разрешение интенсивности звука, которое по сути является SNR.
Не уверен, что понимаю, как "разрешение интенсивности звука" = SNR
@MattYoung Ну, потому что разрешение ниже SNR бесполезно, поскольку оно подавляет сигнал. И в чем смысл вашего комментария? Я не уверен, какое отношение битовая глубина имеет к динамическому диапазону?
Сжатие MP3 — это не просто уменьшение разрядности
Это редактирование просто делает этот ответ совершенно неверным. Битовая глубина не имеет ничего общего с качеством. Квантование в 8 или 24 бита даст вам точно такой же сигнал. Разница в том, что 24-битная версия будет иметь гораздо более низкий уровень шума.
Последнее изображение абсурдно неточное.
Последнее изображение выглядит так, как будто оно взято из рекламного листа «Аудиоплеера высокого разрешения».
Из-за многочисленных комментариев по поводу части изображения, которая представляла форму волны mp3, которая не имела отношения к вопросу (это была просто часть изображения), я обрезал эту часть.