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
вычисляет прямую свертку двух векторов, а не свертку на основе БПФ.