Ошибка смещения ацп

Раскладываем по полочкам параметры АЦП

Время на прочтение
10 мин

Количество просмотров 54K

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

image

Введение

Начать бы хотелось с интересного философского вопроса: если аналоговый сигнал — это бесконечность, теряем ли мы при оцифровке сигнала бесконечное количество информации? Если это так, тогда какой смысл существования такого неэффективного преобразования?
Для того, чтобы ответить на этот вопрос, разберемся с тем, что такое аналого-цифровое преобразование сигнала. Основной график, который отражает работу АЦП – передаточная характеристика преобразования. В идеальном мире это была бы прямая линия, то есть у каждого аналогового уровня сигнала имелся бы единственный цифровой эквивалент.

Рис. 1: Идеальная характеристика АЦП

Однако из-за наличия различных видов шума, мы не можем увеличивать разрядность АЦП до бесконечности. То есть существует предел, который ограничивает минимальную цену деления шкалы. Другими словами, уменьшая деление шкалы мы рано или поздно «упремся» в шум. Да, конечно, можно сделать хоть 100-битный АЦП, однако большинство бит данного АЦП не будут нести полезную информацию. Именно поэтому характеристика АЦП имеет ступенчатую форму, что равносильно наличию конечной разрядности АЦП.
Проектируя систему необходимо выбирать АЦП, который бы обеспечил отсутствие потери информации при оцифровке. Для того, чтобы выбрать преобразователь, необходимо понять, какие параметры его характеризуют.
Параметры АЦП можно разделить на 2 группы:

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

Статические параметры

  • Максимальный (Vref) и минимальный (обычно 0) уровни входного сигнала — устанавливают диапазон шкалы преобразования, относительно которой будет оцениваться входной сигнал (рис. 1). Также этот параметр может обозначаться как FS — full scale. Для дифференциального АЦП шкала определяется от -Vref до +Vref, однако для упрощения далее будем рассматривать только single-ended шкалы.
  • Разрядность (N) — разрядность выходного кода, характеризующая количество дискретных значений ($ 2^{N} $), которые преобразователь может выдать на выходе (рис. 1).
  • Ток потребления (Idd) — сильно зависит от частоты преобразования, поэтому информацию об этом параметре лучше искать на соответствующем графике.
  • МЗР (LSB) – младший значащий разряд (Least Significant Bit) — минимальное входное напряжение, разрешаемое АЦП (по сути единичный шаг в шкале преобразования). Определяется формулой: $LSB = V_{ref}/2^{N} $ (рис. 1).
  • Ошибка смещения (offset error) – определяется как отклонение фактической передаточной характеристики АЦП от передаточной характеристики идеального АЦП в начальной точке шкалы. Измеряется в долях LSB. При ошибке смещения переход выходного кода от 0 в 1 происходит при входном напряжении отличном от 0.5LSB (рис. 2).
    Рис. 2: Ошибка смещения
    Существует и другой вариант квантователя, когда переход осуществляется при целых значения LSB (характеристика у него будет смещена относительно первого варианта, который представлен на рисунке 2). Оба этих квантователя равноправны, и для простоты далее будем рассматривать только первый вариант.
  • Ошибка усиления (gain error) – определяется как отклонение средней точки последнего шага преобразования (которому соответствует входное напряжение Vref) реального АЦП от средней точки последнего шага преобразования идеального АЦП после компенсации ошибки смещения (рис. 3).
    Рис. 3: Ошибка усиления
  • Дифференциальная нелинейность (DNLDifferential nonlinearity) – отклонение ширины ступеньки на передаточной характеристике реального АЦП от номинальной ширины ступеньки у идеального преобразователя. Из-за дифференциальной нелинейности шаги квантования имеют различную ширину (рис. 4).

    Рис. 4: Дифференциальная нелинейность

    Для 3-х битного АЦП с рисунка 4:

    $DNL= pm 0.5LSB$

  • Интегральная нелинейность ( INLIntegral nonlinearity) – разница по вертикали между реальной и идеальной характеристикой преобразования (рис. 5). INL можно интерпретировать как сумму DNL. Отрицательная INL указывает на то, что реальная характеристика находится ниже идеальной в данной точке шкалы. Для положительной INL реальная характеристика находится выше идеальной. Распределение DNL определяет интегральную нелинейность АЦП.

    Рис. 5: Интегральная нелинейность

  • Общая нескорректированная ошибка ( TUETotal Unadjusted Error) – абсолютная ошибка, включающая в себя следующие ошибки: квантования, смещения, усиления и нелинейности. Другими словами, это максимальное отклонение между реальной и идеальной характеристикой преобразования. Для идеального АЦП TUE = 0.5LSB, обусловлена ошибкой квантования (или шум квантования — возникает из-за округления значения аналогового сигнала, которое соответствует цифровому коду). Ошибки усиления и смещения обычно вносят наиболее весомый вклад в абсолютную ошибку. Однако с точки зрения динамических параметров (см. ниже) ошибки смещения и усиления ничтожны, так как они не порождают нелинейных искажений.

