# Указатель лабораторных работ Этот файл показывает, где находятся код, проверки, документы и данные лабораторных работ. Он не заменяет отчёты и не дублирует большие IQ-записи. Пути к внешним аппаратным данным приведены только там, где они уже зафиксированы в документации проекта и существуют на текущем компьютере. ## Lab043 - **Цель:** воспроизводимый BPSK-канал HackRF -> HackRF с общей опорой, независимой кадровой синхронизацией и измерением параметров радиотракта. - **Статус:** рабочая точка BPSK и общий опорный генератор подтверждены; дополнительные аппаратные ветви использовались для диагностики усиления, непрерывности и асимметрии сигнала. - **Основной эксперимент:** [`experiments/lab043_hackrf_bpsk.py`](../experiments/lab043_hackrf_bpsk.py). - **Основные проверки:** [`tests/test_lab043_hackrf_bpsk.py`](../tests/test_lab043_hackrf_bpsk.py). Дополнительные проверки находятся в файлах `tests/test_lab043_*.py`. - **Документ состояния:** [`docs/lab043_current_state.md`](lab043_current_state.md). - **Обработанные данные:** каталоги [`data/processed/lab043_diagnostics`](../data/processed/lab043_diagnostics), [`lab043_hackrf_compare`](../data/processed/lab043_hackrf_compare), [`lab043_hackrf_continuity`](../data/processed/lab043_hackrf_continuity), [`lab043_hackrf_counter`](../data/processed/lab043_hackrf_counter) и [`lab043_hackrf_gain_ladder`](../data/processed/lab043_hackrf_gain_ladder). - **Внешние аппаратные данные:** `C:\Users\user\Documents\SDR_Rover_Lab043_raw\`. - **Журнал:** отдельной записи с темой Lab043 нет. Переход к Lab043 указан в записи 020, а подтверждённая рабочая точка Lab043 используется и упоминается в записях 021-024 ([`PROJECT_LOG.md`](../PROJECT_LOG.md)). ## Lab044 - **Цель:** передача произвольного протокольного пакета через реальный BPSK-канал HackRF с независимым решением CRC. - **Статус:** один аппаратный запуск, `RESULT C`; преамбула и PHY sync восстановлены, пакет не дошёл до проверки CRC. - **Основной эксперимент:** [`experiments/lab044_hackrf_bpsk_packet.py`](../experiments/lab044_hackrf_bpsk_packet.py). - **Основные проверки:** [`tests/test_lab044_hackrf_bpsk_packet.py`](../tests/test_lab044_hackrf_bpsk_packet.py). - **Документ состояния:** [`docs/lab044_current_state.md`](lab044_current_state.md). - **Обработанные данные:** отдельные результаты не сохранялись; каталог [`data/processed/lab044`](../data/processed/lab044) содержит только навигационный README. - **Внешние аппаратные данные:** `C:\Users\user\Documents\SDR_Rover_Lab044_raw\20260831_140142_bpsk_packet\`. - **Журнал:** подготовка в записи 021, аппаратный результат в записи 022 ([`PROJECT_LOG.md`](../PROJECT_LOG.md)). ## Lab045 - **Цель:** защищённый BPSK-кадр со свёрточным FEC R=1/2, K=7, перемежением, мягким декодером Витерби, защищённым PHY-заголовком и CRC. - **Статус:** аппаратный `RESULT A`; исправление реальных ошибок FEC доказано, CRC пройден, полезная нагрузка восстановлена без ошибок. - **Основной эксперимент:** [`experiments/lab045_hackrf_bpsk_fec.py`](../experiments/lab045_hackrf_bpsk_fec.py). - **Основные проверки:** [`tests/test_lab045_hackrf_bpsk_fec.py`](../tests/test_lab045_hackrf_bpsk_fec.py). - **Документ состояния:** [`docs/lab045_current_state.md`](lab045_current_state.md). - **Обработанные данные:** отдельные результаты не сохранялись; каталог [`data/processed/lab045`](../data/processed/lab045) содержит только навигационный README. - **Внешние аппаратные данные:** `C:\Users\user\Documents\SDR_Rover_Lab045_raw\20260901_103434_bpsk_fec\`. - **Журнал:** программная подготовка в записи 023, аппаратный результат в записи 024 ([`PROJECT_LOG.md`](../PROJECT_LOG.md)). ## Lab046 - **Цель:** фрагментация произвольного бинарного объекта, передача его несколькими независимо защищёнными кадрами Lab045 и аварийно-безопасная сборка объекта. - **Статус:** программная проверка завершена успешно; RF не запускался. - **Основной эксперимент:** [`experiments/lab046_bpsk_object_transport.py`](../experiments/lab046_bpsk_object_transport.py). - **Основные проверки:** [`tests/test_lab046_bpsk_object_transport.py`](../tests/test_lab046_bpsk_object_transport.py). - **Документ состояния:** [`docs/lab046_current_state.md`](lab046_current_state.md). - **Обработанные данные:** отдельного каталога в `data/processed` нет. - **Внешние аппаратные данные:** отсутствуют, поскольку этап программный. - **Журнал:** запись 025 ([`PROJECT_LOG.md`](../PROJECT_LOG.md)). ## Lab046A - **Цель:** независимый поиск и приём нескольких кадров объекта в одном непрерывном нормированном потоке мягких BPSK-значений. - **Статус:** программная проверка завершена успешно; работа с IQ и аппаратная проверка на этом этапе не выполнялись. - **Основной эксперимент:** отдельного `lab046a_*.py` нет; реализация находится в [`experiments/lab046_bpsk_object_transport.py`](../experiments/lab046_bpsk_object_transport.py). - **Основные проверки:** отдельного `test_lab046a_*.py` нет; сценарии находятся в [`tests/test_lab046_bpsk_object_transport.py`](../tests/test_lab046_bpsk_object_transport.py). - **Документ состояния:** [`docs/lab046_current_state.md`](lab046_current_state.md). - **Обработанные данные:** отдельного каталога в `data/processed` нет. - **Внешние аппаратные данные:** отсутствуют, поскольку этап программный. - **Журнал:** запись 026 ([`PROJECT_LOG.md`](../PROJECT_LOG.md)). ## Lab046B - **Цель:** поиск и приём нескольких полных кадров Lab045 в одном непрерывном сыром IQ-потоке без использования границ кадров передатчика. - **Статус:** программная проверка завершена успешно; RF не запускался. - **Основной эксперимент:** [`experiments/lab046b_continuous_iq.py`](../experiments/lab046b_continuous_iq.py). - **Основные проверки:** [`tests/test_lab046b_continuous_iq.py`](../tests/test_lab046b_continuous_iq.py). - **Документ состояния:** [`docs/lab046_current_state.md`](lab046_current_state.md). - **Обработанные данные:** отдельного каталога в `data/processed` нет. - **Внешние аппаратные данные:** отсутствуют, поскольку этап программный. - **Журнал:** запись 027 ([`PROJECT_LOG.md`](../PROJECT_LOG.md)). ## Lab046C - **Цель:** непрерывная аппаратная передача объекта 16 КиБ последовательностью защищённых BPSK-кадров и независимое восстановление объекта из IQ-записи. - **Статус:** полный аппаратный результат на 1400 МГц равен `RESULT A`: принято 68/68 кадров, объект восстановлен без ошибок. Первый полный опыт на 1080 МГц сохраняется отдельно как исторический `RESULT C`. - **Основной аппаратный эксперимент:** [`experiments/lab046c_hackrf_bpsk_object.py`](../experiments/lab046c_hackrf_bpsk_object.py). - **Автономная обработка сохранённых записей:** [`experiments/lab046c_offline_recovery.py`](../experiments/lab046c_offline_recovery.py). - **Основные проверки:** [`tests/test_lab046c_hackrf_bpsk_object.py`](../tests/test_lab046c_hackrf_bpsk_object.py) и [`tests/test_lab046c_offline_recovery.py`](../tests/test_lab046c_offline_recovery.py). - **Документы состояния:** [`docs/lab046_current_state.md`](lab046_current_state.md) и отдельный отчёт о короткой записи 1400 МГц [`docs/lab046c_1400mhz_offline_reprocessing.md`](lab046c_1400mhz_offline_reprocessing.md). - **Обработанные данные:** локально присутствуют каталоги `data/processed/lab046c_offline_recovery` и `data/processed/lab046c_1400mhz_offline`; в текущем состоянии Git их файлы не отслеживаются. - **Внешние аппаратные данные:** `C:\Users\user\Documents\SDR_Rover_Lab046_raw\20260901_145339_bpsk_object\`, `C:\Users\user\Documents\SDR_Rover_RF_Check\20260901_172749_1400MHz\` и `C:\Users\user\Documents\SDR_Rover_Lab046_raw\20260902_151819_1400MHz_full\`. - **Журнал:** записи 028-032 ([`PROJECT_LOG.md`](../PROJECT_LOG.md)). ## Правило хранения данных Большие записи IQ, потоки `cs8`, бинарные объекты и другие аппаратные исходные данные остаются во внешних каталогах. В `data/processed` хранятся только небольшие обработанные результаты или навигационные README. Пустые и фиктивные файлы результатов не создаются.