Lab060: validate decision-directed carrier tracking
This commit is contained in:
85
docs/lab060_current_state.md
Normal file
85
docs/lab060_current_state.md
Normal file
@@ -0,0 +1,85 @@
|
||||
# Lab060 — зафиксированный план сопровождения несущей
|
||||
|
||||
## Границы
|
||||
|
||||
Lab060 выполняется только по сохранённым файлам Lab056, Lab054 и Lab047 и на
|
||||
синтетических данных. Оборудование не опрашивается, аппаратные команды не
|
||||
выполняются, `RF TX = 0`. Исторический результат Lab054 остаётся `NOT_A, 0/16`.
|
||||
Штатный приёмник, BPSK, RRC, преамбула, заголовок, FEC, CRC, формат пакета,
|
||||
скорости, timing и packet acquisition не изменяются. Реализация остаётся
|
||||
диагностической ветвью Lab060.
|
||||
|
||||
Исходный HEAD после фиксации Lab059:
|
||||
`e16ec23fdb57e95ade46e9b6abc215502fca0686`.
|
||||
|
||||
## Информационная граница
|
||||
|
||||
P3 получает известную 1280-символьную преамбулу и формирует начальные частоту и
|
||||
фазу. Начиная с первого символа после преамбулы T1 и T2 получают только текущий
|
||||
комплексный символ, собственное решение `+1/-1` и своё предыдущее состояние.
|
||||
Правильные header и payload, magic, JPEG, CRC, TX waveform полезной части,
|
||||
whole-burst CFO/phase и будущие символы в работу петли не поступают. TX truth
|
||||
подключается после завершения траектории только для диагностических метрик.
|
||||
|
||||
## Методы
|
||||
|
||||
- **T0 P3_FIXED.** Начальные частота и фаза P3 экстраполируются на весь burst
|
||||
без сопровождения. До разработки альтернатив этот baseline должен
|
||||
воспроизвести среднюю SER Lab056 B `3,616990%`.
|
||||
- **T1 DD_PHASE_ONLY.** Частота остаётся начальной P3. После каждого собственного
|
||||
решения приёмника фазовое состояние получает поправку первого порядка.
|
||||
- **T2 DD_PHASE_FREQUENCY.** Петля второго порядка обновляет фазу и частоту.
|
||||
|
||||
Нормированный фазовый детектор вычисляет угол между скорректированным символом
|
||||
и собственным hard decision. Амплитуда в детектор не входит. Одиночная поправка
|
||||
ограничена `±pi/3`; это заранее заданное ограничение выброса.
|
||||
|
||||
Для T1 коэффициент фазы равен
|
||||
`1-exp(-2*pi*normalized_bandwidth)`. Для T2 используются стандартные
|
||||
коэффициенты второго порядка:
|
||||
|
||||
`theta = Bn / (zeta + 0.25/zeta)`
|
||||
|
||||
`alpha = 4*zeta*theta / (1 + 2*zeta*theta + theta^2)`
|
||||
|
||||
`beta = 4*theta^2 / (1 + 2*zeta*theta + theta^2)`
|
||||
|
||||
где `zeta = 1/sqrt(2)`, `Bn` — нормированная полоса в долях symbol rate,
|
||||
`alpha` — фазовая поправка в радианах на радиан ошибки, а `beta` — поправка
|
||||
нормированной угловой частоты в радианах на символ.
|
||||
|
||||
## Настройка до реальных данных
|
||||
|
||||
Заранее ограниченный набор `Bn`:
|
||||
|
||||
`0,0002; 0,0005; 0,001; 0,002; 0,004`.
|
||||
|
||||
T1 и T2 выбираются раздельно только на synthetic 500 ксимв/с с EVM `0,845350`.
|
||||
Сетка начальной ошибки частоты:
|
||||
`0, ±0,25, ±0,5, ±1, ±2, ±5, ±10 Гц`; ошибки начальной фазы:
|
||||
`−0,35; 0; +0,35 рад`. Для всех кандидатов используются одинаковые fixed seeds.
|
||||
Каждая из 39 комбинаций стартовых ошибок имеет один фиксированный шумовой
|
||||
вариант, одинаковый для всех пяти кандидатов. Критерий выбора по порядку:
|
||||
минимальная доля катастрофических срывов, затем
|
||||
минимальная средняя SER, затем более узкая полоса. После выбора параметры
|
||||
замораживаются и не меняются по результатам Lab056, Lab054 или Lab047.
|
||||
|
||||
Независимая validation использует другие seed и две реализации каждой
|
||||
комбинации, обе скорости, три фиксированных
|
||||
EVM `0,317390; 0,55; 0,845350` и ту же сетку начальных ошибок. Чистые точки
|
||||
проходят действующие генератор Lab056, Fs 8 Мвыб/с, квантование и TX/RX RRC;
|
||||
контролируемый AWGN добавляется после выбора символов.
|
||||
|
||||
## Потеря захвата
|
||||
|
||||
Полезная часть делится на 16 равных временных блоков. `LOSS_OF_LOCK` фиксируется,
|
||||
если два соседних блока имеют SER не менее 25%. Восстановление фиксируется, если
|
||||
после срыва появляются два соседних блока с SER не более 10%. Это диагностический
|
||||
критерий после факта: он использует truth, но не CRC и не влияет на петлю.
|
||||
|
||||
Для background дополнительно применяется оракул-независимый показатель
|
||||
`mean(cos(2*phase_detector_error))` по каждому блоку. Порог BPSK lock равен
|
||||
`0,15`; устойчивый lock требует не менее 12 из 16 блоков и не допускает трёх
|
||||
соседних незахваченных блоков.
|
||||
|
||||
Lab060 не коммитируется. Push не выполняется. Lab061 автоматически не создаётся.
|
||||
Reference in New Issue
Block a user