Files
SDR-Rover/docs/lab062_rf_result.md

9.9 KiB
Raw Blame History

Lab062 — результат единственного RF-сеанса

Передача была запущена один раз. Приёмник сохранил полную трёхсекундную IQ-запись без переполнений и цифрового клиппинга. Однако hackrf_transfer во время передачи сообщил об одном кратком underrun: буфер передатчика один раз опустел на интервал до 16 672 байт. В итоговой строке утилита напечатала ноль underrun, но промежуточную ненулевую строку игнорировать нельзя. Поэтому этот сеанс нельзя считать чистым сравнением legacy и t2.

Оба строгих варианта приёмника обработали одну и ту же запись и выдали 0 из 16 пакетов. T2 не дал выигрыша в пакетах. Установлено, что передача состоялась, общий тактовый сигнал перед ней был исправен, RX-файл полный, а строгий результат равен 0/16 в обоих режимах. Нельзя установить, каким был бы результат без underrun, и нельзя приписывать все ошибки самому T2 или эфирному каналу. Аналоговая компрессия также остаётся неизвестной без измерительного прибора.

Условия

Параметр Значение
RF 1 400 000 000 Гц
Символьная скорость 500 000 символов/с
Частота дискретизации 8 000 000 комплексных отсчётов/с
Цифровая несущая +50 000 Гц
Пакеты 16 полных PHY-пакетов по 256 байт payload
TX 1 476 096 отсчётов, 0,184512 с, VGA 10 дБ
RX LNA/VGA 24/24 дБ, 3 с
RF amplifier / Bias-Tee OFF / OFF
Геометрия около 1,2 м, LOS, помещение; TX возле окна, RX на столе
Антенны имеющиеся антенны на 1400 МГц, одинаковая поляризация, неподвижны
Опора 10 МГц TCXO → MASTER → MASTER CLKOUT → SLAVE CLKIN

SHA-256 передаваемого файла: e84bbce227426c0aac13a48ded1286ca4a44fc6e3efce01f6e5a513217c87ff5.

Аппаратный результат

  • перед TX повторно получены MASTER reg29 = 0x26, SLAVE reg29 = 0x26, SLAVE CLKIN = DETECTED;
  • выполнен один TX-сеанс, автоматических повторов нет;
  • RX: 24 000 000 комплексных отсчётов, 48 000 000 байт, 3,000 с;
  • SHA-256 RX: ce0bd603e4ca356af67d504ee11c9e9f38171f31c7427fbe61216a28126b2b32;
  • RX overruns: 0 во всех пяти строках журнала;
  • RX clipping: 0;
  • TX underruns: промежуточный максимум 1, longest 16672 bytes; финальная строка — 0;
  • cleanup: оба CLKOUT выключены без зарегистрированных ошибок, SDR-процессы после сеанса — CLEAR;
  • текущее состояние: RF TX = 0.

Из-за ненулевой промежуточной строки underrun статус сеанса: INVALID_TX_UNDERRUN. Полученные файлы сохранены, повтор не выполнялся.

Строгое декодирование одной записи

Стадия legacy T2
CANDIDATES 144 144
TRUE PACKETS FOUND 0 0
HEADER ACCEPTED 3 3
FEC STARTED 3 3
FEC PASS 3 3
CRC STARTED 3 3
CRC PASS 0 0
PACKET OUTPUT 0 0
EXACT PAYLOAD MATCH 0 0

Детектор в обоих запусках получил 209 956 первичных кандидатов, дешёвая ступень отклонила 209 812, после группировки строгий декодер проверил 144 кандидата. Переполнения очереди кандидатов не было. Никакого fallback между legacy и t2 не выполнялось.

  • PASSED BY BOTH = []
  • PASSED ONLY BY LEGACY = []
  • PASSED ONLY BY T2 = []
  • FAILED BY BOTH = [1, 2, …, 16]

Таблица 16 фактических границ