Динамические параметры

  • Частота дискретизации (fssampling frequency) — частота, при которой происходит преобразование в АЦП (ну или 1/Ts, где Ts — период выборки). Измеряется числом выборок в секунду. Обычно под данным обозначением подразумевают максимальную частоту дискретизации, при которой специфицированы параметры преобразователя (рис. 6).

    Рис. 6: Процесс преобразования АЦП

  • Отношение сигнал/шум (SNRSignal-to-Noise Ratio) — определяется как отношение мощности обрабатываемого сигнала к мощности шума, добавляемого в процессе преобразования. SNR обычно выражается в децибелах (дБ) и рассчитывается по следующей формуле:

    $SNR = 10cdot lg(frac{P_{signal}}{P_{noise}})$

    Наглядно данное выражение продемонстрированно на рисунке 7.

    Рис. 7: Отношение сигнал/шум

    Для оценки SNR АЦП при разработке системы можно воспользоваться следующей формулой:

    $SNR = 6.02 N + 1.76 + 10cdot lg(frac{f_s}{2cdot BW})$

    Первые 2 слагаемых учитывают уровень сигнала и ошибку квантования (нужно понимать, что формула верна для сигнала размаха полной шкалы). Третье слагаемое учитывает эффект передискретизации (выигрыш по обработке или processing gain): если полоса обрабатываемого сигнала (BW < fs/2), то, применив цифровой фильтр низких частот (либо полосовой, тут зависит все от полосы и несущей) к результату преобразования, можно вырезать часть шума АЦП, а оставшаяся часть будет распределена от 0 до BW (рис. 8). Если шум АЦП равномерно распределен по всем частотам (т.н. «белый» шум) интегральный шум после фильтрации уменьшится в fs/2 / BW раз, что и отражает третий член формулы.

    Рис. 8: Увеличение SNR за счет передискретизации

  • Общие нелинейные искажения (THDtotal harmonic distortion). Прежде, чем сигнал преобразовывается в цифровой код, он проходит через нелинейные блоки, которые искажают сигнал. К примеру, пусть есть сигнал с частотой f. Пройдя через нелинейный блок к нему добавятся компоненты с частотами 2f, 3f, 4f … — 2-я, 3-я, 4-я и т.д. гармоники входного сигнала. Если дискретизированный сигнал разложить в спектр с помощью ДПФ (Дискретного Преобразования Фурье), мы увидим, что все эти гармоники «перенеслись» в первую зону Найквиста (от 0 до fs/2) (рис. 9).

    Рис. 9: Нелинейные искажения

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

    $THD= frac{P_2+P_3+ldots+P_n}{P_1}$

  • Динамический диапазон, свободный от гармоник (SFDRSpurious-Free Dynamic Range). Является отношением мощности полезного сигнала к мощности наибольшего «спура» (любая паразитная составляющая в спектре, не обязательно гармонического происхождения), присутствующего в спектре (рис. 9).
  • Отношение сигнал / шум и нелинейные искажения (SINAD — signal-to-noise and distortion ratio). Аналогичен SNR, но помимо шума учитывает все виды помех и искажений, возникающих при аналого-цифровом преобразовании. SINAD является одним из ключевых параметром, характеризующим АЦП (в некоторых источниках обозначается как SNDR):

    $SINAD=10cdot lg(frac{P_{signal}}{P_{noise}+P_{distortion}})$

  • Эффективное число бит (ENOBeffective number of bits) – некая абстрактная характеристика, показывающая сколько на самом деле бит в выходном коде АЦП несет в себе полезную информацию. Может принимать дробные значения.

    $ENOB= frac{SINAD-1.76}{6.02}$

  • Интермодуляционные искажения (IMDintermodulation distortion). Рассмотренные прежде динамические параметры измеряются, когда на вход подается однотональный гармонический сигнал. Такие однотональные тесты хороши, когда АЦП обрабатывает широкополосные сигналы. В этом случае гармоники, располагающиеся выше fs/2 отражаются в первую зону Найквиста и, следовательно, всегда учитываются в расчете параметров. Однако, имея дело с узкополосными сигналами или АЦП с передискретизацией, даже гармоники низкого порядка (2-я, 3-я) могут иметь достаточно высокую частоту, чтобы выйти из рассматриваемого частотного диапазона (или не отразиться в этот диапазон в случае выхода за fs/2). В этом случае эти гармоники не будут учтены, что приведёт к ошибочному завышению динамических параметров.
    Для решения этой проблемы используются бигармонические тесты. На вход подают две спектрально чистых синусоиды одинаковой мощности с частотами $f_1$ и $f_2$, которые находятся на близком расстоянии друг от друга. Нелинейность преобразователя порождает дополнительные тоны в спектре (их называют интермодуляционными искажениями) на частотах $k_1 cdot f_1 + k_2 cdot f_2$, где $k_1, k_2$ – произвольные целые числа.
    Полезность бигармонического теста в том, что некоторые из интермодуляционных продуктов располагаются в спектре очень близко к исходному сигналу и, следовательно, дают полную информацию о нелинейности АЦП. В частности, интермодуляционные искажения 3-го порядка находятся на частотах $2f_{2}–f_{1}$ и $2f_{1}–f_{2}$(рис. 10).

    Рис. 10: интермодуляционные искажения

    При построении РЧ систем могут быть интересны так же продукты 2-го и более высокого порядка. Параметр АЦП, характеризующий его интермодуляционные искажения n-го порядка, определяется формулой:

    $IMD_n = 10cdot lg(frac{ P_{sig}}{P_{IP_n}} )$ [dBc], где $P_{sig}$ – мощность идентичных синусоид на входе, $P_{IP_n}$ – мощность одного из продуктов. Например $IMD_3$ – отношение мощности на $f_2$ к мощности на $2f_2-f_1$

