Files
SDR-Rover/docs/LABS_INDEX.md
2026-09-03 13:13:23 +03:00

14 KiB
Raw Blame History

Указатель лабораторных работ

Этот файл показывает, где находятся код, проверки, документы и данные лабораторных работ. Он не заменяет отчёты и не дублирует большие IQ-записи. Пути к внешним аппаратным данным приведены только там, где они уже зафиксированы в документации проекта и существуют на текущем компьютере.

Lab043

  • Цель: воспроизводимый BPSK-канал HackRF -> HackRF с общей опорой, независимой кадровой синхронизацией и измерением параметров радиотракта.
  • Статус: рабочая точка BPSK и общий опорный генератор подтверждены; дополнительные аппаратные ветви использовались для диагностики усиления, непрерывности и асимметрии сигнала.
  • Основной эксперимент: experiments/lab043_hackrf_bpsk.py.
  • Основные проверки: tests/test_lab043_hackrf_bpsk.py. Дополнительные проверки находятся в файлах tests/test_lab043_*.py.
  • Документ состояния: docs/lab043_current_state.md.
  • Обработанные данные: каталоги data/processed/lab043_diagnostics, lab043_hackrf_compare, lab043_hackrf_continuity, lab043_hackrf_counter и lab043_hackrf_gain_ladder.
  • Внешние аппаратные данные: C:\Users\user\Documents\SDR_Rover_Lab043_raw\.
  • Журнал: отдельной записи с темой Lab043 нет. Переход к Lab043 указан в записи 020, а подтверждённая рабочая точка Lab043 используется и упоминается в записях 021-024 (PROJECT_LOG.md).

Lab044

  • Цель: передача произвольного протокольного пакета через реальный BPSK-канал HackRF с независимым решением CRC.
  • Статус: один аппаратный запуск, RESULT C; преамбула и PHY sync восстановлены, пакет не дошёл до проверки CRC.
  • Основной эксперимент: experiments/lab044_hackrf_bpsk_packet.py.
  • Основные проверки: tests/test_lab044_hackrf_bpsk_packet.py.
  • Документ состояния: docs/lab044_current_state.md.
  • Обработанные данные: отдельные результаты не сохранялись; каталог data/processed/lab044 содержит только навигационный README.
  • Внешние аппаратные данные: C:\Users\user\Documents\SDR_Rover_Lab044_raw\20260831_140142_bpsk_packet\.
  • Журнал: подготовка в записи 021, аппаратный результат в записи 022 (PROJECT_LOG.md).

Lab045

  • Цель: защищённый BPSK-кадр со свёрточным FEC R=1/2, K=7, перемежением, мягким декодером Витерби, защищённым PHY-заголовком и CRC.
  • Статус: аппаратный RESULT A; исправление реальных ошибок FEC доказано, CRC пройден, полезная нагрузка восстановлена без ошибок.
  • Основной эксперимент: experiments/lab045_hackrf_bpsk_fec.py.
  • Основные проверки: tests/test_lab045_hackrf_bpsk_fec.py.
  • Документ состояния: docs/lab045_current_state.md.
  • Обработанные данные: отдельные результаты не сохранялись; каталог data/processed/lab045 содержит только навигационный README.
  • Внешние аппаратные данные: C:\Users\user\Documents\SDR_Rover_Lab045_raw\20260901_103434_bpsk_fec\.
  • Журнал: программная подготовка в записи 023, аппаратный результат в записи 024 (PROJECT_LOG.md).

Lab046

  • Цель: фрагментация произвольного бинарного объекта, передача его несколькими независимо защищёнными кадрами Lab045 и аварийно-безопасная сборка объекта.
  • Статус: программная проверка завершена успешно; RF не запускался.
  • Основной эксперимент: experiments/lab046_bpsk_object_transport.py.
  • Основные проверки: tests/test_lab046_bpsk_object_transport.py.
  • Документ состояния: docs/lab046_current_state.md.
  • Обработанные данные: отдельного каталога в data/processed нет.
  • Внешние аппаратные данные: отсутствуют, поскольку этап программный.
  • Журнал: запись 025 (PROJECT_LOG.md).

