Lab061: integrate T2 into the strict receiver

This commit is contained in:
LittleSam129
2026-09-14 11:07:40 +03:00
parent 92b0e0f8dd
commit 25cc89f0c7
20 changed files with 1290 additions and 20 deletions

View File

@@ -0,0 +1,92 @@
# Lab061 — T2 в строгом приёмнике
## Результат простыми словами
T2 перенесён из диагностической Lab060 в тот же строгий путь, который ищет
пакет, синхронизируется, разбирает PHY header, запускает FEC и принимает пакет
только после CRC PASS. Режим включается явно; обычный запуск по-прежнему
использует legacy. Скрытого повторного декодирования нет.
На сохранённом Lab047 оба режима приняли 36 из 36 пакетов. На Lab054 оба дали
0 из 16: исторический результат `NOT_A` не изменён. Чистая сохранённая TX-форма
дала 16/16 в обоих режимах, фон — ноль допустимых заголовков и пакетов.
## Полный синтетический PHY-пакет 500K
Штатный генератор сформировал преамбулу, повторённый header, FEC-кодированное
тело и CRC. Проверено 39 реализаций для каждого режима: 13 начальных ошибок
частоты от −10 до +10 Гц, фиксированная начальная фаза и три уровня шума.
Условное среднее измеренное EVM уровня `LAB056_B_LIKE` равно 0,844032 по 11
полным T2-траекториям из 13; два случая, остановившиеся раньше полного
извлечения, в это среднее не входят.
| Режим | Header | CRC и packet |
|---|---:|---:|
| legacy | 92,307692% | 89,743590% |
| T2 | 94,871795% | 94,871795% |
На качестве около Lab056 B legacy принял 9/13 пакетов, T2 — 11/13. На двух
лучших уровнях оба режима приняли 26/26. По всем трём уровням доля T2 для CFO
−10/−5/−2/−1/−0,5/−0,25/0/+0,25/+0,5/+1/+2/+5/+10 Гц составила
66,67/100/100/100/100/100/100/100/100/100/100/66,67/100%.
Текущий штатный пакет с 256 байтами payload содержит 268 packet bytes и 5724
символа; его сформированная длительность — 11,532 мс. Указанные ранее 204,8 мс
относятся к длинному диагностическому B-burst Lab056 из 102400 символов, а не к
этому штатному пакету. На всём B-burst T2 также проверен: срыва сопровождения
нет.
## Сохранённые данные
Средняя ошибка символов Lab056 после интегрированного ядра T2:
- A: `(1 + 0) / (2816 + 2816) = 0,017756%`;
- B: `(3290 + 3792) / (101120 + 101120) = 3,501780%`.
B1/B2 дали 3,253560% и 3,750000%; A1/A2 — 0,035511% и 0%. Все четыре
траектории сохранили устойчивый внутренний lock без больших фазовых скачков.
Для 36 пакетов Lab047 начальная P3-оценка лежала от −0,119281 до +0,207932 Гц.
Это далеко внутри проверенного диапазона; прежнее ограничение 20 ksymbol/s при
искусственной ошибке до ±10 Гц сохраняется. Отдельная настройка 20K не вводилась.
Lab054 дал в обоих режимах 0 header, 0 FEC, 0 CRC и 0 packet из 16 проверенных
исторических кандидатов. T2 не переопределяет этот отрицательный результат.
## Независимость и отказоустойчивость
T2 не принимает reference payload. Тест причинности меняет последний будущий
символ и подтверждает полное равенство всех предыдущих решений и состояний.
Отдельный тест меняет все raw-отсчёты после причинной границы P3 и подтверждает
равенство начальных частоты и комплексного коэффициента P3 с допуском `1e-8`;
остаток порядка `4e-9 Гц` возникает из-за округления FFT-свёртки.
Изменение диагностической reference меняет только последующее сравнение; путь
приёма и его RX bits от неё не зависят.
Одиночная ошибка, серии из 10 и 80 ошибок, провал амплитуды и шумовой участок
не создали NaN/Inf. Максимальное наблюдаемое частотное состояние составило
1,676428 Гц; дополнительный state clamp не вводился. На реальном фоне оба
режима проверили 13 кандидатов и не приняли ни одного заголовка или пакета.
## Решение
`PRODUCTION DECISION = READY_BEHIND_EXPLICIT_MODE`.
T2 численно совпадает с Lab060, полезен на полном строгом пути и не создаёт
регрессии Lab047, saved TX или background. Его рано делать режимом по умолчанию:
Lab054 остаётся 0/16, а контролируемого RF-сеанса с полноценными 500K-пакетами и
заранее выбранным T2 ещё не было.
После исправления программного сопровождения реальный широкий B-сигнал Lab056
всё равно имеет около 3,5% ошибочных символов при хорошем диагностическом
выравнивании. Следующая физическая задача — проверить энергетику и качество
широкополосного канала на полноценном пакете в одном заранее разрешённом
контролируемом опыте. Это отдельная лаборатория и здесь не выполнялось.
[Сводка JSON](../data/processed/lab061/summary.json),
[реальные результаты](../data/processed/lab061/real_results.csv),
[синтетические пакеты](../data/processed/lab061/synthetic_packet_results.csv),
[траектории](../data/processed/lab061/trajectories.npz).
`RF TX = 0`. Lab061 фиксируется этим отдельным коммитом. Push выполняется
пользователем отдельно. Lab062 не создавалась.