Полоса пропускания АЦП и субдискретизация (undersamling/sub-sampling)

Полоса пропускания преобразователя (FPBWFull Power (Analog) Bandwidth). Обычно ширина полосы преобразователя составляет несколько зон Найквиста. Этот параметр должен быть в спецификации, но, если его нет, можно попробовать самостоятельно оценить минимально возможное значение полосы пропускания для данного АЦП. За период выборки емкость УВХ должна зарядиться с точностью 1 LSB. Если период выборки равен

$1/(2 f_s)$, то ошибка выборки сигнала полной шкалы равна:

$V_{FS}cdot expleft(-frac{t}{tau}right)=1cdot LSB$

Решив относительно t, получаем:

$t=-taucdot lnleft(frac{1cdot L S B}{V_{FS}}right)$

Положив, что

$tau=frac{1}{2picdot F P B W}$, определим минимальную полосу АЦП (для

$t = 1/(2 f_s)$):

$FPBW=-left(frac{f_s}{pi}right)cdot lnleft(frac{1cdot L S B}{V_{FS}}right)$

Например, для 16 битного АЦП с частотой дискретизации 80 Мвыб/c и шкалой 2 В ограничение снизу для полосы пропускания, рассчитанное по этой формуле, составит FPBW = 282 МГц.

Analog Bandwidth является очень важным параметром при построении систем, которые работают в режиме субдискретизации (“undersampling”). Объясним это подробнее.
Согласно критерию Найквиста, ширина спектра обрабатываемого сигнала должна быть как минимум в 2 раза меньше частоты дискретизации, чтобы избежать элайзинга. Здесь важно, что именно ширина полосы, а не просто максимальная частота сигнала. Например, сигнал, спектр которого расположен целиком в 6-й зоне Найквиста может быть теоретически дискретизован без потери информации (рис. 11). Ограничив спектр этого сигнала антиэлайзинговым фильтром, его можно подавать на дискретизатор с частотой fs. В результате сигнал отразится в каждой зоне.

Рис. 11: undersampling

Свойство переноса спектра при дискретизации

Undersampling или sub-sampling имеет место быть из-за свойств дискретизации. Рассмотрим на примере, пусть имеется сигнал a(t) и его спектральная плотность

$A(omega)$ (рис. 12). Необходимо найти спектральную плотность

$A_s(omega)$ сигнала после дискретизации сигнала

$a_s(t)$.

Рис 12: дискретизация непрерывного сигнала

По фильтрующему свойству дельта-функции:

$a(t)=int_{-infty}^{infty}aleft(tauright)cdotdeltaleft(t-tauright) dtau$

После дискретизации

$t_n=kcdot T_s$:

$a_sleft(kT_sright)=sum_{k=-infty}^{infty}aleft(kT_sright)cdotdeltaleft(t-kT_sright)cdot T_s=T_ssum_{k=-infty}^{infty}aleft(kT_sright)cdotdeltaleft(t-kT_sright)=T_scdotetaleft(tright)cdot aleft(tright), $

где

$etaleft(omegaright)=2pisum_{n=-infty}^{infty}c_ncdotdeltaleft(omega-nomega_sright)=frac{2pi}{T}sum_{n=-infty}^{infty}deltaleft(omega-nomega_sright)$

С помощью формулы Релея вычислим спектр:

$A_sleft(omegaright)=frac{1}{2pi}etaleft(omegaright)ast Aleft(omegaright)=frac{1}{2pi}int_{-infty}^{infty}frac{2pi}{T_s}sum_{n=-infty}^{infty}deltaleft(xi-nomega_sright)cdot Aleft(omega-xiright) dxi=$

$=sum_{n=-infty}^{infty}int_{-infty}^{infty}Aleft(omega-xiright)cdotdeltaleft(xi-nxiright) dxi=sum_{n=-infty}^{infty}Aleft(omega-nomega_sright)$

Из этого выражения следует что спектр сигнала будет повторяться во всех зонах Найквиста.

