Math 2.0

Numerical analysis Fourier and transform methods Theorem

Rader's FFT algorithm

Builds on Discrete Fourier transformPrimitive root modulo nConvolutionCooley–Tukey FFT algorithm

Statement

Let pp be a prime, let ω=e−2πi/p\omega = e^{-2\pi i/p}, and let gg be a primitive root modulo pp. For an integer jj write gjg^{j} and g−jg^{-j} for the residues in {1,…,p−1}\set{1, \ldots, p-1} of these powers modulo pp. Let x∈ℂpx \in \C^p and let XX be its discrete Fourier transform, Xk=∑n=0p−1xnωnkX_k = \sum_{n=0}^{p-1} x_n \omega^{nk}. Define sequences of period p−1p - 1 by am=xgma_m = x_{g^m} and cm=ωg−mc_m = \omega^{g^{-m}}. Then X0=∑n=0p−1xnX_0 = \sum_{n=0}^{p-1} x_n, and for 0≤q≤p−20 \le q \le p-2, Xg−q=x0+∑m=0p−2am cq−m.X_{g^{-q}} = x_0 + \sum_{m=0}^{p-2} a_m\, c_{q-m}. So a DFT of prime length pp reduces to a cyclic convolution of length p−1p - 1 and O(p)O(p) further additions.

Remarks

Since gg generates the multiplicative group modulo pp, the maps m↦gmm \mapsto g^m and q↦g−qq \mapsto g^{-q} are bijections from {0,…,p−2}\set{0, \ldots, p-2} onto {1,…,p−1}\set{1, \ldots, p-1}. For n=gmn = g^m and k=g−qk = g^{-q} one has nk≡g−(q−m)(modp)nk \equiv g^{-(q-m)} \pmod p, and ωnk\omega^{nk} depends only on nknk modulo pp; this gives the formula. The cyclic convolution of length p−1p-1 can be computed by DFTs of length p−1p - 1, which is composite for p>3p > 3. These can use the Cooley–Tukey algorithm, possibly after zero padding to a power of 22. Example: p=5p = 5 and g=2g = 2, so (g0,g1,g2,g3)=(1,2,4,3)(g^0, g^1, g^2, g^3) = (1, 2, 4, 3) and (g0,g−1,g−2,g−3)=(1,3,4,2)(g^0, g^{-1}, g^{-2}, g^{-3}) = (1, 3, 4, 2). The hypothesis that pp is prime gives a primitive root, and makes the nonzero indices a group under multiplication. For composite lengths the nonzero indices do not form such a group.

Going deeper

For a student

The algorithm uses the structure of (ℤ/pℤ)×(\Z/p\Z)^\times, which is cyclic of order p−1p - 1. Permuting inputs by n=gmn = g^m and outputs by k=g−qk = g^{-q} turns the (p−1)×(p−1)(p-1) \times (p-1) block of the DFT matrix into a circulant matrix. Circulant matrices are diagonalised by the DFT, which is why the convolution can be done in O(plog⁡p)O(p \log p) operations. Winograd's short-length FFT modules are built on the same reduction. Bluestein's algorithm is an alternative that works for every length and does not need a primitive root.

Reading path

To understand this page from the ground up, read these 7 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. Convolution concept
  3. Discrete Fourier transform concept
  4. Primitive root modulo n concept
  5. Primitive root of unity concept
  6. Cooley–Tukey FFT algorithm statement
  7. Rader's FFT algorithm statement

Where this leads

2 pages build on this one.

Further reading

  1. Web https://en.wikipedia.org/wiki/Rader's_FFT_algorithm
About this page
Tag9HYM2ZMS31
URIm2://9HYM2ZMS31
Kindstatement, theorem
WritingW0 stub
MSC65T50, 11Y16
StatusThis copy of the site has no build data. Run m2 status 9HYM2ZMS31.
AboutDiscrete Fourier transform
UsesDiscrete Fourier transform, Primitive root modulo n, Convolution, 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