...И мир загадочный за занавесом цифр. Цифровая связь
Шрифт:
Если же микрофон установлен в концертном зале и транслируется игра симфонического оркестра, то для качественной передачи звуков всех инструментов (вспомните флейту-пикколо, издающую звуки основного тона с частотой 9000 Гц) отсчетные значения нужно брать чаше. Учитывая, что человеческое ухо слышит звуки лишь до 20 000 Гц, фиксировать значения тока быстрее 40 000 раз в секунду не имеет смысла. Значит, самый короткий интервал между отсчетными значениями при передаче звуков равен 25 мкс. Каждое же отсчетное значение тока существует ровно столько, сколько времени замкнут электронный ключ. А замыкают его очень ненадолго — на краткий миг, равный 1 мкс.
Как теперь перевести отсчетные значения тока в цифровой двоичный код?
…XIII век. Знаменитый итальянский математик Леонардо
…XVIII век. Другой крупнейший математик, член Петербургской и Берлинской академий наук Леонард Эйлер заинтересовался задачей Фибоначчи и блестяще решил ее. Эта древняя задача о взвешивании имеет, оказывается, непосредственное отношение к нашей проблеме двоичного кодирования. Для ее решения достаточно выбрать массы гирь равными степени числа 2, т. е. 1, 2, 4, 8 и 16 кг. Действительно, с помощью такого набора гирь можно взвесить с точностью до 1 кг любой груз до 31 кг.
Взвешиваемый груз (обозначим его массу через М) математически можно представить как
М = а4•16 + а3•8 + а2•4 + а1•2 + а0•1 = а4•24 + а3•23 + а2•22 + а1•21 + а0•20
где каждый коэффициент а = 1, если соответствующую гирю кладем на чашу весов, а = 0, если этой гирей не пользуемся при взвешивании. Таким образом, процедура взвешивания сводится к представлению десятичного числа в двоичной системе счисления.
Поясним это на примере. Пусть нам нужно взвесить груз массой 21 кг. Поставим сначала на чашу весов самую большую гирю — массой 16 кг. Поскольку она не перетягивает груз, оставим гирю на чаше (а4 = 1) и добавим следующую — 8 кг. Ясно, что в этом случае чаша весов с гирями перетянет чашу с грузом. Снимем эту гирю (а3 = 0) и установим другую — массой 4 кг. Проведя взвешивание до конца, мы увидим, что на весах остались гари массой 16, 4 и 1 кг. Значения коэффициентов а4… а0 дают 5-разрядный двоичный код 10101 числа 21.
Механический груз мы взвешивали на механических весах. Считая отсчетное значение тока на выходе электронного ключа своего рода "электрическим грузом", можно осуществить аналогичное взвешивание, но на этот раз электронным способом. Такие "электронные весы" назвали кодер (от английского coder — кодировщик). Допустим, отсчетное значение тока равно 21 мА. Роль "электрических гирь" в кодере выполняют эталонные токи — 16, 8, 4, 2 и 1 мА, которые вырабатываются специальными электронными устройствами — генераторами. Каждая проба (подходит та или иная "гиря", либо нет) производится в строго установленные промежутки времени. Вся процедура взвешивания должна закончиться до прихода с электронного ключа следующего отсчетного значения тока (напомним, для звуков речи это время составляет всего 125 мкс). Итак, сначала отсчетное значение тока сравнивается с эталоном, равным 16 мА, и поскольку оно больше эталона, на выходе кодера появляется импульс тока, что соответствует двоичной цифре 1. В следующий интервал времени к первому эталонному току добавляется второй, равный 8 мА. Теперь суммарный вес "электрической гири" составляет 24 мА. Это больше отсчетного значения, поэтому второй эталонный генератор отключается. В данном интервале времени импульс тока на выходе кодера не появляется, что соответствует двоичной цифре 0. Думаем, читатели без труда завершат процедуру взвешивания.
Таким образом, за время взвешивания одного отсчетного значения кодер вырабатывает серию импульсов, полностью повторяющую двоичный код отсчетного значения микрофонного тока.
Любопытно: если записать S-разрядные двоичные коды, в которые мы превратили звуки речи, например, в интегральную микросхему памяти, то непосвященному человеку при просмотре содержимого ячеек памяти невозможно будет разобраться что закодировано — речь или текст. В самом деле, отсчетному значению тока микрофона в 11 мА кодер противопоставит комбинацию импульсов 01011. Но такой же кодовой комбинацией была зашифрована буква Г в слове ОМЕГА, когда мы использовали код Бодо.
— В этом случае нужно точно знать что хранится в памяти: скажем, живые голоса выдающихся певцов или сухие тексты научных статей, — заметит читатель, — ведь способы извлечения из памяти текстовой и звуковой информации различны.
Действительно, чтобы извлечь из двоичной последовательности 0 и 1 звуковую информацию, нужно совершить преобразования, обратные тем, которые были проделаны. Для этого прежде всего необходимо устройство, которое по двоичному коду восстановит отсчетное значение тока. Оно получило название декодер. В нем есть такие же, как и в кодере, генераторы эталонных токов 16, 8, 4, 2 и 1 мА. Если на декодер поступила комбинация импульсов, например 10101, то одновременно будут включены первый, третий и пятый генераторы, вырабатывающие токи 16, 4, 1 мА. Суммарный ток этих генераторов будет 21 мА, т. е. равен току отсчетного значения, которое мы ранее "взвешивали" с помощью кодера. Таким путем восстанавливают все отсчетные значения.
На следующем шаге необходимо из отсчетных значений тока получить непрерывный ток. Сделать это поможет обычный конденсатор небольшой емкости, который при кратковременном воздействии на него тока (т. е. отсчетного значения) мгновенно зарядится и будет удерживать заряд до следующего импульса.
Отметим, что восстановленная таким путем кривая непрерывного тока несколько отличается от той, которая была получена на клеммах микрофона: она имеет плоские ступеньки между отсчетными значениями. Можно сказать, что процесс взятия отсчетных значений и последующего восстановления непрерывной кривой пока микрофона сопровождается специфическими искажениями, которые могут повлиять на качество воспроизведения звука. Однако на практике для восстановления тока используют не конденсатор, а более сложные схемы, делающие форму восстановленного тока похожей на форму исходного тока и тем самым сводящие на нет действия указанных искажений.
Нельзя не сказать еще об одном виде искажений, появляющихся при переводе отсчетного значения тока в двоичный код. Так, если кодированию подвергается отсчетное значение 21,7 мА, кодер все равно выдает код 10101, как и в случае целого значения 21 мА. Это и понятно, поскольку "взвешивание" проводилось с точностью до 1 мА — "веса" самой меньшей "электрической гири". Такое округление чисел в технике называется квантование, а разница между отсчетным значением тока и величиной, набираемой двоичным кодом, — ошибка квантования.
Однако и искажения, вызванные ошибками квантования, можно если и не исключить совсем, то, по крайней мере, значительно уменьшить. Пусть, например, самая маленькая "электрическая гиря" будет иметь "вес" 0,125 мА. Тогда, взяв восемь "гирь", соответствующие 16; 8; 4; 2; 1; 0.5; 0,25; 0,125 мА, можно будет "взвешивать" отсчетные значения тока с точностью до 0,125 мА. При этом число 21 представится 8-разрядным двоичным кодом 10101000, а число 21,7 кодом 10101101, где последние три цифры означают добавку 0,625 к числу 21. Применение же 12-разрядного двоичного кода позволит вместо числа 21,7 набрать весьма близкое к нему число 21,692 1895.