Итак, если есть хороший антиэлайзинговый фильтр, то соблюдая критерий Найквиста, можно оцифровывать сигнал с частотой дискретизации намного ниже полосы АЦП. Но использовать субдискретизацию нужно осторожно. Следует учитывать, что динамические параметры АЦП деградируют (иногда очень сильно) с ростом частоты входного сигнала, поэтому оцифровать сигнал из 6-й зоны так же «чисто», как из 1-й не получится.
Несмотря на это субдискритезация активно используется. Например, для обработки узкополосных сигналов, когда не хочется тратиться на дорогой широкополосный быстродействующий АЦП, который вдобавок имеет высокое потребление. Другой пример – выборка ПЧ (IF-sampling) в РЧ системах. Там благодаря undersampling можно исключить из радиоприемного тракта лишнее аналоговое звено — смеситель (который переносит сигнал на более низкую несущую или на 0).

Сравним архитектуры

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

Таблица сравнения архитектур

Информацию для таблицы брал на сайте arrow, поэтому если что-то упустил поправляйте в комментариях.

Заключение

Описав параметры разрабатываемой вами системы, можно понять, какие характеристики АЦП для вас являются критичными. Однако не стоит забывать, что динамические параметры преобразователей сильно зависят от многих факторов (частота дискретизации, частота входного сигнала, амплитуда входного сигнала и тд.) Зачастую в таблицах параметров в документации указывают только «красивые» (с точки зрения маркетинга) цифры. Приведу пример, возьмем АЦП ad9265 и рассмотрим его параметр SFDR при частоте входного сигнала 70 МГц:

Таблица показывает значение SFDR при максимальных значениях частоты дискретизации, однако если вы будете использовать частоту ниже (к примеру 40 МГц), вы не получите этих «хороших» значений. Поэтому советую анализировать характеристики АЦП по графикам, чтобы примерно понимать, сможет ли данная микросхема обеспечить нужную вам точность преобразования.

Выпускная квалификационная работа. Часть 5.

5.1 Основные определения
5.2 Погрешности АЦП
5.3 Экспериментальные исследования
5.4 Выводы

5.1 Основные определения

Измерение – это операция, в результате которой мы узнаем, во сколько раз измеряемая величина больше или меньше соответствующей величины, принятой за эталон.

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

Дифференциальная нелинейность DNL (differential non-linearity) — представляет собой разницу между измеренной и идеальной шириной 1 кванта (1 LSB) АЦП.

Ошибка смещения — представляет собой отклонение момента первичной смены кода с (000Н) на (001Н) от идеального значения, то есть +0.5LSB.

Ошибка усиления — представляет отклонение реального коэффициента усиления тот идеального.

LSB (least significant bit) или МЗБ (младший значащий бит) – это наименьшее значение напряжения, которое может быть измерено АЦП. Находиться по формуле:

2КБ

где Uоп – значения источника опорного напряжения (ИОН), N разрядность АЦП. В данном случае:

1КБ

Uоп = 2,5 В — значение напряжения внутреннего ИОН.

Систематические ошибки – ошибки, величина которых одинакова во всех измерениях, приводящих одним и тем же методом с помощью одних и тех же измерительных приборов. Ошибка смещения и ошибка усиления относятся к случайным ошибкам.

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

5.2 Погрешности АЦП

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

Погрешность смещения нуля

Рисунок 5.1 – Погрешность смещения нуля

Погрешность смещения равна погрешности нуля во всем диапазоне входного напряжения и постоянна.

Погрешность смещения нуля

Рисунок 5.2 – Погрешность усиления

Погрешность усиления вызывает погрешность смещения. Причем погрешность смещения не постоянна и не равна погрешность смещения нуля.

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

Определение погрешности измерения

Рисунок 5.3 – Определение погрешности измерения по а) методу конечных точек и по б) методу наилучшей прямой

При использовании метода конечных точек измеряется отклонение произвольной точки характеристики от прямой, проведенной из начала координат. Таким образом, измеряют значения интегральной нелинейности преобразователей, используемых в задачах измерения и управления.

Метод наилучшей прямой дает более адекватный прогноз искажений в приложениях, имеющих дело с сигналами переменного тока. Он менее чувствителен к нелинейностям технических характеристик. По методу наилучшего приближения через характеристику передачи устройства проводят прямую линию, используя стандартные методы интерполяции кривой. После этого максимальное отклонение измеряется от построенной прямой. Как правило, интегральная нелинейность, измеренная таким образом, учитывает только 50% нелинейности, оцененной методом конечных точек.

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

Переходы АЦП (идеальные) имеют место, начиная с 1/2 LSB выше нуля, и далее через каждый LSB, до 11/2 LSB ниже полной аналоговой шкалы. Так как входной аналоговый сигнал АЦП может иметь любое значение, а выходной цифровой сигнал квантуется, может существовать различие до 1/2 LSB между реальным входным аналоговым сигналом и точным значением выходного цифрового сигнала. Этот эффект известен как ошибка или неопределенность квантования. В приложениях, использующих сигналы переменного тока, эта ошибка квантования вызывает явление, называемое шумом квантования.

