兩個函數的圓周摺積是由他們的週期延伸所來定義的。週期延伸意思是把原本的函數平移某個週期 T 的整數倍後再全部加起來,所產生的新函數。
的週期延伸可以寫成
![{\displaystyle x_{T}(t)\ {\stackrel {\mathrm {def} }{=}}\ \sum _{k=-\infty }^{\infty }x(t-kT)=\sum _{k=-\infty }^{\infty }x(t+kT).}](//wikimedia.org/api/rest_v1/media/math/render/svg/efbe55e6586544bae36b9e8cb5ee857e296bb266)
兩個函數
與
的圓周摺積
可用兩種互相等價的方式來定義
![{\displaystyle {\begin{aligned}y(t)&=\int _{t_{o}}^{t_{o}+T}h_{T}(\tau )\cdot x_{T}(t-\tau )\,d\tau \\&=\int _{-\infty }^{\infty }h(\tau )\cdot x_{T}(t-\tau )\,d\tau \quad =\quad (x_{T}*h)(t),\end{aligned}}}](//wikimedia.org/api/rest_v1/media/math/render/svg/a0caf6f9e3eca7c089490edaf86f67d52bf6b8de)
其中
表示原本的(線性)摺積。
類似地,對於離散訊號(數列),可以定義週期 N 的圓周摺積
為
![{\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 點訊號,其中
,則它們的圓周摺積就與摺積相等。即可接著用 N 點 FFT 作計算。
用以上方法計算摺積時,若兩個訊號長度相差很多,則較短者須補上相當多的零,太不經濟。而且在某些情況下,例如較短的
是一個 FIR 濾波器而較長的
是未知長度的輸入(像語音)時,直接用以上方法要等所有的輸入都收到後才能開始算輸出訊號,太不方便。這時可以把
分割成許多適當長度的區塊(稱為 block convolution),然後一段一段的處理。經過濾波後的段落再仔細的連接起來,藉由輸入或輸出的重疊來處理區塊連接的部份。這兩種做法分別稱為重疊-儲存之摺積法和重疊-相加之摺積法。