Files
SDR-Rover/docs/lab059_current_state.md

79 lines
6.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Lab059 — границы и заранее зафиксированный план
## Цель
Lab059 проверяет только по сохранённым данным, достаточно ли 1280-символьной
преамбулы для оценки остаточного частотного сдвига на весь burst длительностью
около 0,2048 с. Штатный приёмник, формат пакета, преамбула, RRC, FEC и CRC не
изменяются. Оборудование не опрашивается, аппаратные команды не выполняются,
RF TX = 0.
Исходный HEAD после отдельной фиксации Lab058:
`82f17499ace5e655991240348401b9700c7c3349`.
## Зафиксированные методы
- **P0 CURRENT.** Дословно воспроизводится активная ветвь штатного приёмника:
первые 1024 символа возводятся в квадрат, делятся на два блока по 512,
частота определяется по разности фаз центров блоков с делением на `4*pi`.
Последние 256 символов преамбулы в оценке частоты не участвуют.
- **P1 FULL PREAMBLE PHASE SLOPE.** Известные BPSK-знаки удаляются на всей
преамбуле. Фазы когерентных 20-символьных блоков аппроксимируются линейной
моделью с заранее заданными Huber-весами.
- **P2 SPLIT PREAMBLE.** TRAIN заранее фиксирован как индексы 32…607,
VALIDATION — 672…1247. Между ними оставлен разрыв 64 символа; по 32 символа
у начала и конца преамбулы не используются. Частота и фаза оцениваются только
по TRAIN, а VALIDATION проверяет экстраполяцию без переоценки.
- **P3 SQUARED FULL PREAMBLE.** Все 1280 символов возводятся в квадрат,
фаза 20-символьных блоков аппроксимируется той же устойчивой моделью,
частотный наклон делится на два из-за удвоения фазы BPSK.
P0 сохраняет точную активную ветвь, включая штатное удаление среднего DC по
всему переданному в неё фрагменту: это часть воспроизводимого baseline, а не
новое решение. Для P1 и P3 удаление DC и RRC-фильтрация ограничены RAW-опорой
полной преамбулы; для P2 — RAW-опорой только TRAIN. Поэтому полезная часть RAW
не влияет на вход новых оценивателей. Все методы получают Fs, Rs, RRC,
номинальную несущую и уже найденное начало кандидата. Для изоляции carrier
recovery timing остаётся штатным P0 и не подбирается отдельно по методу.
Начальная фаза относится к `t=0`; центр символа `k` расположен в
`(k+0.5)/Rs`.
Header, payload, magic, FEC и CRC не участвуют в оценке. Известные переданные
биты подключаются только после заморозки параметров для подсчёта ошибок, EVM и
matched/residual. Диагностическая оценка по всему burst служит только внешней
справочной величиной после расчёта preamble-only оценки.
## Baseline и реальные данные
До сравнения P1–P3 программа отдельно сохраняет P0 baseline для Lab056
A1/B1/A2/B2, 16 кадров Lab054 и 36 ранее принятых кадров Lab047. Lab047 служит
положительным контролем. Исторический результат Lab054 остаётся `NOT_A, 0/16`.
Сохранённые raw-файлы открываются только для чтения; их SHA-256 проверяются до и
после расчёта.
## Synthetic Monte Carlo
Фиксированные частоты: `0, ±0.25, ±0.5, ±1, ±2, ±5, ±10, ±20, ±100 Гц`.
Проверяются 20 и 500 ксимв/с, Fs = 8 Мвыб/с, действующие RRC и преамбула 1280
символов. Чистые точки решения формируются реальным TX/RX RRC-трактом, после
чего добавляется воспроизводимый комплексный гауссов шум на символьном выходе.
Уровни EVM заранее фиксированы: 0,317390 (качество A Lab058), 0,55 и 0,845350
(среднее физическое качество B Lab058). Последний уровень не подгоняется по
исходу оценивателя.
Для каждой комбинации используются 300 реализаций и фиксированная схема seed.
Катастрофическая ошибка заранее определена как `|frequency error| > 1/(2T)`,
то есть фазовый уход более 180° за `T = 0,2048 с`; порог равен 2,44140625 Гц.
Публикуются bias, RMSE, median/P95/P99 абсолютной ошибки, катастрофическая доля
и вероятности ошибки не более 0,25/0,5/1,0 Гц.
## Критерий вывода
`PREAMBLE_ONLY_SUFFICIENT` требует одновременно приблизить Lab056 B к
диагностическому результату, устойчиво пройти Monte Carlo, не ухудшить Lab056 A
и сохранить положительный контроль Lab047. Нестабильная субгерцовая точность
даёт `PREAMBLE_ONLY_MARGINAL`; принципиально недостаточная стабильность на
качестве B даёт `PREAMBLE_ONLY_INSUFFICIENT`.
Lab059 не коммитируется. Push не выполняется. Lab060 автоматически не создаётся.