Lab046C: recover short 1400 MHz capture offline

This commit is contained in:
LittleSam129
2026-09-02 12:23:14 +03:00
parent 9b906c622d
commit d985030f04
4 changed files with 664 additions and 8 deletions

View File

@@ -959,3 +959,68 @@ notices. Финальный read-only verifier независимо сверил
менять задним числом и второй улучшенный pass автоматически не запускать.
Повторный RF TX, gain ladder, JPEG, video, QPSK, erasure FEC и ARQ без новой
отдельной постановки запрещены.
# Запись 031
## Дата
2 сентября 2026 года
## Тема
Lab046C: независимая повторная обработка короткой записи 1400 МГц с отдельным
статистическим допуском кандидатов, без нового RF.
## Выполнено
Использована сохранённая запись
`20260901_172749_1400MHz/rx_1400mhz.cs8`: 19 200 000 комплексных отсчётов cs8,
2,4 с при 8 МГц, SHA-256
`06ab0867865bca462a21c42c9f3bc7e519e336108f7b5e98e7b283f842387a99`.
HackRF не запускался, `RF TX = 0`. Исторический порог
`IQ_PREAMBLE_THRESHOLD = 0.65`, Lab045, FEC и PHY не изменялись. Исходный
аппаратный `CONTROL RESULT = C` сохранён без переписывания.
До полного независимого декодирования зафиксировано отдельное правило первого
каскада только по фону до передачи `0,00 ... 0,50 с`:
`pre-TX local-peak Q99.9 + 4 * local-peak MAD`. Q99.9 равен
`0.022788675501942635`, MAD равен `0.0027075146790593863`, итоговый порог равен
`0.03361873421818018`. На независимом контрольном фоне после передачи
`1,60 ... 2,40 с` максимум равен `0.02711654081940651`, кандидатов 0. Порог
после просмотра результата не менялся.
Перед полным проходом независимая проверка выявила небезопасную при отказе ошибку общей точки
приёма: противоречивый результат `accepted=True, CRC_FAIL` мог увеличить
`VALID_FRAMES`. Добавлена обязательная повторная проверка `CRC PASS`; сценарий
после исправления даёт `VALID_FRAMES = 0`. Независимая повторная проверка
признала исправление чистым.
Выполнен ровно один полный проход всей записи без смещений TX, ожидаемого числа
кадров, сигнала TX, пакетов, полезной нагрузки и кодированных битов. Получено
29 205 локальных максимумов и 1 279 кандидатов первого каскада. Строгий каскад
обработал 28 кандидатов: PHY-заголовок PASS/FAIL `3/25`, FEC attempts/PASS/FAIL
`3/3/0`, CRC PASS/FAIL `3/0`, `VALID FRAMES = 3`. Поиск завершился по концу
записи и списка кандидатов; ограничения безопасности не сработали.
Независимый результат записан до открытия опорных данных передатчика. Только
после этого три действительных кадра сопоставлены с тремя переданными:
пропущено 0, `FALSE CRC PASS = 0`, ошибки положения `0/-1/+2` отсчёта. Ошибки
до FEC составили `17 + 19 + 29 = 65` бит, после FEC 0 бит, в полезной нагрузке
0 байт и 0 бит. Независимая проверка готовых JSON и трёх пар полезной
нагрузки/пакета
расхождений не выявила. `1400 MHz OFFLINE REPROCESSING = PASS`,
`RF PATH ASSESSMENT = HEALTHY`.
Итоговый программный шлюз перед полным проходом: `python tools/quick_gate.py`
код 0 и 512 проверок; `python -m pytest tests/ -q` = 512 passed;
`git diff --check` код 0 с информационными уведомлениями LF/CRLF. Git add,
commit и push не выполнялись.
Подробный отчёт и машинно-читаемые результаты сохранены в
`docs/lab046c_1400mhz_offline_reprocessing.md` и
`data/processed/lab046c_1400mhz_offline/`.
## Следующий этап
STOP. Новый RF, повтор Lab046C, изменение порога, JPEG, QPSK и изменение FEC
без отдельной постановки запрещены.