Мультимедиа для Windows

         

Ввод и вывод звука


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

Рис. 1.1. Ввод звука

Этот способ преобразования называется импульсно-кодовой модуляцией . В отечественной литературе вы можете встретить аббревиатуру ИКМ, однако в документации, которая поставляется вместе с SDK для Windows, для обозначения импульсно-кодовой модуляции используется аббревиатура PCM - Pulse Code Modulation .

Насколько часто нужно выполнять преобразование?

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

Другой вопрос - с какой точностью следует преобразовывать аналоговый сигнал?

Казалось бы, чем точнее - тем лучше. Однако не следует забывать, что чем больше точность, тем больше двоичных разрядов используется для представления амплитуды сигнала и следовательно, тем больше памяти нужно для хранения записанной фонограммы. В хороших цифровых студийных магнитофонах для представления амплитуды сигнала используется не менее 16 разрядов, или 2 байта. Нетрудно подсчитать, что в этом случае при частоте дискретизации 40 Кгц для хранения одной минуты монофонической звуковой информации потребуется примерно 4,5 Мбайт памяти. Для стереофонической записи эту величину следует умножить на два.

Если вам нужно записывать только речь, можно ограничить ширину спектра сигнала величиной примерно 2,2 - 3 Кгц, что соответствует частоте дискретизации 4,4 - 6 Кгц. Кроме того, для представления мгновенной амплитуды сигнала вполне достаточно одного байта памяти. В этом случае для хранения одной минуты речи нужно 257 Кбайт памяти.

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

Рис. 1.2. Вывод звука

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

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



Содержание раздела