Шум квантования АЦП

Рисунок 5.4 – Шум квантования АЦП

Среднеквадратичное значение шума. приблизительно равно весу наименьшего значащего разряда (LSB) Δ, деленному на √12. При этом предполагается, что амплитуда сигнала составляет, по крайней мере, несколько младших разрядов, так что выход АЦП изменяет свое состояние почти при каждом отсчете. Сигнал ошибки квантования от входного линейного пилообразного сигнала аппроксимируется сигналом пилообразной формы с максимальным размахом Δ , и его среднеквадратичное значение равно Δ/( √12). Поэтому средняя мощность шума кантования равна:

Формула 5.1 1КБ

Отношение среднеквадратичного значения синусоидального сигнала, соответствующего полной шкале, к среднеквадратичному значению шума квантования (выраженное в дБ) равно:

Формула 5.2 1КБ

где SNR (signal to noise ratio) – отношение сигнал-шум, N — число разрядов в идеальном АЦП. Это уравнение имеет силу только в том случае, если шум измерен на полной ширине полосы Найквиста от 0 до fД/2.

Таким образом, для АЦП микроконвертора ADUC842, используемого в лабораторном стенде LESO1, справедливо:

Формула 1КБ

Для оценки погрешностей АЦП приведем характеристику АЦП, где указаны погрешности в значениях LSB и в напряжениях.

Таблица 5.1 – Характеристики АЦП ADuc842

  Параметры Значение в LSB Значение в мкВ Примечание
Точность по постоянному току Разрядность 12 битный От внутреннего ИОН Uоп = 2,5 В
Интегральная нелинейность ±1 макс.
±0,3 сред.
±610 макс.
±183 сред.
Дифференциальная нелинейность ±1 макс.
±0,3 сред.
±610 макс.
±183 макс.
Калибровочные ошибки конечных точек шкалы Ошибка смещения ±3 макс ±1830 макс.
Ошибка усиления ±3 макс. ±1830 макс.
Аналоговый вход Диапазон входных напряжений 0 ÷ Uоп В.
Входной ток ±1 мкА макс.
Входная емкость 32 пФ сред.

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

Формула 5.3 1КБ

где X1,…,Xn – номинальные значения независимых случайных величин, ΔX1,…,ΔXn – ошибки случайных величин, Y — номинальное значение конечной измеряемой величины, ΔY – абсолютная ошибка конечной измеряемой величины.

Случайная ошибка АЦП будет состоять из интегральной и дифференциальной нелинейности, а также из ошибки квантования, которая составляет Δ/2 = 610мкВ/2 = 305мкВ = 0,305·10-3 В. Номинальное значения этих величин есть опорное напряжение АЦП, которое равно 2,5В.

Итак, относительная ошибка измерения АЦП:

Формула 4КБ

Из относительной ошибки измерения АЦП найдем абсолютное значение ошибки измерения:

Формула 1КБ

Систематическую ошибку составляют ошибка смещения нуля и ошибка усиления. Так как основную часть ошибки смещения и ошибки усиления вносит тракт передачи сигнала (инструментальный усилитель и масштабирующее звено), поправки вносятся программной калибровкой в LabVIEW.

Калибровка в LabVIEW

Рисунок 5.5 – Калибровка в LabVIEW

5.3 Экспериментальные исследования

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

Результат экспериментального исследования АЧХ устройства без цифрового фильтра или аналогового фильтра Бесселя записан в таблице 5.2. Экспериментальные данные были сняты с помощью низкочастотного генератора сигналов Г3-112.

Таблица 5.2 – Измеренное АЧХ устройства без цифрового фильтра

f,кГц U_вых (f),В U_вых_дБ (f)
0 5,00 0,00
10 5,00 0,00
20 4,88 -0,21
30 4,68 -0,58
40 4,31 -1,28
50 3,95 -2,04
60 3,43 -3,28
70 2,90 -4,72
80 2,34 -6,60
90 1,77 -8,99
100 1,24 -12,10
110 0,94 -14,56
120 0,64 -17,90
130 0,43 -21,36
140 0,26 -25,75
150 0,18 -29,00
160 0,13 -31,77

Проверим, действие цифрового фильтра на сигнал. Результаты измерения АЧХ после цифрового фильтра приведены в таблице 5.3.

Таблица 5.2 – Измеренное АЧХ устройства без цифрового фильтра

f,кГц U_вых (f),В U_вых_дБ (f)
0 5,00 0,00
10 5,00 0,00
20 5,00 0,00
30 5,00 0,00
40 5,00 0,00
50 5,00 0,00
60 4,80 -0,36
70 4,23 -1,45
80 3,67 -2,69
90 2,94 -4,62
100 2,26 -6,91
110 1,61 -9,83
120 0,73 -16,67
130 0,23 -26,60
140 0,08 -35,85
150 0,00 -60,32
160 0,00 -71,66

