數論轉換
維基百科,自由的 encyclopedia
數論轉換是一種計算摺積的快速演算法。計算摺積的快速演算法中最常用的一種是使用快速傅里葉變換,然而快速傅立葉變換具有一些實現上的缺點,舉例來說,資料向量必須乘上複數係數的矩陣加以處理,而且每個複數係數的實部和虛部是一個正弦及餘弦函數,因此大部分的係數都是浮點數,也就是說,必須做複數而且是浮點數的運算,因此計算量會比較大,而且浮點數運算產生的誤差會比較大。
而在數論轉換中,資料向量需要乘上的矩陣是一個整數的矩陣,因此不需要作浮點數的乘法運算,更進一步,在模數為的情況下,只有
種可能的加法與
種可能的乘法,這可以使用記憶體把這些有限數目的加法和乘法存起來,利用查表法來計算,使得數論轉換完全不須任何乘法與加法運算,不過需要較大的記憶體與消耗較大的存取記憶體量。
雖然使用數論轉換可以降低計算摺積的複雜度,不過由於只進行整數的運算,所以只能用於對整數的信號計算摺積,而利用快速傅立葉變換可以對任何複數的信號計算摺積,這是降低運算複雜度所要付出的代價。