Can you summarize the following document?
        
  概念上,這個做法是選用一個較短的適當長度 "L" 來切割 "x"["n"],計算 "x"["n"] 的子數列濾波後的結果 "y"["n"],然後連線起來成為 "y"["n"] 。並考慮到一個長度 formula_2 和長度 formula_3 的有限長度離散訊號,做折積之後會成為長度 formula_4 的訊號。  則  而因為折積是線性非時變運算,所以 "y"["n"] 可被表示為  其中 formula_8 在 [1, "L"+"M"-"1"] 之外為零。 每個 "y"["n"] 長度 formula_4,以間隔 formula_2 位移後相加,所以輸出是由互相重疊的區塊相加而成,因此稱為"重疊"-"相加"之折積法。 儘管一時看不出切割成區塊的好處為何,但考慮到對任何 formula_11 以上每段的折積都等價於 formula_12 和 formula_13 做 formula_14 點圓周折積,不夠的部分補上零 (zero-padding)。如此一來因為圓周折積可以藉由圓周折積定理  轉換成三次 formula_14 點快速傅立葉變換和 formula_14 次乘法,使原本每段 "O"("N") 的運算量減少至 "O"("N" "logN"),速度大幅增加。

  Algorithm ("OA for linear convolution")

  當 "x"["n"] 的長度 "N' " 和 "h"["n"] 的長度 "M" 相差太大時(例如 "M" < log"N' " ),直接折積(不透過圓周折積和 FFT )反而最快。而當 "N' " 和 "M" 差不多在同一個數量級時,不用分割,也就是隻有一塊長度 "L" = "N' " 的區塊去做 FFT 即可。而當 "N' " 比 "M" 大了不少,卻沒大太多時,區塊長度 "L" 就需要選擇。除了與 "N' " 和 "M" 相關以外,也要考慮當兩者相除有餘數時,剩下一小段的輸入可能會造成浪費。
重疊-相加之折積法 ( "Overlap-add method" ) 是一種區塊折積 ( block convolution, sectioned convolution ),可以有效的計算一個很長的訊號 "x"["n"] 和一個 FIR 濾波器 "h"["n"] 的離散折積。