两个函数的循环卷积是由他们的周期延伸所来定义的。周期延伸意思是把原本的函数平移某个周期 T 的整数倍后再全部加起来,所产生的新函数。 的周期延伸可以写成
 的周期延伸可以写成
 
两个函数  与
 与  的循环卷积
 的循环卷积  可用两种互相等价的方式来定义
 可用两种互相等价的方式来定义
 
其中  表示原本的(线性)卷积。
 表示原本的(线性)卷积。
类似地,对于离散信号(数列),可以定义周期 N 的循环卷积 ![{\displaystyle (x\otimes h)[n]}](//wikimedia.org/api/rest_v1/media/math/render/svg/5207e2843bba767cc5cd9e15d312b6523d7f1f05) 为
 为
![{\displaystyle {\begin{aligned}(x_{N}*h)[n]&=\sum _{m=-\infty }^{\infty }h[m]\cdot x_{N}[n-m]\\&=\sum _{m=-\infty }^{\infty }\left(h[m]\cdot \sum _{k=-\infty }^{\infty }x[n-m-kN]\right).\,\end{aligned}}}](//wikimedia.org/api/rest_v1/media/math/render/svg/038f2571926d149a4d3f9f1781902a51f77b52f0) 
如果引入循环矩阵,那么两个长度都为 N  的离散信号(长度不一致,则可以通过补零来对齐两信号)的循环卷积则可以写成矩阵的形式。设有长度为 N 的离散信号  ,则由该向量构建的循环矩阵有如下形式
,则由该向量构建的循环矩阵有如下形式
 
此时,信号 与信号
与信号 的圆周卷积可以写为
的圆周卷积可以写为
 
离散信号的循环卷积可以经由循环卷积定理使用快速傅里叶变换(FFT)而有效率的计算。因此,若原本的(线性)卷积能变换成循环卷积来计算,会远比直接计算更快速。考虑到长度  和长度
 和长度  的有限长度离散信号,做卷积之后会成为长度
 的有限长度离散信号,做卷积之后会成为长度  的信号,因此只要把两离散信号补上适当数目的零(zero-padding)成为 N 点信号,其中
 的信号,因此只要把两离散信号补上适当数目的零(zero-padding)成为 N 点信号,其中   ,则它们的循环卷积就与卷积相等。即可接着用 N 点 FFT 作计算。
  ,则它们的循环卷积就与卷积相等。即可接着用 N 点 FFT 作计算。
用以上方法计算卷积时,若两个信号长度相差很多,则较短者须补上相当多的零,太不经济。而且在某些情况下,例如较短的 ![{\displaystyle h[n]}](//wikimedia.org/api/rest_v1/media/math/render/svg/89981bbbb05ffd469eeadb828c18359965985e46) 是一个 FIR 滤波器而较长的
 是一个 FIR 滤波器而较长的 ![{\displaystyle x[n]}](//wikimedia.org/api/rest_v1/media/math/render/svg/864cbbefbdcb55af4d9390911de1bf70167c4a3d) 是未知长度的输入(像语音)时,直接用以上方法要等所有的输入都收到后才能开始算输出信号,太不方便。这时可以把
 是未知长度的输入(像语音)时,直接用以上方法要等所有的输入都收到后才能开始算输出信号,太不方便。这时可以把 ![{\displaystyle x[n]}](//wikimedia.org/api/rest_v1/media/math/render/svg/864cbbefbdcb55af4d9390911de1bf70167c4a3d) 分割成许多适当长度的区块(称为 block convolution),然后一段一段的处理。经过滤波后的段落再仔细的连接起来,借由输入或输出的重叠来处理区块连接的部分。这两种做法分别称为重叠-储存之卷积法和重叠-相加之卷积法。
 分割成许多适当长度的区块(称为 block convolution),然后一段一段的处理。经过滤波后的段落再仔细的连接起来,借由输入或输出的重叠来处理区块连接的部分。这两种做法分别称为重叠-储存之卷积法和重叠-相加之卷积法。