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

Лабораторная 8.8 — QPSK-модем, искажения и BER

Цель

Расширить BPSK-тракт до QPSK с двумя битами на символ и проверить два уровня реализации:

  1. синтезируемый QPSK-модем, восстанавливающий полный кадр с BER = 0 в идеальном HDL-loopback;
  2. модель канала с AWGN и CFO, показывающую влияние искажений на созвездие и BER.

Модем и проверка

QPSK использует две ортогональные BPSK-оси. Mapper формирует Gray-кодированные точки, после чего общий тракт выполняет upsampling, RRC-фильтрацию, выборку символов и hard decision:

dibit source → QPSK mapper → upsampler → RRC TX → loopback →
RRC RX → symbol sampler → hard decision → BER counter

Testbench tb_qpsk_zynq_ber_top проверяет 140 символов / 280 бит и получает BER = 0.

Искажения

  • AWGN размывает четыре кластера и при снижении Eb/N0 вызывает пересечение границ решений.
  • CFO поворачивает созвездие от символа к символу и без коррекции превращает четыре точки в кольцо.
  • Для Gray QPSK теоретическая побитовая вероятность ошибки совпадает с BPSK: Q(√(2·Eb/N0)).

Запуск

python blocks/block_08_modulation_and_synchronization/python/qpsk_impairments_ber.py
python tools/run_block5_hdl_smoke.py

Ожидаемый результат: симуляционная BER-кривая совпадает с теорией, HDL-loopback проходит без ошибок, а CFO-набор демонстрирует необходимость восстановления несущей.

Следующий шаг

Lab 8.9 замыкает CFO-проблему с помощью петли Костаса и снятия неоднозначности 90° по известной преамбуле.