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

Лабораторная 4.4 — BPSK-цепочка в Simulink и идеальная кривая BER от SNR

Цель

Добавить к маршруту BPSK настоящий этап Simulink и убедиться, что MATLAB/Simulink строит идеальную кривую BER от SNR для эталонного случая AWGN.

Эта работа закрывает часть маршрута, относящуюся к Simulink:

handoff-файлы Блока 11 -> fixed-point цепочка Simulink -> идеальная базовая кривая BER/SNR -> этап HDL

Зачем это нужно

Любому числу BER, которое вы позже измерите на плате, нужна мерка. «BER = 1e-3» ничего не значит, пока вы не знаете, чего добился бы лучший из возможных приёмник при том же отношении сигнал/шум. У когерентного BPSK в AWGN есть замкнутый ответ, а Simulink позволяет проверить, что ваша fixed-point цепочка, отсчёт за отсчётом, его достигает. Если ваша смоделированная кривая лежит далеко правее теории, реализация где-то теряет децибелы (тайминг, квантование, рассогласование фильтров); если аппаратное измерение лежит далеко правее этой кривой, потеря в RF-тракте или синхронизации, а не в математике модема.

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

Файл Роль
blocks/block_04_simulink_and_fixed_point/matlab/lab_4_4_prepare_bpsk_simulink_workspace.m загружает handoff-файлы Блока 11 в рабочее пространство MATLAB/Simulink
blocks/block_04_simulink_and_fixed_point/matlab/lab_4_4_generate_bpsk_simulink_models.m программно создаёт модели .slx
blocks/block_04_simulink_and_fixed_point/matlab/lab_4_4_run_bpsk_simulink_models.m запускает обе модели и сохраняет графики для отчёта
Модель Путь Назначение
Fixed-point цепочка blocks/block_04_simulink_and_fixed_point/simulink/lab_4_4_bpsk_fixed_point_chain.slx импортирует handoff-файлы BPSK Блока 11 и запускает фильтры RRC TX/RX в Simulink
Идеальная модель BER blocks/block_04_simulink_and_fixed_point/simulink/lab_4_4_bpsk_ideal_ber_awgn.slx идеальный BPSK в AWGN для проверки BER от SNR

Как запустить

Из корня репозитория:

matlab -batch "lab_4_4_run_bpsk_simulink_models"

Сгенерированные артефакты

docs/assets/lab44_bpsk_simulink_tx_overlay_matlab.png
docs/assets/lab44_bpsk_simulink_rx_overlay_matlab.png
docs/assets/lab44_bpsk_ideal_ber_vs_snr_matlab.png
docs/assets/lab44_bpsk_simulink_metrics.json

Инженерный смысл

Работа намеренно разделяет две проверки:

  1. Fixed-point цепочка Simulink использует ровно те же handoff-файлы BPSK из Блока 11.
  2. Идеальная модель BER задаёт кривую лучшего возможного приёмника для когерентного BPSK в AWGN.

Это важно, потому что будущие аппаратные результаты BER нужно сравнивать не только с прежним программным кодом, но и с идеальным теоретическим пределом.

Соглашение по оси BER от SNR

Идеальная кривая строится относительно SNR / E_b/N_0, дБ.

Для идеальной модели BPSK с одним отсчётом на символ, использованной здесь, это удобная опорная ось теоретической кривой:

BER_theory = 0.5 * erfc(sqrt(10^(Eb/N0_dB / 10)))

Развёртка Simulink накладывает точки Монте-Карло на эту теоретическую кривую.

Опорные точки теоретической кривой для проверки вашего графика:

Eb/N0 идеальный BER BPSK
0 дБ 7,86e-02
2 дБ 3,75e-02
4 дБ 1,25e-02
6 дБ 2,39e-03
8 дБ 1,91e-04
9,6 дБ 9,74e-06

Кривая становится круче с ростом SNR: 2 дБ дают выигрыш примерно в 2 раза по BER между 0 и 2 дБ, но примерно в 12 раз между 6 и 8 дБ. Прогон из N бит разрешает BER лишь до порядка 1/N: чтобы увидеть 1e-5, нужно заметно больше 100 000 бит на точку, иначе точки Монте-Карло при высоком SNR будут читаться как ноль.

