conv
Свертка и полиномиальное умножение.
| Библиотека |
|
Аргументы
Входные аргументы
#
u —
входной вектор
вектор
Details
Входной вектор, заданный как вектор-строка или вектор-столбец. Векторы u и v могут иметь различную длину и тип данных.
Если u имеет тип Float32, то выходные данные также имеют тип Float32. В противном случае функция conv преобразует входные данные в тип Float64 и возвращает тип Float64.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
v —
входной вектор
вектор
Details
Входной вектор, заданный как вектор-строка или вектор-столбец. Векторы u и v могут иметь различную длину и тип данных.
Если v имеет тип Float32, то выходные данные также имеют тип Float32. В противном случае функция conv преобразует входные данные в тип Float64 и возвращает тип Float64.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
shape —
подраздел свертки
'full' (по умолчанию) | 'same' | 'valid'
Details
Подраздел свертки, заданный как 'full', 'same' или 'valid'.
|
Полная свертка (по умолчанию). |
|
Центральная часть свертки такого же размера, как и |
|
Только те части свертки, которые вычисляются без дополненных нулями границ. При использовании этой опции |
Дополнительно
Свертка
Свертка двух векторов u и v представляет собой область перекрытия под точками при скольжении v по u. С алгебраической точки зрения свертка — это та же операция, что и перемножение многочленов, коэффициенты которых являются элементами u и v.
Пусть m = length(u) и n = length(v). Тогда w — вектор длины m+n-1, k-й элемент которого равен
Сумма берется по всем значениям j, которые приводят к допустимым индексам для u(j) и v(k-j+1), а именно j=max(1,k+1-n):1:min(k,m). При m=n это дает:
w(1) = u(1)*v(1)
w(2) = u(1)*v(2)+u(2)*v(1)
w(3) = u(1)*v(3)+u(2)*v(2)+u(3)*v(1)
...
w(n) = u(1)*v(n)+u(2)*v(n-1)+ ... +u(n)*v(1)
...
w(2*n-1) = u(n)*v(n)
Используя это определение, функция conv вычисляет прямую свертку двух векторов, а не свертку на основе БПФ.