Модуляция и синхронизация¶
Блок 8. Модуляция и синхронизация¶
Назначение¶
Блок вводит цифровую модуляцию, демодуляцию и базовые механизмы синхронизации по времени, частоте и фазе.
Почему блок важен¶
Он превращает SDR из средства наблюдения тонов в систему передачи полезной информации и связывает DSP с реальным приёмником.
Основные темы¶
- BPSK, QPSK и базовые созвездия;
- формирование импульсов и shaping;
- символьная синхронизация;
- частотная и фазовая синхронизация;
- решающие устройства и BER;
- отладка модулятора и демодулятора.
Практическая часть¶
- сборка цепочки модулятор–канал–демодулятор;
- наблюдение созвездий и eye-diagram;
- эксперименты с рассогласованием частоты и времени;
- оценка ошибок синхронизации и качества приёма.
Инструменты блока¶
Основной набор инструментов: MATLAB, Simulink, GNU Radio, Python.
Что должно получиться на выходе¶
- созвездия до и после синхронизации;
- графики BER или ошибок решения;
- описание цепочки синхронизации;
- отчёт по модуляции и демодуляции.
Структура папки блока¶
block_08_modulation_and_synchronization/
├── README.md
├── README_ru.md
├── README_en.md
├── CONTENTS_ru.md
├── CONTENTS_en.md
├── assets/
├── images/
├── kicad/
├── simulink/
├── matlab/
├── python/
├── cpp/
├── gnuradio/
└── reports/
assets/— справочные данные и вспомогательные материалы;images/— диаграммы, скриншоты и фотографии;kicad/— схемы и электрические пояснения;simulink/,matlab/,python/,cpp/,gnuradio/— модели и инструменты анализа;reports/— отчёты и шаблоны оформления.
Рекомендуемый порядок работы¶
- собрать базовый цифровой линк.
- визуализировать созвездия и временные диаграммы.
- ввести ошибки синхронизации и компенсировать их.
- сформулировать ограничения и выводы.
Реальный BPSK на железе — спектр, созвездие и SNR/EVM¶
Реально измеренный BPSK с курсовой платы (Zynq-7020 + AD9361): те же три величины, что вы считаете в теории — спектр мощности, созвездие и SNR / EVM — но снятые с работающего железа, со сравнением двух точек наблюдения одного передатчика: встроенного FPGA-приёмника в цифровом loopback AD9361 и независимого RTL-SDR по эфиру.


| Метрика | Плата PL RX (цифровой loopback) | RTL-SDR (эфир, ~10 см) |
|---|---|---|
| EVM | ≈ 1.6 % | ≈ 10.6 % |
| SNR (из EVM) | ≈ 36 дБ | ≈ 19.5 дБ |
| Смещение несущей | 0 (цифра, несущей нет) | ≈ +2.7 кГц |
| BER | 0 | 0 |
Внутренний loopback изолирует модем — два плотных кластера на I = ±1, Q ≈ 0, несущей нет. По эфиру радиоканал размывает кластеры шумом и поворачивает их из-за смещения несущей (Lab 8.1 / 8.2 на реальном железе), но на близком расстоянии всё равно декодит с BER 0. Визуальный разрыв между двумя созвездиями — это и есть РЧ-канал. Полный разбор, цифры и воспроизведение: Lab 8.7 — Реальные BPSK-метрики на железе.
QPSK — два бита на символ, impairments и BER¶
QPSK — это две независимые BPSK-оси (Gray: младший бит → I, старший → Q), поэтому вдвое поднимает битовую скорость при той же полосе. Синтезируемый QPSK-модем, переиспользующий общие upsampler / RRC / sampler, восстанавливает полный кадр с BER = 0 в HDL-loopback; симуляция канала показывает, что делают с ним два impairment'а этого блока:

Четыре чистые точки → размытые шумом облака → (при низком Eb/N0) облака пересекают оси = битовые ошибки; нескорректированное смещение несущей поворачивает четыре точки в кольцо, недекодируемое до де-ротации петлёй carrier-recovery (Lab 8.1 / 8.2).

Как две ортогональные BPSK-оси, Gray QPSK имеет тот же по-битовый BER, что и BPSK,
Q(√(2·Eb/N0)) — симуляция ложится на теорию на 0–10 дБ. Полный разбор:
Lab 8.8 — QPSK-модем, impairments и BER.
Carrier recovery для QPSK — де-ротация CFO-кольца¶
CFO-кольцо выше недекодируемо (BER ≈ 0.5), пока его не де-ротирует петля carrier-recovery. Decision-directed петля Костаса (NCO + PI-фильтр петли + QPSK-детектор фазовой ошибки — частотный двойник петли Гарднера) заводит кольцо обратно на четыре точки и трекает CFO-рамп:

Единственное отличие от BPSK: петля стабилизируется на одном из четырёх поворотов k·90°,
поэтому созвездие выглядит идеально, но раскладка битов может быть повёрнута (неоднозначность
90°). Её снимает та же известная преамбула, которой модем ловит начало кадра, — и «шумный»
BER превращается в ровный BER = 0 на всём диапазоне CFO. Полный разбор:
Lab 8.9 — Carrier recovery для QPSK.
QPSK на реальном железе — loopback платы vs эфир¶
Те же три величины, что в BPSK-измерении выше, теперь для QPSK: собственный PL-приёмник платы в fabric loopback (модем изолирован — без РЧ и несущей) против независимого RTL-SDR по эфиру. Хост-демодулятор делает ровно то, чему учит этот блок: грубый + точный поиск смещения несущей, согласованный RRC-фильтр, кадровую синхронизацию по преамбуле и снятие 90°-неоднозначности перебором четырёх поворотов.


| Метрика | Плата PL RX (fabric loopback) | RTL-SDR (эфир, ~1–2 см) |
|---|---|---|
| EVM | ≈ 1.5 % | ≈ 19 % |
| SNR (из EVM) | ≈ 36 дБ | ≈ 14.5 дБ |
| Смещение несущей | 0 (цифра, несущей нет) | ≈ +2.3 кГц |
| BER | 0 (0/280) | 0 (0/280) |
Четыре тугие точки в loopback (изолированный модем) превращаются в четыре размытых шумом и повёрнутых несущей облака по эфиру (радиоканал), но обе картинки декодятся с BER = 0 той же цепочкой синхронизации, что моделируют симуляции. Визуальный зазор между созвездиями — это и есть РЧ-канал: ровно та же BPSK-история из Lab 8.7, теперь по два бита на символ.
Следующий шаг¶
После завершения блока студент должен быть готов использовать его результаты как основу для следующего этапа курса и связанного практического эксперимента.