Для сравнения действия цифрового фильтра, приведем графики АЧХ устройства без и с цифровым фильтром. Как видно из рисунка 6.6, цифровой фильтр выравнивает амплитудную неравномерность. Полоса пропускания цифрового осциллографа-приставки на уровне -3 дБ, равна от 0 до 80 кГц.

АЧХ устройства 5КБ

Рисунок 5.6 – АЧХ устройства без цифрового фильтр (штрих.) и с цифровым фильтром (сплош.)

Нелинейные искажения измерительного тракта можно оценить по первой гармонике. Уровень первой гармоники при номинальном входном напряжении Uвх = 5В на частоте 10 кГц равен -65дБ.

Уровень первой гармоники при номинальном входном напряжении 5В 32КБ

Рисунок 5.7 — Уровень первой гармоники при номинальном входном напряжении 5В

На цифровой осциллограф-приставку подавались тестовые испытательные сигналы трех видов: синусоидального, треугольного и прямоугольного частотой 10 кГц. Результаты измерений приведены на рисунках 5.8, 5.9 и 5.10 соответственно синусоидального, треугольного и прямоугольного сигналов.

Измерение синусоидального сигнала цифровым осциллографом-приставкой 29КБ

Рисунок 5.8 — Измерение синусоидального сигнала цифровым осциллографом-приставкой

Измерение треугольного сигнала цифровым осциллографом-приставкой 29КБ

Рисунок 5.9 — Измерение треугольного сигнала цифровым осциллографом-приставкой

Измерение прямоугольного сигнала цифровым осциллографом-приставкой 34КБ

Рисунок 5.10 — Измерение прямоугольного сигнала цифровым осциллографом-приставкой

5.4 Выводы

Проанализированы основные источники погрешности измерений, определено из чего состоит ошибка измерения цифровым осциллографом-приставкой. Она состоит в из случайной и систематической ошибок. Случайная ошибка АЦП менее 0,1 %, а систематическая корректируется программной калибровкой в LabVIEW.

На рисунке 5.6 показано, насколько цифровой фильтр корректирует АЧХ аналогового фильтра.

Экспериментальные исследования тестовыми сигналами показывают, что уровень первой гармоники при номинальном входном напряжении Uвх = 5В на частоте 10 кГц равен -65дБ, что очень хорошо.


Main Content

This example shows how offset error and gain error are calculated and how each affects the transfer curve of an ADC. Offset error and gain error characterize part of the linearity error in an ADC.

Offset error is the difference between the center of the least significant code and the center of the same code on an ideal ADC with the same number of bits. Offset error is usually reported in units of the least significant bit (LSB) of the converter. One LSB is equivalent to the converter’s quantization interval.

Gain error in LSB is the difference between the center of the most significant code after offset error correction and the center of the same code on an ideal ADC with the same number of bits.

Due to the difficulty in determining the precise location of the center of a code with a non finite boundary, these values are most commonly measured with respect to the first and last threshold of the converter, respectively.

Units for Offset Error and Gain Error

The unit $LSB$, which is used in this example, is defined as:

Thus, an error in $V$ (volts) translates into $LSB$ as follows:

where $FSR$ is the full scale range of the ADC and $N_{bits}$ is the number of bits of the ADC.

Linearity errors are also commonly reported in normalized units with respect to the full scale range:

Another unit sometimes used for linearity errors used is percent full scale. Percent full scale is defined as normalized units multiplied by 100:

Calculate Offset Error and Gain Error

Use a 3-bit ADC with dynamic range [-1 1]. Define an offset error of 1 LSB and a gain error of 1 LSB.

Nbits = 3;
Range = [-1 1]; % ADC Full Scale Range
OffsetError = 1;
GainError = 1;
LSB = (max(Range) - min(Range)) / (2^Nbits - 1);

The digital codes from the ideal ADC are identical to those from the experimental ADCs.

[TC0Analog, TC0Digital] = og2tc(Nbits, Range, 0, 0); % Ideal ADC Transfer Curve
TC1Analog = og2tc(Nbits, Range, OffsetError, 0); % Offset Error Only
TC2Analog = og2tc(Nbits, Range, 0, GainError); % Gain Error Only
TC3Analog = og2tc(Nbits, Range, OffsetError, GainError); % Both Offset Error and Gain Error
plotAdcTcForExample(TC0Digital, TC0Analog, TC1Analog, TC2Analog, TC3Analog, Nbits);

The sum of offset error and gain error is known as full-scale error. In monopolar converters zero error, essentially offset error defined at analog level 0, is identical to regular offset error. In bipolar converters such as those above, offset error and zero error are different quantities.

Use of Linearity Errors as Impairments

Compare a flash ADC with offset and gain error to one with no impairments.

model = 'OffsetGainExample';
open_system(model);
open_system([model '/Time Scope']);
sim(model);

The ADC DC Measurement block confirms the values of the impairments to within a margin of error determined by the sample rate of the system. The offset error and gain error were both entered as 1 LSB. Offset error was measured as 1.08 LSB and gain error was measured as 0.97 LSB. Errors in these measurements are due to the converter not sampling exactly at its threshold values. The maximum expected error in LSB is:

where $m$ is the slope of the input ramp/sawtooth signal in LSB/s, and $f_s$ is the ADC’s conversion start frequency.

See Also

Flash ADC | ADC DC Measurement

  • Trial Software
  • Trial Software
  • Product Updates
  • Product Updates

Часто задают вопрос: ”С какой точностью плата Ардуино измеряет аналоговые сигналы?” Я коротко расскажу о погрешностях измерения АЦП Ардуино, и как их можно уменьшить.

Для измерения аналоговых сигналов плата Ардуино использует АЦП последовательного приближения с аналоговым коммутатором. Мы в программе вызываем функцию analogRead(). Она подключает коммутатор к выбранному аналоговому входу, вырабатывает управляющие сигналы для АЦП, ожидает окончания преобразования и возвращает измеренный код. Что определяет точность измерения?

Прежде всего, о параметрах, на которые мы не можем повлиять. Они определятся характеристиками микроконтроллеров, установленных на платах. Обычно это микроконтроллеры ATmega168 и ATmega328.

Разрешающая способность АЦП.
В Ардуино используется 10 разрядный АЦП, что соответствует 1024 градациям выходного кода.
Разрешающая способность или точность АЦП с идеальной передаточной характеристикой равна 100% / 1024 = 0,098 %.

Погрешности преобразования АЦП.
Производители микроконтроллеров ATmega88/168/328 нормируют полную ошибку преобразования АЦП, в которую включены:

    интегральная нелинейность;
    дифференциальная нелинейность;
    ошибка квантования;
    ошибка коэффициента преобразования;
    ошибка смещения нуля.

Полная ошибка не превышает 2 единиц младшего разряда, что соответствует погрешности 100% / 1024 * 2 = 0,2 %.

В документации на микроконтроллеры приводятся значения отдельных точностных параметров:

    Интегральная нелинейность – не более 0,5 единицы младшего разряда, т.е 0,05 %.
    Интегральная нелинейность характеризует отклонение реальной характеристики АЦП от идеальной в середине шага квантования.

    Дифференциальная нелинейность — не более 0,25 единицы младшего разряда, т.е 0,025 %.
    Этот параметр характеризует отклонение между серединами соседних шагов квантования на реальной и идеальной характеристиках. Т.е. показывает насколько одинаковые ступеньки характеристики.

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

    Ошибка смещения нуля – не более 2 единиц младшего разряда, т.е 0,2 %.
    Показывает значение сигнала на входе АЦП при выходном коде равном 0. Может быть скорректирована прибавлением к выходному коду поправочного коэффициента.

Из динамических характеристик достаточно знать, что время преобразования АЦП в системе Ардуино примерно 110 мкс.

Из вышесказанного можно сделать вывод, что погрешность измерения АЦП Ардуино не превышает 0,2 %.

Но есть еще элементы системы, значительно влияющие на точность измерения АЦП.

Источник опорного напряжения.
Диапазон входного напряжения АЦП определяет источник опорного напряжения (ИОН). От него в первую очередь зависит точность и стабильность преобразования аналогового сигнала. Система Ардуино поддерживает несколько вариантов реализации ИОН.

Использование в качестве ИОН напряжения питания платы 5 В.
Режим задается функцией analogReference(DEFAULT). Самый простой, но самый не точный вариант. В Arduino UNO R3 напряжение 5 В вырабатывается линейным стабилизатором NCP1117ST50. Напряжение на выходе этой микросхемы поддерживается с достаточно высокой точностью 1 %.
Можно дополнительно повысить точность преобразования, если измерить напряжение питания и учесть его значение при переводе кода в напряжение. Например, если реальное напряжение равно 5,02 В, то можно выполнить перевод так
u = 5.02 * (float)analogRead(A0) / 1024. ;
Температурная погрешность NCP1117ST50 не превышает 0,5 % во всем температурном диапазоне.

Можно использовать внутреннее опорное напряжение 1,1 В. Режим включается функцией analogReference(INTERNAL). Все вышесказанное, верно для этого варианта. Производители микроконтроллера гарантируют опорное напряжение в пределах 1 … 1,2 В, т.е. точность немного выше 1 %.

Существует радикальный способ значительно улучшить температурную стабильность АЦП. Это применение внешнего ИОН. Режим включается функцией analogReference(EXTERNAL). Но он требует дополнительного аппаратного узла.
Вот схема внешнего ИОН, реализованного на микросхеме LM431 (TL431).

ION_scheme.PNG
ION_scheme.PNG (6.2 КБ) 13668 просмотров

Это недорогой ИОН с неплохими параметрами. Производитель гарантирует напряжение на выходе в диапазоне 2,485 … 2,51 В, но с высокой температурной стабильностью 0,005 % / °C.

