Перейти к содержанию

Лабораторная 11.21 — Захват WAV монитором RTL-SDR во время BPSK TX ZynqSDR в стоковом shell

Цель

Использовать USB-ключ RTL-SDR как независимый RF-монитор для записи по воздуху пакета BPSK, передаваемого ZynqSDR, пока ZynqSDR работает в режиме стокового shell (конфигурация Lab 11.14). Получившийся файл WAV: основной вход офлайн-анализа BER в Lab 11.20.

Зачем внешний монитор

Собственный тракт PL RX у ZynqSDR стоит на rx_valid_count = 0 под runtime-overlay. RTL-SDR даёт совершенно независимую приёмную цепь, на которую не влияет состояние FPGA-overlay курса, поэтому он может подтвердить, действительно ли сигнал TX ZynqSDR излучается, независимо от любых проблем PL RX.

Аппаратная установка

антенна TX1 ZynqSDR  ─── (воздушный промежуток, ~1–5 м) ───  антенна RTL-SDR
                                                                 │
                                                              USB 2.0
                                                                 │
                                                              ПК-хост
                                                           (rtl_sdr / SoapySDR)
  • Центральная частота ZynqSDR: 915 МГц, ослабление TX: -50 дБ.
  • RTL-SDR настроен на ту же центральную частоту с усилением тюнера 10–20 дБ.
  • Антенны должны быть в одной комнате; для этого короткого пути аттенюаторы не нужны.

Файлы

Путь Назначение
blocks/block_11_integrated_sdr_project/python/lab_11_21_capture_rtl_sdr_monitor_wav.py запустить BPSK TX стокового shell, одновременно захватить WAV RTL-SDR, сохранить манифест

Запуск

python blocks/block_11_integrated_sdr_project/python/\
lab_11_21_capture_rtl_sdr_monitor_wav.py \
  --center-frequency-hz 915000000 \
  --sample-rate-hz 2400000 \
  --tuner-gain-db10 200 \
  --capture-duration-s 5.0 \
  --wav-out datasets/lab11_21_rtl_monitor/capture_live.wav \
  --manifest-out datasets/lab11_21_rtl_monitor/manifest_live.yaml \
  --run-tag stock_bpsk_rtl_monitor

Скрипт:

  1. настраивает тракт TX AD9361 стокового shell по SSH (те же настройки, что в Lab 11.14);
  2. запускает циклический пакет BPSK от стокового DMA TX хоста;
  3. одновременно открывает устройство RTL-SDR и записывает сырые I/Q в файл WAV;
  4. останавливает TX через --capture-duration-s секунд;
  5. возвращает AD9361 в безопасное состояние;
  6. сохраняет файл WAV и манифест YAML со всеми метаданными захвата.

Формат выходного WAV

codec:       PCM 16-битные знаковые целые
channels:    2  (левый = I, правый = Q)
sample rate: значение --sample-rate-hz (записывается в заголовок WAV)
endianness:  little

WAV может быть загружен Lab 11.20 напрямую без какого-либо преобразования.

Ключевые параметры

Параметр По умолчанию Примечания
--center-frequency-hz 915 000 000 Должна совпадать с LO TX ZynqSDR
--sample-rate-hz 2 400 000 Аппаратная частота RTL-SDR; должна быть ≥ 2× полосы сигнала
--tuner-gain-db10 200 (= 20,0 дБ) Увеличить, если сигнал слаб
--capture-duration-s 5,0 Должна быть достаточной, чтобы захватить весь пакет

Живой результат 2026-06-23

RTL-SDR захватил 5-секундный WAV при 2,4 МС/с, пока был активен циклический пакет BPSK стокового shell. Офлайн-анализ (Lab 11.20) этого WAV нашёл преамбулу, восстановил 281 бит и измерил BER = 0 / EVM ≈ 55 %. Захват подтверждает, что тракт TX1 ZynqSDR излучает обнаруживаемый, демодулируемый сигнал BPSK на 915 МГц.

Чек-лист отчёта

  • Подтверждены индекс устройства RTL-SDR и драйвер (rtlsdr / SoapySDR).
  • Записаны усиление тюнера и фактическая настройка AGC.
  • Указаны ослабление TX ZynqSDR и частота дискретизации.
  • Приложен манифест YAML.
  • Проведена перекрёстная ссылка на офлайн-результат BER Lab 11.20.

Шаблон инженерного вывода

Монитор RTL-SDR захватил ____ секунд WAV при ____ МС/с, пока BPSK TX ZynqSDR в стоковом shell
был активен на ____ МГц с ослаблением TX ____ дБ. WAV содержит обнаруживаемый / необнаруживаемый
пакет BPSK, потому что ____. Офлайн-результат BER Lab 11.20: ____. Жизнеспособность OTA TX:
подтверждена / не подтверждена.