exponenta event banner

inldnl

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

Описание

пример

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

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

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

Примечание

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

Примеры

свернуть все

Загрузите цифровой вход и аналоговый выход 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. The axes 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: [1x32 double]
    IdealCodeCenters: [1x32 double]
         CodeCenters: [1x32 double]
       CodeCenterStD: [1x32 double]
         EndpointINL: [1x32 double]
          BestFitINL: [1x32 double]
         EndpointDNL: [1x32 double]
          BestFitDNL: [1x32 double]
         BestFitPoly: [0.0652 0.1293]
         OffsetError: 0.8562
           GainError: 1.5393
       GainErrorUnit: 'LSB'
           TCNominal: [32x2 double]
          TCMeasured: [32x2 double]

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

свернуть все

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

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

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

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

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

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

Номинальный аналоговый динамический диапазон АЦП или ЦАП, заданный как 2-элементный вектор.

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

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

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

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

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

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми 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 функция сначала принимает наилучшую линейную аппроксимацию кривой передачи АЦП или ЦАП. Затем функция переходит к вычислению INL с использованием тех же шагов, что и Enpoint способ.

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

Метод расчета DNL, указанный как Endpoint, BestFitили все.

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

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

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

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

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

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

свернуть все

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

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

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

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

Подробнее

свернуть все

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

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

Ошибка усиления

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

Ошибка INL

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

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

Ошибка DNL

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

Представлен в R2020a