ДПФ / ЧДПФ Візуалізатор
Генеруйте сигнал, спостерігайте його частотний спектр (ДПФ) і те, як частотний вміст змінюється з часом (спектрограма ЧДПФ)
Частота f₀ (Гц) 220 Гц
Амплітуда 1.00
Частота дискр. (Гц) 8000
Розмір вікна ДПФ N 512
Функція вікна Ганнінга
Крок ЧДПФ (вибірки) 128
220
Пікова частота (Гц)
15.6
Роздільн. за частотою (Гц)
4000
Частота Найквіста (Гц)
Ганнінга
Вікно
0.71
СКЗ амплітуда
Як це працює: Дискретне перетворення Фур'є (ДПФ) розкладає вікно з N вибірок на N/2+1 частотних бінів з кроком Δf = fₛ/N Гц. X[k] = Σn x[n]·w[n]·e−j2πkn/N, де w[n] — функція вікна. Прямокутне вікно має гострі бічні пелюстки; Ганнінга/Хемінга зменшують витік; Блекмена забезпечує найкраще придушення при ширшій головній пелюстці.
Короткочасне ДПФ (ЧДПФ) багаторазово застосовує ДПФ до перекривних вікон (крок = N − перекриття) і складає отримані спектри магнітуд у кольорову спектрограму. Час — зліва направо, частота — знизу вгору, яскравість кольору кодує логарифм магнітуди.

Ліворуч угорі: амплітудна хвиля (останні N вибірок).   Ліворуч унизу: спектр магнітуд ДПФ.   Праворуч: спектрограма ЧДПФ (прокручується в реальному часі). Жовтий = гучний, темно-синій = тихий.

Про візуалізатор ДПФ / ЧКПФ

Дискретне перетворення Фур'є (ДПФ) розкладає скінченну послідовність N відліків на N комплексних частотних компонент: Xₖ = Sₙ xₙ * e^(-2piknN) для k = 0...N-1. Воно показує, які частоти присутні в сигналі, але припускає, що весь сигнал є стаціонарним — коли саме виникає частота, ДПФ не розкриває. Короткочасне перетворення Фур'є (ЧКПФ) вирішує цю проблему, обчислюючи ДПФ на послідовних вікнах, що перекриваються, і отримуючи 2D-спектрограму. Компроміс фундаментальний: вузьке вікно дає гарне часове розв'язання, але погане частотне (принцип невизначеності Dt*Df >= 1/(4pi) — аналог квантовомеханічного принципу Гейзенберга), і навпаки.

Симулятор дозволяє намалювати хвилю або завантажити аудіо і спостерігати, як у реальному часі оновлюється спектр ДПФ і спектрограма ЧКПФ. Ви можете змінювати вікончасту функцію (Гана, Хемінга, прямокутну) і відсоток перекриття, щоб спостерігати, як вони торгують часовим і частотним розв'язанням.

Часті запитання

У чому різниця між ДПФ і БПФ?

ДПФ — це математичне перетворення; БПФ (Швидке перетворення Фур'є) — ефективний алгоритм його обчислення. Наївне обчислення ДПФ потребує O(N²) множень; алгоритм БПФ Кулі-Тьюкі (1965) скорочує це до O(N log N), використовуючи симетрію комплексних показникових функцій. Для N = 1 048 576 це приблизно в 200 000 разів швидше. БПФ вважається одним із найважливіших алгоритмів XX століття.

Що таке спектрограма і як її читати?

Спектрограма — це 2D-графік ЧКПФ: час по горизонтальній осі, частота — по вертикальній, колір або яскравість — потужність у кожному часово-частотному бині. Горизонтальні смуги вказують на сталі тони; вертикальні — на короткочасні клацання; діагональні — на частотні розгортки. Спектрограми мовлення показують форманти — темні горизонтальні смуги, що кодують голосні і є основою автоматичного розпізнавання мовлення.

Чому неможливо мати одночасно ідеальне часове і частотне розв'язання?

Це принцип невизначеності час-частота: Dt * Df >= 1/(4pi), де Dt — СКЗ тривалості вікна, Df — СКЗ смуги частотної відповіді. Вузьке вікно локалізує події в часі, але розмиває спектр, і навпаки. Гауссове вікно досягає мінімуму добутку невизначеності (випадок рівності) — тому воно використовується у вейвлет-аналізі і перетворенні Габора.

Що таке вікончасті функції і навіщо вони потрібні?

При обчисленні ДПФ скінченного блоку відліків ми неявно множимо сигнал на прямокутне вікно — різко обрізаємо його на краях. Це спричиняє спектральний витік: різкі краї вносять фантомні частотні компоненти, що розповсюджують енергію сильних тонів на сусідні бини. Вікончасті функції Гана, Хемінга, Блекмана або Кайзера плавно зменшують сигнал до нуля на краях, зменшуючи витік ціною дещо ширшої головної пелюстки. Вибір вікна залежить від того, що важливіше — малий витік (Блекман) чи вузька головна пелюстка (прямокутне).

Що таке теорема Найквіста?

Теорема дискретизації Найквіста-Шеннона стверджує, що сигнал без частот вище fmax можна ідеально відновити з відліків, знятих із частотою щонайменше 2*fmax (частота Найквіста). Дискретизація нижче цієї частоти спричиняє аліасинг: високочастотні компоненти «згортаються» і з'являються як фантомні низькочастотні сигнали. Аудіо-компакт-диски використовують частоту дискретизації 44 100 Гц для захоплення частот до 22 050 Гц — трохи вище за межу слуху людини ~20 000 Гц.

У чому різниця між амплітудою і фазою в ДПФ?

Кожен коефіцієнт ДПФ Xₖ є комплексним числом з амплітудою |Xₖ| (наскільки виражена частота k) і фазою arg(Xₖ) (часове зміщення цього компонента від початку вікна). Спектрограми зазвичай відображають лише |Xₖ|² (спектр потужності), бо фаза важко піддається візуальній інтерпретації. Однак фаза необхідна для реконструкції сигналу: зворотне ДПФ потребує і амплітуди, і фази.

Як ЧКПФ використовується у стисненні аудіо?

Кодеки MP3 і AAC використовують модифіковане дискосинусне перетворення (MDCT) для переводу аудіо в частотну область. Потім застосовується психоакустичне маскування: гучні тони маскують сусідні тихіші, тому біти можна перерозподілити від замаскованих частот до чутних. Розмір кадру MDCT адаптується динамічно — довший для стаціонарних сигналів, коротший для перехідних процесів — саме той компроміс, який контролює розмір вікна ЧКПФ.

Який зв'язок між ЧКПФ і вейвлетами?

Обидва аналізують сигнал у кількох часових позиціях, але по-різному розбивають часово-частотну площину. ЧКПФ використовує фіксований розмір вікна, даючи рівномірне розв'язання на всіх масштабах. Вейвлет-перетворення масштабує вікно разом із частотою: ширші вікна для низьких частот (добре частотне розв'язання), вужчі для високих (добре часове). Це дає постійне відносне розв'язання (Q-фактор), що краще узгоджується з роботою слухової системи людини.

Що таке доповнення нулями в ДПФ?

Доповнення нулями (zero-padding) означає дописування нулів до сигналу перед обчисленням ДПФ, збільшуючи N без додавання нової інформації. Це інтерполює частотний спектр — вихідні бини стають більш густими за частотою, — роблячи спектральні піки легше помітними. Однак це не покращує фактичне частотне розв'язання, яке визначається справжньою довжиною сигналу. Доповнення нулями широко використовується для відображення і ефективної згортки методами overlap-add або overlap-save.