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элемент th

w(k)=ju(j)v(kj+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® графические процессоры с помощью GPU Coder™.

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

| | | | (Signal Processing Toolbox) |

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