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

02. Подготовка программного окружения

Цель раздела

Подготовить программное окружение для первого блока курса и понять роль каждого инструмента.

1. Общий подход

В курсе используется несколько программ. Они нужны не «для количества»: каждая решает конкретную инженерную задачу.

  • Python это опорный язык курса: им создаются все скрипты лабораторных, графики и метрики;
  • RTL-SDR: недорогой внешний приёмник для первых экспериментов;
  • программа просмотра спектра (HDSDR, SDR#, SDR++ или GQRX): быстрое наблюдение спектра и водопада;
  • MATLAB / Simulink: необязательный параллельный маршрут для моделирования и подготовки к fixed-point;
  • C/C++: быстрые утилиты и инструменты обработки сигналов;
  • GNU Radio: наглядная сборка SDR-цепочек;
  • Icarus Verilog: симуляция RTL курса начиная с блока 5;
  • Vivado / Vitis: путь к реализации на платформе Xilinx;
  • KiCad: чтение схем и подготовка аппаратной части курса;
  • VS Code: основная рабочая среда проекта.

2. Минимальный набор ПО для старта

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

  1. Python 3 и зависимости курса;
  2. драйвер RTL-SDR;
  3. программу просмотра спектра (HDSDR или SDR# в Windows, SDR++ в любой системе, GQRX в Linux);
  4. VS Code (или любой редактор).

Этого уже достаточно, чтобы:

  • принять сигнал;
  • увидеть спектр;
  • записать данные;
  • выполнить базовый анализ.

MATLAB и Simulink не обязательны: каждая лабораторная курса выполняется на Python, а страницы о MATLAB это параллельный маршрут для тех, у кого есть лицензия.

3. Расширенный набор ПО

Для следующих этапов курса рекомендуется установить:

  • Icarus Verilog (блок 5 и далее);
  • GNU Radio;
  • Vivado / Vitis (только для синтеза и работы с платой);
  • KiCad;
  • компилятор C/C++;
  • MATLAB / Simulink с Fixed-Point Designer и HDL Coder, если есть.

4. Установка Python-окружения курса

Назначение

Скрипты курса читают IQ-файлы, строят графики и записывают метрики, на которые ссылаются страницы лабораторных. Всё, что нужно лабораторным, зафиксировано в requirements.txt.

Что сделать

git clone https://github.com/Lay007/zynq-sdr-course.git
cd zynq-sdr-course
python tools/tasks.py install
python tools/tasks.py labs

install ставит зафиксированные пакеты (numpy, matplotlib и инструменты документации); labs запускает представительные скрипты лабораторных. Если labs завершился без ошибок, Python-часть окружения готова.

Примеры задач блока 1

  • загрузить запись комплексных отсчётов;
  • вычислить FFT;
  • найти частоту максимального пика;
  • построить спектр.

5. Установка RTL-SDR

Назначение

RTL-SDR используется как простой внешний приёмник для наблюдения сигнала учебной SDR-платы.

Что сделать

  • подключить RTL-SDR к компьютеру;
  • установить драйвер устройства:
  • Windows: запустить Zadig, выбрать interface 0 устройства (Bulk-In) и установить WinUSB (экраны показаны в Lab 1.0);
  • Linux: установить пакет rtl-sdr и не дать ядерному драйверу DVB-T захватить приёмник (blacklist dvb_usb_rtl28xxu в /etc/modprobe.d/);
  • проверить, что система видит устройство (rtl_test печатает тип тюнера);
  • проверить, что приёмник доступен в программе просмотра спектра.

Важные замечания

  • лучше использовать USB-порт без перегруженного хаба;
  • рядом с передатчиком следите за уровнем сигнала;
  • при прямом кабельном подключении при необходимости ставьте аттенюатор.

6. Установка программы просмотра спектра

Назначение

Программа просмотра спектра нужна, чтобы наблюдать:

  • спектр;
  • водопад;
  • частоту сигнала;
  • уровень сигнала;
  • поведение сигнала во времени.

HDSDR и SDR#: программы для Windows; SDR++ работает в Windows, Linux и macOS; в Linux распространён GQRX. В примерах курса используется HDSDR, но подойдёт любая из них.

Что проверить после установки

  • программа запускается без ошибок;
  • в качестве источника сигнала выбран RTL-SDR;
  • спектр меняется при перестройке частоты;
  • виден уровень шума и принимаемые сигналы;
  • программа умеет записывать baseband IQ, а не только демодулированный звук.

Назначение

MATLAB и Simulink используются для:

  • моделирования сигналов;
  • построения тестовых цепочек;
  • спектрального анализа;
  • подготовки к fixed-point;
  • последующего перехода к аппаратной реализации.

В первом блоке они нужны для

  • анализа записанного IQ-файла;
  • вычисления FFT;
  • оценки частоты и уровня тона;
  • связи модели с будущей аппаратной реализацией.

Рекомендуемые компоненты

  • Simulink
  • тулбоксы для DSP
  • Fixed-Point Designer
  • HDL Coder

8. Установка компилятора C/C++

Назначение

C/C++ нужен для:

  • быстрых утилит;
  • офлайн-обработки больших файлов;
  • подготовки настоящих DSP-инструментов;
  • последующей интеграции в проекты реального времени.

В первом блоке

C/C++ используется в облегчённом виде:

  • чтение IQ-файлов;
  • простой спектральный анализ;
  • собственная утилита обработки.

9. Установка GNU Radio

Назначение

GNU Radio позволяет быстро собрать SDR-цепочку из готовых блоков и наглядно отладить поток сигнала.

В первом блоке

GNU Radio можно использовать для:

  • чтения записанного файла;
  • отображения спектра;
  • сравнения результатов с программой просмотра спектра и Python;
  • интуитивного понимания цепочки.

10. Установка Vivado / Vitis

Назначение

Vivado / Vitis используются для работы с платформой Xilinx:

  • сборка проекта;
  • конфигурация аппаратуры;
  • взаимодействие с SoC;
  • подготовка маршрута от модели к аппаратуре.

В первом блоке

Эти инструменты рассматриваются только обзорно, без глубокого использования. Vivado: большой дистрибутив; RTL-лабораторные блоков 5 и 8 работают в Icarus Verilog и без него.

Главная цель:

  • понять, что аппаратная реализация не появляется «сама собой»;
  • увидеть место инструментов Xilinx в общем учебном маршруте.

11. Установка KiCad

Назначение

KiCad используется как инженерный инструмент для:

  • чтения схем;
  • подготовки схемотехнических лабораторных;
  • создания простых вспомогательных плат;
  • понимания электрических соединений учебного стенда.

В первом блоке

KiCad в основном нужен, чтобы:

  • познакомиться с интерфейсом;
  • открыть готовые схемы;
  • читать цепи питания, сигнальные линии и разъёмы.

12. Установка VS Code

Назначение

VS Code: основная рабочая среда проекта.

В ней удобно:

  • редактировать Markdown;
  • запускать Python-скрипты;
  • работать с C/C++;
  • сопровождать репозиторий курса;
  • готовить материалы лабораторных.

13. Рекомендуемый порядок установки

Минимальный старт

  1. Python и python tools/tasks.py install
  2. Драйвер RTL-SDR
  3. Программа просмотра спектра
  4. VS Code

Следующий этап

  1. Icarus Verilog
  2. GNU Radio
  3. KiCad
  4. Компилятор C/C++
  5. MATLAB / Simulink (необязательно)
  6. Vivado / Vitis

14. Проверка готовности

Перед лабораторной студент должен ответить «да» на вопросы:

  • Завершается ли python tools/tasks.py labs без ошибок?
  • Видит ли система RTL-SDR (rtl_test или программа просмотра спектра)?
  • Запускается ли программа просмотра спектра, видно ли уровень шума, пишет ли она baseband IQ?
  • Установлен ли VS Code (или другой редактор)?
  • Запускается ли KiCad?

15. Минимальный чек-лист перед первой лабораторной

  • репозиторий курса склонирован, Python-зависимости установлены;
  • RTL-SDR установлен и проверен;
  • установлена программа просмотра спектра;
  • подготовлено место для IQ-файлов и скриншотов.

16. Выводы

Программное окружение блока 1 должно быть не максимально полным, а достаточным для первого реального эксперимента.

На этом этапе важно не перегрузить студента, а обеспечить:

  • рабочий набор инструментов;
  • понимание роли каждого инструмента;
  • готовность перейти к аппаратной части и первой лабораторной работе.