Audiophile's Blog
Логин:Пароль:


Забыл пароль | Регистрация (убрать всю рекламу)
О сайте | Ликбез | Словарь | Audiophile's Testroom | Поддержать | Контакты
Разделы
Поиск по сайту
Популярное
Персональная настройка
Настройка звука онлайн (foobar2000, драйвера, Windows), создание персональных сборок foobar2000.

Контакты

Случайный опрос
Какой тип инсталляций вы предпочитаете?
Всего ответов: 227
Полезный софт
Opera QIP 2010 Download Master µTorrent
Ace Utilities AIDA64 SpeedFan 7-Zip
ESET NOD32 FileZilla Media Player Classic Home Cinema Paint.NET
Sony Sound Forge VirtualDub Unlocker Punto Switcher
Похожие проекты
Сейчас на сайте
Онлайн всего: 8
Гостей: 7
Пользователей: 1
mpuzirew
» »

Xiph.org: Digital Show & Tell (русские субтитры)


28 Марта 2013, 13:15

Второй эпизод ликбеза от Xiph.org. В этом видео более подробно раскрываются особенности процесса аналого-цифрового и цифро-аналогового преобразования. Освещаются такие моменты, как: миф о «ступеньках», dithering, noise shaping (формовка шума), разложение сигнала в ряд Фурье и некоторые другие.

Текст видео

Привет, я Монти Монтгомери из Red Hat и Xiph.Org.

Несколько месяцев назад я написал статью о цифровом звуке, объясняющую, почему распространение аудио в формате 24 бит/192 кГц не имеет смысла. В статье я (как бы мимоходом) упомянул, что цифровой сигнал не является ступенчатым, и вы ни в коем случае не получите ступенек после преобразования цифрового сигнала в аналоговый. Из всего, о чем говорится в статье, об этом люди пишут чаще всего. Фактически, более половины адресованных мне писем и комментариев были об основных свойствах цифрового сигнала. Поскольку это весьма интересно, давайте немного поиграем с несколькими простейшими цифровыми сигналами.

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

Теперь мы исследуем наш аналоговый сигнал аналоговым осциллографом, вот этим Tektronix'ом 2246 середины 90-х, одним из последних и лучших аналоговых осциллографов за всю историю. В каждой домашней лаборатории должен быть такой.

И наконец, изучим частотный спектр наших сигналов, используя аналоговый спектральный анализатор. Это HP3585, из той же линейки, что и генератор. Так же, как и остальное находящееся здесь оборудование, он оснащён допотопным впечатляющих размеров микроконтроллером, но путь, который проходит сигнал от входа до экрана, является полностью аналоговым.

Всё это оборудование довольно старое, но, не смотря на свою массивность, оно обладает прекрасными характеристиками.

И так, наш генератор настроен на генерацию синусоиды с частотой 1 кГц и действующим значением (RMS) 1 В. Мы можем наблюдать синусоидальный сигнал на осциллографе, можем удостовериться, что это действительно 1 кГц и 1 В RMS, которому соответствует различие в 2.4 В между максимальным и минимальным значением; и всё это также подтверждается спектральным анализатором. Анализатор также показывает некоторый слабый белый шум и небольшое количество гармонических искажений с пиковым значением примерно на 70 дБ ниже частоты полезного сигнала. В данном случае это не имеет совершенно никакого значения, но я хотел обратить сейчас на это внимание, чтобы не пришлось останавливаться на этом позднее.

Теперь включим в цепь цифровой семплер. Для преобразования между аналоговой и цифровой формой мы будем использовать обычное устройство среднего класса — eMagic USB1. Ему также более десяти лет и оно устарело. Современные преобразователи в большинстве своём имеют характеристики на порядок лучше.

...равномерность АЧХ, линейность, джиттер, уровень шумов и т.д. Всего этого вы можете не заметить, так как улучшение, которое мы можем определить путём замеров, не обязательно будет слышимым, и даже этот старенький аппарат обеспечивает качество, граничащее с идеальной прозрачностью.

eMagic подключён к моему ThinkPad'у, который отображает цифровой сигнал и спектр — для сравнения, затем ThinkPad передаёт цифровой сигнал обратно на eMagic для преобразования в аналог и исследования на выходном осциллографе. Слева — вход, справа — выход,

