Lab046C: validate full 1400 MHz RF object transport

This commit is contained in:
LittleSam129
2026-09-02 16:18:40 +03:00
parent d985030f04
commit 52197a4d85
2 changed files with 151 additions and 20 deletions

View File

@@ -1024,3 +1024,76 @@ commit и push не выполнялись.
STOP. Новый RF, повтор Lab046C, изменение порога, JPEG, QPSK и изменение FEC
без отдельной постановки запрещены.
# Запись 032
## Дата
2 сентября 2026 года
## Тема
Lab046C: успешная полная передача объекта 16384 байта через аппаратный
радиоканал 1400 МГц, RESULT A.
## Выполнено
После отдельной точной авторизации выполнен один непрерывный процесс передачи
без повтора. Новый криптографически случайный объект 16384 байта разбит
существующей архитектурой Lab046 на 68 фрагментов и передан 68
последовательными защищёнными BPSK-кадрами. RF равна 1400 МГц, частота
дискретизации 8 МГц, символьная скорость 20 ксимв/с, цифровое смещение несущей
+50 кГц. Усиления сохранены: TX VGA 10 дБ, RX LNA/VGA 24/24 дБ, RF amplifier
и Bias-Tee выключены. MASTER reg29 `0x26`, SLAVE CLKIN `DETECTED`, SLAVE reg29
`0x26`; общий опорный генератор прошёл проверку.
Поток передачи содержит 156 835 200 комплексных отсчётов, 313 670 400 байт и
19,6044 с сигнала. Приём содержит 192 000 000 комплексных отсчётов,
384 000 000 байт и 24,0 с сигнала. Приём начался на 0,7525116 с раньше
передачи и закончился на 3,6341200 с позже. RX overruns 0, TX underruns 0,
clipping 0, near limit 0. После опыта оба CLKOUT выключены, оставшихся
процессов `hackrf_transfer` нет.
До полного декодирования по фону до передачи зафиксирован порог первого
каскада `Q99.9 + 4 * MAD`: Q99.9 `0.023181289434432983`, MAD
`0.0025865877978503704`, threshold `0.033527640625834465`. На независимом фоне
после передачи maximum `0.030997175723314285`, кандидатов 0. Порог после
начала декодирования не менялся. Исторический строгий
`IQ_PREAMBLE_THRESHOLD = 0.65`, Lab045, PHY и FEC не менялись.
Независимый приёмник обработал весь 24-секундный файл без смещений и периода
кадров передатчика, ожидаемого числа 68, пакетов, кодированных битов и
исходного объекта. Получено 295469 локальных максимумов, 35009 кандидатов
первого каскада и 95 обработанных неперекрывающихся гипотез. PHY-заголовок
PASS/FAIL `68/27`, FEC attempts/PASS/FAIL `68/68/0`, CRC PASS/FAIL `68/0`,
действительных кадров 68. Поиск завершился по концу записи и списка
кандидатов, а не по известному количеству кадров.
До открытия опорных данных передатчика `ObjectAssembler` независимо принял 68
уникальных фрагментов без дубликатов, конфликтов и пропусков: **OBJECT
COMPLETE = YES**. Только после фиксации этого вердикта выполнено сравнение с
передатчиком. Совпали 68/68 кадров, пропущено 0, ложных CRC PASS 0. До FEC
обнаружено 787 ошибок кодированных бит, после FEC 0 ошибок протокольных бит.
Восстановленный объект имеет 16384 байта, 0 ошибочных байт и 0 ошибочных бит.
SHA-256 исходного и восстановленного объектов совпадает:
`b5a27caaa3f03dfc468e71a857a06f18cf0259ca6ea21d3c42ccfde7168d1dfe`.
SNR min/median/max для 68 кадров равен `8.302870/8.909278/9.837726 дБ`, ошибки
преамбулы `0/3/9` из 1280, CFO
`-0.214661/0.016493/0.281551 Гц`. Медианный SNR по третям сеанса снижался
`9.29 -> 8.86 -> 8.57 дБ`, но потерь кадров и CRC FAIL не было. Итог:
**LAB046C HARDWARE RESULT = A; FULL RF OBJECT TRANSPORT = PASS; 68/68 FRAMES;
OBJECT COMPLETE = YES; SHA MATCH = YES; OBJECT BYTE ERRORS = 0.**
Большие сформированные артефакты оставлены вне Git в
`C:\Users\user\Documents\SDR_Rover_Lab046_raw\20260902_151819_1400MHz_full`.
Независимый проверяющий только чтением сверил аппаратные и независимые JSON,
арифметику порога, счётчики, размеры, SHA-256, побайтовое совпадение объектов,
временное покрытие RX над TX и очистку; расхождений не найдено. После опыта
`python tools/quick_gate.py` прошёл, `python -m pytest tests/ -q` дал 512
passed и 0 failed, `git diff --check` прошёл.
## Следующий этап
STOP. Новый RF, JPEG, видео, QPSK, 180 МГц и FEC 12+3 без отдельной постановки
не начинать.