Занимательная электроника — страница 84 из 128

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

* * *

Заметки на полях

Интересно, что непосредственный цифровой способ отображения информации, например, в виде совокупности цифр на семисегментном индикаторе, хотя и значительно более корректен, чем аналоговый (мы не теряем информации), не всегда может оказаться более правильным. Если вы вглядитесь в пульт управления каким-нибудь сложным устройством — не обязательно атомной электростанцией, достаточно торпеды обычного автомобиля, — вы увидите, что большинство показывающих приборов там стрелочные, аналоговые. Хотя, как вы понимаете, нет никаких проблем в современном автомобиле демонстрировать скорость, уровень топлива или температуру двигателя непосредственно в цифрах, но этого не делают сознательно, потому что в очень многих случаях человека не интересует точное значение того или иного параметра. Его интересует только отклонение от некоторого значения, или превышение некоторого порога, или вообще только тенденция изменения величины — но не сама эта величина, и не сам порог. Информация о том, что температура охлаждающей жидкости составляет 80 °C, для водителя совершенно излишняя, ему важно знать, что если вот эта стрелочка не достигла вот этой красненькой черточки, значит, все в порядке. Но бывают и другие случаи — например, отсчет пробега того же автомобиля имеет смысл, только будучи представленным именно в цифровом виде, поэтому еще на заре автомобилестроения пришлось придумывать разные — тогда еще, конечно, механические — счетчики, отображающие число пройденных километров. Все это следует учитывать при проектировании различных показывающих устройств, и при необходимости приходится даже идти на усложнение схемы, причем, что обидно, нередко с заведомой потерей информации или даже с ее искажением. Типичный пример из этой области — датчик количества топлива в том же автомобиле, который проектировщики традиционно заставляют врать, занижая показания, иначе слишком много водителей оказывалось бы на дороге с сухими баками в полукилометре от ближайшей заправочной станции.

Другой пример: обычные часы с цифровым дисплеем. Все мы уже к этому делу привыкли, но ведь большинство практических задач заключаются не в определении точного времени, а в определении интервала — сколько мы уже ждем, или сколько осталось до некоторого момента. Для этого знания точного значения часов и минут не требуется, и обладателю часов с цифровым дисплеем приходится в уме производить довольно сложные арифметические действия, вычисляя этот интервал, вместо того чтобы просто мысленно передвинуть стрелки на циферблате. Как видите, проектирование показывающих устройств не слишком простое дело, т. к. не может производиться только из соображений компактности схемы или высокой точности измерений, а непременно должно учитывать требования эргономики и «usability» — удобства пользования. Если читателю кажется, что меня очередной раз занесло несколько в сторону от темы книги, то это не так, потому что проектирование аналого-цифровых и особенно цифроаналоговых устройств неразрывно связано с проблемами человеко-машинного взаимодействия — не будь потребителя, незачем все это было бы и затевать. Компьютеры в общении между собой спокойно обойдутся и двоичным кодом.


Принципы оцифровки сигналов

Займемся сначала общими принципами аналого-цифрового преобразования. Основной принцип оцифровки любых сигналов очень прост и показан на рис. 17.1, а. В некоторые моменты времени t1, t2, t3 мы берем мгновенное значение аналогового сигнала и как бы прикладываем к нему некоторую меру, линейку, проградуированную в двоичном масштабе. Обычная линейка содержит крупные деления (метры), поделенные каждое на десять частей (дециметры), каждая из которых также поделена на десять частей (сантиметры), и т. д. Двоичная линейка содержала бы деления, поделенные пополам, затем еще раз пополам и т. д. — сколько хватит разрешающей способности. Если вся длина такой линейки составляет, допустим, 2,56 м, а самое мелкое деление — 1 см (т. е. мы можем померить ей длину с точностью не хуже 1 см, точнее, даже половины его), то таких делений будет ровно 256, и их можно представить двоичным числом размером 1 байт или 8 двоичных разрядов.



Рис. 17.1. Оцифровка аналоговых сигналов:

а — основной принцип;

б — пояснение к теореме Котельникова — Найквиста


