24 бита. Правда и неправда

Дата обновления: 15 Декабря 2010
2010-12-15T20:37
Audiophile's Software

Внимание: Ниже дан текст, упрощенный для понимания. В связи с этим, использовались не академически точные формулировки, а «бытовые». Например, «громкость» вместо «уровня», «частота» синуса вместо «период» синуса, «музыка» вместо «сигнал». Всё это сделано намеренно! Приоритетная задача - донести смысл до читателя.

24 бита. Правды и неправды

Вокруг форматов аудио есть много споров, и в связи с этим, самый интересный вопрос: «Почему они возникают?». С одной стороны и ежу понятно, что 24 бита 96кГц это лучше, чем 16 бит и 44,1кГц. Но, тем не менее, споры не умолкают, а людям «поддерживающим» 44,1/16 как формат минимально достаточный, часто приходится бежать с поля боя(споров) за неимением аргументов против железной логики: 24 больше 16, а 44,1 меньше 96.
Я не буду доказывать, что 44,1/16 лучше 96/24. Я не буду писать, что 44,1/16 это само по себе круто... Я напишу, что именно эти цифры обозначают, и самое главное, как они проявляются не на бумаге, а в жизни. Что стоит за их рекламой.


Немного основ
Звуковой сигнал (или для простоты «музыка») в электронике представляет собой электрические колебания. Например, «синус» сигнал с уровнем 1dBV означает колебание напряжения от «плюс» 1,4142 вольта до «минус» 1,4142 вольта. То есть напряжение плавно изменяется от плюса к минусу по закону синуса. Чтобы этот сигнал «записать» в цифру, нужно сделать несколько замеров напряжения и «записать» их. И здесь два главных вопроса: 1) Когда сделать замеры; 2) Как записать.


Из теоремы Котельникова (Найквиста) следует, что замеры нужно делать как минимум вдвое чаще, чем частота самого синуса. То есть если у нас сигнал 50Гц (50 колебаний в секунду), то замеров нужно сделать 100 в секунду. Вот эти 100Гц и называются частотой дискретизации.
Теперь «Как записать».
Допустим у нас супер вольтметр, который измеряет вольты до десятой точки после запятой. Вот он нам выдаёт показание 1,0000000001 вольт, затем 0,0000000009 вольт. И так 100 раз в секунду он нам выдает значения. Если музыкальный диапазон равен ±1dBV, то есть громкость на максимуме в пиках даёт ± 1,4142135623 вольт, то чтобы записать наш сигнал с точностью до десятого знака, нам понадобится почти 28,3 млрд. значений. Это 35 бит! Динамический диапазон 204 децибела! Ну да ладно. Это абстракция. Глянем, что нам предлагают производители ЦАПов, и всё станет понятнее.


24 бита, как они есть
Большинство ЦАПов звуковых карт питаются от 5 вольт. На своём выходе, они могут обеспечить колебания напряжения равные 4,5 вольта*. То есть когда играет музыка, то самое максимальное значение которое сможет поймать вольтметр будет 4,5 вольта, а самое минимальное 0 вольт.


Вообще, ЦАП это такая вещь, которая на вход принимает «цифру», а на выходе выдаёт напряжение. Если в ЦАП постоянно посылать одну и ту же цифру, то на выходе у нас будет постоянное напряжение. Для наглядности возьмём 3-битный ЦАП. В него можно загружать 8 различных цифр (напомню, это 000, 111, 100, 101, 001, 010, 110 и 011). На выходе он нам также сможет выдавать 8 различных напряжений. То есть если загрузить цифру 000, то на выходе у нас будет 0 вольт. Если загрузить 111, то на выходе у нас будет 4,5 вольта. А все остальные «цифры» будут выдавать напряжения, лежащие между нулём и 4,5В.

Например:
000 – 0 вольт
001 – 0,6428 вольт
011 – 1,2856 вольт
010 – 1,9284 вольт
110 - 2,5712 вольт
101 – 3,214 вольт
100 – 3,8568 вольт
111 – 4,4996 вольт

