АЦП имеют решающее значение для преобразования всех видов аналоговых сигналов в цифровые, но как они на самом деле работают?

Ключевые выводы

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

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

Для чего используются АЦП?

instagram viewer

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

Что такое частота дискретизации? Как частота дискретизации влияет на АЦП?

Одним из наиболее важных показателей АЦП является частота дискретизации: количество показаний, выполняемых каждую секунду.

Осциллограф очень высокого класса может снимать десять миллиардов выборок в секунду. Отважный маленький АЦП MCP3008 может взять сравнительно скромные двести тысяч. В мире аудио типичной является частота дискретизации 44 100 в секунду (44,1 кГц).

Чем больше выборок мы возьмем, тем точнее мы сможем представить сигнал. Иногда это важно; иногда это не так. Допустим, мы создаем банк фейдеров (предназначенный для управления электроникой, например, на осветительной или звуковой панели) с несколькими десятками потенциометров. В этом случае значения, которые нам нужно измерить, вряд ли будут меняться миллионы раз в секунду, поскольку наши пальцы не могут двигаться так быстро. Нам просто нужно достаточно образцов, чтобы результат был плавным и отзывчивым.

Что такое битрейт? Влияет ли битрейт на качество АЦП?

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

Мы писали о двоичном формате и о том, как он работает., так что если вы не уверены, это хорошее место для начала. Сколько бит нам нужно? Опять же, это зависит от того, чего мы пытаемся достичь. Иногда мы можем быть ограничены используемым протоколом. Например, протокол MIDI 1.0 ограничен семибитными (а иногда и четырнадцатибитными) значениями. В других случаях ограничивающим фактором может быть человеческое восприятие. Если повышение точности не приводит к заметному улучшению результата, возможно, оно того не стоит.

Как мультиплексирование улучшает качество АЦП?

Популярные микросхемы АЦП, такие как ADS1115 и MCP3008 предложить много входных данных. Но на самом деле они содержат только один АЦП. Это возможно благодаря встроенным в эти устройства мультиплексорам. Мультиплексоры есть абсолютно везде в мире электроники и телекоммуникаций. Это цифровые коммутаторы, которые выполняют функцию управления трафиком для вашего АЦП. АЦП может производить выборку одного канала, затем следующего, а затем следующего. Итак, если у вас восемь каналов и частота дискретизации 200 000, вы можете чередовать их все, беря по 25 000 выборок на канал.

Какие типы АЦП существуют?

АЦП работают по-разному, в зависимости от стоимости и требуемых возможностей.

А Флэш-АЦП работает через очень сложный делитель напряжения. Группа резисторов делит опорное напряжение на приращения, которые затем сравниваются с входным сигналом через группу компараторов. Флэш-АЦП работают молниеносно, но они ограничены по разрядности из-за количества требуемых компараторов. По той же причине они жаждут власти.

А Поддиапазон АЦП стремится компенсировать эти недостатки, разделяя работу между двумя отдельными блоками: один для грубого определения напряжения, а второй для точного его определения. Разделив вещи, мы можем уменьшить количество компараторов. Некоторые АЦП поддиапазона разделяют работу на три этапа со встроенной коррекцией ошибок.

САР (Регистр последовательного приближения) АЦП выполняют свою работу через своего рода бинарный поиск. Предположим, нам нужно заполнить восемь битов. SAR начинается с 10000000, что является средним значением (00000000 — нижнее значение, а 11111111 — верхнее). Если напряжение превышает эту среднюю точку, SAR сохранит самую левую цифру как 1; если это не так, SAR установит самую левую цифру на 0. Мы можем повторить процесс со следующей цифрой и так далее рекурсивно. Это приведет к постепенному приближению предполагаемого значения к фактическому значению:

Таким образом, мы постоянно сужаем поиск, разделяя возможности пополам и спрашивая, является ли результат выше или ниже средней точки. В данном случае значение находится где-то между 0 и 255; после нескольких итераций АЦП определил, что оно составляет около 77.

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

Наконец, у нас есть Интеграция АЦП, которые даже медленнее, чем сигма-дельта. Они работают с помощью конденсатора, по скорости заряда которого можно определить входное напряжение. Частота дискретизации здесь часто синхронизируется с частотой источника питания, что позволяет свести шум к абсолютному минимуму.

Что такое теория Найквиста-Шеннона?

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

Это известно как частота Найквиста, в честь шведско-американского физика Гарри Найквиста. Теория названа в честь Найквиста и Клода Шеннона (выдающихся математиков и криптографов), а не в честь Эдмунда Уиттакера, который придумал эту идею раньше любого из них.

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

Или даже галлюцинировать новые формы сигналов, которых раньше даже не существовало:

Эти галлюцинации известны как псевдонимы.

Проблема с псевдонимами

Вы, вероятно, знакомы с иллюзией «колеса телеги», которая иногда возникает при съемке вращающегося объекта. Колеса автомобиля или лопасти вертолета кажутся вращающимися назад, но очень медленно. В некоторых случаях лезвия могут полностью остановиться (с откровенно странными результатами — посмотрите видео ниже!).

Играя в старую видеоигру, вы также могли заметить, что параллельные линии иногда вызывают странные искажения. Заборы, лестницы и полосатые перемычки начинают выглядеть действительно очень своеобразно. А как насчет тех странных свистящих звуков, которые вы иногда слышите, когда слушаете чью-то речь через некачественное цифровое соединение? Это искажение, но искажение особого рода. Что со всеми этими уродливыми частотами, возникающими из шума? Если вы слушаете гармонически богатый контент, например ударную установку, эффект становится еще более очевидным, особенно на высоких частотах.

Если вы поймете причину одного из них, вы на пути к пониманию всех из них. В случае с колесом телеги фиксированная частота кадров означает, что мы не можем правильно запечатлеть движение. Если что-то поворачивается на 350° в каждом кадре, вполне естественно почувствовать, что на самом деле оно смещается назад на 10°. Другими словами, недостаточно информации, чтобы достоверно представить происходящее. Образцы, которые мы берем, не соответствуют тому, что мы пытаемся измерить.

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

Итак, каково решение? Есть несколько. Мы могли бы применить специальный фильтр для борьбы с этими артефактами, что и делают многие АЦП. Или мы можем взять гораздо больше образцов, чем нам нужно. Чем больше образцов мы возьмем, тем точнее станет наша картина волны:

Образец лучшего качества для достижения наилучших результатов

Если вам интересны подобные вещи, хорошая новость в том, что мы едва окунулись в эту тему. Здесь есть свои глубины: АЦП чрезвычайно сложны.

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