6.2. Оцифрованный звукКак уже отмечалось, любое изображение можно оцифровать разбив его на пикселы, а каждому пикселу приписать некоторое число. Точно также звук можно оцифровать, разбив его на фрагменты и присвоив им некоторые числовые значения. Если записывать звук через микрофон, то он переводится в электрический сигнал, напряжение которого непрерывно зависит от времени. На рис. 6.3 показан типичный пример записи звука, которая начинается в нуле и колеблется несколько раз. Это напряжение называется аналоговым представлением звука. Оцифровка звука делается с помощью измерения напряжения сигнала во многих точках оси времени, перевода каждого измерения в числовую форму и записи полученных чисел в файл. Этот процесс называется сэмплированием или отбором фрагментов. Звуковая волна сэмплируется, а сэмплы (звуковые фрагменты) становятся оцифрованным звуком. Устройство сэмплирования звука называется аналого-цифровым преобразователем (АЦП или, по-английски, ADC, analog-to-digital converter). Разницу между звуковой волной и ее сэмплами можно сравнить с разницей между обычными часами с циферблатом, в которых стрелки вращаются непрерывно, и электронными часами, в которых показания дисплея сменяются скачками каждую секунду. Рис. 6.3. Сэмплирование звуковой волны. Поскольку звуковые сэмплы являются числами, их легко редактировать. Однако, основное назначение звуковых файлов состоит в их проигрывании и в прослушивании. Это делается с помощью перевода числовых сэмплов в электрическое напряжение, которое непрерывно подается на динамики. Устройство для выполнения этой процедуры называется цифро-аналоговым преобразователем (ЦАП или DAC, digital-to-analog converter). Очевидно, более высокая скорость сэмплирования дает лучшее представление звука, но это же приводит к увеличению числа сэмплов (звуковых фрагментов) и к росту объема звукового файла. Следовательно, основная проблема сэмплирования состоит в определении оптимальной скорости отбора сэмплов. Из рис. 6.3а видно, что может случиться, если скорость сэмплирования низка. Звуковая волна сэмплировалась четыре раза и все сэмплы оказались равными друг другу. Если проиграть эти сэмплы, то получится равномерный звук, похожий на жужжание. На рис. 6.3b показано семь сэмплов; они больше похожи на исходную волну. К сожалению, если использовать их для воспроизведения звука, то получится пунктирная волна. Их также недостаточно для точного отображения исходного звука. Решение задачи сэмплирования состоит в отборе звуковых фрагментов со скоростью чуть выше скорости Найквиста, которая равна удвоенному максимуму частоты волн данного звука. Такое сэмплирование гарантирует весьма близкое восстановление звуковой волны. Это проиллюстрировано на рис. 6.3с, на котором приведены 10 отсчетов, взятых через равные интервалы времени на четырех периодах волны. Отметим, что сэмплы не обязательно отбираются от минимума до максимума волны; их можно брать в любых точках. Диапазон слышимых частот лежит в интервале от 16-20 Гц до 20000-22000 Гц. Он зависит от возраста и других физических особенностей человека. Если необходимо оцифровывать звук с высокой точностью, то скорость сэмплирования должна быть выше скорости Найквиста, которая равна . Поэтому высококачественный оцифрованный звук основан на скорости сэмплирования 44100 Гц. Скорость ниже этого значения приводит к искажениям, а большая скорость сэмплирования не даст улучшение реконструкции звука. Поэтому на практике можно использовать фильтры пропускания до 44100 Гц для эффективного удаления частот выше 22000 Гц. Многие низкокачественные приложения сэмплируют звук на скорости 11000 Гц, а система телефонии, изначально разработанная для переговоров, но не для цифровых коммуникаций, сэмплирует звук с частотой всего в 8 кГц. Значит, любой звук с частотой выше 4 кГц будет искажаться при передаче по телефону. По этой же причине бывает трудно различить по телефону звуки «с» и «ф». Поэтому часто при сообщении по телефону имен, фамилий и адресов приходится диктовать первые буквы слов вроде «Михаил», «Ольга», «Семен», «Константин», «Виктория», «Анна». Другая проблема сэмплирования заключается в размере звукового фрагмента, то есть, сэмпла. Каждый сэмпл - это число, но насколько большим может оно быть? Обычно на практике сэмплы состоят из 8 или 16 бит, но высококачественные звуковые карты допускают использование 32 бит. Предположим, что наибольшее напряжение звуковой волны равно 1 вольт, тогда при длине сэмпла в 8 бит можно будет различить напряжение с шагом в вольт, то есть, 4 милливольт (мВ). Тихие звуки, генерирующие волны до 2 мВ, будут сэмплироваться в ноль и при воспроизведении не будут слышны. В отличие от этого, при 16-битных сэмплах возможно различить звуки, начиная с микровольт (). Можно считать размер сэмпла шагом квантования исходных аудиоданных. 8-битовое сэмплирование является более грубым, чем 16-битовое. В результате будет произведено лучшее сжатие, но более бедное воспроизведение (реконструированный звук будет иметь лишь 256 уровней). Сэмплирование звука принято еще называть импульсной кодовой модуляцией (PCM, pulse code modulation). Все слышали про AM и FM радио. Эти сокращения означают amplitude modulation (амплитудная модуляция) и frequency modulation (частотная модуляция). Они указывают на применяемый метод модуляции (т.е. вкладывания двоичной информации) в непрерывные волны. Термин импульсная модуляция обозначает технику перевода непрерывных волн в двоичный файл. Существует несколько методов импульсной модуляции, включающих импульсную амплитудную модуляцию (РАМ, pulse amplitude modulation), импульсную позиционную модуляцию (PPM, pulse position modulation) и импульсную числовую модуляцию (PNM, pulse number modulation). Хорошим источником этой информации может служить [Pohlmann 85]. На практике, однако, наибольшую эффективность обнаруживает метод РСМ перевода звуковых волн в числовую информацию. При оцифровывании стереозвука с помощью сэмплирования на 22000 кГц с 16-битными сэмплами в одну секунду генерируется 44000 сэмплов длины 16 бит, то есть, 704000 бит/сек или 88000 байт/сек.
|