互質因子算法

互質因子算法 （ Prime - factor FFT algorithm, PFA ） ， 又稱爲Good - Thomas算法 ， 是一種快速傅立葉變換 （ FFT ） ， 把N = N1N2大小的離散傅立葉變換重新表示爲N1 * N2大小的二維離散傅立葉變換 ， 其中N1與N2需互質 。 變成N1和N2大小的傅立葉變換後 ， 可以繼續遞迴使用PFA ， 或用其他快速傅立葉變換算法來計算 。 較流行的Cooley - Tukey算法經由mixed - radix一般化後 ， 也是把N = N1N2大小的離散傅立葉變換分割爲N1和N2大小的轉換 ， 但和互質因子算法 ( PFA ) 作法並不相同 ， 不應混淆 。 Cooley - Tukey算法的N1與N2不需互質 ， 可以是任何整數 。 然而有個缺點是比PFA多出一些乘法 ， 和單位根twiddle factors相乘 。 相對的 ， PFA的缺點則是N1與N2需互質 ( 例如N 是2次方就不適用 ) ， 而且要藉由中國剩餘定理來進行較複雜的re - indexing 。 互質因子算法 ( PFA ) 可以和mixed - radix Cooley - Tukey算法相結合 ， 前者將N 分解爲互質的因數 ， 後者則用在重複質因數上 。 PFA也與nested Winograd FFT算法密切相關 ， 後者使用更爲精巧的二維折積技巧分解成N1 * N2的轉換 。 因而一些較古老的論文把Winograd算法稱爲PFA FFT 。 儘管PFA和Cooley - Tukey算法並不相同 ， 但有趣的是Cooley和Tukey在他們1965年發表的有名的論文中 ， 沒有發覺到高斯和其他人更早的研究 ， 只引用Good在1958年發表的PFA作爲前人的FFT結果 。 剛開始的時候人們對這兩種作法是否不同有點困惑 。