inldnl

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

Описание

пример

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

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

s = inldnl(___,Name,Value) вычисляет ошибки INL и DNL АЦП и 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. The type определяет, анализировать ли данные как АЦП или DAC.

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

Если The 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, чтобы построить график результатов анализа постоянного тока.

Типы данных: 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 function, возвращается как структура. Выходы содержат информацию о тестируемом устройстве в следующих полях:

ИмяЗначенияОписаниеТипы данных
НапечататьADC или DACТип тестируемого устройства (DUT)строка
Nbitsположительное действительное целое числоРазрешение ADC или DAC DUTдважды
LSBположительный действительный скалярНаименьшее значение бита DUT. LSB является наименьшим уровнем, который АЦП может преобразовать, или наименьшим шагом выхода DAC.дважды
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

Подробнее о

свернуть все

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

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

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

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

Ошибка INL

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

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

Ошибка DNL

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

Введенный в R2020a
Для просмотра документации необходимо авторизоваться на сайте