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 метрика. |
Инженерные вопросы¶
- Почему свёртка является естественной операцией для FIR-фильтрации?
- Почему корреляция является естественной операцией для обнаружения преамбулы?
- Как шум влияет на корреляционный пик?
- Какая ширина аккумулятора нужна fixed-point correlator?
- Как реализовать 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.