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

conv

卷积和多项式乘法

全页折叠

说明

示例

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

示例

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

示例

全部折叠

创建包含多项式 x 2 + 1 2 x + 7 的系数的向量 u v

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

使用卷积将多个多项式相乘。

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

w 包含 2 x 3 + 7 x 2 + 2 x + 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 大小相同的 u v 的卷积的中心部分。

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 ) = j u ( 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)

扩展功能

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

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | (Signal Processing Toolbox) |