И так, поехали. Начнём с преобразования аналогового сигнала в цифровой и обратно в аналоговый, без каких-либо дополнительных операций. Генератор сигналов настроен на генерацию синусоиды с частотой 1 кГц, как и прежде. Мы можем наблюдать нашу аналоговую синусоиду на нашем входном осциллографе. Мы оцифровываем наш сигнал в формат 16-бит ИКМ, 44.1 кГц, такой же, как и у CD. Спектр оцифрованного сигнала соответствует тому, что мы наблюдали ранее, и... который мы видим в данный момент на аналоговом спектранализаторе, с тем лишь различием, что его высокоомный вход создаёт небольшой шум.

Теперь на дисплее мы видим нашу оцифрованную синусоиду в виде ступенек — одна ступенька на один семпл. И если мы посмотрим на выходной сигнал, который был преобразован из цифровой формы в аналоговую, мы увидим... Что он точь-в-точь такой же, как исходная синусоида. Никаких ступенек.

Ладно, 1 кГц — всё же частота довольно низкая, наверное, ступеньки просто не видны или сглажены. Хорошо, давайте установим более высокую частоту, поближе к частоте Найквиста — скажем, 15 кГц. Теперь синусоида представляется менее чем тремя семплами на период, и... цифровой сигнал выглядит просто ужасно.

Что ж, внешность может быть обманчива. На аналоговом выходе... мы всё так же получаем идеальную синусоиду, точь-в-точь такую же, как исходная. Давайте продолжим. 16 кГц... 17 кГц... 18 кГц... 19 кГц... 20 кГц. Пожалуйста: предел человеческого слуха. Выходной сигнал всё так же идеален. Ни зазубрин, ни провалов, ни ступенек.

Так куда же делись ступеньки? Не отвечайте, это вопрос с подвохом. Их здесь никогда не было. Для начала, отображение цифрового сигнала в виде ступенек было плохой идеей. Почему? Ступенчатая функция является непрерывной во времени. Она «зубчатая» и кусочная, но определена в любой момент времени. Семплированный сигнал кардинально отличается. Он дискретный; он определён только в конкретные отдельные моменты времени и не определён, (функция не имеет никакого определённого значения) в промежутках.

Дискретизированный по времени сигнал правильней всего изобразить вот таким графиком в виде «леденцов». Непрерывный аналоговый сигнал, соответствующий цифровому, проходит гладкой кривой через каждую точку-семпл это справедливо как для высокочастотных, так и для низкочастотных сигналов. А теперь один интересный, но далеко не очевидный момент: только один единственный — ограниченный по частоте сигнал проходит чётко через каждый семпл. Это единственный возможный вариант. Так что, если вы семплируете ограниченный по частоте сигнал, а затем преобразовываете его обратно, единственный возможным сигналом на выходе будет оригинальный. И прежде, чем вы скажете «Ха, я могу нарисовать кучу разных сигналов, проходящих через эти точки.» Конечно, можете, но... если он хоть самую малость отличается от исходного, он содержит частотные составляющие с частотой равной или более высокой, чем частота Найквиста, что не соответствует требованию ограниченной полосы частот и является неправильным вариантом.

Каким же образом все впали в заблуждение и стали представлять цифровой сигнал в виде ступенек? Этому есть две основных причины. Первая: достаточно легко преобразовать семплированный сигнал в ступенчатый. Надо просто продлить каждый семпл горизонтально до следующего. Это называется экстраполяцией нулевого порядка, и она является важной частью работы некоторых цифро-аналоговых преобразователей, в особенности, самых простых. Так что любой, кто будет искать информацию по цифро-аналоговому преобразованию, скорей всего где-нибудь наткнётся на график ступенчатого сигнала, однако это ещё не законченное преобразование, данный сигнал не является выходным.

Вторая и, пожалуй, более значимая причина: инженеры, которые якобы знают лучше — вроде меня — рисуют ступеньки даже понимая, что технически это неверно. Это что-то вроде одномерной версии пикселей в редакторе изображений. На самом деле пиксели не квадратные, они представляют собой семплы двухмерной функции, а потому также являются, концептуально, бесконечно малыми точками. На практике же это лишняя головная боль — оперировать чем-то бесконечно малым. Так что большие прямоугольные пиксели — как раз то, что нужно. Так же и с изображением цифровых ступенек. Это всего лишь удобный способ изображения, но на самом деле нет никаких ступенек. Когда мы преобразовываем цифровой сигнал обратно в аналоговый, результирующий сигнал также является гладким, независимо от разрядности. 24 бита или 16 бит... Или 8 бит... не имеет значения.