Если ЦАП сделать 4-х битный, то таких напряжений на выходе будет уже не восемь, а 16. Ну, а если у нас 16 битный ЦАП, то таких напряжений будет 65,5 тысяч. Фактически это значит, что наш чудо-ЦАП может выдавать напряжения от 0 вольт до 4,5 вольт с шагом 68,66 микровольт (0,00006866 вольт)! А шаг 24-битного ЦАПа, при его 16,77 миллионах значениях, будет равен 0,26822 микровольт.


От теории к практике
Вот это всё на бумаге. В реальности мы должны учитывать такое неприятное явление как шум. Любая, повторяю - ЛЮБАЯ, электрическая схема шумит. Это значит, что на выходе ЦАПа будет не только напряжение, которое он генерировал, но ещё и напряжение шума.


Представим, что рядом с ЦАПом находится возбудитель помех, который наводит шум на выход ЦАПа. Громкость шума возьмём от 0 мкВ (микровольт) до 10 мкВ (кому интересно, это уровень шума (SNR) для нашего ЦАПа равный -113dB). То есть наш ЦАП выдаёт какое-то «музыкальное» значение согласно той «цифре», что в него поступила, и к этому значению прибавляется случайное напряжение шума. Например, ЦАПу надо выдать ноль вольт, самое первое значение. Он выдаёт ноль, а возбудитель наводит помеху, и вместо нуля у нас на выходе получится, например 5мкВ. А затем ЦАПу надо выдать 5мкВ, а плюс помеха, у нас получится 12мкВ или 15мкВ!


Таким образом, из-за шума у нас на выходе получаются значения, которые «залезают» на соседей. Опять же пример: для 24 битного ЦАПа самое первое значение – это ноль вольт. А если появится помеха, то на выходе вместо нуля будет 10мкВ, а это значение 37-е по счёту! Первое значение – ноль вольт, второе значение 0,26822 мкВ, третье значение 0,53644 мкВ... а 37 значение как раз 9,92414 мкВ. У нас из-за шума ЦАП перепрыгнул 36 значений! А когда ЦАПу надо будет сыграть это 37-е значение, то прибавится помеха и на выходе будет вместо 37 какое-нибудь 50-ое! Ну и так далее. Смысл понятен? Конечно, сам ЦАП нам честно выдаёт то, что от него и требуется (если ноль – то ноль, если 10мкВ - то 10мкВ), но из-за шума все «старания» перечёркиваются.


Давайте теперь разберемся, с каким шумом мы имеем дело.


Может ну его?
Конечно, я немного наврал, когда сказал, что сам ЦАП не шумит. Он тоже шумит! Потому что тепловой шум никто не отменял, это раз. И сам ЦАП питается далеко не от стабильного источника напряжения (который не шумит), и все референсные и опорные напряжения тоже идут с шумом. Откуда ему взять «чистое» напряжение? Это два. Величину шума самого ЦАПа можно увидеть в его спецификации. Залезаете на сайт производителя и ищете datasheet к ЦАПу. К примеру CS4396, который стоит на звуковых Lynx Two и Lynx L 22 имеет Dynamic Range = 120dB. Это значит, что от самого громкого до самого тихого звука у нас 120dB. Самый громкий звук – 4,5 вольта. Самый тихий звук – это отсутствие звука (ноль вольт), но из-за шума у нас будет не ноль, а 4,5 мкВ. То есть у нас шум идёт от 0 до 4,5мкВ. Но это на бумаге – а в реальности больше.


А мы ведь помним, что наш 24 битный ЦАП может выдавать напряжения с шагом 0,26822 мкВ. Получается, что только из-за собственного шума ЦАП может перепрыгивать через 15 значений!

Но и на этом не всё. После ЦАПа обязательно стоит «миниусилитель», и даже не один. И каждый шумит. Опять же возьмём «миниусилитель» из Lynx’ов. Он называется OP275. Смотрим в его спецификацию и видим шум 1,186 мкВ. А до того, как этот звук заиграет в мониторах, он ещё пройдёт через усилитель. Возьмём усилитель на микросхеме LM3886, т.к. считается, что это хай перфоманс микруха, и на её основе делают усилители для таких мониторов как Yamaha HS50M и HS80M, KRK Systems V4, V6 и V8, Roland DS-5 и многие Другие. Смотрим спецификацию, и видим шум - от 2мкВ до 10мкВ!

