Русская Википедия:Секционная свёртка

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

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

Вычисление

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

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

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

<math> x(n) = \sum\limits_{k=0}^{+\infty} x_k(n), </math>

где

<math> x_k(n) = \left\{ \begin{array}{rl} x(n), &n \in [kL, \, (k+1)L - 1], \\ 0, &n \notin [kL, \, (k+1)L - 1].\end{array} \right.</math>

Тогда

<math> y(n) = \sum\limits_{m=0}^{N-1} h(m) \sum\limits_{k=0}^{+\infty} x_k(n-m) = \sum\limits_{k=0}^{+\infty} h(n) * x_k(n) = \sum\limits_{k=0}^{+\infty} y_k(n). </math>

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

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

Пусть теперь длина секций <math>x_k</math> последовательности <math>x</math> равна <math>L+N-1</math> и у этих секций есть участки перекрытия длиной <math>N-1</math>. Для каждой секции вычисляется циклическая свёртка <math>h</math> и <math>x_k</math>, содержащая <math>L+N-1</math> отсчёт и обозначаемая <math>y_k</math>. Необходимо отбросить последние <math>N-1</math> отсчётов этой последовательности, а остальные присоединить к последовательности <math>y_{k-1}</math>. После выполнения этой процедуры для каждого <math>k</math> получится искомая последовательность <math>y = x*h</math>Шаблон:Sfn.

Замечание

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

Примечания

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

Литература

Шаблон:Math-stub