Lab046A

  • Цель: независимый поиск и приём нескольких кадров объекта в одном непрерывном нормированном потоке мягких BPSK-значений.
  • Статус: программная проверка завершена успешно; работа с IQ и аппаратная проверка на этом этапе не выполнялись.
  • Основной эксперимент: отдельного lab046a_*.py нет; реализация находится в experiments/lab046_bpsk_object_transport.py.
  • Основные проверки: отдельного test_lab046a_*.py нет; сценарии находятся в tests/test_lab046_bpsk_object_transport.py.
  • Документ состояния: docs/lab046_current_state.md.
  • Обработанные данные: отдельного каталога в data/processed нет.
  • Внешние аппаратные данные: отсутствуют, поскольку этап программный.
  • Журнал: запись 026 (PROJECT_LOG.md).

Lab046B

  • Цель: поиск и приём нескольких полных кадров Lab045 в одном непрерывном сыром IQ-потоке без использования границ кадров передатчика.
  • Статус: программная проверка завершена успешно; RF не запускался.
  • Основной эксперимент: experiments/lab046b_continuous_iq.py.
  • Основные проверки: tests/test_lab046b_continuous_iq.py.
  • Документ состояния: docs/lab046_current_state.md.
  • Обработанные данные: отдельного каталога в data/processed нет.
  • Внешние аппаратные данные: отсутствуют, поскольку этап программный.
  • Журнал: запись 027 (PROJECT_LOG.md).

Lab046C

  • Цель: непрерывная аппаратная передача объекта 16 КиБ последовательностью защищённых BPSK-кадров и независимое восстановление объекта из IQ-записи.
  • Статус: полный аппаратный результат на 1400 МГц равен RESULT A: принято 68/68 кадров, объект восстановлен без ошибок. Первый полный опыт на 1080 МГц сохраняется отдельно как исторический RESULT C.
  • Основной аппаратный эксперимент: experiments/lab046c_hackrf_bpsk_object.py.
  • Автономная обработка сохранённых записей: experiments/lab046c_offline_recovery.py.
  • Основные проверки: tests/test_lab046c_hackrf_bpsk_object.py и tests/test_lab046c_offline_recovery.py.
  • Документы состояния: docs/lab046_current_state.md и отдельный отчёт о короткой записи 1400 МГц docs/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).

Lab047

  • Цель: передача настоящего JPEG как обычного двоичного объекта через уже проверенный транспорт Lab046 и восстановление файла с проверкой SHA-256 и декодирования изображения.
  • Статус: завершена успешно. В одном непрерывном аппаратном сеансе при 1400 МГц передан настоящий JPEG: 36/36 кадров, 19 ошибок кодированных бит до FEC, 0 ошибок после FEC, CRC PASS/FAIL 36/0. Объект собран полностью, SHA-256 совпал, Pillow декодирует JPEG RGB 320 x 240, ошибок байтов и битов нет. REAL RF JPEG TRANSPORT = PASS.
  • Основной эксперимент: experiments/lab047_jpeg_object_transport.py.
  • Основные проверки: tests/test_lab047_jpeg_object_transport.py.
  • Документ состояния: docs/lab047_current_state.md.
  • Обработанные данные: малые демонстрационные JPEG и отчёты находятся в data/processed/lab047. Большие потоки cs8 и сырые IQ там не хранятся.
  • Внешние аппаратные данные: исходная RX-запись и результаты находятся в C:\Users\user\Documents\SDR_Rover_Lab047_raw\20260903_115747; большие потоки cs8 и сырые IQ в Git не добавляются.
  • История приёма: первоначальная обработка остановилась до PHY/FEC/CRC по MAX_CANDIDATES_REACHED. После исправления последовательной обработки один полный автономный анализ исходной записи восстановил JPEG точно; порог 0.030964473262429237 не менялся, второй RF-сеанс не выполнялся.
  • Журнал: записи 033-034 (PROJECT_LOG.md).

Правило хранения данных

Большие записи IQ, потоки cs8, бинарные объекты и другие аппаратные исходные данные остаются во внешних каталогах. В data/processed хранятся только небольшие обработанные результаты или навигационные README. Пустые и фиктивные файлы результатов не создаются.