Документация Engee

conv

Страница в процессе разработки.

Свертка и полиномиальное умножение.

Библиотека

EngeeDSP

Синтаксис

Вызов функции

  • w = conv(u,v) — возвращает свертку векторов u и v. Если u и v являются векторами полиномиальных коэффициентов, их свертка эквивалентна перемножению двух полиномов.

  • w = conv(u,v,shape) — возвращает часть свертки, заданную параметром shape. Например, conv(u,v,'same') возвращает только центральную часть свертки того же размера, что и u, а conv(u,v,'valid') возвращает только часть свертки, вычисленную без дополненных нулями границ.

Аргументы

Входные аргументы

# u — входной вектор
вектор

Details

Входной вектор, заданный как вектор-строка или вектор-столбец. Векторы u и v могут иметь различную длину и тип данных.

Если u имеет тип Float32, то выходные данные также имеют тип Float32. В противном случае функция conv преобразует входные данные в тип Float64 и возвращает тип Float64.

Типы данных

Float64, Float32, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Поддержка комплексных чисел

Да

# v — входной вектор
вектор

Details

Входной вектор, заданный как вектор-строка или вектор-столбец. Векторы u и v могут иметь различную длину и тип данных.

Если v имеет тип Float32, то выходные данные также имеют тип Float32. В противном случае функция conv преобразует входные данные в тип Float64 и возвращает тип Float64.

Типы данных

Float64, Float32, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, Bool

Поддержка комплексных чисел

Да

# shape — подраздел свертки
'full' (по умолчанию) | 'same' | 'valid'

Details

Подраздел свертки, заданный как 'full', 'same' или 'valid'.

'full'

Полная свертка (по умолчанию).

'same'

Центральная часть свертки такого же размера, как и u.

'valid'

Только те части свертки, которые вычисляются без дополненных нулями границ. При использовании этой опции length(w) равна max(length(u)-length(v)+1,0), за исключением случаев, когда length(v) равна нулю. Если length(v)=0, то length(w)=length(u).

Выходные аргументы

# w — выходной вектор

Details

Выходной вектор, возвращающий свертку двух векторов u и v.

Дополнительно

Свертка

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