# 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 автоматически не создаётся.