Секционная свёртка

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:Значения Секционная (секционированная) свёртка — метод вычисления свёртки, используемый, когда количество элементов одной из входных последовательностей во много раз больше, чем количество элементов другойШаблон:Sfn. Основные методы вычисления секционной свёртки — Шаблон:Нп3 и Шаблон:Нп3.

Вычисление

Пусть x={x(1),x(2),…} — неограниченная последовательность, h={h(1),…,h(N)} — последовательность длины N, L — некоторое натуральное число.

Метод перекрытия с суммированием

Для вычисления линейной свёртки y=x∗h методом перекрытия с суммированием необходимо разделить последовательность x на смежные секции длины L:

x(n)=∑k=0+∞xk(n),

где

xk(n)={x(n),n∈[kL,(k+1)L−1],0,n∉[kL,(k+1)L−1].

Тогда

y(n)=∑m=0N−1h(m)∑k=0+∞xk(n−m)=∑k=0+∞h(n)∗xk(n)=∑k=0+∞yk(n).

Длина каждой из частичных свёрток в данной сумме равна L+N−1, то есть имеется участок длины N−1, на котором k-я и (k+1)-я частичные свёртки перекрываются, поэтому их отсчёты на участке перекрытия нужно сложить. Отсюда и происходит название данного методаШаблон:Sfn.

Метод перекрытия с накоплением

Пусть теперь длина секций xk последовательности x равна L+N−1 и у этих секций есть участки перекрытия длиной N−1. Для каждой секции вычисляется циклическая свёртка h и xk, содержащая L+N−1 отсчёт и обозначаемая yk. Необходимо отбросить последние N−1 отсчётов этой последовательности, а остальные присоединить к последовательности yk−1. После выполнения этой процедуры для каждого k получится искомая последовательность y=x∗hШаблон:Sfn.

Замечание

Число L удобно выбирать так, чтобы число L+N−1 было степенью двойки. Тогда каждую из частичных свёрток можно эффективно выполнять с помощью быстрых алгоритмов, значительно снижая вычислительную сложность.

Примечания

Шаблон:Примечания

Литература

Шаблон:Math-stub