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

Лабораторная 11.28 — Runtime QPSK через внешний RTL-SDR

Цель

Передать детерминированный кадр QPSK из PL двойного модема через AD9361/TX1, записать его независимым RTL-SDR и измерить BER, EVM, остаточный сдвиг частоты и ограничение относительно точного содержимого RTL ROM.

Команды

Используйте маломощный антенный тракт или рассчитанный ослабленный кабельный тракт. Измеренный антенный прогон использовал:

python blocks/block_11_integrated_sdr_project/python/lab_11_22_capture_runtime_pl_rtl_monitor_wav.py `
  --modulation qpsk `
  --bit-bin-path tmp/bridge_txrx_mux.qpsk.cdcfix_20260707.wordswap.bit.bin `
  --center-frequency-hz 868300000 `
  --tx-attenuation-db -50 `
  --rtl-tuner-gain-db10 300 `
  --start-offset 62 `
  --qpsk-symbol-count 140 `
  --runtime-repeat-count 30 `
  --runtime-repeat-gap-ms 40 `
  --rebind-runtime-dds-driver `
  --rebind-runtime-adc-driver `
  --runtime-dds-ratecntrl 3

Проанализируйте созданный манифест:

python blocks/block_11_integrated_sdr_project/python/lab_11_28_read_rtl_wav_ota_qpsk.py `
  --manifest datasets/lab11_22_runtime_pl_rtl_monitor/manifest_live_20260707_qpsk_ota_cdcfix_02.yaml

Расчёт метрик

Анализатор использует точный QPSK RTL ROM в качестве эталона. Он убирает одну глобальную оценку DC, обнаруживает энергию пакета по порогу медиана/MAD, применяет согласованный фильтр RRC и требует нормированную корреляцию с эталоном >= 0,8. Затем он оценивает CFO по линейному наклону фазы rx * conj(reference), убирает один комплексный коэффициент усиления/фазы и принимает решения по знакам I/Q.

Эти метрики получены с опорой на эталон. Наклон CFO и коэффициент усиления/фазы подгоняются по всему известному кадру из 140 символов, а из кандидатов (фазы отсчёта и пики корреляции) анализатор оставляет тот, у которого меньше всего битовых ошибок. Приёмник не может сделать ни того, ни другого: полезная нагрузка ему неизвестна. Поэтому эти числа: верхняя граница качества линии, а не BER приёмника.

С 2026-09-24 анализатор для каждого пакета печатает также оценку приёмника: кандидат выбирается только по корреляции с синхрословом, CFO/фаза/усиление берутся только из 16 синхросимволов, фазу на полезной нагрузке отслеживает PLL по решениям, а BER считается по 124 символам полезной нагрузки (248 бит). В таблицах ниже приведены обе оценки.

Точные формулы BER, FER, EVM, SNR по EVM, CFO, ограничения и доверительных интервалов определены на странице Расчёт метрик цифрового канала. В частности, snr_from_evm_db = -20 log10(EVM_RMS): диагностическая оценка при доминировании шума, а не калиброванный RF SNR.

Измеренный результат по нескольким пакетам: 2026-07-07

Метрика прогон -55 дБ прогон -50 дБ
Заданные / обнаруженные пакеты 40 / 40 30 / 30
Пакеты с BER=0 23 / 40 30 / 30
Доля ошибочных кадров 42,5 % 0 %
Сравнено бит / битовых ошибок 11 200 / 18 8 400 / 0
Оценка приёмника: пакетов с BER=0 18 / 40 30 / 30
Оценка приёмника: бит нагрузки / битовых ошибок 9 920 / 39 7 440 / 0
Оценка приёмника: общий BER (Уилсон 95 %) 3,93e-3 (2,88e-3…5,37e-3) 0
Суммарный BER 1,607143e-3 0
Медианный EVM RMS 35,684 % 21,317 %
Медианный SNR по EVM 8,95 дБ 13,43 дБ
Медианный остаточный сдвиг частоты +1963,9 Гц +1963,6 Гц
Медианная нормированная корреляция 0,940 0,975
Доля ограничения 0 0

При -50 дБ 95-процентный интервал Уилсона для доли пакетов без ошибок: 88,65 %…100 %. При нуле ошибок на 8 400 сравнённых битах верхняя граница по правилу трёх: BER < 3,571429e-4; это граница по размеру выборки, а не измеренный пол BER.

При -50 дБ обе оценки совпадают. При -55 дБ оценка приёмника находит более чем вдвое больше ошибок, чем оценка с опорой на эталон (39 битовых ошибок на меньшем числе бит и 18 чистых пакетов вместо 23): вблизи предела по шуму подгонка фазы по известной нагрузке скрывает ошибки, которые делает реальный приёмник.

Графики, файлы доказательств и ограничения см. в reports/hardware/qpsk-rtl-sdr-qualification-20260707.md.

Квалификация между сессиями: 2026-07-07

Три дополнительные независимые сессии stock→runtime→stock использовали ту же нагрузку и рабочую точку -50 дБ. В каждой сессии задавалось 30 пакетов.

Сессия Обнаружено / задано Пакеты BER=0 Битовых ошибок / сравнено бит Медианный EVM Медианный CFO Безопасная перезагрузка в stock
01 30 / 30 30 / 30 0 / 8 400 18,396 % +1964,1 Гц да
02 30 / 30 30 / 30 0 / 8 400 19,013 % +1975,1 Гц да
03 30 / 30 30 / 30 0 / 8 400 19,728 % +1966,1 Гц да
Вместе 90 / 90 90 / 90 0 / 25 200 19,038 % по кадрам +1968,7 Гц по кадрам 3 / 3

Число бит в этой таблице: оценка с опорой на эталон. Оценка приёмника (синхрослово + PLL, только нагрузка) тоже даёт 30 / 30 чистых пакетов и 0 битовых ошибок в каждой сессии: суммарно 0 / 22 320 бит нагрузки, граница по правилу трёх BER < 1,344e-4.

Совокупный 95-процентный интервал Уилсона для доли пакетов без ошибок: 95,91 %…100 %. Граница BER по правилу трёх при нуле ошибок: BER < 1,190476e-4. Интервал успеха по сессиям составляет лишь 43,85 %…100 %, потому что три сессии: всё ещё малая выборка на уровне сессий.

Пересоберите агрегат командой:

python tools/aggregate_lab11_28_sessions.py `
  "docs/assets/lab1128_lab11_22_runtime_pl_rtl_monitor_live_20260707_qpsk_ota_crosssession_*_metrics.json" `
  --json-out docs/assets/lab1128_qpsk_ota_crosssession_qualification_20260707.json `
  --plot-out docs/assets/lab1128_qpsk_ota_crosssession_summary_20260707.png

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