exponenta event banner

conv

Свертка и многочленовое умножение

Описание

пример

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

пример

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

Примеры

свернуть все

Создание векторов u и v содержит коэффициенты многочленов x2 + 1 и 2x + 7.

u = [1 0 1];
v = [2 7];

Используйте свертку для умножения многочленов.

w = conv(u,v)
w = 1×4

     2     7     2     7

w содержит полиномиальные коэффициенты для 2x3 + 7x2 + 2x + 7.

Создайте два вектора и сверните их.

u = [1 1 1];
v = [1 1 0 0 0 1 1];
w = conv(u,v)
w = 1×9

     1     2     2     1     0     1     2     2     1

Длина w является length(u)+length(v)-1, которая в этом примере 9.

Создайте два вектора. Найти центральную часть свертки u и v это тот же размер, что и u.

u = [-1 2 3 -2 0 1 2];
v = [2 4 -1 1];
w = conv(u,v,'same')
w = 1×7

    15     5    -9     7     6     7    -1

w имеет длину 7. Полный сверток будет иметь длину length(u)+length(v)-1, которая в этом примере будет равна 10.

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

свернуть все

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

Когда u или v относятся к типу single, то выход имеет тип single. В противном случае conv преобразует входные данные в тип double и возвращает тип double.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Поддержка комплексного номера: Да

Подраздел свертки, указанный как '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).

Подробнее

свернуть все

Скручивание

Свертка двух векторов, u и v, представляет область перекрытия под точками как v слайды поперек u. Алгебраически свертка - это та же операция, что и умножение многочленов, коэффициенты которых являются элементами u и v.

Давайте m = length(u) и n = length(v) . Тогда w - вектор длины m+n-1 чей k-й элемент -

w (k) =∑ju (j) v (k − j + 1).

Сумма превышает все значения 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)

Расширенные возможности

.

Создание кода графического процессора
Создание кода CUDA ® для графических процессоров NVIDIA ® с помощью Coder™ графических процессоров

.

См. также

| | | | | (Панель инструментов обработки сигналов)

Представлен до R2006a