Значит ли это, что глубина квантования не имеет вообще никакого значения? Конечно же нет. Здесь второй канал представляет собой ту же синусоиду, но разрядность её понижена до 8 бит с использованием дизеринга. На втором канале осциллографа мы видим прекрасный гладкий синусоидальный сигнал. Присмотритесь хорошенько — и вы также увидите немного больший шум. Вот ключ к разгадке. Если мы посмотрим на спектр сигнала... ага! Наша синусоида осталась нетронутой, но уровень шумов 8-битного сигнала на втором канале — намного больше! Эти различия и есть следствие разной глубины квантования. Именно! Когда мы оцифровываем сигнал, прежде всего мы его семплируем. Этап семплирования не приводит к каким-либо потерям. Но когда мы квантуем сигнал, квантование вносит шум. Количество битов определяет количество шума, и, следовательно, уровень шумов.

Как же звучит шум квантования с дизерингом? Давайте прослушаем нашу восьми-битную синусоиду. Пожалуй, было трудно расслышать что-то кроме тона. Давайте послушаем сам шум, заглушив синусоиду. Немного усилием его, так как шум довольно тихий. Те, кто использовал аналоговое звукозаписывающее оборудование, скорей всего подумали: «Боже мой! Он же звучит прямо как шипение кассетной плёнки!». Да, он не только звучит как шипение плёнки, но и ведёт себя так же. И если мы используем гауссовый дизеринг, оба эти шума математически эквивалентны. Это и есть шум плёнки.

Фактически это означает, что мы можем измерить шумы плёнки, и это значение будет уровнем шумов магнитной аудио плёнки — в битах вместо децибел, чтобы взглянуть на это с точки зрения цифровых сигналов.

Компакт-кассеты... если конечно вы их ещё застали и помните, они могли достигать разрядности в девять бит, при идеальных условиях, однако наиболее распространённым было значение в пять-шесть бит, особенно, если кассета была записана на деке. Именно так... ваши микстейпы обладали разрядностью около шести бит... и то, если вам повезло! Лучшие профессиональные бобинные плёнки, которые использовались в студиях, едва достигали... угадайте, скольки?.. 13 бит при условии дополнительного шумопонижения. Именно поэтому надпись «DDD» на компакт-диске говорит о его high-end уровне.

Я говорю, что выполняю квантование с дизерингом, так что же такое дизер? А точнее, зачем он нужен? Простейший способ квантовать сигнал — записывать численные значения амплитуды, ближайшие к значению амплитуды аналогового сигнала. Это очевидно, не так ли? К сожалению, уровень шума, который вы получите при использовании такой простейшей схемы квантования, в некоторой степени зависит от входного сигнала, так что мы можем получить всплески шума, или искажения, или другие неприятные вещи.

Дизер представляет собой специальный шум, который подменяет собой шум квантования. Дизер не заглушает и не маскирует шум квантования, он фактически заменяет его и обладает характеристиками, которые мы сами можем выбирать, которые не зависят от входного сигнала.

Давайте же посмотрим, как работает дизер. Наш генератор сигналов слишком шумный для этого теста, так что мы будем генерировать математически идеальный синусоидальный сигнал, используя ThinkPad и квантовать его в 8 бит с использованием дизеринга.

Мы видим чистую синусоиду на дисплее, на выходном осциллографе и... идёт анализ сигнала... чистый тон с равномерным шумовым порогом на обоих спектральных анализаторах, как и ранее. Опять же, сейчас используется дизеринг. Сейчас я его выключу. Шум квантования, который дизеринг распределял в столь замечательный равномерный шумовой порог, превращается в гармоники искажений. Уровень шумов уменьшается, но он всё еще не нулевой. при чем пики гармоник искажений находятся выше, чем был порог шумов при дизеринге.

При восьми битах эффект — на лицо. При шестнадцати битах, даже без дизеринга, гармонические искажения настолько малы, что не слышны. Но мы всё равно можем использовать дизеринг, чтобы вовсе исключить их, если понадобится.

