Лабораторная 6.9 — Сравнение RTL-SDR и AD936x: качество приёма и разрядность АЦП¶
Цель¶
Сравнить RTL-SDR и плату Zynq с AD936x под управлением Pluto-совместимой прошивки при одном и том же входном сигнале и разнести три составляющие результата:
- полное различие приёмных трактов;
- влияние разрядности цифровых отсчётов;
- остаточное различие трактов после программного приведения 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. Такой опыт лучше показывает пользу дополнительной разрядности: запас нужен прежде всего тогда, когда слабый полезный сигнал принимается вместе с сильной помехой.
Что должно быть в выводе¶
- Полная разница RTL-SDR и AD936x по SINAD и SFDR.
- Потеря AD936x при программном переходе к 8 битам.
- Остаточная разница после сравнения обоих трактов в 8-битном представлении.
- Уровень начала компрессии и клиппинга каждого приёмника.
- Что реально ограничило результат: разрядность, шум входного тракта, паразитные линии, настройка усиления или качество опорного генератора.
- Совпадают ли выводы по SNR с BER/EVM для модулированного сигнала.
Ограничения¶
Без доступа к внутренним аналоговым точкам нельзя отдельно измерить АЦП RTL2832U, тюнер и его коэффициент шума. Работа характеризует приёмник как систему. Для метрологически корректного noise figure нужен калиброванный источник шума и измерительный тракт. Без них следует говорить о практической чувствительности и оценке неопределённости, а не о точном коэффициенте шума.