环形折积与线性折积类似,皆是针对两个函数的运算子。假设两个函数分别为与,则折积运算过程即为将其中一个函数(如)经过翻转后,对于每个位移量,将重叠的部分相乘累加起来(见下文定义)。不同的地方在于环形折积的位移为环形位移,而线性折积的位移为平移。折积亦可以视为滑动平移的推广。
两个函数的环形折积定义为对一个或两个函数做周期延伸后之折积运算,而所谓的周期延伸是指原来的函数平移固定长度的整数倍再全部加起来所产生的新函数。()经过周期延伸后之函数可写成下式:
其中T为周期(即周期延伸中的固定长度)
对与计算环形折积的运算(的离散信号之环形折积(()可以经由输入信号()与系统的脉冲响应()的线性折积而得。也因此,在实际的应用上,线性折积的运算较为具有物理意义,如数位滤波器的滤波过程即为一个线性折积的运算。
环形折积定义如前文所述,运算上是将线性折积的头尾相连变成环形,观念上可想像为一个输入在内环,另一个输入在外环,然后每一个输出的求得皆是经由内环与外环对应位置的乘加。计算下一个输出则将内环固定不动,外环圆周位移一格,再做对应位置之乘加得到此输出,以此类推。(圆环上的点数即为周期延伸的周期或)
不管是线性折积或环形折积均有反折、位移、相乘并求和的运算,但线性折积的位移是平移,环形折积的位移则是圆周位移。除此之外,线性折积并不要求两序列长度相等,若()长度为,()长度为,则其折积输出()长度为+-1,而环形折积则要求两输入序列等长(假设为),且折积输出的长度也为。一般情况下,两等长序列的环形折积与线性折积的结果是不同的(因为环形周期序列产生的影响),但当≥+-1时,两者的结果相同。
右图为一个实际范例,可比较相同的两输入信号,线性折积与环形折积输出的差异。
由以上讨论知道一般的情况,线性折积与环形折积的输出结果并不会相同,且一般线性折积较实用而有意义。然而离散信号的处理上,由于环形折积可以借由快速傅立叶变换较有效率的求得,所以两输入信号的线性折积,如何利用环形折积与快速傅立叶变换得到,在信号处理及相关应用上是特别重要的。
我们根据折积理论知道
然而的点数该如何选取呢?因为与的点数皆要是一样的,且特别要注意的一点是:
其中为点;为点(())L: 除以的余数
上式表示根据折积理论与快速傅立叶变换,我们求得的是两个输入信号的环形折积而不是线性折积
依据两个输入信号的长度,计算方法可分类如下:
由于此种类在实际应用上相当少且较不实际,故在此不进一步讨论
假设的范围,长度为 = 2-1+1;的范围为,长度为 2-1+1在这个情况下,与的线性折积为
容易以图解推得有值的范围为,输出长度为要取+-1,不足部分补零,实作方法如下:
由于折积运算的对称性,此种类与 为有限长信号,而 为无限长信号的情况完全相同。假设的范围,长度为 = 2 - 1 + 1,长度为无限长。在此情况下,折积输出每一点皆有值。但当我们只想求出的其中一段时,依然可利用快速傅立叶变换实作。如果我们希望算出在范围之间的值,此段长度为 = 2-1+1,此时可图解发现,在中与我们关心的输出范围有关联之范围为,需要使用的点数为 =+-1 (为输出信号关心的长度)
实作方法如下:
当计算折积之两信号长度相差很大时,利用快速傅立叶变换计算折积是较没有效率的,此时较有效率的方法是将较长的信号切成一段段的区块,以此每一区块对另一输入信号进行折积再合并,常见的区块折积方法包括重叠-相加之折积法与重叠-储存之折积法,针对长度的不同,区块长度的选取亦会影响计算的效率。