Lab046C: validate full 1400 MHz RF object transport
This commit is contained in:
@@ -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 без отдельной постановки
|
||||
не начинать.
|
||||
|
||||
@@ -8,33 +8,91 @@
|
||||
|
||||
**ПРОГРАММНАЯ ПРОВЕРКА НЕПРЕРЫВНОГО СЫРОГО IQ-ПОТОКА = PASS.**
|
||||
|
||||
**LAB046C HARDWARE RESULT = C.**
|
||||
**LAB046C HARDWARE RESULT = A (FULL 1400 MHZ RF OBJECT TRANSPORT).**
|
||||
|
||||
**RF TX COUNT = 1.**
|
||||
**FULL RF OBJECT TRANSPORT = PASS.**
|
||||
|
||||
**PREAMBLE CANDIDATES = 0. VALID FRAMES = 0. CRC PASS = 0.**
|
||||
**RF TX PROCESS COUNT FOR THIS RESULT = 1.**
|
||||
|
||||
**OBJECT COMPLETE = NO.**
|
||||
**VALID FRAMES = 68/68. CRC PASS = 68. CRC FAIL = 0.**
|
||||
|
||||
**POST-RUN TX-REFERENCE DIAGNOSTIC = 68/68 WAVEFORM TRACES DETECTED.**
|
||||
**PRE-FEC CODED BIT ERRORS = 787. POST-FEC PROTOCOL BIT ERRORS = 0.**
|
||||
|
||||
**OFFICIAL RESULT CHANGED BY POST-RUN DIAGNOSTICS = NO.**
|
||||
**OBJECT COMPLETE = YES. OBJECT SIZE = 16384 BYTES.**
|
||||
|
||||
**OFFLINE DETECTOR STUDY = COMPLETE.**
|
||||
**SHA MATCH = YES. OBJECT BYTE ERRORS = 0. OBJECT BIT ERRORS = 0.**
|
||||
|
||||
**OFFLINE REPROCESSING OF ORIGINAL RX CAPTURE = FAIL.**
|
||||
**HISTORICAL FIRST LAB046C AT 1080 MHZ = RESULT C.**
|
||||
|
||||
**OFFLINE VALID FRAMES = 0. OFFLINE OBJECT COMPLETE = NO.**
|
||||
**THE HISTORICAL 1080 MHZ RESULT WAS NOT RECLASSIFIED.**
|
||||
|
||||
**ORIGINAL HARDWARE RESULT CHANGED = NO.**
|
||||
**INDEPENDENT 1400 MHZ THRESHOLD = 0.033527640625834465.**
|
||||
|
||||
**CURRENT SOFTWARE GATE = PASS: quick_gate 506, pytest 506 passed,
|
||||
**CURRENT SOFTWARE GATE = PASS: quick_gate 512, pytest 512 passed,
|
||||
git diff --check clean.**
|
||||
|
||||
Lab046A/B остаются только программными лабами. Для Lab046C выполнен ровно один
|
||||
заранее разрешённый непрерывный RF-сеанс без повтора. Ни JPEG, ни видео, ни
|
||||
Lab046A/B остаются только программными лабами. В истории Lab046C отдельно
|
||||
сохранены первый полный аппаратный результат C на 1080 МГц и новый полный
|
||||
аппаратный результат A на 1400 МГц. В новом опыте выполнен ровно один заранее
|
||||
разрешённый непрерывный процесс передачи без повтора. Ни JPEG, ни видео, ни
|
||||
QPSK не запускались.
|
||||
|
||||
## Lab046C: полный аппаратный результат 1400 МГц, RESULT A
|
||||
|
||||
2 сентября 2026 года через два HackRF передан новый криптографически случайный
|
||||
объект размером 16384 байта. Он был разбит существующей архитектурой Lab046 на
|
||||
68 фрагментов и передан 68 последовательными защищёнными BPSK-кадрами одним
|
||||
непрерывным процессом. Частота равна 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`. Приём начался на
|
||||
`0.7525116 с` раньше передачи и закончился на `3.6341200 с` позже неё. Файл
|
||||
передачи содержит 156 835 200 комплексных отсчётов, 313 670 400 байт и
|
||||
19,6044 с сигнала; процесс передачи занял 19,6408497 с. Приём содержит
|
||||
192 000 000 комплексных отсчётов, 384 000 000 байт и 24,0 с сигнала; процесс
|
||||
приёма занял 24,0274813 с. Переполнения приёмника, опустошения передатчика,
|
||||
ограничение АЦП и приближение к пределу отсутствуют.
|
||||
|
||||
До полного декодирования по фону до передачи зафиксировано правило первого
|
||||
каскада `Q99.9 локальных максимумов + 4 * MAD`: Q99.9
|
||||
`0.023181289434432983`, MAD `0.0025865877978503704`, порог
|
||||
`0.033527640625834465`. После начала декодирования порог не менялся. На
|
||||
независимом фоне после передачи максимум равен `0.030997175723314285`,
|
||||
кандидатов выше порога нет. Исторический строгий порог
|
||||
`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`.
|
||||
Восстановленный объект размером 16384 байта был записан до открытия опорных
|
||||
данных передатчика. Только после этого выполнено сравнение: все 68 кадров
|
||||
совпали с 68 переданными, пропущенных кадров и ложных CRC PASS нет. Ошибки до
|
||||
FEC составили 787 кодированных бит, после FEC 0 протокольных бит. Ошибки
|
||||
объекта равны 0 байт и 0 бит. SHA-256 исходного и восстановленного объектов:
|
||||
`b5a27caaa3f03dfc468e71a857a06f18cf0259ca6ea21d3c42ccfde7168d1dfe`.
|
||||
|
||||
Для 68 принятых кадров SNR min/median/max равен
|
||||
`8.302870/8.909278/9.837726 дБ`, ошибки преамбулы `0/3/9` из 1280, CFO
|
||||
`-0.214661/0.016493/0.281551 Гц`. Медианный SNR по третям сеанса плавно
|
||||
снижался `9.29 -> 8.86 -> 8.57 дБ`, но все кадры прошли FEC и CRC. Ошибки
|
||||
начала кадра находились в пределах от -4 до +3 отсчётов.
|
||||
|
||||
Фактические внешние артефакты сохранены в
|
||||
`C:\Users\user\Documents\SDR_Rover_Lab046_raw\20260902_151819_1400MHz_full`.
|
||||
Большие `tx_stream.cs8`, `rx_stream.cs8`, `tx_object.bin` и
|
||||
`recovered_object.bin` в Git не добавляются. После результата оба CLKOUT
|
||||
выключены, процессов `hackrf_transfer` нет. Независимая проверка сохранённых
|
||||
JSON, размеров, SHA-256, временного покрытия и счётчиков расхождений не нашла.
|
||||
|
||||
## Lab046C: подготовка аппаратного непрерывного объекта
|
||||
|
||||
Добавлен `experiments/lab046c_hackrf_bpsk_object.py`, который не меняет
|
||||
@@ -76,7 +134,7 @@ MASTER reg29 `0x26`, SLAVE CLKIN `DETECTED` после 141,51 мс, SLAVE reg29
|
||||
`0x26`; после проверки оба CLKOUT выключены, процессов `hackrf_transfer` нет,
|
||||
`RF TX = 0` на этапе подготовки.
|
||||
|
||||
## Lab046C: первый аппаратный результат
|
||||
## Lab046C: первый аппаратный результат 1080 МГц, исторический RESULT C
|
||||
|
||||
Выполнен ровно один непрерывный RF TX всего `tx_stream.cs8`; автоматического
|
||||
или ручного повтора не было. MASTER/TX
|
||||
@@ -469,9 +527,9 @@ Goodput 6,69 кбит/с — это честная baseline при 20 ксимв
|
||||
|
||||
## Ограничения и следующий шаг
|
||||
|
||||
Для Lab046A/B RF TX = 0; первый аппаратный Lab046C завершён с RESULT C и одним
|
||||
RF TX без повтора. Erasure-код 12+3 GF(256) не задействован. Порог PRBS7,
|
||||
gain, PHY, FEC и detector после результата не менялись. Следующий этап
|
||||
определяется отдельной постановкой. Offline weak-signal прогон с заранее
|
||||
зафиксированным правилом уже завершён как FAIL и не повторяется с другим
|
||||
порогом. Новый RF-сеанс автоматически не разрешён.
|
||||
Для Lab046A/B RF TX = 0. Первый полный аппаратный Lab046C на 1080 МГц сохранён
|
||||
как исторический RESULT C. Новый полный аппаратный Lab046C на 1400 МГц
|
||||
завершён как RESULT A: 68/68 кадров, объект 16384 байта восстановлен без
|
||||
ошибок. Erasure-код 12+3 GF(256) не задействован, Lab045, PHY и FEC не
|
||||
менялись. Следующий этап определяется отдельной постановкой. Новый RF-сеанс,
|
||||
JPEG, видео, QPSK и переход к другой FEC автоматически не разрешены.
|
||||
|
||||
Reference in New Issue
Block a user