conv
卷积和多项式乘法
说明
示例
通过卷积计算多项式乘法
创建包含多项式 和 的系数的向量 u
和 v
。
u = [1 0 1]; v = [2 7];
使用卷积将多个多项式相乘。
w = conv(u,v)
w = 1×4
2 7 2 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
。
卷积的中心部分
创建两个向量。计算与 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
可具有不同的长度或数据类型。
当 u
或 v
的类型为 single
时,输出的类型为 single
。否则,conv
会将输入转换为类型 double
,并返回类型 double
。
数据类型: double
| single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
复数支持: 是
shape
— 卷积的分段
'full'
(默认) | 'same'
| 'valid'
卷积的分段,指定为 'full'
、'same'
或 'valid'
。
'full' | 全卷积(默认值)。 |
'same' | 与 |
'valid' | 仅计算的没有补零边缘的卷积部分。使用此选项时, |
详细信息
卷积
两个向量 u
和 v
的卷积,表示 v
滑过 u
时依据这些点确定的重叠部分的面积。从代数方法上讲,卷积是与将其系数为 u
和 v
元素的多项式相乘相同的运算。
m = length(u)
和 n = length(v)
。则 w
是长度为 m+n-1
且第 k
个元素为
的向量
总和通过计算 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)
使用此定义,conv
计算两个向量的直接卷积,而不是基于 FFT 的卷积。
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
用法说明和限制:
输入
u
和v
必须为列向量。如果
shape
是'full'
(默认值),则u
和v
中只有一个可以是 tall 数组。如果
shape
是'same'
或'valid'
,则v
不能为 tall 数组。
有关详细信息,请参阅 tall 数组。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
有关 C/C++ 代码生成限制的信息,请参阅Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder)。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)