Эта работа требует MATLAB/Simulink, которых нет в автоматическом CI. Опорные значения выше получены по замкнутой формуле, а не из прогона Simulink.

Чего ожидать

docs/assets/lab44_bpsk_simulink_metrics.json содержит результат прогона MATLAB/Simulink, закоммиченный 2026-06-25. Для этой страницы он не перезапускался (MATLAB не входит в CI):

Eb/N0 0 дБ 2 дБ 4 дБ 6 дБ 8 дБ 9 дБ 10 дБ
BER Simulink 7,69e-2 3,80e-2 1,24e-2 2,46e-3 1,9e-4 3,0e-5 5e-6
теория 7,86e-2 3,75e-2 1,25e-2 2,39e-3 1,91e-4 3,36e-5 3,9e-6
  • Цепочка с фиксированной точкой воспроизводит сигналы Блока 11 с TX RMSE 0 и RX RMSE 6,1e-5 (около 2 LSB Q1.15).
  • Наибольшее отличие BER от теории: 1,7e-3 при 0 дБ, где сам BER равен 7,9e-2.
  • Все смоделированные значения кратны 5e-6, что соответствует 200 000 бит на точку. Тогда точка 10 дБ это одна битовая ошибка, а точка 9 дБ это шесть: у этих двух точек почти нет статистического веса.

Без MATLAB тот же эталон доступен на Python: Лабораторная 8.8 моделирует QPSK с кодом Грея, чей BER на бит это та же кривая, а Лабораторная 4.3 прогоняет BPSK-цепочку с фиксированной точкой на тех же файлах передачи из Блока 11.

Упражнения

  1. Вычислите 95-процентный интервал для точки 10 дБ (1 ошибка на 200 000 бит) и для точки 8 дБ (38 ошибок). Противоречит ли какая-нибудь из них теории?
  2. Сколько бит на точку нужно, чтобы в точке 10 дБ было не меньше 100 ошибок? Сколько времени это заняло бы при 240 кСимв/с кадра на железе?
  3. RX RMSE равен 6,1e-5, а TX RMSE: ровно 0. Какие блоки стоят между двумя точками измерения и какой из них округляет?
Ответы (проверены запуском скрипта лабораторной)
  1. Точные (Клоппер–Пирсон) 95 % интервалы на 200 000 битах: 1 ошибка даёт от 1,3·10⁻⁷ до 2,8·10⁻⁵, что содержит теоретическое 3,9·10⁻⁶; 38 ошибок дают от 1,34·10⁻⁴ до 2,61·10⁻⁴, что содержит 1,91·10⁻⁴. Ни одна точка не противоречит теории; точка 10 дБ просто почти ничего не говорит.
  2. При BER 3,9·10⁻⁶ для 100 ошибок нужно около 100 / 3,9·10⁻⁶ ≈ 2,6·10⁷ бит. При 240 кСимв/с и одном бите на символ BPSK это около 107 с непрерывных кадров, больше с учётом заголовков и пауз между пакетами.
  3. Волна TX это сам пакет передачи из блока 11, поэтому сравнение TX точное. Между двумя точками измерения стоит согласованный RRC-фильтр RX: 65 квантованных коэффициентов и длинная сумма, округлённая обратно в Q1.15. Одно выходное округление дало бы около 0,3 МЗР СКО; наблюдаемые 2 МЗР (6,1·10⁻⁵) говорят, что доминирует квантование коэффициентов согласованного фильтра. Страница не перезапускалась (MATLAB нет в CI), поэтому это разбиение: ожидаемое объяснение, а не измерение.

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

  • Показано наложение TX Simulink на эталон MATLAB.
  • Показано наложение выхода согласованного фильтра RX Simulink на эталон MATLAB.
  • Приложен график BER от SNR с теоретической кривой и кривой Simulink.
  • Указаны диапазон SNR и число бит на точку симуляции.
  • Объяснено, что эта кривая: идеальная базовая линия AWGN для будущих измерений на Zynq.

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

Fixed-point цепочка Simulink воспроизвела эталонные сигналы с RMSE TX/RX = ____ / ____.
Идеальная кривая BER от SNR BPSK построена для SNR от ____ до ____ дБ и совпала с теорией в пределах ____.
Эта модель теперь служит чистой базовой линией Simulink перед HDL и запуском на железе.