То есть все эти шумы сложатся, а затем в усилителе усилятся вместе с полезным сигналом.

Ну и давайте посмотрим как бы самый худший вариант: 

На ЦАП поступает «цифра», которая требует от ЦАПа ноль вольт. Но из-за собственных шумов он выдаёт нам 4,5мкВ. Далее два «миниусилителя» - и шум у нас уже 6,872мкВ. Далее сигнал отправляется по симметричной линии в мониторы, и там обязательно будет сумматор для балансной линии. Потому что в усилитель звук поступает несимметричный. Вот здесь два пути – либо стоит специальная микросхемка, либо простой «миниусилитель», но поверьте, в обоих случаях этот дивайс будет хуже, чем в Lynx Two. Возьмём хороший ресивер балансной линии INA2134 – его шум 7мкВ. Итого 13,872мкВ. И плюс собственно усилитель мониторов. В сумме, повторюсь в наихудшем случае, у нас шум будет 23,872 мкВ. То есть для 24 битного ЦАПа это равносильно перескакиванию через 88 значений! А для 16 битного ЦАПа с его шагом 68,66 мкВ этого не хватит, чтобы дотянуться до соседнего значения. И у 16 битного ЦАПа есть ещё Dither, суть которого самому шуметь в случайном порядке в пределах 1 шага. То есть всем известный Dither сам, то прибавляет 68,66 мкВ, то вычитает из музыкального сигнала (хотя на деле он не «вычитает», а просто «не прибавляет»).

Кто все эти люди?
Ну и последнее - что всё это значит, и какой вывод напрашивается? Давайте для начала всё подытожим. 

Хотим мы или не хотим, но в реальной жизни мы сталкиваемся с таким явлением как шум. В самом хорошем случае (а если быть честным, то 23,872 мкВ – это хороший случай, и ниже будет понятно почему) у нас всегда есть шум громкостью -106dB. 

Для борьбы с шумом придумали Dither, суть которого прибавлять один шаг и отнимать (в случайном порядке). (прим. - На самом деле дитер не борется с шумом в смысле его подавления!)

А теперь смотрим, у нас есть шум 23,872 мкВ, который в случайном порядке то прибавляется к сигналу, то не прибавляется. То есть это как бы естественный Dither! И если создать ЦАП с шагом в 23,872 мкВ, то ЦАП будет «таким как надо». А это всего 18 бит!

Вывод 1: Из-за естественных шумов ограничивается динамический диапазон звука. 24 битные ЦАПы могут читать «цифру», но на выходе из-за шума у нас будет только 18 битный звук.

Вывод 2: Из-за того, что я не учёл: наводки (помехи), которые можно нахватать проводами, медными дорожками на плате, помехи пассивных компонентов (конденсаторов, резисторов), помехи в ключах и реле - картина получилась слегка приукрашенной. В реале немножко хуже...

Вывод 3: Из-за того, что я не включил в рассмотрение такие явления как гармонические искажения, интермодуляционные искажения, искажения при переходных процессах, то реальная картина будет ещё немножко хуже, чем в Выводе 2.

Вывод 4: Всё написаное относится только к случаю, когда звук выходит из звуковой карты. Сами «цифры» шуметь не могут**, во всяком случае, пока они находятся в программе. Таким образом, 24 бита для обработки сигнала – шаг вполне оправданный. Как и 32 бита с плавающей точкой.

Далее. Не торопитесь покупать фильтры питания, сетевые фильтры. Не торопитесь покупать внешние звуковые, дабы оградиться от помех. От этого толку будет мало. Потому что мы имеем дело с естественными шумами, которые возникают по причинам, которые Производителям преодолеть не удалось (влияние температуры, тепловой шум колебания молекул и пр.). Но имейте ввиду, что грамотная разводка аппаратуры всегда нужна! Гляньте в левый нижний угол на Lynx Two и L 22. Видите там стоят два чёрных бочонка с подписями L1 и L2, а также два алюминиевых бочонка с надписью Nichicon 1000uF – вот это и есть фильтр питания, который стоит от силы пару баксов. Именно он помогает карте получать отличные шумовые характеристики. Но, несмотря на его низкую стоимость, никто кроме Lynx Studio их не ставит. Хотя может и ставят, но я не видел.

