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

Лабораторная 6.6 — Zynq RX-only наблюдение на чистом образе

Цель

Получить первый короткий CI16 IQ-захват с платы Zynq-7020 + AD9361 на чистом курсовом образе без передачи, а затем сравнить его с уже записанным FM-наблюдением через RTL-SDR.

Что выполняется

В работе студент:

  1. использует чистый stock Pluto-подобный образ с course overlay;
  2. настраивает RX LO, sample rate, RF bandwidth и gain с хоста по IIO;
  3. снимает короткий CI16 захват с cf-ad9361-lpc;
  4. оформляет manifest с checksum и параметрами захвата;
  5. прогоняет офлайн-анализ через Lab 9.2;
  6. строит качественное сравнение Zynq RX против ранее записанного RTL-SDR FM-пакета.

Результат

После выполнения работы должны быть получены:

  • реальный CI16 IQ-файл из RX-only режима;
  • manifest датасета;
  • FFT-график и time preview;
  • overlay-график Zynq vs RTL-SDR;
  • инженерный вывод о готовности clean-image RX тракта к следующим лабораторным.

Что приложить к отчёту

  • manifest нового Zynq-захвата;
  • частоту центра, sample rate, RF bandwidth и gain mode;
  • checksum IQ-файла;
  • спектр из офлайн-ридера;
  • график сравнения с RTL-SDR;
  • краткий вывод, что именно уже подтверждено на железе, а что ещё нет.

Подробная техническая часть

Практический вопрос

Может ли очищенный образ платы уже выдавать воспроизводимый пакет RX-захвата на стороне хоста, до того как доступны какая-либо работа с TX или loopback через аттенюаторы?

Почему эта работа важна сейчас

На текущем этапе стенда:

  • аттенюаторов ещё нет;
  • TX намеренно остаётся консервативным в course-clean overlay;
  • антенны подключены к RX1 платы Zynq и к независимому тракту RTL-SDR.

Поэтому RX-only: правильный следующий аппаратный шаг. Он проверяет:

  • запуск чистого образа;
  • сетевой доступ к IIO;
  • настройку RX AD9361 с хоста;
  • создание набора данных CI16;
  • офлайн-воспроизведение через инструменты Блока 9;
  • качественное сравнение приёмников на том же вещательном FM-диапазоне.

Исполняемые файлы

Файл Назначение
blocks/block_06_rf_frontend_and_ad9363/python/lab_6_6_capture_zynq_rx_only.py настройка RX, захват IQ CI16, запись манифеста
blocks/block_06_rf_frontend_and_ad9363/python/lab_6_6_compare_receivers.py наложение FM-спектров Zynq и RTL-SDR
datasets/lab6_6_zynq_rx_observation/manifest_fm_103119454.yaml первый отобранный набор данных RX чистого образа
datasets/lab6_6_zynq_rx_observation/manifest_fm_103119454_live_20260622.yaml повторный живой набор данных RX-only, снятый 2026-06-22

Команда живого захвата

Запуск из корня репозитория:

python blocks/block_06_rf_frontend_and_ad9363/python/lab_6_6_capture_zynq_rx_only.py \
  --uri ip:192.168.40.1 \
  --center-frequency-hz 103119454 \
  --sample-rate-hz 2400000 \
  --rf-bandwidth-hz 2000000 \
  --gain-control-mode manual \
  --rx-hardwaregain-db 50 \
  --rf-port-select A_BALANCED \
  --sample-count 262144 \
  --out-iq datasets/lab6_6_zynq_rx_observation/raw/zynq_rx_fm_103119454Hz.ci16 \
  --manifest-out datasets/lab6_6_zynq_rx_observation/manifest_fm_103119454.yaml

Скрипт захвата:

  1. подключается к удалённому контексту IIO;
  2. сохраняет снимок текущего состояния RX;
  3. применяет короткую конфигурацию приёма только для наблюдения FM;
  4. захватывает чередующиеся отсчёты I/Q в формате CI16 с cf-ad9361-lpc;
  5. восстанавливает предыдущее состояние RX;
  6. записывает файл CI16 и манифест набора данных с контрольной суммой и метаданными захвата.

Офлайн-анализ

Проанализируйте захваченный пакет CI16 универсальным читателем Блока 9:

python blocks/block_09_recording_and_analysis_tools/python/lab_9_2_read_ci16_iq_and_analyze.py \
  --manifest datasets/lab6_6_zynq_rx_observation/manifest_fm_103119454.yaml

Он записывает:

docs/assets/lab92_lab6_6_zynq_rx_fm_103119454_spectrum.png
docs/assets/lab92_lab6_6_zynq_rx_fm_103119454_time_preview.png
docs/assets/lab6_6_zynq_rx_fm_103119454_metrics.json

Сравнение приёмников

Наложите набор данных RX Zynq и существующее FM-наблюдение RTL-SDR:

python blocks/block_06_rf_frontend_and_ad9363/python/lab_6_6_compare_receivers.py \
  --zynq-manifest datasets/lab6_6_zynq_rx_observation/manifest_fm_103119454.yaml \
  --rtl-manifest datasets/lab1_0_rtl_sdr_observation/manifest_fm_103119454.yaml

Он записывает:

docs/assets/lab66_lab6_6_zynq_rx_fm_103119454_vs_lab1_0_rtl_sdr_fm_103119454_spectrum.png
docs/assets/lab66_lab6_6_zynq_rx_fm_103119454_vs_lab1_0_rtl_sdr_fm_103119454_metrics.json

Последний измеренный повторный прогон

В репозитории также хранится повторный живой прогон от 2026-06-22:

datasets/lab6_6_zynq_rx_observation/manifest_fm_103119454_live_20260622.yaml
docs/assets/lab92_lab6_6_zynq_rx_fm_103119454_live_20260622_spectrum.png
docs/assets/lab92_lab6_6_zynq_rx_fm_103119454_live_20260622_time_preview.png
docs/assets/lab6_6_zynq_rx_fm_103119454_live_20260622_metrics.json
docs/assets/lab66_lab6_6_zynq_rx_fm_103119454_live_20260622_vs_lab1_0_rtl_sdr_fm_103119454_spectrum.png
docs/assets/lab66_lab6_6_zynq_rx_fm_103119454_live_20260622_vs_lab1_0_rtl_sdr_fm_103119454_metrics.json

Этот прогон использовал:

  • центральную частоту 103,119454 МГц;
  • частоту дискретизации 2,4 МС/с;
  • RF-полосу 2,0 МГц;
  • ручное усиление RX 45 дБ;
  • пассивный приём RX-only по воздуху.

Что нужно записать

Как минимум, сохраните:

  • URI контекста и строки прошивки/модели из чистого образа;
  • центральную частоту, частоту дискретизации, RF-полосу, режим усиления и усиление;
  • выбор RF-порта (допущения о тракте RX1);
  • контрольную сумму файла CI16;
  • график FFT и превью во времени;
  • одну короткую заметку о сравнении с наблюдением RTL-SDR.

Замечания по интерпретации

  • Это базовый уровень только для приёма, а не абсолютно калиброванное измерение.
  • График наложения следует интерпретировать по форме спектра и занятости, а не по абсолютной амплитуде.
  • Широкополосный FM: не узкий одиночный тон, поэтому положение бина пика: лишь быстрая проверка здравого смысла.
  • Следующий инженерный шаг после этой работы: контролируемая таблица усиления/перегрузки RX, а не loopback TX.

Чек-лист отчёта (расширенный)

  • Указано, что TX оставался в безопасном состоянии course-clean по умолчанию.
  • Приложен манифест CI16 Zynq.
  • Записаны точный режим усиления RX и аппаратное усиление.
  • Приложен офлайн-график спектра от читателя CI16.
  • Приложено наложение для сравнения приёмников.
  • Указано, готов ли RX-тракт чистого образа Zynq к будущим работам Блоков 6/7.

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

Плата Zynq с чистым образом наблюдалась в режиме только приёма на ____ МГц при
частоте дискретизации ____ МС/с, RF-полосе ____ МГц, режиме усиления ____ и усилении RX ____ дБ.
Захват сохранён в CI16 с контрольной суммой ______ и воспроизведён читателем
Блока 9. По сравнению с прежним FM-наблюдением RTL-SDR захват Zynq
показывает / не показывает согласованную форму занятого FM-диапазона, потому что ______.
Это значит, что RX-тракт чистого образа готов / не готов к следующей аппаратной работе, потому что ______.