Перейти к содержанию

ENOB — эффективное число разрядов АЦП

В даташите написано «АЦП 12 бит», а младшие разряды результата прыгают. Сколько разрядов работают на самом деле, показывает ENOB — эффективное число разрядов. Его считают по измерениям синусоиды, и у реальных АЦП оно всегда меньше номинальной разрядности.

Обновлено Редакция GAW

ENOB (effective number of bits, эффективное число разрядов) — разрядность идеального АЦП, у которого отношение сигнал/(шум + искажения) было бы таким же, как у реального. Его вычисляют по измеренному SINAD — отношению действующего значения синусоиды к сумме всех остальных составляющих спектра, включая гармоники:

ENOB=SINAD−1,76 дБ6,02 дБ.\text{ENOB} = \frac{\text{SINAD} - 1{,}76\ \text{дБ}}{6{,}02\ \text{дБ}}.

Формула получена из отношения сигнал/шум идеального N-разрядного АЦП, SNR = 6,02N + 1,76 дБ (ADI, MT-003), — его вывод из шума квантования есть в статье «АЦП». Она верна для синуса на полную шкалу; при меньшей амплитуде ADI добавляет к SINAD поправку 20·lg(полная шкала / амплитуда), чтобы привести результат к полной шкале.

SINAD, SNR и THD

ПараметрЧто сравнивают с сигналом
SNRтолько шум, без гармоник
THDтолько гармоники
SINADшум и гармоники вместе

ENOB считают именно по SINAD, поэтому он учитывает и шум, и искажения. ADI предупреждает: в некоторых даташитах словом SNR называют SINAD, и прежде чем пересчитывать, надо понять, что именно измерено.

Пример: АЦП RP2040

Параметр (RP2040, типично)Значение
Номинальная разрядность12 бит
SNR61,5 дБ
SINAD54,0 дБ
ENOB8,7

Raspberry Pi измерял ENOB на синусе 997 Гц при 250 тыс. выборок/с. По моделированию он должен был быть около 9 разрядов, но пики дифференциальной нелинейности на кодах 512, 1536, 2560 и 3584 снизили его до 8,7 (ошибка RP2040-E11). Значит, из 12 разрядов результата около трёх младших заняты шумом и искажениями (наш расчёт: 12 − 8,7) — шаг кода, младший разряд, мельче, чем реальная точность преобразования.

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

Не путать ENOB с разрядностью АЦП — числом бит в результате: оно задаёт только шаг кода. Чем разрешение отличается от точности, разбирает термин «Точность и разрешение измерения».

Частые вопросы

Как посчитать ENOB по SINAD?

По формуле из руководства ADI MT-003: ENOB = (SINAD − 1,76) / 6,02, где SINAD в децибелах измерен на синусоиде, близкой к полной шкале. Для RP2040 SINAD = 54,0 дБ даёт (54,0 − 1,76) / 6,02 ≈ 8,7 разряда — столько и указано в даташите (пересчёт наш).

Почему у 12-битного АЦП ENOB меньше 12?

Потому что кроме шума квантования, который учтён в идеальной формуле 6,02N + 1,76 дБ, есть собственный шум, искажения и нелинейность. У RP2040 ENOB по моделированию был около 9 разрядов, а измерения дали 8,7: Raspberry Pi объясняет это пиками дифференциальной нелинейности на четырёх кодах (ошибка RP2040-E11).

Можно ли поднять ENOB?

Частично — усреднением и передискретизацией, если шум случайный и больше младшего разряда: так поднимают отношение сигнал/шум в полосе сигнала. Систематические ошибки — нелинейность, смещение — усреднение не убирает.

Источники

  1. Analog Devices. MT-003 Tutorial: Understand SINAD, ENOB, SNR, THD, THD + N, and SFDR so You Don't Get Lost in the Noise Floor (Rev.A, 10/08) — с. 1: шесть параметров динамики АЦП; с. 5: SINAD — отношение действующего значения сигнала к сумме всех прочих составляющих спектра, включая гармоники, без постоянной; ENOB получают из теоретического SNR идеального N-разрядного АЦП, SNR = 6,02N + 1,76 дБ, подставив SINAD: ENOB = (SINAD − 1,76 дБ) / 6,02, ур. 1 — для сигнала на полную шкалу; ур. 2 — поправка 20·lg(полная шкала / амплитуда входа) для меньших сигналов; SNR — то же без гармоник; некоторые даташиты называют SINAD словом SNR; ур. 3–5: SNR, THD, SINAD через отношения S/N, S/D, S/(N + D)
  2. Raspberry Pi Ltd. RP2040 Datasheet (build-date 2025-02-20, build-version 3184e62) — разд. 4.9.3, табл. 565–566: 250 тыс. выборок/с, синус 997 Гц, БПФ 4096 точек; THD −55 дБ, SNR 61,5 дБ, SFDR 59,9 дБ, SINAD 54,0 дБ, ENOB 8,7 (8,6–8,8) типично; THD посчитан по 30 пикам из-за INL/DNL; ошибка RP2040-E11: пики DNL на кодах 512, 1536, 2560 и 3584, ENOB снижен с 9 бит (моделирование) до 8,7 (измерение)

Нашли ошибку?