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

Lab 3.6 — свёртка и корреляция в SDR

Эта лабораторная разделяет две операции, которые часто смешивают на раннем этапе изучения DSP: свёртку для фильтрации и корреляцию для обнаружения. Это детерминированная script-driven работа, без notebook-подхода.

Цель

На одном синтетическом SDR-сигнале показать две разные инженерные роли:

Операция Роль в SDR Следствие для FPGA / реализации
Свёртка FIR-фильтрация, pulse shaping, отклик канала. Multiply-accumulate структура, задержка, квантование коэффициентов.
Корреляция Обнаружение преамбулы, оценка задержки, синхронизация. Скользящий matched filter, ширина аккумулятора, threshold logic.

Команда запуска

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

python blocks/block_03_dsp_basics/python/lab_3_6_convolution_correlation.py

Или через общий reproducibility suite:

python tools/run_all_labs.py

Генерируемые артефакты

Артефакт Назначение
docs/assets/lab36_convolution_filtering.png Свёртка как FIR-фильтрация.
docs/assets/lab36_correlation_detection.png Пик matched correlation для обнаружения преамбулы.
docs/assets/lab36_correlation_metrics.json Оценка задержки, ошибка задержки и peak-to-median метрика.

Инженерные вопросы

  1. Почему свёртка является естественной операцией для FIR-фильтрации?
  2. Почему корреляция является естественной операцией для обнаружения преамбулы?
  3. Как шум влияет на корреляционный пик?
  4. Какая ширина аккумулятора нужна fixed-point correlator?
  5. Как реализовать sliding correlator в FPGA logic?

Что включить в отчёт

  • Оба сгенерированных графика.
  • Истинную и оценённую задержку.
  • Ошибку задержки в отсчётах.
  • Значение correlation peak-to-median.
  • Пояснение, как FIR stage и matched correlator отображаются в RTL.

Связь со следующими блоками

Эта лабораторная напрямую связана с:

  • Block 05: FIR и matched-filter RTL structures;
  • Block 08: синхронизация и обнаружение преамбулы;
  • Block 11: receiver-chain measurement reports.