# 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`