Lab046C: record first continuous RF object attempt
This commit is contained in:
@@ -8,12 +8,102 @@
|
||||
|
||||
**ПРОГРАММНАЯ ПРОВЕРКА НЕПРЕРЫВНОГО СЫРОГО IQ-ПОТОКА = PASS.**
|
||||
|
||||
**RF TX = 0.**
|
||||
**LAB046C HARDWARE RESULT = C.**
|
||||
|
||||
**АППАРАТНАЯ ПРОВЕРКА = НЕ ВЫПОЛНЯЛАСЬ.**
|
||||
**RF TX COUNT = 1.**
|
||||
|
||||
Lab046 — только программная лаба. HackRF и `hackrf_transfer` не
|
||||
запускались, эфирной передачи нет. Ни JPEG, ни видео, ни QPSK.
|
||||
**PREAMBLE CANDIDATES = 0. VALID FRAMES = 0. CRC PASS = 0.**
|
||||
|
||||
**OBJECT COMPLETE = NO.**
|
||||
|
||||
**POST-RUN TX-REFERENCE DIAGNOSTIC = 68/68 WAVEFORM TRACES DETECTED.**
|
||||
|
||||
**OFFICIAL RESULT CHANGED BY POST-RUN DIAGNOSTICS = NO.**
|
||||
|
||||
Lab046A/B остаются только программными лабами. Для Lab046C выполнен ровно один
|
||||
заранее разрешённый непрерывный RF-сеанс без повтора. Ни JPEG, ни видео, ни
|
||||
QPSK не запускались.
|
||||
|
||||
## Lab046C: подготовка аппаратного непрерывного объекта
|
||||
|
||||
Добавлен `experiments/lab046c_hackrf_bpsk_object.py`, который не меняет
|
||||
протокол и только связывает готовые Lab043--Lab046B. Подготовительный режим
|
||||
создаёт новый криптографически случайный объект 16384 байта вне Git, разбивает
|
||||
его существующим Lab046 API на 68 фрагментов и последовательно записывает
|
||||
68 полных Lab045 waveform в один `tx_stream.cs8`. Полные 313 670 400 байт не
|
||||
удерживаются в ОЗУ одновременно; SHA-256 объекта и потока сохраняются в
|
||||
`tx_metadata.json`.
|
||||
|
||||
24-секундный RX был запланирован как 192 000 000 complex cs8 samples,
|
||||
384 000 000 байт. Такой capture даёт 0,75 с до передачи и около 3,65 с после
|
||||
потока длительностью 19,6044 с. Приёмный API получает только путь к сырому
|
||||
cs8 и PHY safety limits. Он читает файл через memmap окнами `complex64`, ищет
|
||||
локальные PRBS7-кандидаты без обязательного global peak/second gate, получает
|
||||
длину кадра из принятого PHY header и передаёт прошедшие CRC payload в
|
||||
`ObjectAssembler`. TX start, границы 68 waveform, ожидаемое число фрагментов,
|
||||
пакеты, coded bits и исходный объект приёмнику не передаются.
|
||||
|
||||
Аппаратный runner фиксирует доказанные serial и PHY-параметры, запускает RX
|
||||
раньше TX, содержит один `TransmitGuard.register_transmit()` и cleanup в
|
||||
`finally`. `--preflight-only` не регистрирует передачу и выполняет только
|
||||
inventory/common-clock gate с последующим CLKOUT OFF. RF-режим требует два
|
||||
отдельных CLI-ключа. После отдельной точной авторизации он был выполнен один
|
||||
раз; повторный запуск не выполнялся и не разрешён.
|
||||
|
||||
Фактическая подготовка 1 сентября 2026 года создала внешний каталог
|
||||
`C:\Users\user\Documents\SDR_Rover_Lab046_raw\20260901_145339_bpsk_object`:
|
||||
|
||||
- `tx_object.bin`: 16384 байта, SHA-256
|
||||
`f7568a5d1a6dc5dd907fa1e971a171578315de740bd6788136f447e409fc6bf8`;
|
||||
- `tx_stream.cs8`: 313670400 байт, 156835200 complex samples, 19,6044 с,
|
||||
SHA-256 `8941eb231f1f2f99cde51f3cc5426472dbedf1a61675543e7774faec4b935f5e`;
|
||||
- `tx_metadata.json`: `LAB046C_PREPARATION_ONLY`, `rf_tx_count = 0`.
|
||||
|
||||
Software gate подготовки: quick gate PASS с 482 тестами и 8 функциональными
|
||||
лабами; полный `pytest` = 482 passed. Безопасный common-clock preflight также PASS:
|
||||
MASTER reg29 `0x26`, SLAVE CLKIN `DETECTED` после 141,51 мс, SLAVE reg29
|
||||
`0x26`; после проверки оба CLKOUT выключены, процессов `hackrf_transfer` нет,
|
||||
`RF TX = 0` на этапе подготовки.
|
||||
|
||||
## Lab046C: первый аппаратный результат
|
||||
|
||||
Выполнен ровно один непрерывный RF TX всего `tx_stream.cs8`; автоматического
|
||||
или ручного повтора не было. MASTER/TX
|
||||
`000000000000000097c063dc323b97d3`, SLAVE/RX
|
||||
`000000000000000097c063dc2e5327d3`, RF 1080 МГц, Fs 8 MS/s, BPSK 20 ксимв/с,
|
||||
TX VGA 10 дБ, RX LNA/VGA 24/24 дБ, RF amp и bias OFF. Common clock прошёл
|
||||
fail-closed gate: MASTER reg29 `0x26`, SLAVE CLKIN `DETECTED`, SLAVE reg29
|
||||
`0x26`. Передача длилась 19,60632 с и полностью находилась внутри RX capture
|
||||
длительностью 24,00386 с. USB-журналы чистые: TX underruns 0, RX overruns 0.
|
||||
|
||||
Независимый приёмник без TX oracle вернул официальный `RESULT C`:
|
||||
|
||||
- `PREAMBLE CANDIDATES = 0`;
|
||||
- `VALID FRAMES = 0`;
|
||||
- `PHY HEADER PASS = 0`;
|
||||
- `CRC PASS = 0`;
|
||||
- `OBJECT COMPLETE = NO`;
|
||||
- восстановленный объект не создавался.
|
||||
|
||||
Рабочий порог PRBS7 оставался `0.65`; максимальная независимая корреляция
|
||||
равна `0.126562`. Фоновая медиана мощности `-34.467535 dBFS`, кратковременный
|
||||
максимум `-34.307678 dBFS`; максимальный средний подъём на интервале 19,6 с
|
||||
всего `0.012049 dB`. Обычный power/PSD-анализ не показывает заметной передачи.
|
||||
|
||||
После завершения и фиксации независимого `RESULT C` выполнена разрешённая
|
||||
read-only диагностика с TX reference. Она обнаружила следы всех 68 waveform с
|
||||
точным периодом 2 306 400 samples. Нормированная корреляция в выровненных
|
||||
позициях: min `0.065784`, median `0.089991`, max `0.122379`; контроль со
|
||||
смещением: median `0.004275`, max `0.010075`. Медианное преимущество 26,46 дБ,
|
||||
все 68 aligned значений выше максимума контроля.
|
||||
|
||||
Эта post-run диагностика использует знание TX только после официального
|
||||
решения и **не** превращает опыт в PASS: `OBJECT TRANSPORT PASS` и
|
||||
`LAB046C COMPLETE SUCCESS` не заявляются. TX-файл, его спектр около +50 кГц,
|
||||
первый/средний/последний self-decode и runner проверены; дефекта формирования
|
||||
или управления, объясняющего результат, не найдено. Сохранённый официальный
|
||||
исход остаётся `LAB046C HARDWARE RESULT = C`, `RF TX COUNT = 1`,
|
||||
`OBJECT COMPLETE = NO`.
|
||||
|
||||
## Назначение
|
||||
|
||||
@@ -292,7 +382,7 @@ Goodput 6,69 кбит/с — это честная baseline при 20 ксимв
|
||||
- Полный тракт `объект → фрагменты → кадр Lab045 → канал → приём → сборка`
|
||||
проверен для всех шести сценариев значениями выше.
|
||||
|
||||
## Software gate
|
||||
## Software gate Lab046B на момент его фиксации
|
||||
|
||||
- `python tools/quick_gate.py`: PASS; 468 тестов ядра, 7 функциональных
|
||||
проверок лабораторий выполнено, 13 штатно пропущено.
|
||||
@@ -301,9 +391,11 @@ Goodput 6,69 кбит/с — это честная baseline при 20 ксимв
|
||||
`.pytest_cache`; на выполнение и результат тестов оно не повлияло.
|
||||
- `git diff --check`: чист.
|
||||
|
||||
Актуальный общий gate после добавления Lab046C указан в начале документа.
|
||||
|
||||
## Ограничения и следующий шаг
|
||||
|
||||
RF TX = 0, аппаратная проверка не проводилась. Erasure-код 12+3 GF(256) не
|
||||
задействован (будущее восстановление потери целых фрагментов). Оптимизация
|
||||
преамбулы/guard на серию кадров, QPSK, JPEG и видео в этой лабе не делались.
|
||||
Следующий этап определяется после анализа (Lab046 первым смотрит ChatGPT).
|
||||
Для Lab046A/B RF TX = 0; первый аппаратный Lab046C завершён с RESULT C и одним
|
||||
RF TX без повтора. Erasure-код 12+3 GF(256) не задействован. Порог PRBS7,
|
||||
gain, PHY, FEC и detector после результата не менялись. Следующий этап
|
||||
определяется отдельной постановкой; новый RF-сеанс автоматически не разрешён.
|
||||
|
||||
Reference in New Issue
Block a user