conv

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

Синтаксис

w = conv(u,v)
w = conv(u,v,shape)

Описание

пример

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, содержащий коэффициенты многочленов и.

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

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

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

     2     7     2     7

w содержит полиномиальные коэффициенты для.

Создать два вектора и применить операцию свертки.

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.

Типы данных: удвойтесь | единственный | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический
Поддержка комплексного числа: Да

Часть свертки, заданная как 'full', 'same' или 'valid'.

полный

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

'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)

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

Смотрите также

| | | | |

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

Была ли эта тема полезной?