Цифровое представление аналогового аудиосигнала. Краткий ликбез +41





Дорогие читатели, меня зовут Феликс Арутюнян. Я студент, профессиональный скрипач. В этой статье хочу поделиться с Вами отрывком из моей презентации, которую я представил в университете музыки и театра Граца по предмету прикладная акустика.

Рассмотрим теоретические аспекты преобразования аналогового (аудио) сигнала в цифровой.
Статья не будет всеохватывающей, но в тексте будут гиперссылки для дальнейшего изучения темы.

Чем отличается цифровой аудиосигнал от аналогового?


Аналоговый (или континуальный) сигнал описывается непрерывной функцией времени, т.е. имеет непрерывную линию с непрерывным множеством возможных значений (рис. 1).

рис. 1


Цифровой сигнал — это сигнал, который можно представить как последовательность определенных цифровых значений. В любой момент времени он может принимать только одно определенное конечное значение (рис. 2).

рис. 2


Аналоговый сигнал в динамическом диапазоне может принимать любые значения. Аналоговый сигнал преобразуется в цифровой с помощью двух процессов — дискретизация и квантование. Очередь процессов не важна.

Дискретизацией называется процесс регистрации (измерения) значения сигнала через определенные промежутки (обычно равные) времени (рис. 3).

рис. 3


Квантование — это процесс разбиения диапазона амплитуды сигнала на определенное количество уровней и округление значений, измеренных во время дискретизации, до ближайшего уровня (рис. 4).

рис. 4


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

рис. 5


Эти два процесса создают как бы координатную систему, которая позволяет описывать аудиосигнал определенным значением в любой момент времени.
Цифровым называется сигнал, к которому применены дискретизация и квантование. Оцифровка происходит в аналого-цифровом преобразователе (АЦП). Чем больше число уровней квантования и чем выше частота дискретизации, тем точнее цифровой сигнал соответствует аналоговому (рис. 6).

рис. 6


Уровни квантования нумеруются и каждому уровню присваивается двоичный код. (рис. 7)

рис. 7


Количество битов, которые присваиваются каждому уровню квантования называют разрядностью или глубиной квантования (eng. bit depth). Чем выше разрядность, тем больше уровней можно представить двоичным кодом (рис. 8).

рис. 8.


Данная формула позволяет вычислить количество уровней квантования:

Если N — количество уровней квантования,
n — разрядность, то

$N = 2^n$



Обычно используют разрядности в 8, 12, 16 и 24 бит. Несложно вычислить, что при n=24 количество уровней N = 16,777,216.

При n = 1 аудиосигнал превратится в азбуку Морзе: либо есть «стук», либо нету. Существует также разрядность 32 бит с плавающей запятой. Обычный компактный Аудио-CD имеет разрядность 16 бит. Чем ниже разрядность, тем больше округляются значения и тем больше ошибка квантования.

Ошибкой квантований называют отклонение квантованного сигнала от аналогового, т.е. разница между входным значением $X$ и квантованным значением $X'$ ($X-X'$)

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

Чем выше разрядность, тем незначительнее ошибки квантования и тем лучше отношение сигнал/шум (Signal-to-noise ratio, SNR), и наоборот: при низкой разрядности вырастает шум (рис. 9).

рис. 9


Разрядность также определяет динамический диапазон сигнала, то есть соотношение максимального и минимального значений. С каждым битом динамический диапазон вырастает примерно на 6dB (Децибел) (6dB это в 2 раза; то есть координатная сетка становиться плотнее, возрастает градация).

рис. 10. Интенсивность шумов при разрядности 6 бит и 8 бит


Ошибки квантования (округления) из-за недостаточного количество уровней не могут быть исправлены.

шум квантования


амплитуда сигнала при разрядности 1 бит (сверху) и 4 бит


Аудиопример 1: 8bit/44.1kHz, ~50dB SNR
примечание: если аудиофайлы не воспроизводятся онлайн, пожалуйста, скачивайте их.


Аудиопример 1


Аудиопример 2: 4bit/48kHz, ~25dB SNR


Аудиопример 2


Аудиопример 3: 1bit/48kHz, ~8dB SNR


Аудиопример 3


Теперь о дискретизации.

Как уже говорили ранее, это разбиение сигнала по вертикали и измерение величины значения через определенный промежуток времени. Этот промежуток называется периодом дискретизации или интервалом выборок. Частотой выборок, или частотой дискретизации (всеми известный sample rate) называется величина, обратная периоду дискретизации и измеряется в герцах. Если
T — период дискретизации,
F — частота дискретизации, то
$F=1/T$

