Свёртка (цифровая обработка сигналов)
Свёртка (англ. Convolution) — это базовая операция в задачах цифровой обработки сигналов. В дискретном случае различают два вида сверток: линейную и циклическую.
Пусть имеется два дискретных сигнала и
. В общем случае
и
отличаются.
Содержание
Линейная свёртка
Линейной сверткой сигналов и
называется дискретный сигнал вида:
Для вычисления линейной свертки сигналы и
сдвигают относительно друг друга почленно перемножают и складывают. При этом предполагается, что
при
и
, и
при
и
.
Циклическая свёртка
В циклической свертке предполагается, что дискретные сигналы и
– периодические с одинаковым периодом
отсчетов. Тогда циклической сверткой сигналов
и
называется сигнал вида:
Результат циклической свертки также имеет длину
отсчетов.
Вычисление линейной свертки через циклическую
Используя циклическую свертку можно рассчитать линейную свертку двух сигналов. Для этого необходимо каждый из сигналов и
длительностью
и
отсчетов соответственно дополнить нулями до длины
. Вычисление линейной свертки через циклическую кажется нерациональным, однако на практике чаще бывает удобно вычислять именно циклическую свертку, благодаря так называемой теореме о свертке. Cуть теоремы о свертке: спектр циклической свертки есть произведение спектров сворачиваемых сигналов:
, где
и
- спектры сворачиваемых сигналов,
- спектр циклической свертки двух сигналов. Где спектр есть ни что иное как Дискретное преобразование Фурье (ДПФ), для реализации которого можно использовать быстрые алгоритмы БПФ.
Применение
- Линейная свертка используется для расчета FIR-фильтров в цифровой обработке сигналов.
- Циклическую свертку используют для вычисления линейной свертки в том случае, если теорема о свертке дает хороший результат.