Lab061: integrate T2 into the strict receiver
This commit is contained in:
52
docs/lab061_current_state.md
Normal file
52
docs/lab061_current_state.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# Lab061 — план интеграции T2 в строгий приёмник
|
||||
|
||||
Lab061 выполняется только офлайн. `RF TX = 0`; HackRF не опрашивается.
|
||||
|
||||
## Фактический путь приёмника
|
||||
|
||||
`lab053_streaming_receiver.StreamingReceiver` выполняет независимый поиск
|
||||
кандидатов и передаёт заранее выбранному `PacketProcessor` IQ-окно. Внутри
|
||||
`PacketProcessor` последовательно работают RRC-фильтр, временная
|
||||
синхронизация, оценка несущей, извлечение мягких символов, строгий разбор PHY
|
||||
header, Viterbi FEC, parser и CRC.
|
||||
|
||||
T2 добавляется в этот существующий путь после RRC и timing. Начальное состояние
|
||||
P3 вычисляется по квадрату всей 1280-символьной преамбулы. После преамбулы T2
|
||||
видит только текущий символ, собственное BPSK-решение и предыдущее состояние.
|
||||
Header, payload, CRC и будущие символы ему недоступны.
|
||||
|
||||
Среднее DC в T2 считается только до последнего raw-отсчёта, который через
|
||||
причинную импульсную характеристику RRC способен повлиять на последнюю точку
|
||||
P3. Отсчёты header и payload не входят и в эту подготовительную оценку.
|
||||
|
||||
Режим задаётся до запуска как `carrier_tracking_mode="legacy"` или `"t2"`.
|
||||
Значение по умолчанию — `legacy`. Повторной попытки после CRC FAIL нет.
|
||||
|
||||
## Зафиксированная математика
|
||||
|
||||
При нормированной полосе `Bn=0.0005` и затухании `zeta=1/sqrt(2)`:
|
||||
|
||||
`theta = Bn / (zeta + 1/(4*zeta))`
|
||||
|
||||
`alpha = 4*zeta*theta / (1 + 2*zeta*theta + theta^2)`
|
||||
|
||||
`beta = 4*theta^2 / (1 + 2*zeta*theta + theta^2)`
|
||||
|
||||
Получаются `alpha=0.0013324447407406753` и
|
||||
`beta=8.882964938271169e-7` на один символ. Частотное состояние внутри петли
|
||||
хранится в радианах на символ; для отчёта оно переводится в герцы как
|
||||
`omega*Rs/(2*pi)`. Коэффициенты Lab060 не перенастраиваются.
|
||||
|
||||
## Критерии
|
||||
|
||||
- чистый полный штатный PHY-пакет 500 ksymbol/s проходит поиск, header, FEC и CRC;
|
||||
- сравнение legacy/T2 выполняется при заранее выбранном режиме;
|
||||
- Lab047 остаётся 36/36 в обоих режимах;
|
||||
- Lab054 остаётся историческим `NOT_A, 0/16`, если строгий путь его не восстановит;
|
||||
- background даёт ноль header и packet;
|
||||
- изменение диагностической reference payload не меняет решения или траекторию T2;
|
||||
- алгоритм остаётся конечным при ошибках символов, провале амплитуды и шуме.
|
||||
|
||||
После завершения и независимой проверки Lab061 фиксируется отдельным коммитом
|
||||
по разрешению пользователя. Push выполняется пользователем отдельно. Lab062 не
|
||||
создаётся автоматически.
|
||||
Reference in New Issue
Block a user