Перекриття-Додавання проти Перекриття-Збереження


24

Які відмінності чи інші критерії можуть бути використані для вирішення питання щодо використання перекриття-додавання та перекриття-збереження для фільтрації? Як перекриття, так і збереження перекриття описуються як алгоритми для швидкого згортання потоків даних на основі FFT з ядрами фільтра FIR. У чому полягають відмінності затримки, обчислювальної ефективності чи кешування місцевості (тощо)? Або вони однакові?

Відповіді:


27

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

Ось короткий огляд статті, яку я написав деякий час тому

Швидка згортка означає блочне використання кругової згортки для досягнення лінійної згортки. Швидке згортання може бути досягнуто методами OA або OS. ОС також відома як "перекриття перекриття". У фільтрації через OA кожен блок даних сигналу містить лише стільки зразків, скільки дозволяє кругової згортки бути еквівалентною лінійній згортці. Блок даних сигналу занижений на нулі перед FFT, щоб запобігти реакції імпульсу фільтра не «обернутись» в кінці послідовності. OA-фільтрація додає перехідний вхідний сигнал з одного блоку з перехідним входом-відключенням з попереднього блоку. У фільтрації в ОС, показаній на малюнку 1, жодне накладення нуля на вхідних даних не виконується, тому кругова згортка не еквівалентна лінійній згортці. Частини, які "обгортаються", марні та викидаються. Щоб компенсувати це, остання частина попереднього вхідного блоку використовується як початок наступного блоку. ОС не вимагає додавання перехідних процесів, що робить його швидшим, ніж ОА.


Чудова стаття! =)
Фонон

Можливо, деякі способи оптимізації способу обчислення DFT над нульованою частиною буфера OA, що дає перевагу методу OA. Це залежатиме від вашого процесора та пакета FFT. Крім того, ви могли б написати власний алгоритм FFT спеціально для OA, який враховує нульову панель.
orodbhen

@orodbhen, чи знаєте ви про такий пакет FFT?
Марк Боргердінг

@MarkBorgerding У OpenCV ви можете вказати кількість нульових рядків, але це специфічно для 2D. Що стосується явних оптимізацій в тому чи інших пакетах FFT, я не знаю. Я можу придумати чимало випадків, коли користувальницький FFT для використання рідкості був би корисним, але я сам не пішов по цій дорозі. Ще ні.
orodbhen

1
Добре, що ви цитували, тому що посилання розірвано :(
Мехрдад
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.