Чтобы аналоговый сигнал можно было преобразовать обратно из цифрового сигнала (точно реконструировать непрерывную и плавную функцию из дискретных, «точечных» значении), нужно следовать теореме Котельникова (теорема Найквиста — Шеннона).

Теорема Котельникова гласит:
Если аналоговый сигнал имеет финитный (ограниченной по ширине) спектр, то он может быть восстановлен однозначно и без потерь по своим дискретным отсчетам, взятым с частотой, строго большей удвоенной верхней частоты.
Вам знакомо число 44.1kHz? Это один из стандартов частоты дискретизации, и это число выбрали именно потому, что человеческое ухо слышит только сигналы до 20kHz. Число 44.1 более чем в два раза больше чем 20, поэтому все частоты в цифровом сигнале, доступные человеческому уху, могут быть преобразованы в аналоговом виде без искажении.

Но ведь 20*2=40, почему 44.1? Все дело в совместимости с стандартами PAL и NTSC. Но сегодня не будем рассматривать этот момент. Что будет, если не следовать теореме Котельникова?

Когда в аудиосигнале встречается частота, которая выше чем 1/2 частоты дискретизации, тогда возникает алиасинг — эффект, приводящий к наложению, неразличимости различных непрерывных сигналов при их дискретизации.

Алиасинг


Как видно из предыдущей картинки, точки дискретизации расположены так далеко друг от друга, что при интерполировании (т.е. преобразовании дискретных точек обратно в аналоговый сигнал) по ошибке восстанавливается совершенно другая частота.

Аудиопример 4: Линейно возрастающая частота от ~100 до 8000Hz. Частота дискретизации — 16000Hz. Нет алиасинга.


Спектральный анализ


Аудиопример 5: Тот же файл. Частота дискретизации — 8000Hz. Присутствует алиасинг


Спектральный анализ


Пример:
Имеется аудиоматериал, где пиковая частота — 2500Hz. Значит, частоту дискретизации нужно выбрать как минимум 5000Hz.


Следующая характеристика цифрового аудио это битрейт. Битрейт (bitrate) — это объем данных, передаваемых в единицу времени. Битрейт обычно измеряют в битах в секунду (Bit/s или bps). Битрейт может быть переменным, постоянным или усреднённым.

Следующая формула позволяет вычислить битрейт (действительна только для несжатых потоков данных):

Битрейт = Частота дискретизации * Разрядность * Количество каналов

Например, битрейт Audio-CD можно рассчитать так:
44100 (частота дискретизации) * 16 (разрядность) * 2 (количество каналов, stereo)= 1411200 bps = 1411.2 kbit/s

При постоянном битрейте (constant bitrate, CBR) передача объема потока данных в единицу времени не изменяется на протяжении всей передачи. Главное преимущество — возможность довольно точно предсказать размер конечного файла. Из минусов — не оптимальное соотношение размер/качество, так как «плотность» аудиоматериала в течении музыкального произведения динамично изменяется.

При кодировании переменным битрейтом (VBR), кодек выбирает битрейт исходя из задаваемого желаемого качества. Как видно из названия, битрейт варьируется в течение кодируемого аудиофайла. Данный метод даёт наилучшее соотношение качество/размер выходного файла. Из минусов: точный размер конечного файла очень плохо предсказуем.

Усреднённый битрейт (ABR) является частным случаем VBR и занимает промежуточное место между постоянным и переменным битрейтом. Конкретный битрейт задаётся пользователем. Программа все же варьирует его в определенном диапазоне, но не выходит за заданную среднюю величину. 

При заданном битрейте качество VBR обычно выше чем ABR. Качество ABR в свою очередь выше чем CBR: VBR > ABR > CBR.

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

Существуют 3 метода хранения цифрового аудиоматериала:

  • Несжатые («сырые») данные
  • Данные, сжатые без потерь
  • Данные, сжатые с потерями

Несжатый (RAW) формат данных


содержит просто последовательность бинарных значений.
Именно в таком формате хранится аудиоматериал в Аудио-CD. Несжатый аудиофайл можно открыть, например, в программе Audacity. Они имеют расширение .raw, .pcm, .sam, или же вообще не имеют расширения. RAW не содержит заголовка файла (метаданных).

Другой формат хранения несжатого аудиопотока это WAV. В отличие от RAW, WAV содержит заголовок файла.

Аудиоформаты с сжатием без потерь


