inldnl

Интегральная нелинейность (INL) и дифференциальная нелинейность (DNL) преобразователей данных

Описание

пример

s = inldnl(analog,digital,range,type) вычисляет интегральную нелинейность (INL) и дифференциальную нелинейность (DNL) ошибки ADCs и DACs. Функция вычисляет INL и DNL использование аналога и цифровых входных выходных данных и номинального аналогового динамического диапазона конвертера. Функция может вычислить INL и DNL или использование метода конечной точки, или лучший подходящий метод или использование обоих методов.

inldnl функция только анализирует конвертеры с конечным числом битов. Это означает, что ADCs должен иметь насыщение и квантование. Функция игнорирует любые цифровые пары значения, которые содержат значения NaN.

s = inldnl(___,Name,Value) вычисляет INL и ошибки DNL ADCs и DACs, использующего один или несколько аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. Заключите каждое имя аргумента в кавычки. Незаданные аргументы берут значения по умолчанию.

Примечание

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

Примеры

свернуть все

Загрузите цифровой вход и аналоговый выход DAC из MAT-файлов.

load 'digital.mat'
load 'analog.mat'

Номинальным аналоговым динамическим диапазоном DAC является [-1,1]. Включите графический вывод для выходного порога конвертера. Вычислите INL и DNL, использующий, и лучше всего соответствуйте и методы конечной точки.

inldnl(a,d,[-1 1],'DAC','GenPlotData','on','INLMethod','All','DNLMethod','All')

Figure contains an axes object. The axes object with title DAC Transfer Function contains an object of type errorbar. This object represents Code Centers with Standard Deviation Bars.

ans = struct with fields:
                Type: 'DAC'
               NBits: 5
                 LSB: 0.0625
        MissingCodes: [0x1 double]
               Codes: [-16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 ... ]
    IdealCodeCenters: [-1 -0.9375 -0.8750 -0.8125 -0.7500 -0.6875 ... ]
         CodeCenters: [-0.9465 -0.8780 -0.8048 -0.7310 -0.6557 -0.5862 ... ]
       CodeCenterStD: [0.0282 0.0292 0.0296 0.0287 0.0254 0.0237 0.0207 ... ]
         EndpointINL: [1.7764e-15 0.0465 0.1679 0.2985 0.4547 0.5169 ... ]
          BestFitINL: [-0.5244 -0.4713 -0.3432 -0.2060 -0.0432 0.0257 ... ]
         EndpointDNL: [0.0465 0.1215 0.1305 0.1562 0.0623 0.0654 0.0331 ... ]
          BestFitDNL: [0.0531 0.1281 0.1371 0.1628 0.0689 0.0720 0.0397 ... ]
         BestFitPoly: [0.0652 0.1293]
         OffsetError: 0.8562
           GainError: 1.5393
       GainErrorUnit: 'LSB'
           TCNominal: [32x2 double]
          TCMeasured: [32x2 double]

Входные параметры

свернуть все

  • Если устройство под тестом (DUT) является ADC, аналоговым входом к ADC в виде вектора.

  • Если DUT является DAC, аналоговым выходом от DAC в виде вектора.

Типы данных: double

  • Если устройство под тестом (DUT) является ADC, цифровым выходом от ADC в виде вектора из целых чисел.

  • Если DUT является DAC, цифровым входом к DAC в виде вектора с целочисленными значениями.

Типы данных: fi | single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Номинальный аналоговый динамический диапазон ADC или DAC в виде вектора с 2 элементами.

Типы данных: double

Тип устройства под тестом в виде Auto, ADC, или DAC. type определяет, анализировать ли данные как ADC или DAC.

Если type установлен в Auto и если передаточная функция дискретна, inldnl функция анализирует данные как DAC. Передаточная функция рассматривается как дискретную, если аналоговые данные меньше половины цифровой ширины кода для каждого цифрового кода.

Если type установлен в Auto и если передаточная функция непрерывна, inldnl функция анализирует данные как ADC.

Типы данных: string

Аргументы name-value

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: inldnl(a,d,[-1 1],'DAC', 'INLMethod', 'All', 'DNLMethod','All') вычисляет INL и DNL DAC с помощью и конечной точки и лучшего подходящего метода.

Модуль ошибки смещения, о которой сообщают, в виде LSB (младший значащий бит), %FS (полный масштаб процента), FS (полный масштаб) или все.

Типы данных: string

Модуль ошибки усиления, о которой сообщают, в виде LSB (младший значащий бит), %FS (полный масштаб процента), FS (полный масштаб) или все.

