fbpx
维基百科

互質因子算法

互質因子算法(Prime-factor FFT algorithm, PFA),又稱為Good-Thomas算法[1][2],是一種快速傅立葉變換(FFT),把N = N1N2大小的離散傅立葉變換重新表示為N1 * N2大小的二維離散傅立葉變換,其中N1N2互質。變成N1N2大小的傅立葉變換後,可以繼續遞迴使用PFA,或用其他快速傅立葉變換算法來計算。

較流行的Cooley-Tukey算法經由mixed-radix一般化後,也是把N = N1N2大小的離散傅立葉變換分割為N1N2大小的轉換,但和互質因子算法 (PFA)作法並不相同,不應混淆。Cooley-Tukey算法N1N2不需互質,可以是任何整數。然而有個缺點是比PFA多出一些乘法,和單位根twiddle factors相乘。相對的,PFA的缺點則是N1N2互質 (例如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結果。剛開始的時候人們對這兩種作法是否不同有點困惑。

算法

離散傅立葉變換(DFT)的定義如下:

 

PFA將輸入和輸出re-indexing,代入DFT公式後轉換成二維DFT。

Re-indexing

N = N1N2N1N2兩者互質,然後把輸入n 和輸出k 一一對應

 

N1N2 互質,故根據最大公因數表現定理,對每個n 都存在滿足上式的整數n1n2,且在同餘N 之下n1可以調整至0~N1 –1之間,n2可以調整至0~N2 –1之間。並根據同餘理論易知滿足上式且在以上範圍內的整數n1n2是唯一的。這稱為Ruritanian 映射 (或Good's 映射),

 
 

舉例來說:

如果 對於任一   都可以對應到

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N1N2 互質,故根據中國剩餘定理,對於每組 ( k1 , k2 ) (其中k1在0~N1 – 1之間, k2在0~N2 – 1之間),都有存在且唯一的k 在0~N - 1之間且滿足上兩式。這稱為 CRT 映射。 CRT 映射的另一種表示法如下

 

其中N1-1表示N1N2之下的反元素N2-1反之。

( 也可以改成對輸入n CRT 映射以及對輸出kRuritanian 映射)

對於有效re-indexing (理想上是達到原地)的方法有許多研究[3],以減少耗費時間的運算。

DFT re-expression

表示方法一:

將以上的re-indexing代入DFT公式裡指數部分的nk 之中,

 

( 因為ei = 1,所以兩個指數的k 部份可以分別N1N2 )。剩下的部分變成

 

則內部和外部的總和分別轉換成大小為N2N1的DFT。

表示方法二:

如果令  

  相當於取  的餘數, ,  

 

 

 

 

對於每一個   都要做一個   點的  ,而因為   個,所以需要    ,

對於每一組 都要做一個   點的  ,而因為  為常數,   個,所以需要    

因此如果要計算複雜度,可以乘法器的數量當作考量,

假設  點的   需要  個乘法器,

假設  點的   需要  個乘法器,

則總共需要  個乘法器。

範例

N = 6為例,有兩種可能,N1 = 2, N2 = 3或N1 = 3, N2 = 2。

 
N1 = 2, N2 = 3
 
N1 = 3, N2 = 2

第一種情形所產生的流程圖如左圖所示。先做2次3點DFT後再做3次2點DFT。

第二種情形所產生的流程圖如右圖所示。先做3次2點DFT後再做2次3點DFT。

其中2點DFT的部份因構造單純,皆以交錯的蝴蝶圖來顯示。

可以看出即使在這個簡單的例子中,輸入和輸出的index也都經過有點複雜的重新排列。

與Cooley-Tukey算法的比較

如首段所述,Cooley-Tukey算法和互質因子算法 (PFA)曾被誤認為很類似。兩者皆有各自優點可適用於不同狀況,因此分辨它們的不同是很重要的。在1965年著名的論文中發表的Cooley-Tukey算法,是在DFT的定義

 

中代入n = n1 + n2N1 , k = k1N2 + k2,則

 
 

比PFA多了一些要乘的因子  (稱為twiddle factors ),但index較為簡單,且適用於任何N1N2。在J. Cooley稍後發表的關於FFT歷史探討的論文[4]中使用N = 24點FFT為例,顯示兩種作法在index結構上的不同。

相關條目

注釋

  1. ^ I. J. Good, The interaction algorithm and practical Fourier analysis, J. R. Statist. Soc. B, 1958, 20(2): 361–372 
  2. ^ L. H. Thomas, Using a computer to solve problems in physics, Applications of Digital Computers, 1963 
  3. ^ S. C. Chan and K. L. Ho, On indexing the prime-factor fast Fourier transform algorithm, IEEE Trans. Circuits and Systems, 1991, 38(8): 951–953 .
  4. ^ J. Cooley, P. Lewis, and P. Welch, Historical notes on the fast Fourier transform, IEEE Transactions on Audio and Electroacoustics, 1967, 15(2): 76–79 

參考文獻

  1. P. Duhamel and M. Vetterli, Fast Fourier transforms: a tutorial review and a state of the art, Signal Processing, 1990, 19: 259–299 

外部連結

互質因子算法, prime, factor, algorithm, 又稱為good, thomas算法, 是一種快速傅立葉變換, 把n, n1n2大小的離散傅立葉變換重新表示為n1, n2大小的二維離散傅立葉變換, 其中n1與n2需互質, 變成n1和n2大小的傅立葉變換後, 可以繼續遞迴使用pfa, 或用其他快速傅立葉變換算法來計算, 較流行的cooley, tukey算法經由mixed, radix一般化後, 也是把n, n1n2大小的離散傅立葉變換分割為n1和n2大小的轉換, 但和, 作法並不相同, 不應混淆,. 互質因子算法 Prime factor FFT algorithm PFA 又稱為Good Thomas算法 1 2 是一種快速傅立葉變換 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結果 剛開始的時候人們對這兩種作法是否不同有點困惑 目录 1 算法 1 1 Re indexing 1 2 DFT re expression 1 3 範例 2 與Cooley Tukey算法的比較 3 相關條目 4 注釋 5 參考文獻 6 外部連結算法 编辑離散傅立葉變換 DFT 的定義如下 X k n 0 N 1 x n e 2 p i N n k k 0 N 1 displaystyle X k sum n 0 N 1 x n e frac 2 pi i N nk qquad k 0 dots N 1 PFA將輸入和輸出re indexing 代入DFT公式後轉換成二維DFT Re indexing 编辑 設N N1N2 N1與N2兩者互質 然後把輸入n 和輸出k 一一對應到 n n 1 N 2 n 2 N 1 mod N displaystyle n n 1 N 2 n 2 N 1 mod N 因N1與N2 互質 故根據最大公因數表現定理 對每個n 都存在滿足上式的整數n1與n2 且在同餘N 之下n1可以調整至0 N1 1之間 n2可以調整至0 N2 1之間 並根據同餘理論易知滿足上式且在以上範圍內的整數n1與n2是唯一的 這稱為Ruritanian 映射 或Good s 映射 k k 1 mod N 1 displaystyle k k 1 mod N 1 k k 2 mod N 2 displaystyle k k 2 mod N 2 舉例來說 如果N 15 N 1 5 N 2 3 n 0 1 2 12 13 14 displaystyle N 15 N 1 5 N 2 3 n 0 1 2 12 13 14 對於任一 n displaystyle n 都可以對應到n n 1 N 2 n 2 N 1 mod N n 1 0 1 N 1 1 n 2 0 1 N 2 1 displaystyle n n 1 N 2 n 2 N 1 mod N n 1 0 1 N 1 1 n 2 0 1 N 2 1 0 0 N 2 0 N 1 mod 15 displaystyle 0 0 centerdot N 2 0 centerdot N 1 mod 15 1 2 N 2 2 N 1 mod 15 displaystyle 1 2 centerdot N 2 2 centerdot N 1 mod 15 2 4 N 2 1 N 1 mod 15 displaystyle 2 4 centerdot N 2 1 centerdot N 1 mod 15 3 1 N 2 0 N 1 mod 15 displaystyle 3 1 centerdot N 2 0 centerdot N 1 mod 15 4 3 N 2 2 N 1 mod 15 displaystyle 4 3 centerdot N 2 2 centerdot N 1 mod 15 5 0 N 2 1 N 1 mod 15 displaystyle 5 0 centerdot N 2 1 centerdot N 1 mod 15 6 2 N 2 0 N 1 mod 15 displaystyle 6 2 centerdot N 2 0 centerdot N 1 mod 15 7 4 N 2 2 N 1 mod 15 displaystyle 7 4 centerdot N 2 2 centerdot N 1 mod 15 8 1 N 2 1 N 1 mod 15 displaystyle 8 1 centerdot N 2 1 centerdot N 1 mod 15 9 3 N 2 0 N 1 mod 15 displaystyle 9 3 centerdot N 2 0 centerdot N 1 mod 15 10 0 N 2 2 N 1 mod 15 displaystyle 10 0 centerdot N 2 2 centerdot N 1 mod 15 11 2 N 2 1 N 1 mod 15 displaystyle 11 2 centerdot N 2 1 centerdot N 1 mod 15 12 4 N 2 0 N 1 mod 15 displaystyle 12 4 centerdot N 2 0 centerdot N 1 mod 15 13 1 N 2 2 N 1 mod 15 displaystyle 13 1 centerdot N 2 2 centerdot N 1 mod 15 14 3 N 2 1 N 1 mod 15 displaystyle 14 3 centerdot N 2 1 centerdot N 1 mod 15 因N1與N2 互質 故根據中國剩餘定理 對於每組 k1 k2 其中k1在0 N1 1之間 k2在0 N2 1之間 都有存在且唯一的k 在0 N 1之間且滿足上兩式 這稱為CRT 映射 CRT 映射的另一種表示法如下 k k 1 N 2 1 N 2 k 2 N 1 1 N 1 mod N displaystyle k k 1 N 2 1 N 2 k 2 N 1 1 N 1 mod N 其中N1 1表示N1在模N2之下的反元素 N2 1反之 也可以改成對輸入n 用CRT映射以及對輸出k 用Ruritanian 映射 對於有效re indexing 理想上是達到原地 的方法有許多研究 3 以減少耗費時間的模運算 DFT re expression 编辑 表示方法一 將以上的re indexing代入DFT公式裡指數部分的nk 之中 e 2 p i N n k e 2 p i N n 1 N 2 n 2 N 1 k e 2 p i N 1 k n 1 e 2 p i N 2 k n 2 e 2 p i N 1 k 1 n 1 e 2 p i N 2 k 2 n 2 displaystyle e frac 2 pi i N nk e frac 2 pi i N n 1 N 2 n 2 N 1 k e frac 2 pi i N 1 kn 1 e frac 2 pi i N 2 kn 2 e frac 2 pi i N 1 k 1 n 1 e frac 2 pi i N 2 k 2 n 2 因為e2pi 1 所以兩個指數的k 部份可以分別模N1與N2 剩下的部分變成 X k 1 k 2 n 1 0 N 1 1 n 2 0 N 2 1 x n 1 N 2 n 2 N 1 e 2 p i N 2 n 2 k 2 e 2 p i N 1 n 1 k 1 displaystyle X k 1 k 2 sum n 1 0 N 1 1 left sum n 2 0 N 2 1 x n 1 N 2 n 2 N 1 e frac 2 pi i N 2 n 2 k 2 right e frac 2 pi i N 1 n 1 k 1 則內部和外部的總和分別轉換成大小為N2與N1的DFT 表示方法二 如果令 k k 1 N 2 k 2 N 1 f o r k 0 1 N 1 displaystyle k k 1 N 2 k 2 N 1 quad for quad k 0 1 N 1 令 n n 1 N 2 n 2 N 1 N displaystyle n n 1 N 2 n 2 N 1 N N displaystyle cdot N 相當於取 N displaystyle N 的餘數 n 1 0 N 1 1 displaystyle n 1 0 dots N 1 1 n 2 0 N 2 1 displaystyle n 2 0 dots N 2 1 X k 1 N 2 k 2 N 1 N n 0 N 1 x n 1 N 2 n 2 N 1 N e j 2 p N 2 N 1 k 1 N 2 k 2 N 1 n 1 N 2 n 2 N 1 displaystyle X k 1 N 2 k 2 N 1 N sum n 0 N 1 x n 1 N 2 n 2 N 1 N e j frac 2 pi N 2 N 1 k 1 N 2 k 2 N 1 n 1 N 2 n 2 N 1 n 0 N 1 x n 1 N 2 n 2 N 1 N e j 2 p N 2 N 1 k 1 n 1 N 2 N 2 k 2 n 2 N 1 N 1 k 1 n 2 N 2 N 1 k 2 n 1 N 1 N 2 displaystyle sum n 0 N 1 x n 1 N 2 n 2 N 1 N e j frac 2 pi N 2 N 1 k 1 n 1 N 2 N 2 k 2 n 2 N 1 N 1 k 1 n 2 N 2 N 1 k 2 n 1 N 1 N 2 n 0 N 1 x n 1 N 2 n 2 N 1 N e j 2 p N 1 k 1 n 1 N 2 e j 2 p N 2 k 2 n 2 N 1 displaystyle sum n 0 N 1 x n 1 N 2 n 2 N 1 N e j frac 2 pi N 1 k 1 n 1 N 2 e j frac 2 pi N 2 k 2 n 2 N 1 n 2 0 N 2 1 n 1 0 N 1 1 x n 1 N 2 n 2 N 1 N e j 2 p N 1 k 1 n 1 N 2 e j 2 p N 2 k 2 n 2 N 1 displaystyle sum n 2 0 N 2 1 sum n 1 0 N 1 1 x n 1 N 2 n 2 N 1 N e j frac 2 pi N 1 k 1 n 1 N 2 e j frac 2 pi N 2 k 2 n 2 N 1 對於每一個 n 2 displaystyle n 2 都要做一個 N 1 displaystyle N 1 點的 D F T displaystyle DFT 而因為 n 2 0 N 2 1 displaystyle n 2 0 dots N 2 1 有 N 2 displaystyle N 2 個 所以需要 N 2 displaystyle N 2 個 N 1 displaystyle N 1 點 D F T displaystyle DFT 對於每一組 k 1 N 2 N 1 displaystyle k 1 N 2 N 1 都要做一個 N 2 displaystyle N 2 點的 D F T displaystyle DFT 而因為 N 2 displaystyle N 2 為常數 k 1 0 N 1 1 displaystyle k 1 0 dots N 1 1 有 N 1 displaystyle N 1 個 所以需要 N 1 displaystyle N 1 個 N 2 displaystyle N 2 點 D F T displaystyle DFT 因此如果要計算複雜度 可以乘法器的數量當作考量 假設N 1 displaystyle N 1 點的 D F T displaystyle DFT 需要 M 1 displaystyle M 1 個乘法器 假設N 2 displaystyle N 2 點的 D F T displaystyle DFT 需要 M 2 displaystyle M 2 個乘法器 則總共需要 N 2 M 1 N 1 M 2 displaystyle N 2 M 1 N 1 M 2 個乘法器 範例 编辑 以N 6為例 有兩種可能 N1 2 N2 3或N1 3 N2 2 N1 2 N2 3 N1 3 N2 2 第一種情形所產生的流程圖如左圖所示 先做2次3點DFT後再做3次2點DFT 第二種情形所產生的流程圖如右圖所示 先做3次2點DFT後再做2次3點DFT 其中2點DFT的部份因構造單純 皆以交錯的蝴蝶圖來顯示 可以看出即使在這個簡單的例子中 輸入和輸出的index也都經過有點複雜的重新排列 與Cooley Tukey算法的比較 编辑如首段所述 Cooley Tukey算法和互質因子算法 PFA 曾被誤認為很類似 兩者皆有各自優點可適用於不同狀況 因此分辨它們的不同是很重要的 在1965年著名的論文中發表的Cooley Tukey算法 是在DFT的定義 X k n 0 N 1 x n e 2 p i N n k k 0 N 1 displaystyle X k sum n 0 N 1 x n e frac 2 pi i N nk qquad k 0 dots N 1 中代入n n1 n2N1 k k1N2 k2 則 e 2 p i N n k e 2 p i N n 1 n 2 N 1 k 1 N 2 k 2 e 2 p i N 1 n 1 k 1 e 2 p i N n 1 k 2 e 2 p i N 2 n 2 k 2 displaystyle e frac 2 pi i N nk e frac 2 pi i N n 1 n 2 N 1 k 1 N 2 k 2 e frac 2 pi i N 1 n 1 k 1 e frac 2 pi i N n 1 k 2 e frac 2 pi i N 2 n 2 k 2 X k 1 N 2 k 2 n 1 0 N 1 1 n 2 0 N 2 1 x n 1 n 2 N 1 e 2 p i N 2 n 2 k 2 e 2 p i N n 1 k 2 e 2 p i N 1 n 1 k 1 displaystyle X k 1 N 2 k 2 sum n 1 0 N 1 1 left sum n 2 0 N 2 1 x n 1 n 2 N 1 e frac 2 pi i N 2 n 2 k 2 right e frac 2 pi i N n 1 k 2 e frac 2 pi i N 1 n 1 k 1 比PFA多了一些要乘的因子e 2 p i N n 1 k 2 displaystyle e frac 2 pi i N n 1 k 2 稱為twiddle factors 但index較為簡單 且適用於任何N1 N2 在J Cooley稍後發表的關於FFT歷史探討的論文 4 中使用N 24點FFT為例 顯示兩種作法在index結構上的不同 相關條目 编辑快速傅立葉變換 中國剩餘定理 Bezout引理注釋 编辑 I J Good The interaction algorithm and practical Fourier analysis J R Statist Soc B 1958 20 2 361 372 L H Thomas Using a computer to solve problems in physics Applications of Digital Computers 1963 S C Chan and K L Ho On indexing the prime factor fast Fourier transform algorithm IEEE Trans Circuits and Systems 1991 38 8 951 953 J Cooley P Lewis and P Welch Historical notes on the fast Fourier transform IEEE Transactions on Audio and Electroacoustics 1967 15 2 76 79 參考文獻 编辑P Duhamel and M Vetterli Fast Fourier transforms a tutorial review and a state of the art Signal Processing 1990 19 259 299 外部連結 编辑fft note by Burrus 页面存档备份 存于互联网档案馆 cnx 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title 互質因子算法 amp oldid 75780894, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。