MATLAB 帮助中心
卷积和多项式乘法
w = conv(u,v)
w = conv(u,v,shape)
w = conv(u,v) 返回向量 u 和 v 的卷积。如果 u 和 v 是多项式系数的向量,对其卷积与将这两个多项式相乘等效。
u,v
u
v
示例
w = conv(u,v,shape) 返回如 shape 指定的卷积的分段。例如,conv(u,v,'same') 仅返回与 u 等大小的卷积的中心部分,而 conv(u,v,'valid') 仅返回计算的没有补零边缘的卷积部分。
shape
conv(u,v,'same')
conv(u,v,'valid')
全部折叠
创建包含多项式 x2+1 和 2x+7 的系数的向量 u 和 v。
u = [1 0 1]; v = [2 7];
使用卷积将多个多项式相乘。
w = 1×4 2 7 2 7
w 包含 2x3+7x2+2x+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。
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。
7
输入向量,指定为行或列向量。向量 u 和 v 可具有不同的长度或数据类型。
当 u 或 v 的类型为 single 时,输出的类型为 single。否则,conv 会将输入转换为类型 double,并返回类型 double。
single
conv
double
数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical 复数支持: 是
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
'full'
'same'
'valid'
卷积的分段,指定为 'full'、'same' 或 'valid'。
全卷积(默认值)。
与 u 大小相同的卷积的中心部分。
仅计算的没有补零边缘的卷积部分。使用此选项时,length(w) 是 max(length(u)-length(v)+1,0),但 length(v) 为零时除外。如果 length(v) = 0,则 length(w) = length(u)。
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 个元素为
m = length(u)
n = length(v)
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 时,这使
j
u(j)
v(k-j+1)
=
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)
使用此定义,conv 计算两个向量的直接卷积,而不是基于 FFT 的卷积。
全部展开
conv 函数支持 tall 数组,但存在以下使用说明和限制:
输入 u 和 v 必须为列向量。
如果 shape 是 'full'(默认值),则 u 和 v 中只有一个可以是 tall 数组。
如果 shape 是 'same' 或 'valid',则 v 不能为 tall 数组。
有关详细信息,请参阅 tall 数组。
用法说明和限制:
如果使用 shape 参量,它在代码生成时必须为常量。
对于输入参量 u 和 v:
您必须在代码生成时将输入向量指定为固定大小或可变长度的向量。向量的第一个或第二个维度可以是可变大小。所有其他维度必须具有固定大小 1。
输入向量 u 和 v 必须具有相同的方向。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
conv 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
gpuArray
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
在 R2006a 之前推出
conv2 | convn | deconv | filter | convmtx (Signal Processing Toolbox) | xcorr
conv2
convn
deconv
filter
convmtx
xcorr
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处