Начало потока найдено только после строгого вердикта корреляцией с первым TX-пакетом: отсчёт 4 256 091, отношение пика к медиане 21,739. Знание TX не передавалось детектору и не использовалось для повторной настройки приёмника. Во всех строках H/F/C/O означают header/FEC/CRC/output; 1 — проход, 0 — непроход. Ошибки символов и оценки частоты — диагностические, по известной границе и известным переданным символам.

№ legacy H/F/C/O T2 H/F/C/O Preamble errors Header errors Payload errors до FEC CFO нач., Гц T2 фин., Гц T2 lock
1 0/0/0/0 0/0/0/0 108 20 367 -2.511 +1.939 не определён
2 0/0/0/0 0/0/0/0 135 11 377 +16.850 -2.223 не определён
3 0/0/0/0 0/0/0/0 466 115 2229 -266.238 -265.796 не определён
4 0/0/0/0 0/0/0/0 515 104 2266 +297.250 +293.800 не определён
5 0/0/0/0 0/0/0/0 108 27 369 -1.712 -0.835 не определён
6 1/1/0/0 1/1/0/0 112 10 345 +4.676 -3.164 не определён
7 0/0/0/0 0/0/0/0 113 7 344 +2.113 +1.094 не определён
8 0/0/0/0 0/0/0/0 91 19 368 +0.964 +0.354 не определён
9 0/0/0/0 0/0/0/0 105 21 367 -2.679 +0.191 не определён
10 0/0/0/0 0/0/0/0 116 7 345 -0.290 +0.947 не определён
11 0/0/0/0 1/1/0/0 109 9 392 +0.757 -0.142 не определён
12 0/0/0/0 0/0/0/0 297 110 2181 -223.050 -222.389 не определён
13 0/0/0/0 0/0/0/0 304 36 524 -0.161 -2.081 не определён
14 1/1/0/0 0/0/0/0 314 127 2091 +228.209 +224.928 не определён
15 1/1/0/0 1/1/0/0 131 7 395 -9.960 +2.284 не определён
16 0/0/0/0 0/0/0/0 100 23 355 +13.157 -0.868 не определён

В реализации T2 нет отдельного детектора lock, поэтому поле нельзя честно заменить на PASS или FAIL. Сохранены начальное состояние частоты и конечное состояние петли.

Физическое качество по методике Lab058

Функции analyze_values и channel_metrics из Lab058 применены отдельно к каждому полному пакету. Для оценки использованы диагностические границы и чередующиеся обучающие/проверочные участки с защитными краями. Это измерение сделано после строгого результата и не меняет 0/16.

Метрика Lab062 Lab056, 500K Разница по смыслу
Диагностическая доля ошибочных символов 0,099287 0,034959 Lab062 хуже
Нормированное RMS-отклонение, EVM 1,220401 0,845350 Lab062 хуже
Matched/residual -1,730051 дБ +1,464846 дБ Lab062 хуже на 3,194897 дБ
Неравномерность усиления, p95–p05 медиана 6,660341 дБ среднее 5,471382 дБ Lab062 больше

Для Lab062 разброс неравномерности между пакетами составил 6,236828…10,617549 дБ. Остаток включает шум, искажения канала и возможное влияние underrun; называть его чистым шумом нельзя. Отдельная диагностика именно выходных символов T2 дала SER 0,186626 и RMS 1,699461; это другой срез данных, поэтому он не подменяет приведённые выше сопоставимые метрики Lab058.

Инженерный вывод

Чистое сравнение legacy и T2 не состоялось из-за зафиксированного TX underrun. Фактический строгий результат существующей записи — 0/16 для обоих режимов, выигрыш T2 равен нулю. В записи видны неоднородные повреждения пакетов и заметно худшее качество символов, чем у 500K-сегментов Lab056, но эти наблюдения нельзя отделить от аппаратной ошибки передачи.

Следующий одиночный шаг: без RF локализовать момент underrun относительно границ пакетов и проверить, совместимы ли провалы качества с его положением. Новый RF-сеанс, Lab063, изменение PHY или усилений этим отчётом не разрешаются.

LAB062 COMMIT = NOT PERFORMED

PUSH = NOT PERFORMED

RF TX = 0