Лабораторная 3.7 — Окна FFT и обнаружение слабых сигналов¶
Эта лабораторная усиливает раздел спектрального анализа в DSP foundation track. Это детерминированная script-driven работа, без notebook-подхода.
Цель¶
Показать, что FFT window это инженерный выбор, а не декоративная настройка графика. Лабораторная сравнивает, как разные окна влияют на видимость слабого тона рядом с сильным тоном.
Что измеряется¶
| Свойство окна | Последствие для SDR-измерений |
|---|---|
| Ширина главного лепестка | Разделение тонов и частотное разрешение. |
| Уровень боковых лепестков | Возможность увидеть слабый сигнал рядом с сильным компонентом. |
| Coherent gain | Корректная интерпретация амплитуды. |
| ENBW | Интерпретация noise floor и чувствительности. |
Команда запуска¶
Из корня репозитория:
python blocks/block_03_dsp_basics/python/lab_3_7_window_tradeoffs.py
Или через общий reproducibility suite:
python tools/run_all_labs.py
Генерируемые артефакты¶
| Артефакт | Назначение |
|---|---|
docs/assets/lab37_window_tradeoffs.png |
Сравнение спектров для rectangular, Hann и Blackman windows. |
docs/assets/lab37_weak_signal_detection.png |
Метрика видимости слабого сигнала для каждого окна. |
docs/assets/lab37_window_metrics.json |
Coherent gain, ENBW и метрики weak-signal detection. |
Инженерные вопросы¶
- Почему rectangular window может скрыть слабый сигнал рядом с сильным?
- Почему снижение боковых лепестков обычно увеличивает ширину главного лепестка?
- Почему coherent gain нужен для амплитудных измерений?
- Почему ENBW важен при оценке noise floor?
- Какое окно лучше выбрать для weak-signal detection и почему?
Что включить в отчёт¶
- Оба сгенерированных графика.
- Сравнение минимум трёх типов окон.
- Coherent gain и ENBW.
- Метрику видимости слабого тона.
- Пояснение, как выбор окна влияет на SDR spectrum display и measurement report.
Связь со следующими блоками¶
Эта лабораторная напрямую связана с:
- Block 06: RF spectrum observation и overload checks;
- Block 08: синхронизация и weak-pilot detection;
- Block 09: анализ записанных IQ-файлов;
- Block 11: measurement dashboard и качество итогового отчёта.
Чего ожидать¶
rectangular: weak visibility = 0.45 dB
hann: weak visibility = 46.62 dB
blackman: weak visibility = 46.50 dB
- Слабый тон на 54 дБ ниже сильного, в 8,4 кГц от него (около 138 бинов при 61 Гц на бин), невидим с прямоугольным окном (0,45 дБ над локальной полкой) и отчётливо виден с окнами Ханна и Блэкмана (около 46,5 дБ).
- Здесь Ханн и Блэкман равны, потому что слабый тон далеко от сильного, где утечка у обоих намного ниже шума. Сравните с Лабораторной 3.1, где слабый тон всего в 12 бинах и Блэкман выигрывает 7,7 дБ: «лучшее» окно зависит от того, какой разнос нужно разрешить.
Упражнения¶
- Придвиньте слабый тон ближе к сильному (например на 1,2 кГц, около 20 бинов). Какое окно выигрывает теперь?
- Опустите слабый тон до −80 дБ. Какой предел вы встречаете первым: утечку или шумовую полку?
- По значениям ENBW из Лабораторной 3.1 предскажите, насколько поднимается шумовая полка от прямоугольного окна к Блэкману, и проверьте по графику.
Ответы (проверены запуском скрипта лабораторной)
- На 1,2 кГц (около 20 бинов) выигрывает Блэкман: 36,5 дБ над локальной полкой против 31,7 дБ у Ханна; прямоугольное окно по-прежнему ничего не показывает (−0,7 дБ). Ближе к сильному тону важнее глубокие и быстро спадающие боковые лепестки, чем ширина главного.
- Шумовую полку. При −80 дБ слабый тон всё ещё на 20,9 дБ (Ханн) и 20,5 дБ (Блэкман) выше локальной полки, и эта полка это шум, а не утечка: на 138 бинах оба окна протекают гораздо слабее шума. Прямоугольное окно ограничено утечкой и ничего не показывает.
- ENBW 1,727 для Блэкмана предсказывает
10·log10(1,727) = 2,37 дБ; измеренный медианный уровень шума растёт с −103,79 до −101,44 дБ, то есть на 2,35 дБ (Ханн: предсказано 1,76, измерено 1,73 дБ).