Тут у браузері справді виконується radix-2 FFT за алгоритмом Кулі-Тьюкі — спочатку по кожному рядку, потім по кожному стовпцю — яке перетворює маленьке тестове зображення на його двовимірний частотний спектр. Домінантна частота й частка збереженої енергії після фільтрації обчислюються наживо з цього спектра, а обнулення частини спектра перед оберненим перетворенням демонструє теорему про згортку: множення у частотному просторі рівносильне згортці у просторовій області.
Три пов'язані панелі: просторовий тестовий візерунок, його логарифмічний спектр амплітуд після fftshift (тому нульова, DC-складова, опиняється у центрі) і реконструкцію після того, як обрана маска фільтра обнулила частину спектра й було виконано обернене перетворення назад у зображення.
Оберіть Вихідний візерунок (смуги, коло, шахівниця, гліф «F» або випадковий шум) і Частотний фільтр — «Нижні частоти» лишають лише центр і розмивають, «Верхні частоти» прибирають центр і лишають контури, «Смуговий» зберігає кільце, а «Режекторний» видаляє домінантний пік і прибирає періодичні смуги. Радіус фільтра й Ширина смуги задають розмір маски, «Показати фазу» перемикає на фазовий спектр, а Розмір зображення перемикає між 64×64 і повільнішим, але чіткішим 128×128.
Пряме двовимірне дискретне перетворення Фур'є для зображення N×N коштує O(N⁴) операцій, але розбиття на N одновимірних FFT по рядках, а потім по стовпцях — саме те, що робить ця симуляція, — знижує це до O(N² log N). Той самий трюк робить достатньо швидкими для повсякденного використання JPEG-подібне стиснення й реконструкцію МРТ-зображень.
«Сирий» результат FFT розміщує нульову (DC) складову за індексом [0,0], а частотний вміст «загортається» навколо країв масиву. Симуляція застосовує fftshift перед відображенням, міняючи квадранти місцями так, щоб DC-складова опинилася посередині, а частота зростала назовні в усіх напрямках — так спектри прийнято показувати.
«Нижні частоти» зберігають усе в межах обраного радіуса від центру й обнуляють решту, розмиваючи зображення через відкидання дрібних деталей. «Верхні частоти» роблять навпаки — лишають тільки зовнішнє високочастотне кільце й підкреслюють контури. «Режекторний» же прибирає лише тонке кільце навколо єдиного найсильнішого частотного піка зображення — ідеально для видалення повторюваних смуг без розмиття всього іншого.
«Збережено енергії» — це частка від загальної квадратичної амплітуди спектра, що лишається всередині маски фільтра. Малий радіус «Нижніх частот» зберігає лише DC-складову й кілька низьких частот, відкидаючи більшу частину енергії спектра — саме тому агресивна фільтрація нижніх частот дає настільки сильно розмиту реконструкцію.
Перемикач «Показати фазу» замінює амплітуду кожного пікселя кутом його комплексного коефіцієнта FFT, перерахованим у відтінки сірого. Фаза кодує, де саме в зображенні розташований візерунок кожної частоти, а не наскільки він сильний — обмін лише фазою між двома зображеннями достатній, щоб результат структурно нагадував «донора» фази, а не амплітуди.
Чистий синусоїдальний смугастий візерунок за визначенням побудований з єдиної просторової частоти, тож його FFT майже цілком нульовий, окрім симетричної пари яскравих піків на плюс і мінус цій частоті, плюс DC-складова в центрі. Природні зображення дають набагато «розмазаніший» спектр, бо поєднують безліч частот і орієнтацій одночасно.