Типы данных: string

Отправьте векторы выходных данных из inldnl функционируйте к структуре выходных данных sВ виде off или on. Если GenPlotData установлен в on, структура выходных данных содержит векторы выходных данных. Векторы выходных данных могут затем быть взяты DAC DC measurement, DAC Testbench, ADC DC Measurement или блоками ADC Testbench, чтобы построить результаты анализа DC.

Типы данных: string

Метод, чтобы вычислить INL в виде Endpoint, BestFit, или все.

  • Если INLMethod установлен в Enpoint, inldnl функция сравнивает положение каждого порога с пороговым положением идеального конвертера, как определено линией от первого перехода кода до последнего перехода кода.

  • Если INLMethod установлен в BestFit, inldnl функционируйте сначала берет лучший линейный припадок кривой передачи ADC или DAC. Затем функция продолжает вычислять INL использование тех же шагов как Enpoint метод.

Типы данных: string

Метод, чтобы вычислить DNL в виде Endpoint, BestFit, или все.

  • Если DNLMethod установлен в Enpoint, inldnl функция сравнивает положение каждого порога с пороговым положением идеального конвертера, как определено линией от первого перехода кода до последнего перехода кода найти INL. DNL вычисляется от различия между элементами вектора INL.

  • Если DNLMethod установлен в BestFit, inldnl функционируйте сначала берет лучший линейный припадок кривой передачи ADC или DAC. Затем функция продолжает вычислять DNL использование тех же шагов как Enpoint метод.

Типы данных: string

Возвратите абсолютную погрешность и полный масштаб DNL для тестирования в виде on или off. Абсолютная погрешность является общим количеством некомпенсированная ошибка включая ошибку смещения, ошибку усиления и нелинейность. В симуляции чтобы в частности протестировать это измерения совпадают с ухудшениями, абсолютная погрешность может использоваться вместо INL. Это вызвано тем, что абсолютная погрешность описывает целую кривую передачи в одном векторе.

Типы данных: string

Выходные аргументы

свернуть все

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

ИмяЗначенияОписаниеТипы данных
ВводADC или DACТип устройства под тестом (DUT)строка
NBits положительное действительное целое числоРазрешение ADC или DAC DUT'double'
LSBположительный действительный скалярМладшее значащее битовое значение DUT. LSB является самым маленьким уровнем, который ADC может преобразовать или самый маленький шаг DAC выход.'double'
MissingCodesвекторНедостающие коды в DUT.'double'
Кодывектор-столбецЦифровой код'double'
IdealCodeCentersвектор-столбецИдеальный центр кода цифрового кода'double'
CodeCentersвектор-столбецРасчетный центр кода цифрового кода'double'
CodeCenterStDвектор-столбецСтандартное отклонение кода сосредотачивается от идеального значения'double'
EndpointINLвектор-столбецINL использование Endpoint метод'double'
BestFitINLвектор-столбецINL использование BestFit метод'double'
EndPointDNLвектор-столбецDNL использование Endpoint метод'double'
BestFitDNLвектор-столбецDNL использование BestFit метод'double'
BestFitPolyвекторПолином, описывающий лучший подходящий использующий стандартный метод подбора кривых.'double'
OffsetErrorдействительный скалярВозместите ошибку DUT'double'
GainErrorдействительный скалярПолучите ошибку DUT'double'
OffsetErrorUnitLSB, %FS, или FSМодуль ошибки смещения, о которой сообщают,строка
GainErrorUnitLSB, %FS, или FSМодуль ошибки усиления, о которой сообщают,строка
TCNominalвекторНоминальная кривая передачи DUT'double'
TCMeasuredвекторИзмеренная кривая передачи DUT'double'

Если вы не присваиваете выходную переменную, inldnl функционируйте также строит передаточную функцию устройства под тестом на активном рисунке.

Типы данных: struct

Больше о

свернуть все

Возместите ошибку

Ошибка смещения представляет смещение кривой передаточной функции преобразователя данных от него идеальное значение в одной точке. Для получения дополнительной информации смотрите Ошибки Смещения и Усиления Измерения в ADC.

Получите ошибку

Ошибка усиления представляет отклонение наклона кривой передаточной функции преобразователя данных от ее идеального значения. Для получения дополнительной информации смотрите Ошибки Смещения и Усиления Измерения в ADC.

Ошибка INL

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

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

Ошибка DNL

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

Введенный в R2020a