Ну, вот собственно и всё, что я хотел написать. Почему я не стал рассматривать частоту дискретизации? Лень. Но по большому счёту там нечего писать. Лично моё мнение – 48кГц нормально. 96кГц – идеально и даже многовато. Но что касается звуковых карт – то в ЦАПах стоят передискретизаторы (oversampling). Они умножают раз в 8 имеющуюся частоту дискретизации, и только после этого переводят в непрерывный «аналоговый» сигнал. Эта операция «сглаживает» звучание. Но такие цифровые фильтры стоят не везде. Там, где они есть – 48кГц звука за глаза хватит, а там, где нет – и 192кГц будет мало :) Его наличие можно увидеть в спецификации (datasheet) к ЦАПу. А сам datasheet ищите или на сайте производителя, или в инете вообще. Фича называется 8x Oversampling Digital Filter – или как-то так.

Надеюсь теперь картина для кого-то прояснится. Ну если остались вопросы – пишите. Текст могу (и может буду) дополнять.

Примечания:
* - есть ЦАПы, у которых выход токовый. Но сразу после такого ЦАПа ставят преобразователь тока в напряжение.
** - на самом деле «цифры» тоже могут «шуметь». Это называется jitter – когда цифра либо приходит раньше, либо позже.

 
   
Категория: Теория | Автор: | Добавил: Audiophile
Просмотров: 36115| Рейтинг: 5.0/5, голосов: 1
Комментариев: 5
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
0   Спам
[5] MegaElektronik (10 Января 2012 10:00)
Вот: http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%9A%D0%BE%D1%82%D0%B5%D0%BB%D1%8C%D 0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D0%B0
в пояснении.
0   Спам
[4] MegaElektronik (10 Января 2012 09:54)
Конечно слышал. Только это все справедливо для непрерывного (а лучше сказать периодического) сигнала. При преобразовании из "цифры" в "аналог" происходит:
- на выходе ЦАП выставляется нужное напряжение,
- это напряжение как-бы ударяется о НЧ фильтр,
- в следствии чего каждый отсчет домножается на sinx/x,
- тем самым появляются хвосты с нулями в соседних отсчетах и не нулями в промежутках,
- и складывая те самые значения в промежутках, восстанавливается форма сигнала.
Отсюда следует что если взять всего два отсчета (а все остальные нули) - синус не получить! (хотя наверное чтото похожее получится), но вот за 4 отсчета 2 синуса точно не получить...
0   Спам
[3] MegaElektronik (09 Января 2012 17:46)
Хотелось бы уточнить, что теорема Котельникова справедлива для периодически повторяющегося сигнала.
Чем,кстати, не является музыка.
Ответ: О разложении в ряд Фурье слышали?
0   Спам
[2] MegaElektronik (09 Января 2012 17:45)
Хотелось бы уточнить, что теорема Котельникова справедлива для периодически повторяющегося сигнала.
0   Спам
[1] mallniya (15 Декабря 2010 20:38)
Статья замечательная.
(и, кстати, сайт прям помолодел, за что вам отдельное спасибо happy )
Пожалуй, вопрос. Я не понял смысл 4го вывода.
"Таким образом, 24 бита для обработки сигнала – шаг вполне оправданный." - Вы имеете в виду выигрыш в 2 бита на выходе, так?
Ответ: Рад, что нравится.
Во-первых, статья не моя, внизу указан источник.

Обработка всегда производится с повышенной глубиной квантования, так как каждый обработчик вносит свои шумы (происходит округление) и при недостаточной разрядности результат может быть,мягко говоря, не самым лучшим. А вот после обработки можно уже преобразовывать в 16 бит (с дезерингом конечно же)
вот, почитайте статью:
https://audiophilesoft.com/publ/theory/bitdepth/6-1-0-14