Ничего не изменится, если мы меряем не длину, а напряжение или сопротивление, только смысл понятия «линейка» будет несколько иной. Так мы получаем последовательные отсчеты величины сигнала x1, x2, x3. Причем заметьте, что при выбранной разрешающей способности и числе разрядов мы можем померить величину не больше некоторого значения, которое соответствует максимальному числу, в данном случае 255. Иначе придется или увеличивать число разрядов (удлинять линейку), или менять разрешающую способность в сторону ухудшения (растягивать ее). Все изложенное и есть сущность работы аналого-цифрового преобразователя — АЦП.

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

Но что мы при этом теряем? Посмотрите на рис. 17.1, б, который иллюстрирует знаменитую теорему Котельникова (как водится, за рубежом она носит другое имя — Найквиста, на самом деле они оба сформулировали ее независимо друг от друга). На этом рисунке показана синусоида предельной частоты, которую мы еще можем восстановить, располагая массивом точек, полученных с частотой дискретизации fд. Так как в формуле для синусоидального колебания A·sin(2πft) имеется два независимых коэффициента (А — амплитуда и f — частота), то для того чтобы вид графика восстановить однозначно, нужно как минимум две точки на каждый период[24], т. е. частота оцифровки должна быть как минимум в два раза больше, чем самая высокая частота в спектре исходного аналогового сигнала. Это и есть одна из расхожих формулировок теоремы Котельникова — Найквиста.

Попробуйте сами нарисовать другую синусоиду без сдвига по фазе, проходящую через указанные на графике точки, и вы убедитесь, что это невозможно. В то же время можно нарисовать сколько угодно разных синусоид, проходящих через эти точки, если их частота в целое число раз выше частоты дискретизации fд. В сумме эти синусоиды, или гармоники (т. е. члены разложения сигнала в ряд Фурье — см. главу 5), дадут сигнал любой сложной формы, но восстановить их нельзя, и если такие гармоники присутствуют в исходном сигнале, то они пропадут навсегда.

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

Теперь об обратном преобразовании. В сущности, никакого преобразования цифрааналог в ЦАП, которые мы будем здесь рассматривать, не происходит, просто мы выражаем двоичное число в виде пропорциональной величины напряжения, т. е. занимаемся, с точки зрения теории, всего лишь преобразованием масштабов. Вся аналоговая шкала поделена на кванты — градации, соответствующие разрешающей способности нашей двоичной «линейки». Если максимальное значение сигнала равно, к примеру, 2,56 В, то при восьмиразрядном коде мы получим квант в 10 мВ, и что происходит с сигналом между этими значениями, а также и в промежутки времени между отсчетами, мы не знаем и узнать не можем. Если взять ряд последовательных отсчетов некоего сигнала, например, тех, что показаны на рис. 17.1, а, то мы в результате получим ступенчатую картину, показанную на рис. 17.2.



Рис. 17.2. Восстановление оцифрованного сигнала с рис. 17.1, а


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

* * *

Заметки на полях

Очевидно, что в случае звуковых сигналов дополнительное сглаживание, например, с помощью ФНЧ, здесь попросту не требуется, ибо оно только ухудшит картину, отрезая высокие частоты еще больше. К тому же всякие аналоговые усилители сами сгладят сигнал, и органы чувств человека тоже поработают в качестве фильтра. Так что наличие ступенек само по себе несущественно, если они достаточно мелкие, а вот резкий спад частотной характеристики выше некоторой частоты сказывается на качестве звука фатальным образом. Многие люди с хорошим музыкальным слухом утверждают, что они безошибочно отличают цифровой звук CD-качества (дискретизация которого производится с частотой 44,1 кГц, т. е. со срезом на частоте заведомо более высокой, чем уровень восприятия человеческого слуха, и с числом градаций не менее 65 тысяч на весь диапазон) от настоящего аналогового звука, например, с виниловой пластинки или с магнитофонной ленты. По этой причине качественный цифровой звук записывается с гораздо более высокими частотами дискретизации, чем формально необходимо, например, 192 и даже 256 кГц, и тогда он становится действительно неотличи