Принцип сжатия схож с архиваторами (Winrar, Winzip и т.д.). Данные могут быть сжаты и снова распакованы любое количество раз без потери информации.

Как доказать, что при сжатии без потерь, информация действительно остаётся не тронутой? Это можно доказать методом деструктивной интерференции. Берем две аудиодорожки. В первой дорожке импортируем оригинальный, несжатый wav файл. Во второй дорожке импортируем тот же аудиофайл, сжатый без потерь. Инвертируем фазу одного из дорожек (зеркальное отображение). При проигрывании одновременно обеих дорожек выходной сигнал будет тишиной.

Это доказывает, что оба файла содержат абсолютно идентичные информации (рис. 11).

рис. 11


Кодеки сжатия без потерь: flac, WavPack, Monkey’s Audio…

При сжатии с потерями

акцент делается не на избежание потерь информации, а на спекуляцию с субъективными восприятиями (Психоакустика). Например, ухо взрослого человек обычно не воспринимает частоты выше 16kHz. Используя этот факт, кодек сжатия с потерями может просто жестко срезать все частоты выше 16kHz, так как «все равно никто не услышит разницу».

Другой пример — эффект маскировки. Слабые амплитуды, которые перекрываются сильными амплитудами, могут быть воспроизведены с меньшим качеством. При громких низких частотах тихие средние частоты не улавливаются ухом. Например, если присутствует звук в 1kHz с уровнем громкости в 80dB, то 2kHz-звук с громкостью 40dB больше не слышим.

Этим и пользуется кодек: 2kHz-звук можно убрать.

Спектральный анализ кодека mp3 с разными уровнями компрессии


Кодеки сжатия с потерям: mp3, aac, ogg, wma, Musepack…

Спасибо за внимание.

UPD:
Если по каким-либо причинам аудиофайлы не загружаются, можете их скачать здесь: cloud.mail.ru/public/HbzU/YEsT34i4c




