sp:lec4
Differences
This shows you the differences between two versions of the page.
| sp:lec4 [2026/10/08 17:09] – created - external edit 127.0.0.1 | sp:lec4 [2026/10/08 17:27] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Лекция 4. БПФ и практический спектральный анализ ====== | ====== Лекция 4. БПФ и практический спектральный анализ ====== | ||
| - | Короткое объяснение «на пальцах»: | + | Подробное объяснение «на пальцах»: |
| - | картинки. | + | берутся формулы |
| + | преподавателя, | ||
| + | практических рецептов и разбора ошибок. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== О чём этот текст и как им пользоваться ===== | ||
| + | |||
| + | * Это **подробный конспект** лекции 4: смысл без «тяжёлого» | ||
| + | * Кому полезен: | ||
| + | * студенту | ||
| + | * преподавателю — чтобы было чем наполнить рассказ; | ||
| + | * практику — чтобы знать, какие ручки крутить. | ||
| + | * Структура: | ||
| + | * разделы 1–2 — что такое | ||
| + | * раздел 3 — как устроено БПФ; | ||
| + | * разделы 4–6 — конечная запись, окна, разрешение, | ||
| + | * разделы 7–11 — практика: | ||
| + | * разделы 12–21 — шпаргалка, | ||
| + | * Формат — списки: | ||
| + | * Числовые примеры взяты из ноутбука '' | ||
| ---- | ---- | ||
| Line 8: | Line 28: | ||
| ===== Цели лекции (что должен уметь студент) ===== | ===== Цели лекции (что должен уметь студент) ===== | ||
| - | - Объяснить, | + | - Объяснить, |
| - | для ДПФ. | + | * это не новое преобразование, |
| - | - Показать идею «разделяй и властвуй»: | + | * результат точно совпадает с ДПФ; |
| - | - Понять «бабочку» и бит-реверс. | + | * выигрыш — в тысячи и десятки тысяч раз. |
| - | - Объяснить, | + | - Показать идею |
| - | - Выбирать **окно** под задачу. | + | * одно большое ДПФ → два маленьких; |
| + | * рекурсия → '' | ||
| + | - Понять | ||
| + | - Объяснить, | ||
| + | - Осознанно выбирать **окно** под задачу. | ||
| - Понимать '' | - Понимать '' | ||
| - Пользоваться **методом Уэлча** и читать **PSD**. | - Пользоваться **методом Уэлча** и читать **PSD**. | ||
| - Строить **спектрограмму**. | - Строить **спектрограмму**. | ||
| - | - Сделать всё это в Python. | + | - Сделать всё это в **Python**. |
| - | **Одной фразой:** лекция 3 — «как посчитать спектр?», лекция 4 — «как посчитать | + | **Зачем каждый пункт на практике:** |
| - | **быстро** и не обмануть себя?». | + | |
| + | * БПФ | ||
| + | * Разрешение | ||
| + | * Окна — чтобы видеть слабые линии рядом с сильными. | ||
| + | * Уэлч и PSD — чтобы измерять шум, а не «мохнатый» шумный | ||
| + | | ||
| ---- | ---- | ||
| - | ===== 1. Напоминание: | + | ===== 1. Напоминание: |
| + | |||
| + | ==== 1.1 Сигнал и его «радуга» ==== | ||
| + | |||
| + | * **Сигнал** — величина, | ||
| + | * напряжение на датчике; | ||
| + | * вибрация подшипника; | ||
| + | * звук микрофона; | ||
| + | * ток двигателя. | ||
| + | * Во времени сигнал — извилистая кривая, | ||
| + | * **Спектр** — разложение сигнала на простые синусоиды с их амплитудами и фазами. | ||
| + | * Аналогия: | ||
| + | * «Призма» здесь — арифметика: | ||
| + | * Практический смысл: | ||
| + | * превратить «непонятную кривую» в несколько чисел; | ||
| + | * найти дефект, | ||
| + | * принять решение: | ||
| + | |||
| + | ==== 1.2 Формула ДПФ словами ==== | ||
| + | |||
| + | * Есть '' | ||
| + | * ДПФ даёт '' | ||
| + | * Смысл '' | ||
| + | * берём пробную синусоиду частоты номер '' | ||
| + | * умножаем сигнал на неё и складываем; | ||
| + | * совпали частоты → слагаемые складываются в большое число; | ||
| + | * не совпали → гасят друг друга, почти ноль. | ||
| + | * ДПФ — это **корреляция** сигнала с набором синусоид. | ||
| + | * Пик появляется там, где произошло совпадение. | ||
| + | |||
| + | ==== 1.3 Амплитуда, | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Для анализа чаще смотрят амплитуду или мощность. | ||
| + | * Фаза нужна для: | ||
| + | * измерения задержек и дальности; | ||
| + | * фазовой локализации (RFID, радар); | ||
| + | * когерентного накопления и синхронизации. | ||
| + | |||
| + | ==== 1.4 Вещественный и комплексный сигнал ==== | ||
| + | |||
| + | * **Вещественный** сигнал (напряжение, | ||
| + | * Поэтому для вещественного сигнала достаточно **половины** спектра ('' | ||
| + | * **Комплексный (аналитический)** сигнал даёт **одну** линию на '' | ||
| + | * Аналитический сигнал удобен в связи (I/Q). | ||
| + | * Отрицательные частоты — удобство математики; | ||
| + | симметричны положительным. | ||
| + | |||
| + | ==== 1.5 Ось частот и бины ==== | ||
| + | |||
| + | * Реальная частота: | ||
| + | * Сетка этих частот — **бины**; | ||
| + | * Между бинами спектр не определён «напрямую» — там интерполяция. | ||
| + | * Ось строят функциями '' | ||
| + | |||
| + | ==== 1.6 Маленький пример ==== | ||
| + | |||
| + | * '' | ||
| + | * Косинус ровно 1000 Гц → попадёт в бин, две чёткие линии ±1000 Гц. | ||
| + | * Косинус 1250 Гц → **между** бинами, | ||
| + | |||
| + | ==== 1.7 Как выглядит спектр типичных сигналов ==== | ||
| + | |||
| + | * **Чистый тон**: одна-две узкие линии. | ||
| + | * **Периодический сигнал** (меандр, | ||
| + | * **Шум**: размазанная «полка» по всем частотам. | ||
| + | * **Вибрация**: | ||
| + | * **Речь/ | ||
| + | * **Радиосигнал**: | ||
| + | * Понимание «типового вида» помогает сразу заметить аномалию. | ||
| + | |||
| + | ==== 1.8 Краткая история БПФ | ||
| - | * Спектр — это «радуга» сигнала: из чего он состоит. | + | * Идею деления на чётные/ |
| - | * Аналогия: белый свет → призма → цвета. Только «призма» здесь | + | * Широко |
| - | * ДПФ: из '' | + | * Причина популярности |
| - | * '' | + | * Сегодня БПФ — в основе аудио, связи, изображений, радаров, МРТ, сейсмики. |
| - | * '' | + | |
| ---- | ---- | ||
| - | ===== 2. Проблема №1: дорого ===== | + | ===== 2. Проблема №1: считать спектр «в лоб» |
| - | * Прямое ДПФ | + | ==== 2.1 Сколько это операций ==== |
| - | * Для '' | + | |
| - | * Долго; в реальном времени невозможно. | + | * Один коэффициент '' |
| + | * Коэффициентов '' | ||
| + | |||
| + | ==== 2.2 Почему это критично ==== | ||
| + | |||
| + | * Секунда аудио при 44.1 кГц: '' | ||
| + | * Реальное время: пересчитывать десятки раз в секунду. | ||
| + | * Длинные записи и изображения: '' | ||
| + | * Время растёт как квадрат длины записи — быстро «упирается». | ||
| + | |||
| + | ==== 2.3 Сравнение в числах ==== | ||
| + | |||
| + | ^ '' | ||
| + | | 64 | ~4·10³ | ~4·10² | ~16 | | ||
| + | | 1024 | ~10⁶ | ~10⁴ | ~100 | | ||
| + | | 65 536 | ~4·10⁹ | ~10⁶ | ~4000 | | ||
| + | | 10⁶ | ~10¹² | ~2·10⁷ | ~50 000 | | ||
| + | |||
| + | * Вывод: выигрыш растёт с '' | ||
| + | * Поэтому БПФ — один из важнейших алгоритмов XX века. | ||
| + | |||
| + | ==== 2.4 Что такое «сложность O(·)» на пальцах ==== | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * На больших '' | ||
| + | * В реальном времени | ||
| + | |||
| + | ==== 2.5 Как ускоряли до БПФ (интуиция) ==== | ||
| + | |||
| + | * Заметили, | ||
| + | * Их можно | ||
| + | * Отсюда идея делить задачу пополам и переиспользовать результаты. | ||
| ---- | ---- | ||
| - | ===== 3. БПФ: | + | ===== 3. БПФ: |
| ==== 3.1 Главная мысль ==== | ==== 3.1 Главная мысль ==== | ||
| - | * БПФ | + | |
| - | * Это просто более умный способ | + | * Оно считает **тот же** ДПФ, |
| - | | + | * Результат совпадает с точностью машинной арифметики. |
| - | * Для миллиона точек | + | * «Быстрое» относится |
| - | ==== 3.2 Три идеи ==== | + | ==== 3.2 «Разделяй |
| - | | + | * Пусть '' |
| - | * Делим отсчёты на чётные и нечётные. | + | * Делим отсчёты на **чётные** и **нечётные**: |
| - | * Одно | + | * чётные: |
| - | * Повторяем рекурсивно | + | * нечётные: |
| - | | + | * Спектр всего сигнала выражается через |
| - | * Способ снова соединить две половины. | + | * '' |
| - | * '' | + | * '' |
| + | * и поворотный множитель '' | ||
| + | * Причина: | ||
| + | ('' | ||
| + | * Далее — **рекурсия**: | ||
| + | * Пока не останутся ДПФ длины 1–2. | ||
| + | * Глубина дерева — '' | ||
| + | * Уравнение сложности: | ||
| + | * Его решение — '' | ||
| + | |||
| + | ==== 3.3 Почему деление «работает» ==== | ||
| + | |||
| + | | ||
| + | | ||
| + | * '' | ||
| + | * Именно эта | ||
| + | * Без неё | ||
| + | |||
| + | ==== 3.4 «Бабочка» ==== | ||
| + | |||
| + | * Две половины | ||
| + | * '' | ||
| * '' | * '' | ||
| - | | + | |
| - | | + | * За одну операцию — сразу **две** точки спектра. |
| - | * Плата за деление: | + | * Стоимость: |
| - | * Порядок для '' | + | * Название — из-за формы схемы (два входа, два выхода, |
| - | * Правило: номер в двоичном виде | + | |
| + | ==== 3.5 Ручной пример для '' | ||
| + | |||
| + | * Вход '' | ||
| + | * Разделяем: чётные '' | ||
| + | * ДПФ длины 2: | ||
| + | * '' | ||
| + | * '' | ||
| + | * Точки спектра: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Здесь '' | ||
| + | | ||
| + | * Для '' | ||
| + | |||
| + | ==== 3.6 Ручной пример для '' | ||
| + | |||
| + | * Делим на чётные ('' | ||
| + | * Каждую четвёрку — снова на чётные/ | ||
| + | | ||
| + | | ||
| + | * Число «дорогих» умножений резко падает. | ||
| + | |||
| + | ==== 3.7 Бит-реверс ==== | ||
| + | |||
| + | | ||
| + | * Правило: номер в двоичном виде читается **справа налево**. | ||
| + | * Пример: | ||
| + | * Для '' | ||
| + | * На выходе порядок естественный: | ||
| + | * В коде — одна перестановка массива перед БПФ. | ||
| + | |||
| + | ==== 3.8 Как выглядит граф 8-точечного БПФ ==== | ||
| + | |||
| + | * Три | ||
| + | * На каждой — четыре **бабочки**. | ||
| + | * Слева — вход в бит-реверсивном | ||
| + | * Справа — спектр '' | ||
| + | * Структура регулярная → удобно для процессора и железа (FPGA, ASIC). | ||
| + | |||
| + | ==== 3.9 Итеративный и рекурсивный варианты ==== | ||
| + | |||
| + | * **Рекурсивный** БПФ — ближе к определению, но с накладными расходами. | ||
| + | * **Итеративный** — по стадиям, «на месте» (in-place); так | ||
| + | * In-place экономит память: результат пишется | ||
| + | * Порядок стадий обеспечивает бит-реверс заранее. | ||
| + | |||
| + | ==== 3.10 Варианты алгоритма и практика ==== | ||
| + | |||
| + | * **radix-2** — деление пополам; | ||
| + | * **radix-4** — меньше операций. | ||
| + | * **split-radix** — ещё быстрее. | ||
| + | * **mixed-radix** — для составных '' | ||
| + | * **Простое большое '' | ||
| + | * **Вещественный сигнал** — '' | ||
| + | * **Библиотеки**: | ||
| + | * Правило: | ||
| - | ==== 3.3 Что запомнить ==== | + | ==== 3.11 Где БПФ |
| - | * Схема БПФ — регулярные «стадии» из бабочек. | + | * Аудио: сжатие, эквалайзеры, распознавание речи. |
| - | * Поэтому '' | + | * Связь: OFDM (Wi-Fi, LTE, DVB), фильтрация. |
| - | * На практике | + | * Медицина: МРТ, ЭЭГ, ЭКГ. |
| + | * Техника: вибродиагностика, радары, | ||
| ---- | ---- | ||
| - | ===== 4. Проблема №2: конечная запись | + | ===== 4. Проблема №2: конечная запись |
| - | ==== 4.1 Почему появляется утечка ==== | + | ==== 4.1 Что мы на самом деле считаем ==== |
| - | * Мы всегда берём **кусок** сигнала длиной '' | + | * Записываем **кусок** сигнала длиной '' |
| - | * Формально это умножение на прямоугольное окно. | + | * Формально это умножение на **прямоугольное окно** (1 внутри записи, |
| * Правило: | * Правило: | ||
| * Спектр прямоугольного окна — «холмик с хвостами» ('' | * Спектр прямоугольного окна — «холмик с хвостами» ('' | ||
| - | * Поэтому | + | * Значит, чистый тон |
| - | * Это | + | * Это и есть **утечка** — следствие конечности записи, а не ошибка. |
| - | ==== 4.2 Окна: лекарство от утечки | + | ==== 4.2 Свёртка «на пальцах» ==== |
| - | * Идея: обрезать сигнал **мягко**, | + | * Свёртка — «размазывание» одной функции другой. |
| - | * Умножаем сигнал на плавную функцию (в центре 1, к краям | + | * Аналогия: резкий звук в комнате с эхом «размазывается» во времени. |
| - | * Лечит боковые лепестки, но **расширяет главный** — это неустранимый компромисс. | + | * Здесь по частоте: резкую линию «размазывает» хвост окна. |
| + | * Чем «чище» | ||
| - | ==== 4.3 Популярные окна ==== | + | ==== 4.3 Откуда боковые лепестки ('' |
| + | |||
| + | * Спектр прямоугольного окна: | ||
| + | * **главный лепесток** — центральный пик; | ||
| + | * **боковые лепестки** — затухающие «волны» по бокам. | ||
| + | * Главный лепесток → **разрешение** (шире — хуже). | ||
| + | * Боковые лепестки → **маскировка** слабых линий. | ||
| + | * У прямоугольного окна боковые высокие ('' | ||
| + | |||
| + | ==== 4.4 Численный пример утечки ==== | ||
| + | |||
| + | * '' | ||
| + | * Тон ровно в бине (например, | ||
| + | * Тон на полбина (1015.6 Гц) → энергия растекается по соседним бинам. | ||
| + | * С прямоугольным окном боковые падают медленно. | ||
| + | * С окном Hann — падают быстро. | ||
| + | |||
| + | ==== 4.5 Окна: лекарство от утечки ==== | ||
| + | |||
| + | * Обрезаем сигнал **мягко**: | ||
| + | * Аналогия: | ||
| + | * Эффект: | ||
| + | * Цена: главный лепесток **расширяется** — разрешение чуть хуже. | ||
| + | * Это **неустранимый компромисс**. | ||
| + | |||
| + | ==== 4.6 Популярные окна ==== | ||
| ^ Окно ^ Главный лепесток ^ Боковые лепестки ^ Когда брать ^ | ^ Окно ^ Главный лепесток ^ Боковые лепестки ^ Когда брать ^ | ||
| - | | Прямоугольное ('' | + | | Прямоугольное ('' |
| - | | Hann | 4 бина | −31 дБ | «рабочая лошадка» | | + | | Hann | 4 бина | −31 дБ | «рабочая лошадка», общий анализ |
| - | | Hamming | 4 бина | −43 дБ | чуть больше динамики | | + | | Hamming | 4 бина | −43 дБ | чуть больше динамического диапазона |
| | Blackman–Harris | 8 бинов | −92 дБ | слабая линия рядом с сильной | | | Blackman–Harris | 8 бинов | −92 дБ | слабая линия рядом с сильной | | ||
| - | | flat-top | 10 бинов | −93 дБ | точная **амплитуда** | | + | | flat-top | 10 бинов | −93 дБ | точная **амплитуда** |
| - | ==== 4.4 «Паспорт» окна | + | * **Прямоугольное**: |
| + | * **Hann**: плавный «колокол»; | ||
| + | * **Hamming**: | ||
| + | * **Blackman–Harris**: | ||
| + | * **flat-top**: | ||
| - | | + | ==== 4.7 «Паспорт» окна: coherent gain и ENBW ==== |
| + | |||
| + | | ||
| + | * поправка на амплитуду | ||
| * Hann ≈ 0.5, Hamming ≈ 0.54, flat-top ≈ 0.22. | * Hann ≈ 0.5, Hamming ≈ 0.54, flat-top ≈ 0.22. | ||
| - | * **ENBW** — поправка на шум (эквивалентная шумовая полоса). | + | * **ENBW** — эквивалентная шумовая полоса: |
| - | * Прямоугольное 1.0, Hann 1.5, flat-top 3.77. | + | * поправка на шум и PSD; |
| - | * '' | + | * прямоугольное 1.0, Hann 1.5, Hamming 1.36, flat-top 3.77. |
| - | сравнивать. | + | * Без учёта этих коэффициентов нельзя сравнивать спектры с разными окнами. |
| + | * '' | ||
| + | |||
| + | ==== 4.8 Как выбрать окно ==== | ||
| + | |||
| + | * Разделённые тона, важна резкость → **прямоугольное** или **Hann**. | ||
| + | * Слабая линия рядом с сильной → **Hann** или **Blackman–Harris**. | ||
| + | * Точная амплитуда → **flat-top**. | ||
| + | * Не знаете | ||
| + | |||
| + | ==== 4.9 Частые вопросы про окна ==== | ||
| + | |||
| + | * «Окно убирает шум?» — нет, окно против утечки; | ||
| + | | ||
| + | * «Можно без окна?» — да, если частоты точно | ||
| + | * «Почему пик ниже?» — это coherent gain. | ||
| + | * «Почему пик шире?» — расширенный главный лепесток. | ||
| ---- | ---- | ||
| Line 114: | Line 376: | ||
| ===== 5. Разрешение по частоте ===== | ===== 5. Разрешение по частоте ===== | ||
| - | * Формула: '' | + | ==== 5.1 Главная формула |
| - | * Разрешение задаёт **длительность записи '' | + | |
| - | * Чтобы различить два | + | * '' |
| - | | + | * Чем **дольше** запись, |
| - | * Для Hann практически нужно '' | + | * '' |
| - | * Пример: тона 1000 и 1040 Гц. | + | |
| - | * '' | + | ==== 5.2 Диапазон и разрешение — разные вещи ==== |
| - | * '' | + | |
| + | * **Частота дискретизации** | ||
| + | * **Длительность записи** задаёт **разрешение** | ||
| + | | ||
| + | * Аналогия: | ||
| + | | ||
| + | |||
| + | ==== 5.3 Число Найквиста ==== | ||
| + | |||
| + | * Верхняя частота: | ||
| + | * Всё | ||
| + | * Поэтому перед дискретизацией ставят фильтр. | ||
| + | |||
| + | ==== 5.4 Критерий Рэлея | ||
| + | |||
| + | * Тона | ||
| + | * Для Hann нужно | ||
| + | * То есть окно немного «съедает» | ||
| + | |||
| + | ==== 5.5 Опыт с двумя | ||
| + | |||
| + | * Тона 1000 и 1040 Гц. | ||
| + | * '' | ||
| + | * '' | ||
| + | * Вывод: «раздвинуть» близкие частоты можно **удлинением записи**. | ||
| + | |||
| + | ==== 5.6 От чего ещё зависит разрешение ==== | ||
| + | |||
| + | * Длительность записи '' | ||
| + | * Форма/ | ||
| + | * Отношение сигнал/ | ||
| + | * Наличие мешающих линий (боковые лепестки). | ||
| + | |||
| + | ==== 5.7 Примеры '' | ||
| + | |||
| + | ^ Длительность '' | ||
| + | | 0.1 с | 10 Гц | | ||
| + | | 0.5 с | 2 Гц | | ||
| + | | 1 с | 1 Гц | | ||
| + | | 10 с | 0.1 Гц | | ||
| + | |||
| + | * Хотите различить тона в 1 Гц — нужна запись около секунды и больше. | ||
| ---- | ---- | ||
| Line 127: | Line 430: | ||
| ===== 6. Миф: zero-padding ===== | ===== 6. Миф: zero-padding ===== | ||
| - | * **Что делают:** дополняют сигнал нулями до большой длины. | + | ==== 6.1 Что делают |
| - | * **Что получают:** гладкий спектр с плотной сеткой. | + | |
| - | * **В чём ошибка: | + | |
| - | | + | * Получают |
| - | * **Вывод:** разрешение улучшает только **удлинение реальной записи**. | + | |
| + | ==== 6.2 Почему это не улучшает | ||
| + | |||
| + | * Новых данных не появляется — мы не смотрели дольше. | ||
| + | | ||
| + | * Слипшиеся тона сольются и на плотной сетке. | ||
| + | |||
| + | ==== 6.3 Когда zero-padding полезен ==== | ||
| + | |||
| + | | ||
| + | | ||
| + | * Приведение длины к степени двойки. | ||
| + | * Линейная свёртка: дополнение до '' | ||
| + | | ||
| + | |||
| + | ==== 6.4 Как не спутать ==== | ||
| + | |||
| + | * Если пики стали «чаще» — это интерполяция, а не новое разрешение. | ||
| + | * Если пики стали «уже и раздельнее» — это уже удлинение | ||
| ---- | ---- | ||
| Line 139: | Line 460: | ||
| ==== 7.1 Почему один спектр «мохнатый» ==== | ==== 7.1 Почему один спектр «мохнатый» ==== | ||
| - | * Одна периодограмма '' | + | * Одна периодограмма '' |
| - | | + | * Причина: |
| - | * Аналогия: | + | * Аналогия: |
| ==== 7.2 Идея по шагам ==== | ==== 7.2 Идея по шагам ==== | ||
| - | - Режем | + | - Резать |
| - | - К каждому сегменту применяем окно. | + | - Брать их с **перекрытием**. |
| - | - Считаем БПФ и квадрат модуля. | + | - Применять **окно**. |
| - | - Усредняем по сегментам. | + | - Считать **БПФ** и '' |
| + | - **Усреднять** | ||
| ==== 7.3 Что получаем и чем платим ==== | ==== 7.3 Что получаем и чем платим ==== | ||
| - | * Получаем: | + | * Получаем: |
| - | * Платим: | + | * Разброс |
| - | * Настройки: '' | + | * Платим: |
| + | |||
| + | ==== 7.4 Как выбирать параметры ==== | ||
| + | |||
| + | * '' | ||
| + | * больше → лучше разрешение, больше разброс; | ||
| + | * меньше → меньше шум, хуже разрешение. | ||
| + | * '' | ||
| + | * '' | ||
| + | * Разрешение: '' | ||
| + | * Больше | ||
| + | |||
| + | ==== 7.5 Сколько нужно усреднений ==== | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Разброс ≈ '' | ||
| + | |||
| + | ==== 7.6 Родственники метода ==== | ||
| + | |||
| + | * **Периодограмма** — один сегмент (шумная). | ||
| + | * **Бартлетт** — сегменты без | ||
| + | * **Уэлч** — перекрытие + окно (стандарт). | ||
| + | * **Медианное усреднение** — устойчиво к выбросам. | ||
| + | * **Мультитейпер** — несколько ортогональных окон. | ||
| + | |||
| + | ==== 7.7 Порядок действий ==== | ||
| + | |||
| + | - Определить нужное '' | ||
| + | - По нему выбрать длину сегмента. | ||
| + | - Взять окно (Hann). | ||
| + | - Перекрытие 50%. | ||
| + | - Посчитать '' | ||
| + | - Убедиться: | ||
| ---- | ---- | ||
| - | ===== 8. PSD: плотность мощности ===== | + | ===== 8. PSD: спектральная |
| - | | + | ==== 8.1 Что это ==== |
| + | |||
| + | | ||
| * Правильная мера — **мощность на герц** (PSD). | * Правильная мера — **мощность на герц** (PSD). | ||
| - | * Площадь под | + | |
| - | | + | |
| - | * '' | + | ==== 8.2 Две нормировки |
| - | * '' | + | |
| - | * Практика: | + | |
| + | * '' | ||
| + | |||
| + | ==== 8.3 Формула с ENBW ==== | ||
| + | |||
| + | * '' | ||
| + | * Благодаря ENBW уровень шумовой полки не зависит от окна. | ||
| + | * В '' | ||
| + | |||
| + | ==== 8.4 Мощность в полосе ==== | ||
| + | |||
| + | * Мощность в полосе '' | ||
| + | * Отсюда: | ||
| + | |||
| + | ==== 8.5 Зачем децибелы ==== | ||
| + | |||
| + | * Динамический диапазон спектра огромен. | ||
| + | * В дБ он «сжимается» и читается глазом: '' | ||
| + | * Таблица | ||
| + | |||
| + | ^ Отношение мощностей ^ В дБ ^ | ||
| + | | ×2 | +3 | | ||
| + | | ×10 | +10 | | ||
| + | | ×100 | +20 | | ||
| + | | ×1000 | +30 | | ||
| + | | ×10⁶ | +60 | | ||
| + | |||
| + | * Минус дБ: мощности нельзя складывать «на глаз». | ||
| + | |||
| + | ==== 8.6 Типичные ошибки с PSD ==== | ||
| + | |||
| + | * Смешивать | ||
| + | * Сравнивать разные окна без нормировки. | ||
| + | * Забывать про | ||
| + | * Считать уровень шума не зависящим от разрешения (он зависит от полосы). | ||
| ---- | ---- | ||
| - | ===== 9. Точная частота (сверх сетки) | + | ===== 9. Точная |
| - | * Сетка даёт частоту с шагом '' | + | * Сетка даёт частоту с шагом '' |
| - | * Хотим | + | * Приём: |
| - | | + | * Берём три значения |
| - | * Пример из лекции: | + | * Формула даёт поправку '' |
| + | * Уточнённая частота: | ||
| + | * Пример из ноутбука: истина 100.4 Гц, сетка ≈ 3.9 Гц, оценка | ||
| + | * Более точные методы: | ||
| + | * интерполяция по двум окнам; | ||
| + | * оценка по фазе; | ||
| + | * Прони, MUSIC — для близких тонов. | ||
| + | * Для вибрации и радиосигналов обычно достаточно интерполяции. | ||
| ---- | ---- | ||
| - | ===== 10. Спектрограмма: | + | ===== 10. Спектрограмма: |
| + | |||
| + | ==== 10.1 Что такое STFT ==== | ||
| * Обычный спектр предполагает, | * Обычный спектр предполагает, | ||
| - | * **STFT:** считаем | + | * **STFT**: спектр в **скользящем окне**. |
| - | * Результат — **спектрограмма**: | + | * Результат — **спектрограмма**: |
| - | яркость = мощность. | + | |
| - | * Видно чирп | + | |
| - | ==== Компромисс «время — частота» ==== | + | ==== 10.2 Что видно на спектрограмме |
| - | * Короткое окно: хорошо «когда», | + | |
| - | * Длинное окно: хорошо «какая | + | * **Короткий всплеск** — вертикальное пятно. |
| + | * **Долгий тон** — горизонтальная линия. | ||
| + | * **Дрейф частоты** — изгиб линии. | ||
| + | * Одним обычным спектром этого | ||
| + | |||
| + | ==== 10.3 Компромисс время–частота ==== | ||
| + | |||
| + | * **Короткое окно** → хорошо «когда», | ||
| + | | ||
| * Это принцип неопределённости, | * Это принцип неопределённости, | ||
| + | |||
| + | ==== 10.4 Когда спектрограмма нужна ==== | ||
| + | |||
| + | * Нестационарные сигналы (речь, музыка, | ||
| + | * Поиск коротких событий (щелчки, | ||
| + | * Отслеживание изменения частоты. | ||
| + | * Когда обычный спектр «смешивает» разные режимы. | ||
| + | |||
| + | ==== 10.5 Родственные инструменты ==== | ||
| + | |||
| + | * **Вейвлет-преобразование** — адаптивное окно; лучше для широкополосных всплесков. | ||
| + | * **Спектрограмма** — простой и наглядный инструмент на каждый день. | ||
| + | * **Мультитейперная спектрограмма** — сглаженнее. | ||
| ---- | ---- | ||
| - | ===== 11. Реальный пример: | + | ===== 11. Реальный пример: |
| - | * В сигнале: база 50 Гц, дефект 120 Гц, слабая гармоника 240 Гц, шум. | + | * Данные: |
| - | * Одна периодограмма: | + | * Составляющие: база 50 Гц, дефект 120 Гц, слабая гармоника 240 Гц, шум. |
| - | * Welch + окно Hann: шум сглаживается, линия 240 Гц видна. | + | * Шаг 1. Одна периодограмма: |
| - | * Итог: | + | * Шаг 2. Окно Hann + Уэлч: шум сглажен, линия 240 Гц различима. |
| + | * Шаг 3. PSD в дБ: удобный масштаб, | ||
| + | * Шаг 4. Уточнение частот интерполяцией. | ||
| + | * Итог: | ||
| ---- | ---- | ||
| - | ===== 12. Шпаргалка (словарь) ===== | + | ===== 12. Шпаргалка (словарь |
| ^ Термин ^ Что означает ^ | ^ Термин ^ Что означает ^ | ||
| Line 216: | Line 639: | ||
| | Боковые лепестки | «хвосты», | | Боковые лепестки | «хвосты», | ||
| | Coherent gain | поправка на амплитуду | | | Coherent gain | поправка на амплитуду | | ||
| - | | ENBW | поправка на шум | | + | | ENBW | поправка на шум |
| | Разрешение | '' | | Разрешение | '' | ||
| | Zero-padding | интерполяция, | | Zero-padding | интерполяция, | ||
| - | | Периодограмма | ` | БПФ | + | | Периодограмма | квадрат модуля |
| - | | Метод Уэлча | усреднение периодограмм | | + | | Метод Уэлча | усреднение периодограмм по сегментам | |
| | PSD | мощность на герц | | | PSD | мощность на герц | | ||
| | Спектрограмма | спектр во времени (STFT) | | | Спектрограмма | спектр во времени (STFT) | | ||
| + | | Бин | узел частотной сетки ДПФ | | ||
| + | | Найквист | верхняя частота '' | ||
| ---- | ---- | ||
| - | ===== 13. Частые ошибки ===== | + | ===== 13. Частые ошибки |
| - | * «Подниму | + | * «Подниму |
| - | * Нет: разрешение задаёт | + | * «Дополню нулями — увижу детали» → это интерполяция. |
| - | * «Дополню нулями — увижу | + | * «Окно убирает шум» |
| - | * Нет: | + | * «БПФ приближённое» → результат точно совпадает с ДПФ. |
| - | * «Окно | + | * «Разные окна сравнимы по высоте пиков» |
| - | * Нет: | + | * «Больше точек всегда лучше» → разрешение = время, устойчивость = усреднение. |
| - | * «БПФ | + | * «Утечка — баг» → закономерность конечной записи. |
| - | * Нет: | + | * «Спектрограмма = спектр» → спектрограмма добавляет ось времени. |
| - | * «Спектры с разными окнами можно | + | |
| - | * Только с учётом | + | |
| ---- | ---- | ||
| - | ===== 14. План рассказа на 2 академических часа | + | ===== 14. Типичные ошибки в коде ('' |
| - | | + | * Применили окно |
| - | - **15 мин.** | + | * Передали '' |
| + | | ||
| + | * Забыли '' | ||
| + | * Взяли '' | ||
| + | * Сравнили '' | ||
| + | | ||
| + | * Путали '' | ||
| + | * Строили спектрограмму без '' | ||
| + | * Смотрели амплитуду сигнала до вычета среднего (постоянная составляющая). | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 15. Практические рецепты по задачам ===== | ||
| + | |||
| + | * **Аудио (речь, музыка)**: | ||
| + | * '' | ||
| + | * спектрограмма с окном 512–2048 для событий. | ||
| + | * **Вибрация / диагностика**: | ||
| + | * '' | ||
| + | * ищем гармоники и боковые полосы дефектов. | ||
| + | * **Радио / связь**: | ||
| + | * окно Hann или Blackman–Harris для слабых сигналов; | ||
| + | * I/Q, аналитический сигнал. | ||
| + | * **ЭКГ / биосигналы**: | ||
| + | * '' | ||
| + | * окно Hann; вычитать постоянную составляющую. | ||
| + | * **Измерение частоты**: | ||
| + | * интерполяция пика; при возможности — фазовый метод. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 16. Мини-лаборатория (что сделать в ноутбуке руками) ===== | ||
| + | |||
| + | - Сгенерировать чистый тон ровно в бине и посмотреть ДПФ. | ||
| + | - Сдвинуть частоту на полбина и увидеть утечку. | ||
| + | - Применить окно Hann и сравнить боковые лепестки в дБ. | ||
| + | - Сравнить спектры при '' | ||
| + | - Дополнить нулями и убедиться, | ||
| + | - Реализовать простой БПФ radix-2 и сверить с '' | ||
| + | - Посчитать '' | ||
| + | - Построить PSD в '' | ||
| + | - Сделать спектрограмму чирпа и короткого всплеска. | ||
| + | - Оценить частоту параболической интерполяцией. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 17. План рассказа на 2 академических часа ===== | ||
| + | |||
| + | - **5 мин.** ДПФ и его цена | ||
| + | - **15 мин.** БПФ: разделяй и властвуй, бабочка, | ||
| - **15 мин.** Конечная запись → утечка; | - **15 мин.** Конечная запись → утечка; | ||
| - **15 мин.** Разрешение '' | - **15 мин.** Разрешение '' | ||
| - | - **15 мин.** Уэлч и PSD: зачем усреднять. | + | - **15 мин.** Уэлч и PSD: зачем усреднять; '' |
| - | - **15 мин.** Спектрограмма, компромисс время–частота, точная частота. | + | - **15 мин.** Спектрограмма; компромисс время–частота; точная частота. |
| - **10 мин.** Реальный кейс (вибрация), | - **10 мин.** Реальный кейс (вибрация), | ||
| - | **Приём | + | * **Приём: |
| - | делает | + | * Давать «до/после»: утечка → окно, шум → Уэлч, короткая запись → длинная. |
| ---- | ---- | ||
| - | ===== 15. Главная мысль | + | ===== 18. Вопросы для самопроверки |
| - | | + | |
| + | - Зачем на входе БПФ бит-реверс? | ||
| + | - Что физически означает утечка? | ||
| + | - Почему окно расширяет главный лепесток? | ||
| + | - Как выбрать окно для слабой линии рядом с сильной? | ||
| + | - Почему '' | ||
| + | - Почему zero-padding не улучшает разрешение? | ||
| + | - Зачем перекрытие сегментов в Уэлче? | ||
| + | - Чем '' | ||
| + | - В чём компромисс время–частота? | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 19. Связь с другими темами курса ===== | ||
| + | |||
| + | * **Лекция 2** — непрерывное преобразование Фурье и спектры (идея). | ||
| + | * **Лекция 3** — ДПФ (что считаем). | ||
| + | * **Лекция 4** — БПФ и практический спектральный анализ (как считать). | ||
| + | * **Лекция 5** — модуляция и I/Q (радиосигналы). | ||
| + | * **Лекции 6+** — фильтры, | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 20. Итог одной страницей ===== | ||
| + | |||
| + | * ДПФ — точный спектр, | ||
| + | * БПФ — тот же результат за '' | ||
| + | * Вход БПФ — бит-реверс; | ||
| + | * Конечная запись → утечка; | ||
| + | * Разрешение '' | ||
| + | * Уэлч → устойчивая PSD; спектрограмма → время–частота. | ||
| + | * Практика — '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 21. Главная мысль и что дальше ===== | ||
| + | |||
| + | * Спектр — не картинка, | ||
| * Чтобы ему верить, | * Чтобы ему верить, | ||
| - | * Нужно понимать, | + | * Нужно понимать |
| - | * Нужно уметь отделять реальные линии от артефактов (окна, усреднение, | + | * конечная запись (утечка); |
| + | * выбор окна (разрешение против динамики); | ||
| + | * шум (дисперсия оценки). | ||
| + | * И уметь отделять реальные линии от артефактов: | ||
| + | * окна; | ||
| + | * усреднение (Уэлч); | ||
| + | * нормировка PSD. | ||
| + | * **Дальше (лекция 5):** спектры радиосигналов и модуляция — АМ/ | ||
| + | созвездия, комплексная огибающая (I/Q). | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ====== Приложения ====== | ||
| + | |||
| + | ===== 22. Математика за формулами — словами ===== | ||
| + | |||
| + | ==== 22.1 Почему формула ДПФ именно такая ==== | ||
| + | |||
| + | * Ядро '' | ||
| + | плоскости. | ||
| + | * Умножение и суммирование — это мера похожести сигнала на эту синусоиду. | ||
| + | * Если сигнал содержит эту частоту, | ||
| + | | ||
| + | * Если не содержит — произведение колеблется и в сумме даёт почти ноль. | ||
| + | * Поэтому ДПФ — это корреляция; | ||
| + | |||
| + | ==== 22.2 Формула Эйлера — словами ==== | ||
| + | |||
| + | * '' | ||
| + | * Геометрический смысл: точка | ||
| + | * Мнимая единица '' | ||
| + | * Отсюда комплексная экспонента — удобный способ «крутить» фазу. | ||
| + | * Множитель '' | ||
| + | * Для '' | ||
| + | |||
| + | ==== 22.3 Умножение во времени = свёртка в спектре ==== | ||
| + | |||
| + | * Возьмём произведение двух сигналов: '' | ||
| + | * Его спектр равен **свёртке** спектров '' | ||
| + | * Именно поэтому конечная запись (умножение на окно) «размазывает» спектр. | ||
| + | * Чем уже спектр окна, тем меньше размазывание. | ||
| + | * У прямоугольного окна спектр широкий — потому утечка велика. | ||
| + | |||
| + | ==== 22.4 Откуда берётся «заворачивание» и периодичность ==== | ||
| + | |||
| + | * Дискретизация во времени делает спектр **периодическим** по частоте. | ||
| + | * Период повторения — '' | ||
| + | * Поэтому ДПФ можно «центрировать» ('' | ||
| + | * Это же свойство объясняет алиасинг: | ||
| + | |||
| + | ==== 22.5 Откуда ENBW ==== | ||
| + | |||
| + | * ENBW показывает, | ||
| + | * Формула '' | ||
| + | * Прямоугольное окно «собирает» ровно один бин (ENBW = 1). | ||
| + | * Более гладкие окна шире — ENBW > 1. | ||
| + | * Через ENBW нормируют шумовую полку, чтобы она не зависела от окна. | ||
| + | |||
| + | ==== 22.6 Почему разброс Уэлча падает как '' | ||
| + | |||
| + | * Каждый сегмент даёт независимую оценку периодограммы. | ||
| + | * Усреднение '' | ||
| + | * Поэтому дисперсия падает как '' | ||
| + | * Отсюда правило: | ||
| + | * Расплата — разрешение определяется длиной сегмента, | ||
| + | |||
| + | ==== 22.7 Равенство Парсеваля ==== | ||
| + | |||
| + | * Энергия сигнала во времени равна энергии в спектре (с нормировкой). | ||
| + | * Практический смысл: вычисления «не теряют» энергию. | ||
| + | * Полезно для проверки корректности ДПФ/ | ||
| + | |||
| + | ==== 22.8 Частоты и бины ==== | ||
| + | |||
| + | * Бин '' | ||
| + | * Шаг сетки '' | ||
| + | * Число уникальных бинов: | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 23. Вопросы и развёрнутые ответы ===== | ||
| + | |||
| + | - **Почему БПФ быстрее, | ||
| + | | ||
| + | | ||
| + | |||
| + | - **БПФ даёт другой результат? | ||
| + | Нет. Отличия только из-за машинного округления; | ||
| + | |||
| + | - **Можно | ||
| + | | ||
| + | | ||
| + | |||
| + | - **Что | ||
| + | | ||
| + | |||
| + | - **Почему у прямоугольного окна боковые | ||
| + | | ||
| + | '' | ||
| + | |||
| + | - **Какое окно универсальное?** | ||
| + | Hann: хороший компромисс между разрешением и динамическим диапазоном. | ||
| + | |||
| + | - **Как увидеть слабую линию рядом с сильной? | ||
| + | | ||
| + | линии. | ||
| + | |||
| + | - **Почему после zero-padding график гладкий, | ||
| + | Потому что это интерполяция; | ||
| + | |||
| + | - **Что выбрать: разрешение или меньше шума? | ||
| + | | ||
| + | |||
| + | - **Сколько нужно данных для устойчивого спектра? | ||
| + | Чем больше, | ||
| + | |||
| + | - **Что такое «шумовая полка»? | ||
| + | Средний уровень PSD шума; реальные линии — пики над полкой. | ||
| + | |||
| + | - **Чем '' | ||
| + | '' | ||
| + | линий). | ||
| + | |||
| + | - **Почему в дБ?** | ||
| + | Динамический диапазон спектра огромен; | ||
| + | |||
| + | - **Как точно измерить частоту? | ||
| + | Интерполяция пика (парабола по логарифму), фазовый метод, Прони/ | ||
| + | |||
| + | - **Что такое спектрограмма? | ||
| + | Спектр | ||
| + | |||
| + | - **Почему на спектрограмме нельзя быть точным и по времени, | ||
| + | Принцип неопределённости: | ||
| + | |||
| + | - **Нужно ли вычитать среднее? | ||
| + | Да, постоянная составляющая | ||
| + | |||
| + | - **Что делать с алиасингом? | ||
| + | Ставить антиалиасинговый фильтр до дискретизации и следить за '' | ||
| + | |||
| + | - **Можно ли анализировать нестационарный сигнал одним спектром? | ||
| + | Можно, но он «смешает» режимы; | ||
| + | |||
| + | - **Где это применяется в курсе? | ||
| + | В сквозном проекте: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 24. Как читать | ||
| + | |||
| + | * **Ячейка «стоимость ДПФ/ | ||
| + | * Вывод: разрыв растёт с '' | ||
| + | * **Ячейка «дерево DIT»**: показывает разбиение 8 отсчётов. | ||
| + | * **Ячейка «бабочка»**: | ||
| + | * **Ячейка «граф БПФ»**: три стадии по четыре бабочки. | ||
| + | * **Ячейка «бит-реверс»**: | ||
| + | * **Ячейка «окна во времени»**: | ||
| + | * **Ячейка «спектры окон»**: | ||
| + | * **Ячейка «компромисс окна»**: | ||
| + | * **Ячейка «утечка»**: | ||
| + | * **Ячейка «разрешение»**: | ||
| + | * **Ячейка «zero-padding»**: | ||
| + | * **Ячейка «Уэлч»**: | ||
| + | * **Ячейка «PSD»**: '' | ||
| + | * **Ячейка «спектрограмма»**: | ||
| + | * **Ячейка «вибрация»**: | ||
| + | * **Ячейка «точная частота»**: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 25. Другие инструменты спектрального анализа ===== | ||
| + | |||
| + | * **Вейвлеты**: | ||
| + | * адаптивное окно (широкое на низких частотах, | ||
| + | * хороши для всплесков и нестационарных сигналов. | ||
| + | * **Банки фильтров**: | ||
| + | * набор полосовых фильтров; | ||
| + | * основа аудиокодеков и слуховых моделей. | ||
| + | * **Параметрические методы (Прони, | ||
| + | * дают сверхвысокое разрешение для близких тонов; | ||
| + | * чувствительны к модели и шуму. | ||
| + | * **Спектральное оценивание через модели** (AR/ | ||
| + | * короткие записи, | ||
| + | * **Машинное обучение**: | ||
| + | * спектрограмма как «картинка» для нейросети; | ||
| + | * классификация состояний (дефект/ | ||
| + | * важно помнить о физике сигнала. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 26. Историческая и практическая справка ===== | ||
| + | |||
| + | * Идея быстрого ДПФ — фактически у **Гаусса** (около 1805). | ||
| + | * Широкая известность — **Cooley–Tukey**, | ||
| + | * Появление FFTW (1997) сделало БПФ «заводским» стандартом. | ||
| + | * Сегодня БПФ встроено в процессоры, | ||
| + | * В курсе БПФ — рабочий инструмент: | ||
| + | * Практический вывод: не изобретать БПФ, а уметь им пользоваться и понимать | ||
| + | ограничения. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 27. Полный числовой пример БПФ (N = 4, вручную) ===== | ||
| + | |||
| + | * Возьмём '' | ||
| + | * **Прямое ДПФ** (для проверки): | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * **Через БПФ (radix-2)**: | ||
| + | * чётные '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * множитель '' | ||
| + | * Соединяем «бабочками»: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * Результаты **совпали** с прямым ДПФ. | ||
| + | * Вывод: БПФ — это организация вычислений, | ||
| + | * Проверить себя: '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 28. Чек-лист практика: | ||
| + | |||
| + | - Определить **диапазон** частот, | ||
| + | - Выбрать **частоту дискретизации** ('' | ||
| + | - Определить нужное **разрешение** '' | ||
| + | - Решить, | ||
| + | - Выбрать **окно** (по умолчанию Hann). | ||
| + | - Для шумного сигнала — **усреднить** (Уэлч), подобрать '' | ||
| + | - Проверить **нормировку** (density/ | ||
| + | - Построить спектр в **дБ** и отметить ожидаемые линии. | ||
| + | - **Уточнить** частоты пиков интерполяцией. | ||
| + | - Сравнить с **физикой** процесса и сделать вывод. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 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. Ещё вопросы (продолжение) ===== | ||
| + | |||
| + | - **Почему '' | ||
| + | | ||
| + | - **Что будет, если '' | ||
| + | | ||
| + | - **Влияет ли форма окна на измерение амплитуды? | ||
| + | - **Сколько бинов у вещественного сигнала? | ||
| + | - **Зачем '' | ||
| + | - **Что такое «центрированный» спектр? | ||
| + | | ||
| + | - **Что делать с постоянной составляющей? | ||
| + | - **Как выбрать '' | ||
| + | - **Что если сигнал не стационарный? | ||
| + | - **Как сравнивать два спектра? | ||
| + | - **Что такое утечка «на практике»? | ||
| + | - **Почему шум «мохнатый»? | ||
| + | - **Как измерить уровень шума?** По шумовой полке PSD. | ||
| + | - **Зачем нужен '' | ||
| + | - **Что читать дальше? | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 31. Что студент должен уметь «на выходе» ===== | ||
| + | |||
| + | * **Понимание**: | ||
| + | * объяснить БПФ и его отличие от ДПФ; | ||
| + | * объяснить утечку и роль окна; | ||
| + | * объяснить '' | ||
| + | * объяснить смысл PSD и Уэлча. | ||
| + | * **Навыки**: | ||
| + | * считать спектр в Python ('' | ||
| + | * правильно строить ось частот; | ||
| + | * выбирать окно и параметры усреднения; | ||
| + | * измерять частоты и амплитуды; | ||
| + | * отделять реальные линии от артефактов. | ||
| + | * **Отношение**: | ||
| + | * спектр — это измерение, | ||
| + | * любые выводы проверять на устойчивость (окна, длина, усреднение). | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 32. Разбор по кейсам сквозного проекта ===== | ||
| + | |||
| + | * **Диагностика насосного агрегата (вибрация)**: | ||
| + | * сигнал: | ||
| + | * что искать: | ||
| + | * окно Hann, '' | ||
| + | * вывод: наличие и рост дефекта. | ||
| + | * **Акустический контроль сварных швов**: | ||
| + | * сигнал: | ||
| + | * что искать: | ||
| + | * важно: широкополосность, | ||
| + | * **Мониторинг зоны (RFID + LiDAR)**: | ||
| + | * RFID: RSSI и фаза, обратное рассеяние; | ||
| + | * LiDAR: дальность и угол; | ||
| + | * что искать: | ||
| + | * далее: слияние сенсоров (фильтр Калмана). | ||
| + | * **Речевой интерфейс оператора**: | ||
| + | * сигнал: | ||
| + | * что искать: | ||
| + | * спектрограмма, | ||
| + | * **Качество электроэнергии (THD)**: | ||
| + | * сигнал: | ||
| + | * что искать: | ||
| + | * окно и точная синхронизация с периодом сети. | ||
| + | * **Сейсмоакустический мониторинг**: | ||
| + | * сигнал: | ||
| + | * что искать: | ||
| + | * спектрограмма и усреднение. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 33. Методические заметки для преподавателя ===== | ||
| + | |||
| + | * **Начинать с «боли»**: | ||
| + | * **Демонстрировать «до/ | ||
| + | * утечка → окно; | ||
| + | * шум → Уэлч; | ||
| + | * короткая запись → длинная. | ||
| + | * **Давать руками**: | ||
| + | * **Типичные ошибки студентов**: | ||
| + | * путают диапазон и разрешение; | ||
| + | * верят zero-padding; | ||
| + | * сравнивают спектры с разными окнами; | ||
| + | * забывают о нормировке; | ||
| + | * не вычитают постоянную составляющую. | ||
| + | * **Как проверять понимание**: | ||
| + | * попросить объяснить, | ||
| + | * попросить выбрать окно под задачу и обосновать; | ||
| + | * попросить отличить реальную линию от артефакта. | ||
| + | * **Связь с практикой**: | ||
| + | * **Оценивание**: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 34. «Формула → смысл» — короткая шпаргалка ===== | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 35. Аналогии и метафоры (чтобы объяснить любому) ===== | ||
| + | |||
| + | * **Спектр** — призма/ | ||
| + | * **ДПФ** — «подбор частоты»: | ||
| + | * **БПФ** — тот же подбор, | ||
| + | * **Бабочка** — «развилка»: | ||
| + | * **Бит-реверс** — «перепутанные карточки», | ||
| + | * **Утечка** — «размазывание»: | ||
| + | * **Окно** — мягкая диафрагма: | ||
| + | * **Главный лепесток** — толщина «карандаша», | ||
| + | * **Боковые лепестки** — «эхо» карандаша по бокам. | ||
| + | * **Zero-padding** — «лупа на той же картинке»: | ||
| + | * **Разрешение** — «бинокль и время»: | ||
| + | * **Уэлч** — «усреднить сто измерений», | ||
| + | * **PSD** — «мощность на герц»: сколько энергии в каждой «щели» спектра. | ||
| + | * **Спектрограмма** — «партитура во времени»: | ||
| + | * **Порог Найквиста** — «скорость съёмки»: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 36. Частые вопросы о дискретизации и Найквисте ===== | ||
| + | |||
| + | * **Что такое частота Найквиста? | ||
| + | оцифровать без алиасинга. | ||
| + | * **Почему именно половина? | ||
| + | период (один — «вверх», | ||
| + | * **Что происходит выше '' | ||
| + | это алиасинг. | ||
| + | * **Как с ним бороться? | ||
| + | * **Можно ли поднять '' | ||
| + | том же '' | ||
| + | * **Сколько отсчётов нужно? | ||
| + | * **Зачем anti-alias, если можно фильтровать цифрового? | ||
| + | необратим. | ||
| + | * **Как связано '' | ||
| + | линия на спектре. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 37. Практические значения параметров для железа курса ===== | ||
| + | |||
| + | * **ESP32-C3, АЦП 12 бит**: | ||
| + | * '' | ||
| + | * квантование даёт шум; полезно усреднять. | ||
| + | * **Микрофон I2S (звук)**: | ||
| + | * '' | ||
| + | * Hann, '' | ||
| + | * **LiDAR (сканы)**: | ||
| + | * по сути «сигнал» в пространстве (дальность/ | ||
| + | * фильтрация выбросов, | ||
| + | * **RFID 800 МГц**: | ||
| + | * RSSI и фаза во времени; | ||
| + | * фильтрация и сглаживание, | ||
| + | * **Вибрация (акселерометр)**: | ||
| + | * '' | ||
| + | * Hann, PSD, усреднение; | ||
| + | * **Питающая сеть (THD)**: | ||
| + | * синхронизация с 50 Гц, окно на целое число периодов. | ||
| + | * Общее правило: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 38. Что делать, | ||
| + | |||
| + | * **Пик не на ожидаемой частоте**: | ||
| + | * проверьте ось частот ('' | ||
| + | * не перепутаны ли бины и герцы; | ||
| + | * нет ли алиасинга (частота выше '' | ||
| + | * **Спектр «слишком мохнатый»**: | ||
| + | * это одна периодограмма; | ||
| + | * увеличьте число сегментов (меньше '' | ||
| + | * **Слабые линии не видны**: | ||
| + | * возьмите окно с низкими боковыми (Hann/ | ||
| + | * усредните; | ||
| + | * проверьте, | ||
| + | * **Амплитуда «неправильная»**: | ||
| + | * учтите coherent gain; | ||
| + | * правильно выберите '' | ||
| + | * проверьте нормировку '' | ||
| + | * **Две близкие частоты сливаются**: | ||
| + | * увеличьте длительность записи '' | ||
| + | * используйте окно с узким главным лепестком; | ||
| + | * при необходимости — параметрические методы. | ||
| + | * **Спектрограмма «пустая» или «шумная»**: | ||
| + | * проверьте '' | ||
| + | * подберите длину окна (компромисс время–частота). | ||
| + | * **Результаты не повторяются от запуска к запуску**: | ||
| + | * так и должно быть для шума; усредняйте; | ||
| + | * фиксируйте генератор случайных чисел для воспроизводимости. | ||
| + | * **БПФ «медленное»**: | ||
| + | * берите '' | ||
| + | * используйте '' | ||
| + | * не считайте БПФ в цикле Python без необходимости. | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 39. Итог ===== | ||
| + | |||
| + | * Лекция отвечает на два вопроса: | ||
| + | **правильно**» (окна, разрешение, | ||
| + | * Ключевые опоры: | ||
| + | * '' | ||
| + | * '' | ||
| + | * компромисс «главный/ | ||
| + | * '' | ||
| + | * Всё это — рабочие инструменты спектрального анализа, | ||
| + | * Дальше: | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ===== 40. Как строить выводы (научная добросовестность) ===== | ||
| - | **Дальше:** лекция 5 — спектры радиосигналов и модуляция (АМ/ | + | |
| - | огибающая (I/Q). | + | * **Фиксировать параметры**: окно, '' |
| + | * **Проверять устойчивость**: | ||
| + | * **Отличать артефакт от сигнала**: | ||
| + | * гармоники кратных частот — вероятно, | ||
| + | * «частокол» вокруг сильной линии — вероятно, | ||
| + | * **Проверять физику**: | ||
| + | * **Указывать погрешность**: | ||
| + | * **Не подгонять вывод**: | ||
| + | * **Помнить о цели**: | ||
| + | * **Связь с проектом**: | ||
| ===== Материалы ===== | ===== Материалы ===== | ||
| Line 272: | Line 1281: | ||
| * {{sp: | * {{sp: | ||
| * {{sp: | * {{sp: | ||
| + | * {{sp: | ||
sp/lec4.1791450550.txt.gz · Last modified: by 127.0.0.1
