ГоловнаСтаттіЗгортка (Конволюція)

Згортка: Як Фільтри Змінюють Форму Сигналів

Пересуньте одну функцію поверх іншої, помножте та підсумуйте на кожному зсуві. Ця одна операція є кожним лінійним фільтром, який ви коли-небудь використовували.

mysimulator teamОновлено — червень 2026≈ 8 хв читання▶ Відкрити симуляцію

Процес виконання

Згортка (конволюція) приймає дві функції та генерує третю. Для дискретних сигналів – тих, що фактично зберігаються комп’ютером, це є зсувним зваженим підсумком: перевертаємо один сигнал, зсуваємо його по іншому сигналу зразком за раз і на кожній позиції множимо перекривні значення та додаємо їх. Результат на кожному зсуві становить один вихідний зразок. У вигляді формули конволюція сигналу x із ядром h виглядає так:

y[n] = Σ x[k] * h[n - k] // сума по всіх k // ядро перевертається та зсувається по сигналу x Це може здатися абстрактним, але конкретний випадок робить це очевидним. Нехай h буде ядром із трьох елементів [1/3, 1/3, 1/3]. Конволюція будь-якого сигналу з ним замінює кожен вихідний зразок середнім значенням між собою та двома сусідами – це просте низькочастотне фільтр із ковзною середньою величиною, яке згладжує швидкі коливання, зберігаючи при цьому повільний тренд.

y[n] = Σ  x[k] * h[n - k]     // sum over all k
                              // h is flipped and slid across x
жива демонстрація · пов'язана симуляція● LIVE

Чому кожна система LTI є згорткою

Згортка – це не просто один корисний трюк серед багатьох — це теорема, прихована під нею. Будь-яка лінійна, часово-незалежна (LTI) система – тобто така, де подвоєння вхідного сигналу подвоює вихідний, а затримка входу на будь-яку величину призводить до затримки вихідного сигналу на ту ж саму величину, без зміни форми – повністю характеризується однією функцією: її відповіддю на одноразовий імпульс, імпульсний відгук. Якщо ви знаєте цю одну відповідь, то вихід системи для будь-якого входу є просто згорткою входу з імпульсним відгуком. Кожен фіксований лінійний фільтр, чи то згладжування звукової хвилі, чи розмиття зображення, чи моделювання того, як акустика кімнати впливає на звук, структурно є точно цією ж операцією.

Розпізнавані ядра

Зміна ядра змінює те, що робить фільтр, не змінюючи при цьому основної механіки. Ядро, яке віднімає зміщене та згладжене копію сигналу від самого себе, створює виявлення країв або збільшення контрастності – підкреслюючи швидкі зміни замість їх видалення. Ядро у формі гаусової функції виробляє плавне, природно виглядаюче розмиття, яке використовується в обробці зображень, оскільки воно не має гострих кутів, які можуть викликати артефакти «роздування». У двох вимірах одна й та сама операція зсуву та підсумовування, застосована за допомогою малого ядра до кожного піксельного району, є точно конволюційним шаром у серці нейронної мережі на основі згортки – кожне навчене ядро виявляє певний локальний шаблон, де б він не з’явився на зображенні.

Теорія згортки: множення у прихованому вигляді

Згортка в часовій (або просторовій) області відповідає точно звичайному скалярному множенню у частотній області, і навпаки. Ця теорія згортки є одним із найкорисніших фактів у галузі обробки сигналів: вона означає, що фільтрація – перетворення сигналу шляхом згортки його з ядром – може бути зрозуміла як перетворення його спектру шляхом множення на частотну характеристику ядра. Частотна характеристика низькочастотного ядра велика поблизу нульової частоти та невелика при високих частотах; множення спектру сигналу цією характеристикою є точно тим, що видаляє швидкі коливання, які видно з іншої області.

convolve(x, h)   in time domain
  ⇔  multiply(X(f), H(f))   in frequency domain, where X, H are Fourier transforms

Швидке згортка: чому FFT також важлива тут

Пряма згортка двох послідовностей довжиною n потребує на порядку O(n²) множень — кожен вихідний семпл сумується над усіма ядрами. Це дорого, особливо для великих ядер або довгих сигналів. Теорема згортки надає вихід: перетворіть обидва сигнали в частотну область за допомогою Швидкого Фур'євого Перетворення (ШФП) за часом O(n log n), помножте їх пункт за пунктом за час O(n), і ще раз перетворіть добуток за час O(n log n) — значно дешевше, ніж пряма згортка, коли розмір ядра достатньо великий, щоб зробити перехід вигідним, що й пояснює, чому бібліотеки аудіо та обробки зображень змінюють стратегії на основі розміру ядра.

Frequently asked questions

Що означає для системи бути лінійною та часово-незалежною?

Лінійність означає, що масштабування або додавання вхідних сигналів пропорційно масштабує або додає вихідні сигнали таким же чином, без додаткових перехресних членів. Часова незалежність означає, що система поводиться однаково незалежно від часу приходу вхідного сигналу – затримка вхідного сигналу призводить до затримки вихідного сигналу на ту ж саму величину, не змінюючи її форми. Лише системи, які мають обидва ці властивості, гарантовано повністю описуються з використанням конволюції з одним імпульсним відгуком.

Чому ядро перевернуто у формулі конволюції?

Перевертання враховує причинність та порядок обчислень: конволюція підсумовує вхідний сигнал, зважений на те, як система реагує на щось, що відбулося певний час тому, і перевернувши ядро перед його зміщенням, це правильно відображає часову залежність, а не обчислює кореляцію, яка не перевертається та вимірює схожість замість відповіді.

Чому множення у частотному просторі робить конволюцію настільки швидшим?

Пряма конволюція двох послідовностей довжиною n потребує приблизно n квадратних множень. Теорія конволюції стверджує, що конволюція в часі дорівнює простому множенню у частотному діапазоні, а швидка Фур'єрова трансформація обчислює кожну сторону приблизно за n log n операцій, тому перетворення обох сигналів, множення та подальше перетворення набагато дешевше, ніж пряма конволюція, коли n велике.

Спробуйте наживо

Усе, що вище, працює прямо у вашому браузері — відкрийте Convolution і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.

▶ Відкрити симуляцію Convolution

Що ви знайшли?

Додати кроки відтворення (опційно)