Кожна сигналізація таємно є сумою синусоїдів
Теорема Жюля Мане (1807 рік) — що будь-яка періодична функція може бути записана як сума синусів і косинусів різних частот — була достатньо спірною, щоб їй знадобилося десятиліття для прийняття, і тепер вона лежить в основі майже всіх технологій обробки сигналів. Перетворення Фур’є бере сигнал, описаний у часі, та переказує його як спектр, описаний у частоті: одна й та ж інформація, але з іншого простору осей.
Для дискретного, віднайденого сигналу з N точок, Перетворення Фур’є (ПФ) обчислює амплітуду та фазу N частотних компонентів:
X[k] = Σ (n=0 до N-1) x[n] · e^(−i·2π·k·n/N) для k = 0 .. N-1 x[n] = віднайдений сигнал у часовій області X[k] = комплексна амплітуда на частоті k/N циклів на відбір проб |X[k]| = величина (скільки цієї частоти присутня) Обчислюється безпосередньо, це операція O(N²) — кожна з N вихідних комірок підсумовує N вхідних зразків. Швидке перетворення Фур’є (ШПФ), популяризоване Коулі та Тюкі у 1965 році (хоча хитринка датується Гауссом), рекурсивно розділяє суму на парні та непарні індекси, повторно використовує спільні підрезультати та отримує однакову відповідь за O(N log N). Ця різниця не є академічною: для сигналу з одного мільйона відібраних точок це різниця між трильйоном операцій і приблизно двадцятьом мільйонами — ШПФ пояснює, чому аналіз спектру в реальному часі, стиснення аудіо та радіоапарат можливі на звичайному обладнанні.
X[k] = Σ (n=0 to N-1) x[n] · e^(−i·2π·k·n/N) for k = 0 .. N-1 x[n] = the sampled time-domain signal X[k] = complex amplitude at frequency k/N cycles per sample |X[k]| = magnitude (how much of that frequency is present)
Невизначеність, яку не можна обчислити
DFT N зразків із частотою семплювання fs розв’язує частоту в інтервалах шириною fs/N — щоб точно визначити частоту, потрібно довгий час у часі. Але довгий час розмиває події, що відбуваються в різний час всередині нього. Цей компроміс є фундаментальним, а не просто технічною деталлю реалізації: це аналогія принципу невизначеності Гейзенберга в обробці сигналів, і жодна кількість розумного кодування не зможе цього усунути. Можна обмінюватися часовою роздільною здатністю на частотну, але ви не можете одночасно мати необмежено високі значення обох.
Вікноверование: придушення витік
DFT неявно припускає, що відрахована порція повторюється назавжди, плавно перетікаючи з кінця в кінець. Реальні сигнали майже ніколи цього не роблять – обрізка частини синусоїди зазвичай залишає розрив на стику, який трансформер інтерпретує як високочастотний вміст, якого насправді немає. Цей артефакт називається спектральним витоком і розмиває різкий спектральний лінія на сусідні біни.
Функції вікон – Ханна, Гаммінга, Блекмана та інші – вирішують цю проблему, плавно увізуалізуючи сигнал до нуля на обох краях порції перед трансформацією, обмінюючись невеликою втратою у частотному розв’язуванні (невелика ширина основного лоба) на значне зменшення витоку (значно нижчі бокові лоби). Яке вікно використовувати – це справжній інженерний вибір: вікно Ханна є розумним загальним замовленням, тоді як плоске вікно жертвує частотним розв’язуванням для максимально точного читання амплітуди відомого тону.
Частота змінюється в часі: спектрограма
Одиночна швидкість перетворення Фур’є дає один статичний спектр для одного вікна часу — марно для сигналу, такого як мова чи музика, частотна складова якого постійно змінюється. Короткочасна перетворення Фур’є (КЧФ) вирішує це, переміщуючи вікно з вбудованою швидкістю перетворення Фур’є вздовж сигналу, обчислюючи свіжий спектр для кожного накладеного фрагменту та накопичуючи результати в спектрограмі: 2D-зображення з часом на одній осі, частотою на іншій, а колір (або яскравість) показує енергію. Читання спектрограми — це те, як фізіолог бачить форму вокальних артефактів, астроном помічає запил гравітаційної хвилі та стиснення кодеків вирішують, які частоти людське вухо не помітить.
Frequently asked questions
Чому ШФ при такій швидкості набагато швидше, ніж обчислення ДФТ безпосередньо?
Пряме обчислення ДФТ перераховує перекриваються суми з нуля для кожного вихідного частотного значення, що коштує O(N²) операцій. ШФ рекурсивно розбиває трансформацію на парні та непарні індексні половини та використовує спільні часткові суми, зменшуючи вартість до O(N log N) — різниця, яка стає величезною для великих сигналів.
Чому я не можу отримати ідеальної часової та ідеальної частотної роздільної здатності?
Коротке часове вікно дає грубу частотну роздільну здатність, оскільки ширина біна ДФТ обернено пропорційна довжині вікна; довге вікно забезпечує точну частотну роздільну здатність, але розмиває події в різний час всередині нього. Цей компроміс є математично фундаментальним, схожим на принцип невизначеності Гейзенберга, а не обмеженням будь-якого конкретного алгоритму.
Що саме виправляє віконну функцію?
ДФТ припускає, що проаналізований фрагмент безперервно повторюється назавжди, що вносить штучну discontinuity на краях фрагменту, якщо сигнал не доходить точно до цілих циклів всередині нього. Віконна функція плавно затуплює краї сигналу до нуля перед трансформацією, значно зменшуючи цю штучну discontinuity та спектральне витікання, яке вона викликає.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Spectral Analysis і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Spectral Analysis