本页翻译不是最新的。点击此处可查看最新英文版本。
卷积和多项式乘法
w = conv(u,v)
w = conv(u,v,shape)
示例
w = conv( u,v ) 返回向量 u 和 v 的 卷积 。如果 u 和 v 是多项式系数的向量,对其卷积与将这两个多项式相乘等效。
w = conv( u,v )
u,v
u
v
w = conv( u,v , shape ) 返回如 shape 指定的卷积的分段。例如, conv(u,v,'same') 仅返回与 u 等大小的卷积的中心部分,而 conv(u,v,'valid') 仅返回计算的没有补零边缘的卷积部分。
w = conv( u,v , shape )
shape
conv(u,v,'same')
conv(u,v,'valid')
全部折叠
创建包含多项式 x 2 + 1 和 2 x + 7 的系数的向量 u 和 v 。
u = [1 0 1]; v = [2 7];
使用卷积将多个多项式相乘。
w = 1×4 2 7 2 7
w 包含 2 x 3 + 7 x 2 + 2 x + 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 ) = ∑ 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 时,这使
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)
用法说明和限制:
输入 u 和 v 必须为列向量。
如果 shape 是 'full' (默认值),则 u 和 v 中只有一个可以是 tall 数组。
如果 shape 是 'same' 或 'valid' ,则 v 不能为 tall 数组。
有关详细信息,请参阅 tall 数组 。
有关 C/C++ 代码生成限制的信息,请参阅 Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder) 。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅 在基于线程的环境中运行 MATLAB 函数 。
此函数完全支持 GPU 数组。有关详细信息,请参阅 Run MATLAB Functions on a GPU (Parallel Computing Toolbox) 。
此函数完全支持分布式数组。有关详细信息,请参阅 Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox) 。
在 R2006a 之前推出
conv2 | convn | deconv | filter | convmtx (Signal Processing Toolbox) | xcorr
conv2
convn
deconv
filter
convmtx
xcorr