Если опять выключить дизеринг, вы увидите, что абсолютный уровень искажений при квантизации без дизеринга остаётся неизменным и не зависит от амплитуды полезного сигнала. Но когда уровень сигнала опускается ниже 1/2 бита, на выходе получается ноль. В каком-то смысле это означает, что мы получаем 100% шума! Дизер устраняет и этот шум.

Вновь включаем дизеринг и... вот он наш сигнал на уровне 1/4 бита и наш равномерный шумовой порог. Шумовой порог не обязательно должен быть ровным. Мы можем выбирать различный дизер. Так давайте же выберем шум настолько «безобидный» и трудноразличимый, насколько это вообще возможно.

Наш слух наиболее чувствителен в диапазоне от 2 до 4 кГц, именно здесь фоновые шумы наиболее заметны. Мы можем выполнить формовку шума и увести его из области наиболее слышимых частот туда, где наш слух менее чувствителен, а именно — в область высоких частот.

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

Но дизеринг может находиться не только в состоянии вкл/выкл. Мы можем уменьшать уровень дизера, регулируя баланс между уровнем шумов и уровнем искажений, чтобы найти оптимальное значение.

А теперь промодулируем наш входной сигнал, вот таким образом: ...чтобы показать, как изменение входного сигнала влияет на шум квантования. При максимальной мощности дизера шум распределён равномерно, не изменяется, никак себя не проявляет, как мы и ожидали: по мере того, как мы уменьшаем мощность дизера, входной сигнал всё больше влияет на уровень и характер шума квантования. Формованный шум ведёт себя похожим образом, однако формовка даёт нам одно замечательное преимущество. Короче говоря, формованный дизеринг может обладать несколько меньшей мощностью, в то время как входной сигнал еще не возымеет значительное влияние на характер искажений на выходе.

Несмотря на количество времени, которое я уделил дизерингу, мы говорим о различиях, которые проявляют себя, начиная с уровня -100 dBFS. Возможно, если бы CD были 14-битными, какими они разрабатывались изначально, дизеринг мог бы иметь большее значение. Возможно. При 16-битах дизеринг — , скорее, страховка. Вы можете воспринимать дизер как страховку в виде нескольких дополнительных децибелов динамического диапазона, на всякий случай. Однако, правда и в том, что ни одна удачная звукозапись не обошлась без финального дизеринга.

Мы использовали синусоидальные сигналы. Это идеальный выбор, если мы хотим увидеть реакцию системы на заданную отдельную частоту. Теперь давайте посмотрим на кое-что чуть более сложное. Как думаете, что произойдёт, когда я изменю входной сигнал на прямоугольный (меандр)? Входной осциллограф подтверждает наличие синусоиды в 1 кГц. Выходной осциллограф показывает нам... Именно то, что должен.

Что на самом деле представляет собой прямоугольный сигнал? Да, мы можем сказать, что это сигнал, который имеет некоторое положительное значение в течение первой половины периода, а затем мгновенно опрокидывается в отрицательное значение на время второй половины периода. Но это вовсе не объясняет, каким образом этот входной сигнал превратился в этот выходной.

И так, давайте вспомним, что любой сигнал представляет собой сумму отдельных частотных составляющих; в частности, прямоугольный сигнал представляет собой, в идеале, сумму бесконечного числа нечётных гармоник. Просуммируйте их все — и вы получите прямоугольный сигнал. На первый взгляд, эта информация тоже не особо проясняет положение вещей. Вы должны просуммировать бесконечное количество гармоник, чтобы получить ответ. О, но ведь у нас нет бесконечного числа гармоник. Мы используем сглаживающий НЧ фильтр с совершенно крутым срезом, который вырезает всё, что выше 20 кГц, так что наш сигнал ограничен по частоте, а это значит, что мы получаем вот это: ...именно это мы видим на выходном осциллографе.

Осцилляции (т.н. звон), которые вы видите в окрестностях резкого изменения уровня сигнала, называют эффектом Гиббса. Это происходит всегда, когда вырезается область частот с ненулевой энергией. Здесь действует простое правило: чем круче срез, тем сильнее осцилляции, что в общем-то правда, но очень важно правильно понимать это правило. Например... как думаете: какое влияние окажет наш сглаживающий фильтр, если я пропущу через него сигнал второй раз? Кроме внесения незначительной задержки, также... ничего более. Сигнал уже ограничен по частоте. Повторное ограничение ничего не даст. Второй проход не может удалить частоты, которые уже были удалены. И это важно. Люди склонны думать о звоне как о чем-то вроде артефактов, которые вносятся сглаживающими и реконструкционными фильтрами, подразумевая, что звон усиливается при каждом проходе. Мы можем видеть, что в данном случае этого не происходит.

