Table of Contents
Лекция 4. БПФ и практический спектральный анализ
Подробное объяснение «на пальцах»: зачем нужна лекция, что она решает, откуда берутся формулы и что означают картинки. Материал рассчитан и на подготовку преподавателя, и на самостоятельное чтение студентом: от первых понятий до практических рецептов и разбора ошибок.
О чём этот текст и как им пользоваться
- Это подробный конспект лекции 4: смысл без «тяжёлого» вывода формул.
- Кому полезен:
- студенту — чтобы понять, а не заучить;
- преподавателю — чтобы было чем наполнить рассказ;
- практику — чтобы знать, какие ручки крутить.
- Структура:
- разделы 1–2 — что такое спектр и почему считать «в лоб» дорого;
- раздел 3 — как устроено БПФ;
- разделы 4–6 — конечная запись, окна, разрешение, миф про zero-padding;
- разделы 7–11 — практика: Уэлч, PSD, точная частота, спектрограмма, пример;
- разделы 12–21 — шпаргалка, ошибки, код, рецепты, задания, план.
- Формат — списки: так удобнее готовиться, повторять и объяснять.
- Числовые примеры взяты из ноутбука
lecture04.ipynb.
Цели лекции (что должен уметь студент)
- Объяснить, что такое БПФ:
- это не новое преобразование, а быстрый алгоритм для ДПФ;
- результат точно совпадает с ДПФ;
- выигрыш — в тысячи и десятки тысяч раз.
- Показать идею «разделяй и властвуй»:
- одно большое ДПФ → два маленьких;
- рекурсия →
log₂Nуровней.
- Понять «бабочку» и бит-реверс.
- Объяснить, откуда берётся утечка.
- Осознанно выбирать окно под задачу.
- Понимать
Δf = 1/Tи почему zero-padding не улучшает разрешение. - Пользоваться методом Уэлча и читать PSD.
- Строить спектрограмму.
- Сделать всё это в Python.
Зачем каждый пункт на практике:
- БПФ — чтобы считать спектр в реальном времени.
- Разрешение — чтобы различать близкие частоты (дефект vs помеха).
- Окна — чтобы видеть слабые линии рядом с сильными.
- Уэлч и PSD — чтобы измерять шум, а не «мохнатый» шумный спектр.
- Спектрограмма — чтобы работать с меняющимися сигналами.
1. Напоминание: что такое спектр и зачем он нужен
1.1 Сигнал и его «радуга»
- Сигнал — величина, меняющаяся во времени:
- напряжение на датчике;
- вибрация подшипника;
- звук микрофона;
- ток двигателя.
- Во времени сигнал — извилистая кривая, где «всё перемешано».
- Спектр — разложение сигнала на простые синусоиды с их амплитудами и фазами.
- Аналогия: белый свет через призму → цвета; спектр — «радуга сигнала».
- «Призма» здесь — арифметика: пробуем синусоиды и смотрим, какие совпали.
- Практический смысл:
- превратить «непонятную кривую» в несколько чисел;
- найти дефект, невидимый глазом;
- принять решение: проблема есть/нет, на какой частоте, растёт ли она.
1.2 Формула ДПФ словами
- Есть
Nотсчётов:x[0], x[1], …, x[N−1]. - ДПФ даёт
Nкомплексных чиселX[0], X[1], …, X[N−1]. - Смысл
X[k] = Σ x[n]·e^(−j·2π·k·n/N):- берём пробную синусоиду частоты номер
k; - умножаем сигнал на неё и складываем;
- совпали частоты → слагаемые складываются в большое число;
- не совпали → гасят друг друга, почти ноль.
- ДПФ — это корреляция сигнала с набором синусоид.
- Пик появляется там, где произошло совпадение.
1.3 Амплитуда, фаза, мощность
|X[k]|— амплитуда (насколько «громко» звучит частота).arg X[k]— фаза (с каким сдвигом присутствует).|X[k]|²— мощность составляющей.- Для анализа чаще смотрят амплитуду или мощность.
- Фаза нужна для:
- измерения задержек и дальности;
- фазовой локализации (RFID, радар);
- когерентного накопления и синхронизации.
1.4 Вещественный и комплексный сигнал
- Вещественный сигнал (напряжение, звук) даёт две сопряжённые линии:
+fи−f. - Поэтому для вещественного сигнала достаточно половины спектра (
rfft). - Комплексный (аналитический) сигнал даёт одну линию на
+f. - Аналитический сигнал удобен в связи (I/Q).
- Отрицательные частоты — удобство математики; для вещественного сигнала они
симметричны положительным.
1.5 Ось частот и бины
- Реальная частота:
f_k = k·f_д/N, гдеf_д— частота дискретизации. - Сетка этих частот — бины; шаг сетки
Δf = f_д/N. - Между бинами спектр не определён «напрямую» — там интерполяция.
- Ось строят функциями
fftfreq(двусторонняя) иrfftfreq(односторонняя).
1.6 Маленький пример
f_д = 8000Гц,N = 8→Δf = 1000Гц; бины0, 1000, …, 7000Гц.- Косинус ровно 1000 Гц → попадёт в бин, две чёткие линии ±1000 Гц.
- Косинус 1250 Гц → между бинами, «размазанный» холмик (утечка).
1.7 Как выглядит спектр типичных сигналов
- Чистый тон: одна-две узкие линии.
- Периодический сигнал (меандр, треугольник): набор гармоник кратных основной.
- Шум: размазанная «полка» по всем частотам.
- Вибрация: несколько линий (вращение, дефекты) плюс шум.
- Речь/музыка: множество линий, меняющихся во времени.
- Радиосигнал: несущая и боковые полосы (зависит от модуляции).
- Понимание «типового вида» помогает сразу заметить аномалию.
1.8 Краткая история БПФ
- Идею деления на чётные/нечётные знал ещё Гаусс (начало XIX века).
- Широко известной она стала в 1965 году — статья Cooley–Tukey.
- Причина популярности — компьютеры и потребность в быстрой обработке.
- Сегодня БПФ — в основе аудио, связи, изображений, радаров, МРТ, сейсмики.
2. Проблема №1: считать спектр «в лоб» дорого
2.1 Сколько это операций
- Один коэффициент
X[k]— этоNпроизведений и сложений. - Коэффициентов
N→ итогоN²операций (квадратичная сложностьO(N²)).
2.2 Почему это критично
- Секунда аудио при 44.1 кГц:
N = 44 100,N² ≈ 1.9·10⁹. - Реальное время: пересчитывать десятки раз в секунду.
- Длинные записи и изображения:
Nещё больше. - Время растёт как квадрат длины записи — быстро «упирается».
2.3 Сравнение в числах
N | Прямое ДПФ N² | БПФ N·log₂N | Во сколько раз меньше |
|---|---|---|---|
| 64 | ~4·10³ | ~4·10² | ~16 |
| 1024 | ~10⁶ | ~10⁴ | ~100 |
| 65 536 | ~4·10⁹ | ~10⁶ | ~4000 |
| 10⁶ | ~10¹² | ~2·10⁷ | ~50 000 |
- Вывод: выигрыш растёт с
Nи становится астрономическим. - Поэтому БПФ — один из важнейших алгоритмов XX века.
2.4 Что такое «сложность O(·)» на пальцах
O(N²)— время растёт как квадрат длины: удвоилиN— время вчетверо.O(N·log₂N)— почти линейно: удвоилиN— время чуть больше, чем вдвое.- На больших
Nразница между кривыми определяет, «успеем или нет». - В реальном времени это разница между «работает» и «не работает».
2.5 Как ускоряли до БПФ (интуиция)
- Заметили, что одни и те же множители встречаются много раз.
- Их можно переиспользовать, а не считать заново.
- Отсюда идея делить задачу пополам и переиспользовать результаты.
3. БПФ: быстрое преобразование Фурье
3.1 Главная мысль
- БПФ — не приближение и не другое преобразование.
- Оно считает тот же ДПФ, но быстрее:
O(N·log₂N)вместоO(N²). - Результат совпадает с точностью машинной арифметики.
- «Быстрое» относится к скорости вычислений, а не к упрощению результата.
3.2 «Разделяй и властвуй»
- Пусть
Nчётно. - Делим отсчёты на чётные и нечётные:
- чётные:
x[0], x[2], x[4], …; - нечётные:
x[1], x[3], x[5], ….
- Спектр всего сигнала выражается через два спектра половинной длины:
E[k]— спектр чётных;O[k]— спектр нечётных;- и поворотный множитель
W.
- Причина: частота в показателе «пересчитывается» для половинной длины
(W_N² = W_(N/2)).
- Далее — рекурсия: каждую половину снова делим пополам.
- Пока не останутся ДПФ длины 1–2.
- Глубина дерева —
log₂N; отсюда множительlog₂N. - Уравнение сложности:
T(N) = 2·T(N/2) + O(N). - Его решение —
O(N·log₂N).
3.3 Почему деление «работает»
- Поворотные множители обладают симметрией:
W^(k+N/2) = −W^k;W^(2k) = W_(N/2)^k.
- Именно эта симметрия позволяет соединять половины «почти бесплатно».
- Без неё деление не давало бы выигрыша.
3.4 «Бабочка»
- Две половины соединяются «бабочкой»:
X[k] = E[k] + W·O[k];X[k + N/2] = E[k] − W·O[k].
- Одно и то же
W·O[k]прибавляется и вычитается. - За одну операцию — сразу две точки спектра.
- Стоимость: одно комплексное умножение и два сложения.
- Название — из-за формы схемы (два входа, два выхода, перекрестье).
3.5 Ручной пример для ''N = 4''
- Вход
x = [x0, x1, x2, x3]. - Разделяем: чётные
[x0, x2], нечётные[x1, x3]. - ДПФ длины 2:
E[0] = x0 + x2,E[1] = x0 − x2;O[0] = x1 + x3,O[1] = x1 − x3.
- Точки спектра:
X[0] = E[0] + W⁰·O[0];X[2] = E[0] − W⁰·O[0];X[1] = E[1] + W¹·O[1];X[3] = E[1] − W¹·O[1].
- Здесь
W = e^(−j·2π/4). - Вместо 16 умножений (в лоб) — два умножения на
W. - Для
N = 8экономия ещё заметнее.
3.6 Ручной пример для ''N = 8'' (идея)
- Делим на чётные (
0,2,4,6) и нечётные (1,3,5,7). - Каждую четвёрку — снова на чётные/нечётные.
- Получаем четыре ДПФ длины 2.
- Соединяем «бабочками» в три стадии.
- Число «дорогих» умножений резко падает.
3.7 Бит-реверс
- Плата за деление: входные отсчёты идут в бит-реверсивном порядке.
- Правило: номер в двоичном виде читается справа налево.
- Пример:
1 = 001₂→100₂ = 4. - Для
N = 8:0, 4, 2, 6, 1, 5, 3, 7. - На выходе порядок естественный:
X[0..7]. - В коде — одна перестановка массива перед БПФ.
3.8 Как выглядит граф 8-точечного БПФ
- Три вертикальные стадии.
- На каждой — четыре бабочки.
- Слева — вход в бит-реверсивном порядке.
- Справа — спектр
X[0..7]в обычном порядке. - Структура регулярная → удобно для процессора и железа (FPGA, ASIC).
3.9 Итеративный и рекурсивный варианты
- Рекурсивный БПФ — ближе к определению, но с накладными расходами.
- Итеративный — по стадиям, «на месте» (in-place); так делают библиотеки.
- In-place экономит память: результат пишется поверх входа.
- Порядок стадий обеспечивает бит-реверс заранее.
3.10 Варианты алгоритма и практика
- radix-2 — деление пополам; требует
N = 2^m. - radix-4 — меньше операций.
- split-radix — ещё быстрее.
- mixed-radix — для составных
N. - Простое большое
N— смешанные алгоритмы или округление до степени двойки. - Вещественный сигнал —
rfft, вдвое дешевле. - Библиотеки: FFTW, pocketfft (NumPy/SciPy), MKL, cuFFT (GPU).
- Правило: по возможности брать
Nстепенью двойки.
3.11 Где БПФ применяется
- Аудио: сжатие, эквалайзеры, распознавание речи.
- Связь: OFDM (Wi-Fi, LTE, DVB), фильтрация.
- Медицина: МРТ, ЭЭГ, ЭКГ.
- Техника: вибродиагностика, радары, сейсмика, астрономия.
4. Проблема №2: конечная запись и утечка
4.1 Что мы на самом деле считаем
- Записываем кусок сигнала длиной
Tсекунд. - Формально это умножение на прямоугольное окно (1 внутри записи, 0 снаружи).
- Правило: умножение во времени = свёртка в спектре.
- Спектр прямоугольного окна — «холмик с хвостами» (
sinc). - Значит, чистый тон размазывается.
- Это и есть утечка — следствие конечности записи, а не ошибка.
4.2 Свёртка «на пальцах»
- Свёртка — «размазывание» одной функции другой.
- Аналогия: резкий звук в комнате с эхом «размазывается» во времени.
- Здесь по частоте: резкую линию «размазывает» хвост окна.
- Чем «чище» спектр окна, тем меньше размазывание.
4.3 Откуда боковые лепестки (''sinc'')
- Спектр прямоугольного окна:
- главный лепесток — центральный пик;
- боковые лепестки — затухающие «волны» по бокам.
- Главный лепесток → разрешение (шире — хуже).
- Боковые лепестки → маскировка слабых линий.
- У прямоугольного окна боковые высокие (
−13 дБ) — плохо для слабых сигналов.
4.4 Численный пример утечки
f_д = 8000Гц,N = 256→Δf = 31.25Гц.- Тон ровно в бине (например, 1000 Гц) → одна чёткая линия.
- Тон на полбина (1015.6 Гц) → энергия растекается по соседним бинам.
- С прямоугольным окном боковые падают медленно.
- С окном Hann — падают быстро.
4.5 Окна: лекарство от утечки
- Обрезаем сигнал мягко: окно равно 1 в центре и плавно идёт к 0 у краёв.
- Аналогия: мягкая диафрагма фотоаппарата даёт меньше «звёздочек».
- Эффект: боковые лепестки падают.
- Цена: главный лепесток расширяется — разрешение чуть хуже.
- Это неустранимый компромисс.
4.6 Популярные окна
| Окно | Главный лепесток | Боковые лепестки | Когда брать |
|---|---|---|---|
Прямоугольное (boxcar) | 2 бина | −13 дБ | максимальная резкость, чистые тона |
| Hann | 4 бина | −31 дБ | «рабочая лошадка», общий анализ |
| Hamming | 4 бина | −43 дБ | чуть больше динамического диапазона |
| Blackman–Harris | 8 бинов | −92 дБ | слабая линия рядом с сильной |
| flat-top | 10 бинов | −93 дБ | точная амплитуда (калибровка) |
- Прямоугольное: ничего не меняем; хорошо, если частоты точно в бинах.
- Hann: плавный «колокол»; выбор по умолчанию.
- Hamming: похоже на Hann, но не доходит до нуля; чуть ниже боковые.
- Blackman–Harris: очень низкие боковые; шире главный лепесток.
- flat-top: широкий плоский верх; точная амплитуда, плохое разрешение.
4.7 «Паспорт» окна: coherent gain и ENBW
- Coherent gain — среднее значение окна:
- поправка на амплитуду линии;
- Hann ≈ 0.5, Hamming ≈ 0.54, flat-top ≈ 0.22.
- ENBW — эквивалентная шумовая полоса:
- поправка на шум и PSD;
- прямоугольное 1.0, Hann 1.5, Hamming 1.36, flat-top 3.77.
- Без учёта этих коэффициентов нельзя сравнивать спектры с разными окнами.
scipy.signal.welchучитывает их автоматически.
4.8 Как выбрать окно
- Разделённые тона, важна резкость → прямоугольное или Hann.
- Слабая линия рядом с сильной → Hann или Blackman–Harris.
- Точная амплитуда → flat-top.
- Не знаете что взять → Hann.
4.9 Частые вопросы про окна
- «Окно убирает шум?» — нет, окно против утечки; шум убирает усреднение.
- «Окно искажает сигнал?» — ослабляет края; при нормировке амплитуда верна.
- «Можно без окна?» — да, если частоты точно в бинах и сигнал чистый.
- «Почему пик ниже?» — это coherent gain.
- «Почему пик шире?» — расширенный главный лепесток.
5. Разрешение по частоте
5.1 Главная формула
Δf = f_д / N, а так какT = N / f_д, тоΔf = 1 / T.- Чем дольше запись, тем тоньше разрешение.
Δf— минимальное расстояние, различимое по построению.
5.2 Диапазон и разрешение — разные вещи
- Частота дискретизации задаёт диапазон (до
f_д/2, частота Найквиста). - Длительность записи задаёт разрешение
Δf. - Поднять
f_д→ шире диапазон, но разрешение (при том жеT) не улучшится. - Аналогия: диапазон — «какие ноты слышим»; разрешение — «какие близкие ноты
различаем».
5.3 Число Найквиста
- Верхняя частота:
f_д / 2. - Всё выше — «заворачивается» (алиасинг), если нет антиалиасингового фильтра.
- Поэтому перед дискретизацией ставят фильтр.
5.4 Критерий Рэлея
- Тона различимы, если расстояние между ними больше
Δf. - Для Hann нужно примерно
≈ 2Δf. - То есть окно немного «съедает» разрешение, но даёт динамику.
5.5 Опыт с двумя тонами
- Тона 1000 и 1040 Гц.
N = 128→Δf = 62.5Гц → сливаются.N = 1024→Δf ≈ 7.8Гц → два пика.- Вывод: «раздвинуть» близкие частоты можно удлинением записи.
5.6 От чего ещё зависит разрешение
- Длительность записи
T(главное). - Форма/ширина окна.
- Отношение сигнал/шум.
- Наличие мешающих линий (боковые лепестки).
5.7 Примеры ''Δf'' для разных ''T''
Длительность T | Δf = 1/T |
|---|---|
| 0.1 с | 10 Гц |
| 0.5 с | 2 Гц |
| 1 с | 1 Гц |
| 10 с | 0.1 Гц |
- Хотите различить тона в 1 Гц — нужна запись около секунды и больше.
6. Миф: zero-padding
6.1 Что делают
- Дополняют сигнал нулями до большей длины перед ДПФ.
- Получают «гладкий» спектр с плотной сеткой частот.
6.2 Почему это не улучшает разрешение
- Новых данных не появляется — мы не смотрели дольше.
- Это интерполяция той же спектральной кривой.
- Слипшиеся тона сольются и на плотной сетке.
6.3 Когда zero-padding полезен
- Красивый гладкий график.
- Точное положение пика (для интерполяции).
- Приведение длины к степени двойки.
- Линейная свёртка: дополнение до
N ≥ N_a + N_b − 1. - Итог: удобство, а не разрешение.
6.4 Как не спутать
- Если пики стали «чаще» — это интерполяция, а не новое разрешение.
- Если пики стали «уже и раздельнее» — это уже удлинение записи.
7. Усреднение: метод Уэлча
7.1 Почему один спектр «мохнатый»
- Одна периодограмма
|X|²неустойчива; разброс не падает с ростомN. - Причина: одна «реализация» случайного процесса.
- Аналогия: одно измерение шума случайно; сто усреднённых — устойчивы.
7.2 Идея по шагам
- Резать запись на сегменты.
- Брать их с перекрытием.
- Применять окно.
- Считать БПФ и
|·|². - Усреднять по сегментам.
7.3 Что получаем и чем платим
- Получаем: несмещённую оценку с меньшим разбросом.
- Разброс падает как
√K(K— число сегментов). - Платим: разрешение определяется длиной сегмента.
7.4 Как выбирать параметры
nperseg(длина сегмента):- больше → лучше разрешение, больше разброс;
- меньше → меньше шум, хуже разрешение.
noverlap(перекрытие): обычно 50% (nperseg // 2).nperseg— желательно степень двойки.- Разрешение:
f_д / npersegдолжно быть достаточно мелким. - Больше сегментов → глаже кривая, но больше вычислений.
7.5 Сколько нужно усреднений
K = 1→ как одна периодограмма (шумно).K = 10→ заметно глаже.K = 100→ устойчивая кривая.- Разброс ≈
1/√K: чтобы улучшить в 2 раза, нужно в 4 раза больше сегментов.
7.6 Родственники метода
- Периодограмма — один сегмент (шумная).
- Бартлетт — сегменты без перекрытия.
- Уэлч — перекрытие + окно (стандарт).
- Медианное усреднение — устойчиво к выбросам.
- Мультитейпер — несколько ортогональных окон.
7.7 Порядок действий
- Определить нужное
Δf. - По нему выбрать длину сегмента.
- Взять окно (Hann).
- Перекрытие 50%.
- Посчитать
welch. - Убедиться: линии на месте, шум «успокоился».
8. PSD: спектральная плотность мощности
8.1 Что это
- Для шума «амплитуда на частоте» бессмысленна.
- Правильная мера — мощность на герц (PSD).
- Площадь под PSD = полная мощность сигнала.
8.2 Две нормировки
scaling='density' → «мощность²/Гц» (для шумов и широкополосных сигналов).scaling='spectrum' → «мощность² в бине» (для дискретных линий).
8.3 Формула с ENBW
PSD = |W|² / (f_д · ENBW).- Благодаря ENBW уровень шумовой полки не зависит от окна.
- В
welchэто уже учтено.
8.4 Мощность в полосе
- Мощность в полосе
[f1, f2]≈ сумма PSD по этой полосе, умноженная на шагΔf. - Отсюда: чем шире полоса, тем больше «собранная» мощность.
8.5 Зачем децибелы
- Динамический диапазон спектра огромен.
- В дБ он «сжимается» и читается глазом:
10·log10(PSD). - Таблица для ориентира:
| Отношение мощностей | В дБ |
|---|---|
| ×2 | +3 |
| ×10 | +10 |
| ×100 | +20 |
| ×1000 | +30 |
| ×10⁶ | +60 |
- Минус дБ: мощности нельзя складывать «на глаз».
8.6 Типичные ошибки с PSD
- Смешивать
densityиspectrumна одном графике. - Сравнивать разные окна без нормировки.
- Забывать про
Δfпри переходе к мощности в полосе. - Считать уровень шума не зависящим от разрешения (он зависит от полосы).
9. Точная оценка частоты
- Сетка даёт частоту с шагом
Δf; истина может быть между бинами. - Приём: параболическая интерполяция по трём точкам вокруг пика.
- Берём три значения логарифма спектра (левое, центр, правое).
- Формула даёт поправку
δ(от −0.5 до +0.5 бина). - Уточнённая частота:
f₀ ≈ (k + δ)·Δf. - Пример из ноутбука: истина 100.4 Гц, сетка ≈ 3.9 Гц, оценка — 100.34 Гц.
- Более точные методы:
- интерполяция по двум окнам;
- оценка по фазе;
- Прони, MUSIC — для близких тонов.
- Для вибрации и радиосигналов обычно достаточно интерполяции.
10. Спектрограмма: сигнал во времени и по частоте
10.1 Что такое STFT
- Обычный спектр предполагает, что сигнал всё время одинаков.
- STFT: спектр в скользящем окне.
- Результат — спектрограмма: время (X), частота (Y), мощность (цвет).
10.2 Что видно на спектрограмме
- Чирп (частота растёт) — наклонная линия.
- Короткий всплеск — вертикальное пятно.
- Долгий тон — горизонтальная линия.
- Дрейф частоты — изгиб линии.
- Одним обычным спектром этого не увидеть.
10.3 Компромисс время–частота
- Короткое окно → хорошо «когда», плохо «какая частота».
- Длинное окно → точно по частоте, но размыто по времени.
- Это принцип неопределённости, а не недоработка метода.
10.4 Когда спектрограмма нужна
- Нестационарные сигналы (речь, музыка, разгон).
- Поиск коротких событий (щелчки, удары, разряды).
- Отслеживание изменения частоты.
- Когда обычный спектр «смешивает» разные режимы.
10.5 Родственные инструменты
- Вейвлет-преобразование — адаптивное окно; лучше для широкополосных всплесков.
- Спектрограмма — простой и наглядный инструмент на каждый день.
- Мультитейперная спектрограмма — сглаженнее.
11. Реальный пример: вибрация, шаг за шагом
- Данные: вибрация агрегата.
- Составляющие: база 50 Гц, дефект 120 Гц, слабая гармоника 240 Гц, шум.
- Шаг 1. Одна периодограмма: шум «мохнатый», линия 240 Гц тонет.
- Шаг 2. Окно Hann + Уэлч: шум сглажен, линия 240 Гц различима.
- Шаг 3. PSD в дБ: удобный масштаб, видно превышение над полкой.
- Шаг 4. Уточнение частот интерполяцией.
- Итог: не «картинка», а основа для решения.
12. Шпаргалка (словарь терминов)
| Термин | Что означает |
|---|---|
| ДПФ | N чисел → N чисел спектра |
| БПФ | быстрый алгоритм того же ДПФ, O(N log N) |
| Бабочка | операция соединения двух половин спектра |
| Бит-реверс | перестановка входа БПФ |
| Окно | плавное обрезание записи |
| Утечка | размазывание линии из-за конечности записи |
| Главный лепесток | ширина пика → разрешение |
| Боковые лепестки | «хвосты», мешают видеть слабые линии |
| Coherent gain | поправка на амплитуду |
| ENBW | поправка на шум (эквивалентная шумовая полоса) |
| Разрешение | Δf = 1/T |
| Zero-padding | интерполяция, а не разрешение |
| Периодограмма | квадрат модуля БПФ одной записи |
| Метод Уэлча | усреднение периодограмм по сегментам |
| PSD | мощность на герц |
| Спектрограмма | спектр во времени (STFT) |
| Бин | узел частотной сетки ДПФ |
| Найквист | верхняя частота f_д/2 |
13. Частые ошибки и заблуждения
- «Подниму
f_д— улучшу разрешение» → нет, разрешение задаётT. - «Дополню нулями — увижу детали» → это интерполяция.
- «Окно убирает шум» → окно против утечки, шум убирает усреднение.
- «БПФ приближённое» → результат точно совпадает с ДПФ.
- «Разные окна сравнимы по высоте пиков» → только с coherent gain.
- «Больше точек всегда лучше» → разрешение = время, устойчивость = усреднение.
- «Утечка — баг» → закономерность конечной записи.
- «Спектрограмма = спектр» → спектрограмма добавляет ось времени.
14. Типичные ошибки в коде (''scipy'')
- Применили окно дважды: сначала вручную, потом внутри
welch. - Передали
fsв герцах, а частоты трактовали как бины (или наоборот). - Использовали
fftвместоrfftдля вещественного сигнала (лишняя работа). - Забыли
fftshiftтам, где нужен «центрированный» спектр. - Взяли
npersegбольше длины сигнала. - Сравнили
spectrumиdensityбез пересчёта. - Не учли coherent gain при измерении амплитуды вручную.
- Путали
noverlapв отсчётах и в процентах. - Строили спектрограмму без
scaling, а потом удивлялись уровню. - Смотрели амплитуду сигнала до вычета среднего (постоянная составляющая).
15. Практические рецепты по задачам
- Аудио (речь, музыка):
nperseg1024–4096, Hann, перекрытие 50%;- спектрограмма с окном 512–2048 для событий.
- Вибрация / диагностика:
nperseg1024–8192, Hann;- ищем гармоники и боковые полосы дефектов.
- Радио / связь:
- окно Hann или Blackman–Harris для слабых сигналов;
- I/Q, аналитический сигнал.
- ЭКГ / биосигналы:
npersegнебольшой (0.5–2 с) для нестационарности;- окно Hann; вычитать постоянную составляющую.
- Измерение частоты:
- интерполяция пика; при возможности — фазовый метод.
16. Мини-лаборатория (что сделать в ноутбуке руками)
- Сгенерировать чистый тон ровно в бине и посмотреть ДПФ.
- Сдвинуть частоту на полбина и увидеть утечку.
- Применить окно Hann и сравнить боковые лепестки в дБ.
- Сравнить спектры при
N = 128иN = 1024(два близких тона). - Дополнить нулями и убедиться, что разрешение не улучшилось.
- Реализовать простой БПФ radix-2 и сверить с
numpy.fft. - Посчитать
periodogramиwelch, сравнить «мохнатость». - Построить PSD в
densityиspectrum, объяснить разницу. - Сделать спектрограмму чирпа и короткого всплеска.
- Оценить частоту параболической интерполяцией.
17. План рассказа на 2 академических часа
- 5 мин. ДПФ и его цена
O(N²). - 15 мин. БПФ: разделяй и властвуй, бабочка, бит-реверс, сложность.
- 15 мин. Конечная запись → утечка; окна; компромисс лепестков.
- 15 мин. Разрешение
Δf = 1/T; два тона; миф про zero-padding. - 15 мин. Уэлч и PSD: зачем усреднять;
densityvsspectrum. - 15 мин. Спектрограмма; компромисс время–частота; точная частота.
- 10 мин. Реальный кейс (вибрация), рецепт
scipy.signal, задание №4.
- Приём: сначала плохая картинка, потом — что делает приём.
- Давать «до/после»: утечка → окно, шум → Уэлч, короткая запись → длинная.
18. Вопросы для самопроверки
- Чем БПФ отличается от ДПФ по результату и стоимости?
- Зачем на входе БПФ бит-реверс?
- Что физически означает утечка?
- Почему окно расширяет главный лепесток?
- Как выбрать окно для слабой линии рядом с сильной?
- Почему
Δf = 1/T, а не связано сf_д? - Почему zero-padding не улучшает разрешение?
- Зачем перекрытие сегментов в Уэлче?
- Чем
densityотличается отspectrum? - В чём компромисс время–частота?
19. Связь с другими темами курса
- Лекция 2 — непрерывное преобразование Фурье и спектры (идея).
- Лекция 3 — ДПФ (что считаем).
- Лекция 4 — БПФ и практический спектральный анализ (как считать).
- Лекция 5 — модуляция и I/Q (радиосигналы).
- Лекции 6+ — фильтры, Z-преобразование, многомерная обработка.
20. Итог одной страницей
- ДПФ — точный спектр, но
O(N²). - БПФ — тот же результат за
O(N·log N). - Вход БПФ — бит-реверс; соединение — «бабочки».
- Конечная запись → утечка; окна → компромисс «разрешение/динамика».
- Разрешение
Δf = 1/T; zero-padding — только интерполяция. - Уэлч → устойчивая PSD; спектрограмма → время–частота.
- Практика —
scipy.signal(get_window,rfft,welch,spectrogram).
21. Главная мысль и что дальше
- Спектр — не картинка, а измерение.
- Чтобы ему верить, мало уметь считать быстро (БПФ).
- Нужно понимать искажения:
- конечная запись (утечка);
- выбор окна (разрешение против динамики);
- шум (дисперсия оценки).
- И уметь отделять реальные линии от артефактов:
- окна;
- усреднение (Уэлч);
- нормировка PSD.
- Дальше (лекция 5): спектры радиосигналов и модуляция — АМ/ЧМ/ФМ, цифровые
созвездия, комплексная огибающая (I/Q).
Приложения
22. Математика за формулами — словами
22.1 Почему формула ДПФ именно такая
- Ядро
e^(−j·2π·k·n/N)— это «пробная» синусоида, повёрнутая на комплексной
плоскости.
- Умножение и суммирование — это мера похожести сигнала на эту синусоиду.
- Если сигнал содержит эту частоту, произведение даёт постоянную составляющую,
которая при суммировании накапливается.
- Если не содержит — произведение колеблется и в сумме даёт почти ноль.
- Поэтому ДПФ — это корреляция; она «выпячивает» присутствующие частоты.
22.2 Формула Эйлера — словами
e^(jθ) = cosθ + j·sinθ.- Геометрический смысл: точка на единичной окружности под углом
θ. - Мнимая единица
j— поворот на 90°. - Отсюда комплексная экспонента — удобный способ «крутить» фазу.
- Множитель
e^(−j·2π·k·n/N)— это дискретные повороты на равные углы. - Для
Nточек получаетсяNравномерно расставленных «стрелок» — базис ДПФ.
22.3 Умножение во времени = свёртка в спектре
- Возьмём произведение двух сигналов:
z = x · w. - Его спектр равен свёртке спектров
XиW. - Именно поэтому конечная запись (умножение на окно) «размазывает» спектр.
- Чем уже спектр окна, тем меньше размазывание.
- У прямоугольного окна спектр широкий — потому утечка велика.
22.4 Откуда берётся «заворачивание» и периодичность
- Дискретизация во времени делает спектр периодическим по частоте.
- Период повторения —
f_д. - Поэтому ДПФ можно «центрировать» (
fftshift) и смотреть отрицательные частоты. - Это же свойство объясняет алиасинг: частоты выше
f_д/2накладываются.
22.5 Откуда ENBW
- ENBW показывает, во сколько «бинов» окно собирает шум.
- Формула
N·Σw²/(Σw)²— отношение энергии квадрата окна к квадрату суммы. - Прямоугольное окно «собирает» ровно один бин (ENBW = 1).
- Более гладкие окна шире — ENBW > 1.
- Через ENBW нормируют шумовую полку, чтобы она не зависела от окна.
22.6 Почему разброс Уэлча падает как ''1/√K''
- Каждый сегмент даёт независимую оценку периодограммы.
- Усреднение
Kнезависимых оценок уменьшает разброс как√K. - Поэтому дисперсия падает как
1/K. - Отсюда правило: чтобы улучшить гладкость вдвое, нужно вчетверо больше сегментов.
- Расплата — разрешение определяется длиной сегмента, а не всей записи.
22.7 Равенство Парсеваля
- Энергия сигнала во времени равна энергии в спектре (с нормировкой).
- Практический смысл: вычисления «не теряют» энергию.
- Полезно для проверки корректности ДПФ/БПФ.
22.8 Частоты и бины
- Бин
kсоответствует частотеf_k = k·f_д/N. - Шаг сетки
Δf = f_д/N = 1/T. - Число уникальных бинов:
Nдля комплексного сигнала;N/2 + 1для вещественного.
23. Вопросы и развёрнутые ответы
- Почему БПФ быстрее, если считает то же самое?
Оно переиспользует одни и те же множители за счёт деления задачи пополам;
число операций становится ''N·log₂N'' вместо ''N²''.
- БПФ даёт другой результат?
Нет. Отличия только из-за машинного округления; математически результат тот же.
- Можно ли считать БПФ для любого
N?
Для N = 2^m проще всего (radix-2). Для других N есть mixed-radix и
специальные алгоритмы; часто проще добить нулями до степени двойки.
- Что делать, если частоты точно не в бинах?
Использовать окно (Hann/Blackman–Harris) и/или интерполировать пик.
- Почему у прямоугольного окна боковые только −13 дБ?
Это следствие «резкого» обрыва записи; спектр такого окна — медленно затухающий
''sinc''.
- Какое окно универсальное?
Hann: хороший компромисс между разрешением и динамическим диапазоном.
- Как увидеть слабую линию рядом с сильной?
Blackman–Harris (или Hann) + усреднение; при необходимости — вычитание сильной
линии.
- Почему после zero-padding график гладкий, но пики не разделились?
Потому что это интерполяция; новых данных нет.
- Что выбрать: разрешение или меньше шума?
Это компромисс: длинный сегмент — лучше разрешение, короткий — меньше шума.
- Сколько нужно данных для устойчивого спектра?
Чем больше, тем лучше; ориентир — десятки-сотни сегментов для гладкой PSD.
- Что такое «шумовая полка»?
Средний уровень PSD шума; реальные линии — пики над полкой.
- Чем
densityотличается отspectrum?
density — мощность на герц (для шума); spectrum — мощность в бине (для
линий).
- Почему в дБ?
Динамический диапазон спектра огромен; дБ «сжимает» масштаб для глаза.
- Как точно измерить частоту?
Интерполяция пика (парабола по логарифму), фазовый метод, Прони/MUSIC.
- Что такое спектрограмма?
Спектр во времени: STFT в скользящем окне.
- Почему на спектрограмме нельзя быть точным и по времени, и по частоте?
Принцип неопределённости: короткое окно — время, длинное — частота.
- Нужно ли вычитать среднее?
Да, постоянная составляющая (нулевая частота) иначе «давит» масштаб.
- Что делать с алиасингом?
Ставить антиалиасинговый фильтр до дискретизации и следить за f_д/2.
- Можно ли анализировать нестационарный сигнал одним спектром?
Можно, но он «смешает» режимы; лучше спектрограмма.
- Где это применяется в курсе?
В сквозном проекте: диагностика по вибрации, акустика, радио (RFID), речь.
24. Как читать ноутбук лекции (по шагам)
- Ячейка «стоимость ДПФ/БПФ»: измеряет время прямого ДПФ и
np.fft.fft.- Вывод: разрыв растёт с
N.
- Ячейка «дерево DIT»: показывает разбиение 8 отсчётов.
- Ячейка «бабочка»: схема соединения двух половин.
- Ячейка «граф БПФ»: три стадии по четыре бабочки.
- Ячейка «бит-реверс»: таблица перестановки индексов.
- Ячейка «окна во времени»: формы окон.
- Ячейка «спектры окон»: главный и боковые лепестки в дБ.
- Ячейка «компромисс окна»: ширина против боковых.
- Ячейка «утечка»: тон между бинами; rect против Hann.
- Ячейка «разрешение»: два тона при
N = 128иN = 1024. - Ячейка «zero-padding»: гладко, но без нового разрешения.
- Ячейка «Уэлч»: одна периодограмма против усреднённой.
- Ячейка «PSD»:
densityпротивspectrum. - Ячейка «спектрограмма»: чирп и всплески.
- Ячейка «вибрация»: слабая гармоника 240 Гц.
- Ячейка «точная частота»: параболическая интерполяция.
25. Другие инструменты спектрального анализа
- Вейвлеты:
- адаптивное окно (широкое на низких частотах, узкое на высоких);
- хороши для всплесков и нестационарных сигналов.
- Банки фильтров:
- набор полосовых фильтров;
- основа аудиокодеков и слуховых моделей.
- Параметрические методы (Прони, MUSIC, ESPRIT):
- дают сверхвысокое разрешение для близких тонов;
- чувствительны к модели и шуму.
- Спектральное оценивание через модели (AR/ARMA):
- короткие записи, гладкие спектры.
- Машинное обучение:
- спектрограмма как «картинка» для нейросети;
- классификация состояний (дефект/норма);
- важно помнить о физике сигнала.
26. Историческая и практическая справка
- Идея быстрого ДПФ — фактически у Гаусса (около 1805).
- Широкая известность — Cooley–Tukey, 1965.
- Появление FFTW (1997) сделало БПФ «заводским» стандартом.
- Сегодня БПФ встроено в процессоры, GPU, DSP и даже микроконтроллеры.
- В курсе БПФ — рабочий инструмент: от вибродиагностики до радиоприёма.
- Практический вывод: не изобретать БПФ, а уметь им пользоваться и понимать
ограничения.
27. Полный числовой пример БПФ (N = 4, вручную)
- Возьмём
x = [1, 2, 3, 4]. - Прямое ДПФ (для проверки):
X[0] = 1 + 2 + 3 + 4 = 10;X[1] = 1 + 2·(−j) + 3·(−1) + 4·(j) = −2 + 2j;X[2] = 1 − 2 + 3 − 4 = −2;X[3] = 1 + 2·(j) + 3·(−1) + 4·(−j) = −2 − 2j.
- Через БПФ (radix-2):
- чётные
[1, 3], нечётные[2, 4]; E[0] = 1 + 3 = 4,E[1] = 1 − 3 = −2;O[0] = 2 + 4 = 6,O[1] = 2 − 4 = −2;- множитель
W = e^(−j·π/2) = −j.
- Соединяем «бабочками»:
X[0] = E[0] + O[0] = 10;X[2] = E[0] − O[0] = −2;X[1] = E[1] + W·O[1] = −2 + 2j;X[3] = E[1] − W·O[1] = −2 − 2j.
- Результаты совпали с прямым ДПФ.
- Вывод: БПФ — это организация вычислений, а не приближение.
- Проверить себя:
np.fft.fft([1,2,3,4])даёт те же числа.
28. Чек-лист практика: как анализировать спектр
- Определить диапазон частот, который интересует.
- Выбрать частоту дискретизации (
f_д≥ 2·верхняя частота). - Определить нужное разрешение
Δfи отсюда длительностьT. - Решить, стационарный ли сигнал (нужна ли спектрограмма).
- Выбрать окно (по умолчанию Hann).
- Для шумного сигнала — усреднить (Уэлч), подобрать
nperseg/noverlap. - Проверить нормировку (density/spectrum, coherent gain).
- Построить спектр в дБ и отметить ожидаемые линии.
- Уточнить частоты пиков интерполяцией.
- Сравнить с физикой процесса и сделать вывод.
29. Англо-русский глоссарий
| Английский | Русский |
|---|---|
| DFT | ДПФ |
| FFT | БПФ |
| bin | бин, узел сетки |
| window | окно |
| leakage | утечка |
| main lobe | главный лепесток |
| side lobe | боковой лепесток |
| coherent gain | когерентное усиление |
| ENBW | эквивалентная шумовая полоса |
| zero padding | дополнение нулями |
| periodogram | периодограмма |
| Welch method | метод Уэлча |
| PSD | спектральная плотность мощности |
| spectrogram | спектрограмма |
| resolution | разрешение |
| alias / aliasing | наложение / алиасинг |
| bit reversal | бит-реверс |
| radix-2 | основание 2 |
| Nyquist | Найквист |
| decibel (dB) | децибел |
30. Ещё вопросы (продолжение)
- Почему
Nстепень двойки удобно? Radix-2 требуетN = 2^m, и БПФ работает
без «хвостов» и специальных случаев.
- Что будет, если
Nпростое? Прямое radix-2 не ляжет; нужны смешанные
алгоритмы или паддинг.
- Влияет ли форма окна на измерение амплитуды? Да; учитывайте coherent gain.
- Сколько бинов у вещественного сигнала?
N/2 + 1. - Зачем
rfft? Вдвое меньше вычислений и памяти для вещественного сигнала. - Что такое «центрированный» спектр? После
fftshift: нулевая частота в
центре.
- Что делать с постоянной составляющей? Вычесть среднее перед анализом.
- Как выбрать
nperseg? Под нужное разрешение; обычно степень двойки. - Что если сигнал не стационарный? Спектрограмма/вейвлеты.
- Как сравнивать два спектра? Одинаковые окно, длина, нормировка.
- Что такое утечка «на практике»? Кажущиеся линии рядом с реальной.
- Почему шум «мохнатый»? Оценка по одной реализации; нужна статистика.
- Как измерить уровень шума? По шумовой полке PSD.
- Зачем нужен
noverlap? Чтобы не терять данные на границах сегментов. - Что читать дальше? Оппенгейм/Шафер, Сергиенко; статьи Harris и Welch.
31. Что студент должен уметь «на выходе»
- Понимание:
- объяснить БПФ и его отличие от ДПФ;
- объяснить утечку и роль окна;
- объяснить
Δf = 1/T; - объяснить смысл PSD и Уэлча.
- Навыки:
- считать спектр в Python (
rfft,welch,spectrogram); - правильно строить ось частот;
- выбирать окно и параметры усреднения;
- измерять частоты и амплитуды;
- отделять реальные линии от артефактов.
- Отношение:
- спектр — это измерение, а не «картинка для отчёта»;
- любые выводы проверять на устойчивость (окна, длина, усреднение).
32. Разбор по кейсам сквозного проекта
- Диагностика насосного агрегата (вибрация):
- сигнал: ускорение/скорость, десятки-сотни Гц;
- что искать: оборотная частота, гармоники, боковые полосы дефектов;
- окно Hann,
nperseg1024–8192, PSD; - вывод: наличие и рост дефекта.
- Акустический контроль сварных швов:
- сигнал: ультразвук, короткие импульсы;
- что искать: время прихода, амплитуда, затухание;
- важно: широкополосность, огибающая, время-частотный анализ.
- Мониторинг зоны (RFID + LiDAR):
- RFID: RSSI и фаза, обратное рассеяние;
- LiDAR: дальность и угол;
- что искать: присутствие, перемещение, идентичность;
- далее: слияние сенсоров (фильтр Калмана).
- Речевой интерфейс оператора:
- сигнал: 16 кГц, речь;
- что искать: речь/паузы, команды, шум;
- спектрограмма, мел-признаки, детектор активности (VAD).
- Качество электроэнергии (THD):
- сигнал: 50 Гц и гармоники;
- что искать: коэффициенты гармоник, отклонения;
- окно и точная синхронизация с периодом сети.
- Сейсмоакустический мониторинг:
- сигнал: низкие частоты, длинная запись;
- что искать: события, частотный состав;
- спектрограмма и усреднение.
33. Методические заметки для преподавателя
- Начинать с «боли»: показать плохой спектр и спросить, что не так.
- Демонстрировать «до/после»:
- утечка → окно;
- шум → Уэлч;
- короткая запись → длинная.
- Давать руками: пусть студент сам поменяет окно и увидит разницу.
- Типичные ошибки студентов:
- путают диапазон и разрешение;
- верят zero-padding;
- сравнивают спектры с разными окнами;
- забывают о нормировке;
- не вычитают постоянную составляющую.
- Как проверять понимание:
- попросить объяснить, почему пик стал шире/ниже;
- попросить выбрать окно под задачу и обосновать;
- попросить отличить реальную линию от артефакта.
- Связь с практикой: каждый приём привязать к реальной задаче проекта.
- Оценивание: ноутбук с графиками + один слайд-вывод с обоснованием выбора.
34. «Формула → смысл» — короткая шпаргалка
X[k] = Σ x[n]·e^(−j2πkn/N)→ корреляция с синусоидой частотыk.f_k = k·f_д/N→ реальная частота бинаk.Δf = f_д/N = 1/T→ разрешение задаёт время записи.W_N = e^(−j2π/N)→ «шаг» поворота на комплексной плоскости.X[k] = E[k] + W·O[k]→ «бабочка» соединения половин.cosθ = (e^(jθ)+e^(−jθ))/2→ у вещественного тона две линии ±f.y = x * h(свёртка) → умножение спектров (и наоборот).PSD = |W|²/(f_д·ENBW)→ нормировка мощности на герц.δ = ½·(y₋₁ − y₊₁)/(y₋₁ − 2y₀ + y₊₁)→ поправка частоты пика.O(N²)→O(N·log₂N)→ суть выигрыша БПФ.
35. Аналогии и метафоры (чтобы объяснить любому)
- Спектр — призма/радуга: разложение сложного на простое.
- ДПФ — «подбор частоты»: угадываем, какие ноты спрятаны в аккорде.
- БПФ — тот же подбор, но умнее: не перебираем, а делим пополам.
- Бабочка — «развилка»: одно число идёт вверх и вниз.
- Бит-реверс — «перепутанные карточки», которые раскладывают заранее.
- Утечка — «размазывание»: фильтр с крутыми краями плодит «звёздочки».
- Окно — мягкая диафрагма: убирает «звёздочки», но чуть размывает.
- Главный лепесток — толщина «карандаша», которым рисуем линию.
- Боковые лепестки — «эхо» карандаша по бокам.
- Zero-padding — «лупа на той же картинке»: больше точек, но не больше деталей.
- Разрешение — «бинокль и время»: близкое различает наблюдение, а не увеличение.
- Уэлч — «усреднить сто измерений», чтобы успокоить случайность.
- PSD — «мощность на герц»: сколько энергии в каждой «щели» спектра.
- Спектрограмма — «партитура во времени»: видно, когда какая нота звучит.
- Порог Найквиста — «скорость съёмки»: слишком быстрое движение «заворачивается».
36. Частые вопросы о дискретизации и Найквисте
- Что такое частота Найквиста? Верхняя частота
f_д/2, которую можно корректно
оцифровать без алиасинга.
- Почему именно половина? Чтобы описать синусоиду, нужно минимум два отсчёта на
период (один — «вверх», один — «вниз»).
- Что происходит выше
f_д/2? Частота «заворачивается» и притворяется низкой —
это алиасинг.
- Как с ним бороться? Антиалиасинговый фильтр до АЦП.
- Можно ли поднять
f_ди «улучшить» всё? Шире диапазон — да; разрешение при
том же T — нет.
- Сколько отсчётов нужно? Столько, сколько даёт нужную длительность
T = N/f_д. - Зачем anti-alias, если можно фильтровать цифрового? Уже поздно: алиасинг
необратим.
- Как связано
Tи число периодов? Чем больше периодов в записи, тем «резче»
линия на спектре.
37. Практические значения параметров для железа курса
- ESP32-C3, АЦП 12 бит:
f_ддо десятков кГц;- квантование даёт шум; полезно усреднять.
- Микрофон I2S (звук):
f_д16 или 48 кГц;- Hann,
nperseg1024–4096, спектрограмма для событий.
- LiDAR (сканы):
- по сути «сигнал» в пространстве (дальность/угол);
- фильтрация выбросов, а не частотный анализ в первом приближении.
- RFID 800 МГц:
- RSSI и фаза во времени;
- фильтрация и сглаживание, спектр для периодических помех.
- Вибрация (акселерометр):
f_д1–10 кГц;- Hann, PSD, усреднение; ищем гармоники.
- Питающая сеть (THD):
- синхронизация с 50 Гц, окно на целое число периодов.
- Общее правило: сначала понять сигнал и частоты, потом выбирать параметры.
38. Что делать, если «не получается» (траблшутинг)
- Пик не на ожидаемой частоте:
- проверьте ось частот (
fftfreq/rfftfreq,fs,fftshift); - не перепутаны ли бины и герцы;
- нет ли алиасинга (частота выше
f_д/2).
- Спектр «слишком мохнатый»:
- это одна периодограмма; примените Уэлч;
- увеличьте число сегментов (меньше
nperseg).
- Слабые линии не видны:
- возьмите окно с низкими боковыми (Hann/Blackman–Harris);
- усредните; уменьшите постоянную составляющую;
- проверьте, не «тонут» ли линии в боковых лепестках сильной.
- Амплитуда «неправильная»:
- учтите coherent gain;
- правильно выберите
density/spectrum; - проверьте нормировку
|X|/Nили2|X|/N.
- Две близкие частоты сливаются:
- увеличьте длительность записи
T(неf_д); - используйте окно с узким главным лепестком;
- при необходимости — параметрические методы.
- Спектрограмма «пустая» или «шумная»:
- проверьте
scalingи перевод в дБ; - подберите длину окна (компромисс время–частота).
- Результаты не повторяются от запуска к запуску:
- так и должно быть для шума; усредняйте;
- фиксируйте генератор случайных чисел для воспроизводимости.
- БПФ «медленное»:
- берите
Nстепенью двойки; - используйте
rfftдля вещественного сигнала; - не считайте БПФ в цикле Python без необходимости.
39. Итог
- Лекция отвечает на два вопроса: «как считать быстро» (БПФ) и «как считать
- *правильно**» (окна, разрешение, усреднение).
- Ключевые опоры:
O(N²) → O(N log N);Δf = 1/T;- компромисс «главный/боковые лепестки»;
1/√Kу метода Уэлча.
- Всё это — рабочие инструменты спектрального анализа, а не абстракция.
- Дальше: лекция 5 — модуляция и I/Q; лекции 6+ — фильтры и системы.
40. Как строить выводы (научная добросовестность)
- Не верить одной картинке: повторите с другим окном, длиной, усреднением.
- Фиксировать параметры: окно,
N,fs,nperseg— записывать в отчёт. - Проверять устойчивость: реальная линия не должна «прыгать» при смене окна.
- Отличать артефакт от сигнала:
- гармоники кратных частот — вероятно, реальны;
- «частокол» вокруг сильной линии — вероятно, боковые лепестки.
- Проверять физику: измеренная частота должна объясняться процессом.
- Указывать погрешность:
Δf, точность амплитуды, число усреднений. - Не подгонять вывод: если данных мало — сказать, что данных мало.
- Помнить о цели: спектр нужен для решения, а не для красоты.
- Связь с проектом: каждый вывод — это шаг к рекомендации для человека.
