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

Лабораторная 6.9 — Сравнение RTL-SDR и AD936x: качество приёма и разрядность АЦП

Цель

Сравнить RTL-SDR и плату Zynq с AD936x под управлением Pluto-совместимой прошивки при одном и том же входном сигнале и разнести три составляющие результата:

  1. полное различие приёмных трактов;
  2. влияние разрядности цифровых отсчётов;
  3. остаточное различие трактов после программного приведения AD936x к 8 битам.

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

Рекомендуемый стенд

TX платы Zynq/AD936x
        |
фиксированный аттенюатор 30 дБ
        |
цифровой аттенюатор 0...31,75 дБ
        |
делитель 1 -> 2, 50 Ом
     +--+-------------------+
     |                      |
 RTL-SDR RX          вторая плата AD936x RX

Потребуются RTL-SDR, две платы Zynq/AD936x либо отдельный стабильный генератор, SMA-кабели, фиксированный аттенюатор, делитель и желательно цифровой аттенюатор. NanoVNA используется для измерения потерь кабелей, делителя и аттенюаторов, а tinySA для проверки гармоник и паразитных составляющих передатчика.

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

Что именно сравнивается

Сравнение Что входит в результат
RTL-SDR 8 бит ↔ AD936x в исходной разрядности весь тракт: входные каскады, фильтры, гетеродин, усиление, АЦП, тактирование и формат данных
AD936x исходный ↔ та же запись после квантования до 8 бит преимущественно влияние разрядности
RTL-SDR 8 бит ↔ AD936x, программно приведённый к 8 битам приближённое сравнение трактов при одинаковой разрядности
AD936x 6/8/10/12 бит устойчивость записанного сигнала к уменьшению разрядности

Последнее сравнение «8 бит ↔ 8 бит» всё равно содержит различия усиления, полосы, фазового шума, частоты дискретизации, DC-коррекции и калибровки.

Измеряемые показатели

Скрипт рассчитывает:

  • уровень тона, RMS и пик в dBFS;
  • DC-составляющую;
  • SNR в общей полосе анализа;
  • SINAD и SFDR;
  • плотность шума в dBFS/Гц;
  • системную эффективную разрядность ENOB;
  • долю клиппированных отсчётов;
  • частоту принятого тона и ошибку по частоте.

Системная ENOB определяется по выражению

ENOB_system = (SINAD - 1.76) / 6.02

Это характеристика всего приёмного канала, а не паспортная ENOB отдельного АЦП.

Обязательные одинаковые условия

Перед записью необходимо зафиксировать:

  • мощность на входе делителя;
  • частоту RF и смещение тестового тона;
  • ручное усиление обоих приёмников;
  • аналоговую полосу;
  • частоту дискретизации;
  • потери кабелей и плеч делителя;
  • длительность записи;
  • выбранный RF-вход;
  • состояние АРУ;
  • состояние DC/IQ-коррекции;
  • общую полосу анализа.

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

Порядок выполнения

1. Измерить пассивный тракт

Элемент Частота Потери Примечание
фиксированный аттенюатор ____ МГц ____ дБ
цифровой аттенюатор ____ МГц ____ дБ выбранная установка
плечо делителя RTL-SDR ____ МГц ____ дБ
плечо делителя AD936x ____ МГц ____ дБ
кабель RTL-SDR ____ МГц ____ дБ
кабель AD936x ____ МГц ____ дБ

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

2. Настроить приёмники

Использовать только ручное усиление. Начальный уровень выбрать так, чтобы тон находился примерно в диапазоне -10...-20 dBFS и отсутствовал клиппинг.

Рекомендуемые параметры:

Параметр Начальное значение
несущая 915 МГц
смещение тона +120 кГц
RTL-SDR 2,4 Мвыб/с
AD936x 2,4 или 3,84 Мвыб/с
общая полоса анализа не более 1,8 МГц
объём записи не менее 65 536 комплексных отсчётов

До включения передатчика записать собственный шум обоих приёмников с согласованной нагрузкой 50 Ом.

3. Записать IQ

Рекомендуемые форматы:

  • RTL-SDR: чередующиеся беззнаковые отсчёты CU8;
  • AD936x/libiio: чередующиеся знаковые отсчёты CI16 с 12 значащими битами.

Ширина контейнера CI16 не равна разрядности АЦП. Число значащих бит передаётся скрипту отдельно.

4. Выполнить анализ

Проверка синтетического примера, используемого в CI:

python blocks/block_06_rf_frontend_and_ad9363/python/lab_6_9_compare_receivers.py

Анализ реальных файлов:

python blocks/block_06_rf_frontend_and_ad9363/python/lab_6_9_compare_receivers.py \
  --rtl-iq captures/rtl_915m_tone.cu8 \
  --rtl-format cu8 \
  --rtl-stored-bits 8 \
  --rtl-sample-rate-hz 2400000 \
  --ad936x-iq captures/ad936x_915m_tone.ci16 \
  --ad936x-format ci16 \
  --ad936x-stored-bits 12 \
  --ad936x-sample-rate-hz 3840000 \
  --tone-offset-hz 120000 \
  --tone-search-span-hz 20000 \
  --analysis-bandwidth-hz 1800000 \
  --quantize-bits 6,8,10,12

Формируются:

  • docs/assets/lab69_receiver_comparison_metrics.json;
  • docs/assets/lab69_receiver_comparison_sinad.png;
  • docs/assets/lab69_receiver_comparison_noise_density.png.

5. Провести свип уровня

Увеличивать затухание с шагом 5 или 10 дБ и заполнять таблицу:

Затухание/уровень Приёмник Тон, dBFS SNR SINAD SFDR BER/EVM Клиппинг
____ RTL-SDR
____ AD936x native
____ AD936x -> 8 бит

Для расширения с QPSK обязательно измерять BER и EVM. Хороший спектральный SNR не гарантирует хорошую BER при наличии CFO, импульсной помехи, компрессии или ошибки синхронизации.

6. Проверить сильную соседнюю помеху

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

Что должно быть в выводе

  1. Полная разница RTL-SDR и AD936x по SINAD и SFDR.
  2. Потеря AD936x при программном переходе к 8 битам.
  3. Остаточная разница после сравнения обоих трактов в 8-битном представлении.
  4. Уровень начала компрессии и клиппинга каждого приёмника.
  5. Что реально ограничило результат: разрядность, шум входного тракта, паразитные линии, настройка усиления или качество опорного генератора.
  6. Совпадают ли выводы по SNR с BER/EVM для модулированного сигнала.

Ограничения

Без доступа к внутренним аналоговым точкам нельзя отдельно измерить АЦП RTL2832U, тюнер и его коэффициент шума. Работа характеризует приёмник как систему. Для метрологически корректного noise figure нужен калиброванный источник шума и измерительный тракт. Без них следует говорить о практической чувствительности и оценке неопределённости, а не о точном коэффициенте шума.