Комментарии (44):

  1. nUser123
    /#21658626 / -4

    цифровой сигнал это последовательность нулей и единичек, то, что у вас выдается за цифровой сигнал — это называется дискретный сигнал

    • saboteur_kiev
      /#21659290

      A digital signal is a signal that is being used to represent data as a sequence of discrete values

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

      • nUser123
        /#21659606

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

        • saboteur_kiev
          /#21662248

          Ну там суть не в округлении, а в том, что дискретный сигнал — вы можете передавать что-то, и приемний в какой-то момент времени видит конкретное значение. Сейчас это 4, потом это 5. Но это не переданные «45»
          А цифровой сигнал он ближе к передаче пакета данных — идет последовательность значений, и вы четко должны получить, что было передано «45» или «444445» или «4555455»

  2. jaiprakash
    /#21658688 / +3

    А зачем все картинки под спойлерами?

    • saege5b
      /#21659610 / +1

      На тощих каналах связи, или дохлых устройствах — хорошо, резиновый интервейс с резиновой вёрсткой не скачут как лихорадочные.

      • jaiprakash
        /#21659754

        Я бы лучше подождал, чем 20 раз жать на спойлеры. Это реально перебор.
        *Вздыхает, вспоминая веб с нормальной вёрсткой, с прописанными в html размерами картинок.

  3. kovigor
    /#21658920

    Есть очень хорошая книжка по ЦОС для начинающих. Автор — Юкио Сато:

    publ.lib.ru/ARCHIVES/S/SATO_Yukio/_Sato_Yu..html

  4. First_Spectr
    /#21659090

    Спасибо, схоронил.

  5. Refridgerator
    /#21659678

    Картинка «Интенсивность шумов при разрядности 6 бит и 8 бит» совершенно точно не соответствует действительности и уровень шумов в ней сильно занижен — даже если рассматривать чистую синусоиду, влияние шумов квантования на которую минимально.

  6. HardWrMan
    /#21659746 / +1

    Сэмплы не то чтобы послушать, даже уже скачать не получается:
    image
    Хабраэффект в действии?

  7. Don_Koton
    /#21659750

    Я извиняюсь за глупый вопрос, но почему не существует «векторного» формата для записи аудио? Чтобы описать звуковую волну математическими формулами, вместо записи конкретных дискретных поинтов где эта волна находится в каждый момент времени

    • Refridgerator
      /#21659782

      Теорема Котельникова и описывает звуковую волну математическими формулами, через сумму sinc-функций, сдвинутых во времени.

    • amartology
      /#21660280 / +3

      Вы сейчас почти изобрели преобразование Фурье)

    • dlinyj
      /#21665194

      Преобразование Фурье. Существует.

  8. TheNavi
    /#21661400

    Пардон муа, но вы упустили из виду вариант с 1-битной дельта-сигма модуляцией — которая дает очень неплохие результаты по качеству — SACD собственно так и родился.

    • rexen
      /#21677996

      SACD — унылый маркетологический формат, существующий лишь на пинковой тяге тёти Сони — обычный DVD-A его превосходит по эффективности. Чисто математически. Как формат хранения. Тут прослеживается ровно та же коммерческая история как в войне VHS и Betamax — желание оторвать кусок рынка недобросовестной рекламой.

      • Refridgerator
        /#21680528

        Нет. Формат хранения в SACD — это DSD, DVD-A — PCM (в том числе и сжатый). Если в несжатом PCM инвертировать произвольный бит — это приведёт к щелчку, амплитуда которого будет зависеть от порядкового номера этого бита в слове. Если в сжатом PCM инвертировать произвольный бит — это приведёт к потере целого блока данных.

        Другая проблема PCM — зависимость уровня шумов квантования от амплитуды:



        DSD решает обе этих проблемы. А не стал он повсеместно используемым потому, что у него есть и недостаток — нельзя просто так взять и смикшировать DSD-потоки.

        • rexen
          /#21681094

          Если в несжатом PCM инвертировать произвольный бит
          Вам не кажется, что вы на ходу сочиняете несуществующие проблемы? Вопрос целостности данных идёт параллельно вопросу дискретизации. Я ещё могу понять эти переживания в эпоху оптических дисков, хотя и там с этим боролись в несколько слоёв. А нынче — «bit perfect» и всё такое.

          зависимость уровня шумов квантования от амплитуды
          И? Ухо всё-равно неспособно расслышать столь малые уровни. Сам экспериментировал. Два-три децибела ниже уровня белого шума ещё как-то звук расслышать можно, но не более того.
          Посчитайте, пожалуйста, разрешающую способность DSD на 20кГц. Для многих будет удивительно, насколько «более прогрессивный формат» окажется хуже того же PCM при том же битрейте.

          Так что оба аргумента — высосанные из пальцев японских маркетологов. Это продолжение аудиофильской шизофрении на тему ТЛЗ, скин-эффекта, и т.п. Я этот форсинг мертворождённого формата внимательно наблюдал и тоже видел красивые картинки в глянцевых журналах. Там утверждали, что «сам способ записи SACD ближе к грам-записи» — уже от этого аудиофилы должны были испытывать экстаз.

          • Refridgerator
            /#21681274

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

      • Refridgerator
        /#21680572

        Если же говорить о маркетинговом булшите — то это современные хи-рез релизы классических записей, предельно закомпрессированные, убитые шумодавами, с задранными ВЧ и прочими «улучшайзерами».

  9. pvvv
    /#21661678

    раз уж про сигма-дельта модуляцию вспомнили

    Ошибки квантования (округления) из-за недостаточного количество уровней не могут быть исправлены.

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

  10. voidnugget
    /#21661810

    Надо было бы о DSD упомянуть...

  11. lolmaus
    /#21661900

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

    По-моему, у вас горизонталь и вертикаль перепутаны.

  12. robomakerr
    /#21662214

    А почему на первом рисунке синусоиды перекошены?

  13. Armtone
    /#21662538

    Хотелось бы у автора уточнить, есть ли основания считать, что аналоговый сигнал объективно «лучше/приятнее» для слуха, чем тот же Flac 24bit/48kHz? Такую теорию очень часто можно встретить среди меломанов предпочитающих современные виниловые записи.

    • zhukoffdenis
      /#21663130

      так виниловые записи просто вносят искажения в запись, которые некоторым нравятся

    • Grey83
      /#21670432 / +1

      среди меломанов предпочитающих современные виниловые записи.
      Не путаете ли Вы меломанов с аудиофилами?
      Меломаны слушают звук, а аудиофилы на него дрочат.

  14. crustal
    /#21663662

    При громких низких частотах тихие средние частоты не улавливаются ухом. Например, если присутствует звук в 1kHz с уровнем громкости в 80dB, то 2kHz-звук с громкостью 40dB больше не слышим.

    Может ошибаюсь, но вроде как наоборот и со знаком минус: -40dB и -80dB.

    Впрочем фигня все это, с Артистом, владеющим тайной игры на этом чудесном инструменте я бы предпочел обсуждать не децибелы, а что-то вроде того, как молодому Шломо Минтцу тогда в семидесятых удалось, исполняя каприччио номер 6 Паганини достичь одному звучания целого оркестра, такого как BBC Philarmonic под управлением Vassily Sinaisky в Anatoli Lyadov — The Enchanted Lake.

    • HerrFelix
      /#21665364

      как молодому Шломо Минтцу тогда в семидесятых удалось, исполняя каприччио номер 6 Паганини достичь одному звучания целого оркестра

      Такое звучание у Шломо Минца связана в первую очередь с особенностями этого каприса.
      Шестой каприс Паганини написан в полифоническом стиле, т.е. имеет многоголосную фактуру. К двухголосному контрапункту добавляется еще и третья линия, но в отличие остальных, она не непрерывная, а написана в орнаментике «тремоло». Всё это создаёт эффект полноты звучания, что и ассоциировался у Вас с звучанием оркестра. Если говорить образно, то фактура шестого каприса похожа на вселенную, где в пространстве-времени (мелодия) быстро «мерцают» звёзды-пульсары (тремоло). Этот каприс довольно трудный и неудобный для исполнения как с музыкальной стороны (интерпретация), так и с технической и физиологической стороны (тремоло сильно нагружает мышцы предплечья). Сам часто его играл (https://youtu.be/H2lyVC1VnaM).

      • crustal
        /#21670328 / +1

        Спасибо за развернутый ответ.

        (Не совсем понятно, если говорят об муз. орнаменте, то это вроде как trill, а tremolo — скорее прием игры, на «tr» начинаются оба)

        • HerrFelix
          /#21676928 / +1

          В шестом каприсе Паганини используется не трель (trill), а тремоло (tremolo), так как «трель — это быстрое чередование двух соседних нот» (малая/большая секунда),
          а тремоло — это «быстрое чередование двух нот, расстояние которых не меньше терции» (но возможно и быстрое повторение одной и той же ноты — это тоже тремоло).
          В шестом каприсе чередуются не соседние ноты.
          И тремоло, и трель являются орнаментами.

  15. Colorbit
    /#21676634

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

    • HerrFelix
      /#21676874

      квантование аналогового сигнала...

      … можно выполнить и без дискретизации:

      Заметим, что квантование по сути тоже является дискретизацией. Только дискретизацией не по времени, а по значению. Т.е. дискретные сигналы бывают:
      -дискретными по времени
      -дискретными по значению
      -дискретными по времени и по значению

      • rexen
        /#21678006

        квантование по сути тоже является дискретизацией
        Об этом и надо было в статье написать. А то получается введение лишней — второй сущности. Когда процесс один, но просто применяемый к двум непрерывно изменяющимся величинам — «уровню звука» и «времени».

    • HardWrMan
      /#21677666

      Есть АЦП на компараторах. Они, по сути, непрерывны во времени. Это и есть квантование до дискретизации.

      • amartology
        /#21678902

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

        • HardWrMan
          /#21679094

          Да, все. Но разница в их количестве. Дешевле поставить 1, но качественный (меньше шума, лучше чувствительность и т.д.), но потребуется регистр последовательного приближения. А если разрядов надо мало но нужна скорость — ставят паралельно несколько компараторв и дискретизируют непрерывный сигнал с них. Все быстрые АЦП так построены, например К1107ПВ2 или К1107ПВ3. Только вот разрядов там 8 и 6:
          image
          image

          • amartology
            /#21679224

            Выходной буферный регистр — тактируемый, так что ваш пример не подходит. А ещё бывают другие архитектуры, кроме флэша и последовательного приближения. И, кстати, там где разрядов мало, но нужна скорость, ставят регистры последовательного приближения ещё как. Например, большинство схем приемников 100G-400G Ethernet ставят регистры последовательного приближения на 9 бит и 1-2 Гигавыборки.

            • HardWrMan
              /#21680354

              Выходной буферный регистр — тактируемый, так что ваш пример не подходит.

              Подходит, если рассматривать этот чип как 2 устройства в 1. Компараторы там непрерывные. Ну а тактировать запись в регистр можно с абсолютно любой частотой от 0 до максимально возможной для конкретного экземпляра микросхемы.

  16. Gryphon88
    /#21676760

    А как обычно рассчитывается ошибка интерполяции? Всё-таки по Котельникову семплов тоже должно быть бесконечное количество.

    • Refridgerator
      /#21676982

      Нет, конечный набор семплов никак не противоречит теореме Котельникова. Он просто продолжается в бесконечность нулями или зацикливанием в зависимости от того, непрерывный спектр или дискретный.