Внутреннее сопротивление источника сигнала.
Последний параметр, влияющий на точность измерения это внутреннее сопротивление источника сигнала. Разработчики микроконтроллеров ATmega определили, что для сохранения максимальной точности внутреннее сопротивление источника сигнала на аналоговом входе не должно превышать 10 кОм.
В частности, это требование должно быть учтено при использовании на аналоговых входах платы Ардуино резисторных делителей. Эквивалентное сопротивление делителя должно быть не более 10 кОм.

Диапазон входного сигнала.
И еще одна рекомендация. Для максимально точности измерения диапазон входного аналогового сигнала должен быть как можно ближе к диапазону измерения АЦП.
Поясню. Если у нас диапазон измерения АЦП равен 5 В, а мы измеряем сигнал с максимальным напряжением 1 В, то точность измерения будет в 5 раз меньше, чем для сигнала с диапазоном 0 … 5 В. Т.е. необходимо либо ставить усилитель, либо уменьшать напряжение ИОН.

Измерение смещения и ошибок усиления в АЦП

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

Ошибка смещения — это различие между центром наименее значимого кода и центром того же кода на идеальном АЦП с таким же количеством бит. Ошибка смещения обычно указывается в единицах младшего разряда (LSB) конвертера. Один LSB эквивалентен интервалу квантования конвертера.

Ошибка усиления в LSB является различием между центром самого значимого кода после коррекции ошибки смещения и центром того же кода на идеальном АЦП с таким же количеством бит.

Из-за сложности определения точного местоположения центра кода с немасштабным контуром эти значения чаще всего измеряются относительно первого и последнего порога конвертера, соответственно.

Модули для ошибки смещения и ошибки усиления

Единица измерения, $LSB$которая используется в этом примере, определяется как:

$$1 left[LSBright] = frac{FSR}{2^{N_{bits}}}$$

Таким образом, ошибка в$V$ (вольтах) переходит в$LSB$ следующее:

$$E left[LSBright] = 2^{N_{bits}}frac{E left[Vright]}{FSR
left[Vright]}$$

где$FSR$ — полная масштабная область значений АЦП и$N_{bits}$ количество бит АЦП.

Ошибки линейности также обычно сообщаются в нормированных модулях относительно полного масштаба области значений:

$$ E_{Offset} = frac{E_{Offset} left[Vright]}{FSR left[Vright]}$$

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

$$E_{Gain} left[%right] = 100frac{E_{Gain} left[Vright]}{FSR
left[Vright]}$$

Вычислите ошибку смещения и ошибку усиления

Используйте 3-разрядный АЦП с динамической областью значений [-1 1]. Задайте ошибку смещения 1 LSB и ошибка усиления 1 LSB.

Nbits = 3;
Range = [-1 1]; % ADC Full Scale Range
OffsetError = 1;
GainError = 1;
LSB = (max(Range) - min(Range)) / (2^Nbits - 1);

Цифровые коды от идеального АЦП идентичны кодам от экспериментальных АЦП.

[TC0Analog, TC0Digital] = og2tc(Nbits, Range, 0, 0); % Ideal ADC Transfer Curve
TC1Analog = og2tc(Nbits, Range, OffsetError, 0); % Offset Error Only
TC2Analog = og2tc(Nbits, Range, 0, GainError); % Gain Error Only
TC3Analog = og2tc(Nbits, Range, OffsetError, GainError); % Both Offset Error and Gain Error
plotAdcTcForExample(TC0Digital, TC0Analog, TC1Analog, TC2Analog, TC3Analog, Nbits);

Сумма ошибки смещения и ошибки усиления известна как полномасштабная ошибка. В монополярных преобразователях нулевая ошибка, по существу смещенная ошибка, заданная на аналоговом уровне 0, идентично регулярной ошибке смещения. В биполярных преобразователях, таких как выше, ошибка смещения и ошибка нуля являются различными величинами.

Использование ошибок линейности в качестве ухудшений

Сравните флэш-АЦП со смещением и ошибкой усиления с таковым без нарушений.

model = 'OffsetGainExample';
open_system(model);
open_system([model '/Scope']);
sim(model);

Блок измерения постоянного тока АЦП подтверждает значения ослаблений в пределах запаса ошибки, определяемого частотой дискретизации системы. Ошибка смещения и ошибка усиления были введены следующим 1 LSB. Ошибку смещения измеряли как 1,08 LSB, и ошибку усиления измеряли как 0,97 LSB. Ошибки в этих измерениях связаны с тем, что конвертер не дискретизирует точно свои пороговые значения. Максимально ожидаемая ошибка в LSB:

$$E_{max} = frac{m}{f_s}$$

где$m$ — наклон входного сигнала наклона/пилообразного сигнала в LSB/s, и$f_s$ является начальной частотой преобразования АЦП.

См. также

ADC DC Measurement | Flash ADC

Понравилась статья? Поделить с друзьями:
  • Ошибка смесь слишком богатая ваз 2112
  • Ошибка смесь слишком богатая ваз 2110
  • Ошибка смесь слишком богатая блок 1
  • Ошибка смесь слишком бедная шевроле нива
  • Ошибка смесь слишком бедная блок 1 ваз 2114