Math 2.0

Numerical analysis Fourier and transform methods Theorem

Prime-factor FFT algorithm

Builds on Discrete Fourier transformChinese remainder theoremCooley–Tukey FFT algorithm

Statement

For M≥1M \ge 1 let ωM=e−2πi/M\omega_M = e^{-2\pi i/M}. Let N=N1N2N = N_1 N_2 where N1,N2≥1N_1, N_2 \ge 1 are coprime integers. Let x∈ℂNx \in \C^N and let XX be its discrete Fourier transform, Xk=∑n=0N−1xnωNnkX_k = \sum_{n=0}^{N-1} x_n \omega_N^{nk}. For 0≤n1<N10 \le n_1 < N_1 and 0≤n2<N20 \le n_2 < N_2 let n(n1,n2)=(N2n1+N1n2) mod Nn(n_1, n_2) = (N_2 n_1 + N_1 n_2) \bmod N. For 0≤k1<N10 \le k_1 < N_1 and 0≤k2<N20 \le k_2 < N_2 let k(k1,k2)k(k_1, k_2) be the unique k∈{0,…,N−1}k \in \set{0, \ldots, N-1} with k≡k1(modN1)k \equiv k_1 \pmod{N_1} and k≡k2(modN2)k \equiv k_2 \pmod{N_2}. Then both index maps are bijections onto {0,…,N−1}\set{0, \ldots, N-1}, and Xk(k1,k2)=∑n1=0N1−1∑n2=0N2−1xn(n1,n2) ωN1n1k1 ωN2n2k2.X_{k(k_1, k_2)} = \sum_{n_1=0}^{N_1-1} \sum_{n_2=0}^{N_2-1} x_{n(n_1, n_2)}\, \omega_{N_1}^{n_1 k_1}\, \omega_{N_2}^{n_2 k_2}. So a DFT of length NN is a two-dimensional DFT of size N1×N2N_1 \times N_2, with no twiddle factors.

Remarks

The output map is a bijection by the Chinese remainder theorem. The input map is a bijection because n(n1,n2)≡N2n1(modN1)n(n_1, n_2) \equiv N_2 n_1 \pmod{N_1} and N2N_2 is invertible modulo N1N_1, and similarly modulo N2N_2. For the formula, ωNN2n1k=ωN1n1k=ωN1n1k1\omega_N^{N_2 n_1 k} = \omega_{N_1}^{n_1 k} = \omega_{N_1}^{n_1 k_1} since k≡k1(modN1)k \equiv k_1 \pmod{N_1}, and in the same way ωNN1n2k=ωN2n2k2\omega_N^{N_1 n_2 k} = \omega_{N_2}^{n_2 k_2}. Example: N=6=2⋅3N = 6 = 2 \cdot 3; the input order n(n1,n2)=(3n1+2n2) mod 6n(n_1, n_2) = (3n_1 + 2n_2) \bmod 6 lists 0,2,40, 2, 4 for n1=0n_1 = 0 and 3,5,13, 5, 1 for n1=1n_1 = 1. Coprimality is necessary: for N1=N2=2N_1 = N_2 = 2 the input map gives 2n1+2n2 mod 42n_1 + 2n_2 \bmod 4, which takes only the values 00 and 22. For non-coprime factors one uses the Cooley–Tukey algorithm, which pays with twiddle factors.

Going deeper

For a student

The algorithm is due to Good and to Thomas, and is often called the Good–Thomas algorithm. It is used for lengths with several coprime factors, with each small length done by a hand-optimised module, for example Winograd's. The price is the more complicated index arithmetic. A prime-power length such as 88 or 99 cannot be split this way, and a Cooley–Tukey or another FFT is used for such factors.

Reading path

To understand this page from the ground up, read these 10 pages in order. The foundations come first.

Show the path as a graph
Each page uses the pages above it. The colour of the bar on a box shows how strong the evidence is, and the box also gives it as text. The list has the same pages.
  • no evidence level
  1. Big O notation concept
  2. Discrete Fourier transform concept
  3. Divisibility definition
  4. Primitive root of unity concept
  5. Cooley–Tukey FFT algorithm statement
  6. Congruence modulo n definition
  7. Greatest common divisor definition
  8. Coprime integers definition
  9. Chinese remainder theorem statement
  10. Prime-factor FFT algorithm statement

Where this leads

2 pages build on this one.

Further reading

  1. Web https://en.wikipedia.org/wiki/Prime-factor_FFT_algorithm
About this page
TagBH3NNAYJT5
URIm2://BH3NNAYJT5
Kindstatement, theorem
WritingW0 stub
MSC65T50
StatusThis copy of the site has no build data. Run m2 status BH3NNAYJT5.
AboutDiscrete Fourier transform
UsesDiscrete Fourier transform, Chinese remainder theorem, Cooley–Tukey FFT algorithm
Same as

Markdown · JSON · Edit on GitHub

What this page needs for W1

  • an inventory row: the row of the inventory that the node accounts for (0 of 1)
  • a source with a locator (0 of 1)

The writing levels say how complete the text of a page is. They do not measure its truth.

What links here

Used by