Lab051: accelerate 500 ksymbol/s streaming receiver

This commit is contained in:
LittleSam129
2026-09-08 16:04:09 +03:00
parent 60691a09f1
commit 9f33607d3a
13 changed files with 9695 additions and 0 deletions

View File

@@ -275,6 +275,39 @@
- **Далее:** Lab051 — профиль и ускорение строгой обработки ложных кандидатов.
- **RF:** RF TX = 0. Lab050 commit/push не выполнялись. STOP.
## Lab051
- **Цель:** алгоритмически ускорить независимый блочный RX на 500 ксимв/с,
16 отсчётов/символ, Fs=8 Мвыб/с; проверить 5 свежих JPEG C в секунду.
- **База:** Lab050 закреплена разрешённым коммитом
`60691a09f193f36983c7174c5252ed0897c559e9`.
- **Профиль:** главная стоимость Lab050 — fallback timing, 41,833 с на ложных
кандидатах. Полный диапазон 1601 смещения сохранён и вычисляется через FFT
и накопленные энергии, с исходным выбором на неразделимых пиках.
- **Изменения:** общий front-end, точное повторное использование децимации,
кэш результатов уточнённого окна, короткий probe до PHY PASS, предвычисленные
метрики прежнего Viterbi. Порог, PHY/FEC/CRC и protocol не менялись.
- **Короткий контроль:** 24/24 пакета, 3/3 точных JPEG; медиана трёх повторов
1,144176 с вместо исторических 55,157553 с. Processing/RF=3,534193.
- **Основной поток:** 30 JPEG за 6 с, 240/240 пакетов, SHA MATCH 30/30.
Обработка 6,044416 с IQ заняла 38,630132 с, processing/RF=6,391045.
При MAX_VIDEO_AGE=200 мс все 30 JPEG просрочены; FRESH DISPLAY FPS=0.
Цель реального времени не достигнута, включая минимальную свежесть >0.
- **Память:** пик удерживаемого IQ 3,031 МиБ, RSS процесса в опыте измерен.
Тест 33,55 с не показывает роста IQ/кэша с длительностью. Это не готовая live-
очередь: непрерывный источник потребовал бы около 2,09 ГБ внешнего backlog.
- **Регрессия:** сохранённая Lab047-запись 20 ксимв/с штатным Lab048:
36/36, CRC PASS, JPEG SHA MATCH; 19 ошибок до FEC и 0 после.
- **Код:** [приёмник](../experiments/lab051_streaming_receiver.py),
[профилировщик](../experiments/lab051_receiver_profile.py),
[полный поток](../experiments/lab051_receiver_performance.py),
[38 тестов](../tests/test_lab051_streaming_receiver.py).
- **Отчёт:** [состояние](lab051_current_state.md),
[измеренный поток](../data/processed/lab051/stream.json). Журнал: запись 040.
- **Далее:** отдельное программное исследование стоимости уникальных фоновых
кандидатов в полном потоке 5 кадров/с с тем же PHY/FEC/CRC.
- **RF / Git:** RF TX=0; Lab051 git add/commit и push не выполнялись. STOP.
## Правило хранения данных
Большие записи IQ, потоки `cs8`, бинарные объекты и другие аппаратные исходные