В самом ли деле именно фильтр внёс звон при первом проходе? Нет, на самом деле — нет. Всё немного иначе: звон вносится не фильтрами, он просто является частью ограниченного по частоте сигнала. Даже если мы синтезируем то, что выглядит как идеальный цифровой синусоидальный сигнал, он всё равно ограничен полосой пропускания канала. Вспомните, что представление в виде ступенек является ошибочным. Что мы имеем на самом деле — так это отдельные значения, семплы, и только ограниченный по частоте сигнал соответствует этим семплам. Всё, что мы делали, изображая наш визуально идеальный прямоугольный сигнал - мы соединяли соседние семплы прямой линией. И потому мы не видим никакого звона. Но исходный, частотно ограниченный сигнал с осцилляциями, на самом деле всё так же имел место.

Исходя из этого, можно сделать ещё один вывод. Возможно, вы слышали, что временнАя точность цифрового сигнала ограничивается его частотой дискретизации (семплирования); другими словами, цифровой сигнал не может представить ничего, что находится между семлпами... это означает, что импульсы или быстрые атаки должны согласовываться, точно синхронизироваться с семплированием, иначе они будут воспроизводиться с задержкой или вовсе исчезнут. Теперь мы легко можем увидеть, почему это не так. Опять же, наш входной сигнал ограничен по частоте. А цифровой сигнал — это семплы. Не ступеньки, не соединённые прямыми линиями точки. Безусловно, мы можем, например, разместить всплеск нашего частотно ограниченного сигнала где угодно между семплами. И он будет прекрасно воспроизводиться, и так же прекрасно реконструироваться. Как и в предыдущем эпизоде, мы охватили большое количество тем и уже неплохо поднатаскались в каждой из них. Конечно, мне грех на этом останавливаться, но всё-таки сейчас наилучшее время, чтобы прерваться. Ну, или начать что-то новое. Копайте глубже. Экспериментируйте. Я очень тщательно готовил свои демонстрации — чтобы они были как можно проще и как можно нагляднее. Вы можете воспроизвести любые из них самостоятельно, если пожелаете. Но давайте посмотрим правде в глаза: частенько мы больше всего узнаем об устройстве какой-нибудь классной игрушки, лишь разбив её и тщательно изучив всё вылетевшие детали. Это нормально, ведь мы инженеры. Изменяйте параметры демонстраций, ломайте код, ставьте альтернативные эксперименты.

Абсолютно все исходные коды, вплоть до самой маленькой кнопочки демонстрационной программы, вы можете найти на сайте Xiph.Org.

В процессе опытов вы можете столкнуться с чем-то, чего вы не ожидали и не способны объяснить. Не переживайте! Мой добрый друг, Википедия — как нельзя лучше подходит для подобных исследований. Если же вы всерьёз собираетесь освоить теорию сигналов, несколько университетов предлагают подробнейшую информацию в режиме онлайн. Воде модулей 6.003 и 6.007 «Signals and Systems» на MIT OpenCourseWare.

И, конечно же, помните о существовании сообщества Xiph.Org.

Хоть копай, хоть не копай, а кофе у меня кончился. Так что, до новых встреч.

Happy hacking!

[Обсудить на форуме]


Информация от спонсора

Shelmedia.ru: удобное скачивание программ для компьютеров и ноутбуков. Здесь Вы можете подобрать и скачать программы для windows версий 7, 8 и 10. Для каждой программы представлено подробное описание и скриншоты..

 
   
Категория: Обучающие видеоролики | Добавил: Audiophile ()
Просмотров: 6369
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Авторские статьи
Сообщество
Последнее на форуме
Кодеки
TAK FLAC APE WV
MPC OGG AAC/ALAC MP3
WMA TTA OFR LA
Теги
Follow me
Twitter YouTube
Google+ Facebook
Полезные ссылки
Copyright Taras Kovrijenko © 2009–2016