# Lab060 — сопровождение несущей по решениям приёмника ## Что получилось простыми словами Оценка P3 из Lab059 хорошо задаёт начальные частоту и фазу, но после преамбулы перестаёт наблюдать сигнал. T0 поэтому лишь продолжает начальную прямую через весь пакет. T1 после каждого принятого BPSK-символа сам решает, был передан `+1` или `−1`, и по ошибке этого решения слегка поправляет фазу. T2 тем же способом поправляет и фазу, и скорость её изменения, то есть остаточную ошибку частоты. На сохранённой записи Lab056 исходный T0 уже был близок к физически достижимому результату: средняя доля ошибочных символов B равнялась 3,616990%. T1 снизил её до 3,509691%, T2 — до 3,501780%. Основная польза сопровождения проявилась в заранее отделённой синтетической проверке устойчивости: при качестве Lab056 B и начальной ошибке частоты от −10 до +10 Гц T0 потерял захват в 55,128205% случаев, а T1 и T2 — в 0% случаев. T2 дополнительно оценивал частотное состояние и оказался лучшим из проверенных методов по заранее заданному правилу. Это не восстановило пакеты Lab054. У T0, T1 и T2 осталось 0/16 принятых заголовков, 0/16 запусков FEC и CRC и 0/16 пакетов. Исторический результат Lab054 остаётся `NOT_A, 0/16`. Сопровождение несущей устраняет одну причину неустойчивости, но не убирает физический предел сохранённого OTA-сигнала: диагностическая доля ошибок символов около 3,495896%, EVM 0,845350, отношение согласованной составляющей к остатку 1,464846 дБ и неравномерность усиления в полосе 5,471382 дБ. ## Границы эксперимента Lab060 выполнена только по сохранённым IQ Lab056, Lab054, Lab047 и по синтетическим данным. Исходные пять IQ-файлов хешированы до и после анализа; размеры и SHA-256 совпали. Оборудование не опрашивалось, аппаратные команды не выполнялись, `RF TX = 0`. Штатные BPSK, RRC, timing, преамбула, заголовок, FEC, CRC и формат пакета не менялись. T1/T2 реализованы только внутри диагностической ветви Lab060 и пока не встроены в штатный receiver. Параметры выбирались только на синтетической настройке, были заморожены до чтения результатов реальных IQ и затем одинаково применены ко всем наборам. После преамбулы петля получает только текущий комплексный символ, собственное жёсткое решение `+1/−1` и своё предыдущее состояние. Правильный payload, заголовок, magic, JPEG, CRC, переданный waveform и будущие символы в петлю не поступают. TX truth применяется только после вычисления всей траектории для диагностических метрик. ## Проверенные методы | Метод | Работа после P3 | Выбранная нормированная полоса | Коэффициент фазы | Коэффициент частоты | |---|---|---:|---:|---:| | T0 `P3_FIXED` | сопровождения нет | 0 | 0 | 0 | | T1 `DD_PHASE_ONLY` | поправляется только фаза | 0,0005 | 0,003136663015 | 0 | | T2 `DD_PHASE_FREQUENCY` | поправляются фаза и частота | 0,0005 | 0,001332444741 | 0,000000888296 | Нормированный фазовый детектор вычисляет угол между скорректированным символом и собственным жёстким решением приёмника. Амплитуда не меняет усиление петли. Одна ошибка ограничена диапазоном `±π/3`. Для T2 частотное состояние хранится в радианах на символ и переводится в герцы только при выводе. Настройка проверила ровно пять заранее ограниченных полос: `0,0002; 0,0005; 0,001; 0,002; 0,004`. Для каждой применены одни и те же 39 сочетаний начальной ошибки частоты и фазы и одинаковый шум. Выбор шёл по доле катастрофических срывов, затем по средней SER, затем в пользу более узкой полосы. У выбранных T1 и T2 срывов на наборе настройки не было; их средние SER равнялись 4,701903% и 4,698099% соответственно. ## Независимая синтетическая проверка Синтетический сигнал проходит генератор Lab056, квантование int8, TX/RX RRC при Fs 8 Мвыб/с, а затем получает AWGN. Для проверки применены другие seed, две реализации каждого сочетания, скорости 20 и 500 ксимв/с, три фиксированных EVM, ошибки частоты `0, ±0,25, ±0,5, ±1, ±2, ±5, ±10 Гц` и ошибки фазы `−0,35; 0; +0,35 рад`. Ключевой набор 500 ксимв/с при EVM 0,845350: | Метод | Случаи | Катастрофический срыв | Потеря захвата | Средняя SER | P95 SER | Средняя абсолютная конечная ошибка частоты | |---|---:|---:|---:|---:|---:|---:| | T0 | 78 | 55,128205% | 55,128205% | 26,103132% | 50,185077% | 2,884615 Гц | | T1 | 78 | 0% | 0% | 4,729529% | 4,841574% | 2,884615 Гц | | T2 | 78 | 0% | 0% | 4,725104% | 4,832229% | 0,677354 Гц | T1 намеренно не меняет частотное состояние, поэтому его конечная ошибка частоты остаётся начальной. T2 одновременно сохранил нулевую долю срывов и снизил частотную ошибку. На 20 ксимв/с искусственные начальные ошибки до ±10 Гц намного тяжелее в нормированных единицах. При EVM 0,317390 доля потерь T1/T2 равна 30,769231%. Этот результат не скрывается и не использовался для отдельной перенастройки. Реальный контроль Lab047 начинается с собственной точной P3 и у всех методов остаётся 36/36, поэтому регрессии штатного контрольного файла не обнаружено. Потеря захвата определена независимо от CRC: два соседних из 16 временных блоков с SER не менее 25%. Восстановление — два последующих соседних блока с SER не более 10%. TX truth участвует только в этой послесобытийной диагностике, но не в работе петли. ## Сохранённая OTA-запись Lab056 | Сегмент | Скорость | T0 SER | T1 SER | T2 SER | Срыв T0/T1/T2 | |---|---:|---:|---:|---:|---:| | A1 | 20 ксимв/с | 0,035511% | 0,035511% | 0,035511% | 0/0/0 | | B1 | 500 ксимв/с | 3,308940% | 3,268394% | 3,253560% | 0/0/0 | | A2 | 20 ксимв/с | 0% | 0% | 0% | 0/0/0 | | B2 | 500 ксимв/с | 3,925040% | 3,750989% | 3,750000% | 0/0/0 | | **Среднее A** | **20 ксимв/с** | **0,017756%** | **0,017756%** | **0,017756%** | **0/0/0** | | **Среднее B** | **500 ксимв/с** | **3,616990%** | **3,509691%** | **3,501780%** | **0/0/0** | Во всех B-сегментах 16/16 блоков имеют receiver-side признак захвата. Ни один метод не пересёк критерий потери. T1 и T2 дали небольшое, но согласованное улучшение B1 и B2 относительно фиксированного T0. T2 ближе всего подошёл к диагностическому нижнему ориентиру 3,495896%, поэтому дополнительная ошибка от неподвижной экстраполяции P3 практически устранена. Оставшаяся SER относится к качеству сохранённого общего OTA-тракта TX–канал–RX и не локализует один физический узел. ## Пакетные контроли | Набор | Метод | HEADER | FEC started/pass | CRC started/pass | Пакеты | |---|---|---:|---:|---:|---:| | Lab047 | T0 | 36/36 | 36/36 | 36/36 | 36/36 | | Lab047 | T1 | 36/36 | 36/36 | 36/36 | 36/36 | | Lab047 | T2 | 36/36 | 36/36 | 36/36 | 36/36 | | Lab054 | T0 | 0/16 | 0/0 | 0/0 | 0/16 | | Lab054 | T1 | 0/16 | 0/0 | 0/0 | 0/16 | | Lab054 | T2 | 0/16 | 0/0 | 0/0 | 0/16 | Для Lab054 FEC и CRC не достигнуты: заголовок не принят ни в одном из 16 кадров. T1/T2 немного меняют число диагностических ошибок заголовка, но строгий verdict не меняется и новый успешный пакет не объявляется. На сохранённом фоне T1 и T2 дали 0 ложных заголовков, 0 ложных пакетов и 0/16 блоков с признаком захвата; устойчивый lock не объявлен. Это отделяет решение-направленное движение петли по шуму от доказанного приёма BPSK. ## Проверка отсутствия утечки payload truth Автоматический контроль изменил только правильную диагностическую последовательность payload после преамбулы и повторно вычислил метрики для той же принятой последовательности. У T1 и T2 побитово совпали фазовая траектория, частотная траектория и собственные решения. Диагностическая SER изменилась с примерно 0,7–1,0% до 99%, то есть контроль действительно заменил truth, но не смог повлиять на tracker. Результат: `PASS`. ## Инженерный вывод `DECISION-DIRECTED TRACKING VERDICT = SUCCESS`. Лучший кандидат в пределах Lab060 — **T2**. Он выбран потому, что: 1. на независимом наборе 500 ксимв/с/EVM 0,845350 снизил долю срывов с 55,128205% у T0 до 0%; 2. дал наименьшую среднюю SER реального Lab056 B — 3,501780%; 3. сохранил Lab047 36/36; 4. не создал ложных пакетов или ложного устойчивого захвата на фоне; 5. прошёл контроль отсутствия payload-truth leakage. Этот успех означает, что decision-directed сопровождение пригодно как отдельный кандидат на последующее внедрение в штатный receiver. Он не означает packet PASS для Lab054 и не доказывает, что весь оставшийся предел связан с carrier. Следующий единственный шаг — отдельно рассмотреть и согласовать внедрение T2 в штатный receiver с сохранением строгих PHY/FEC/CRC критериев. В Lab060 production-код не менялся. Независимый read-only verifier повторил 20 целевых проверок без JIT и записи артефактов, проверил причинность изменением будущих символов, пересчитал уравнение фазового состояния с расхождением менее `1e−12` рад и независимо воспроизвёл метрики из NPZ/CSV. Воспроизводимых несоответствий не обнаружено; граница вывода сохраняется: это проверка петли на готовых символах, а не всего потокового поиска пакетов и RAW-тракта. ## Артефакты - `data/processed/lab060/summary.json` — машинно-читаемый итог; - `tuning_results.csv`, `synthetic_results.csv`, `synthetic_by_initial_cfo.csv` — настройка и независимая синтетика; - `real_results.csv`, `real_blocks.csv`, `real_trajectories.npz` — метрики и траектории A1/B1/A2/B2; - `packet_results.csv`, `background_results.csv` — строгие пакетные и фоновые контроли; - `phase_trajectory_b1.png`, `phase_trajectory_b2.png`, `frequency_state_trajectory.png`, `lab056_b_block_symbol_error_rate.png`, `synthetic_failure_by_initial_cfo.png`, `tracker_comparison.png`, `lab054_result_by_tracker.png` — проверенные графики. `RF TX = 0`. Lab060 не коммитировалась. Push не выполнялся. Lab061 не создана.