Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

conv

卷积和多项式乘法

说明

示例

w = conv(u,v) 返回向量 uv卷积。如果 uv 是多项式系数的向量,对其卷积与将这两个多项式相乘等效。

示例

w = conv(u,v,shape) 返回如 shape 指定的卷积的分段。例如,conv(u,v,'same') 仅返回与 u 等大小的卷积的中心部分,而 conv(u,v,'valid') 仅返回计算的没有补零边缘的卷积部分。

示例

全部折叠

创建包含多项式 x2+12x+7 的系数的向量 uv

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 大小相同的 uv 的卷积的中心部分。

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。

输入参数

全部折叠

输入向量,指定为行或列向量。向量 uv 可具有不同的长度或数据类型。

uv 的类型为 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)

详细信息

全部折叠

卷积

两个向量 uv 的卷积,表示 v 滑过 u 时依据这些点确定的重叠部分的面积。从代数方法上讲,卷积是与将其系数为 uv 元素的多项式相乘相同的运算。

m = length(u)n = length(v)。则 w 是长度为 m+n-1 且第 k 个元素为

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)

扩展功能

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | (Signal Processing Toolbox) |