Book contents
- Frontmatter
- Contents
- Preface
- 1 Fourier's representation for functions on, Tp, and ℙN
- 2 Convolution of functions on, Tp, and ℙN
- 3 The calculus for finding Fourier transforms of functions on ℝ
- 4 The calculus for finding Fourier transforms of functions on Tp, and ℙN
- 5 Operator identities associated with Fourier analysis
- 6 The fast Fourier transform
- 7 Generalized functions on ℝ
- 8 Sampling
- 9 Partial differential equations
- 10 Wavelets
- 11 Musical tones
- 12 Probability
- Appendices
- Index
6 - The fast Fourier transform
Published online by Cambridge University Press: 01 September 2010
- Frontmatter
- Contents
- Preface
- 1 Fourier's representation for functions on, Tp, and ℙN
- 2 Convolution of functions on, Tp, and ℙN
- 3 The calculus for finding Fourier transforms of functions on ℝ
- 4 The calculus for finding Fourier transforms of functions on Tp, and ℙN
- 5 Operator identities associated with Fourier analysis
- 6 The fast Fourier transform
- 7 Generalized functions on ℝ
- 8 Sampling
- 9 Partial differential equations
- 10 Wavelets
- 11 Musical tones
- 12 Probability
- Appendices
- Index
Summary
Pre-FFT computation of the DFT
Introduction
In this chapter we will study the problem of computing the components
of the discrete Fourier transform of given complex numbers f[0], f[1], …, f[N-1]. We write these relations in the compact form
F = Ff,
where
are complex N-component column vectors and where the N × N DFT matrix
is expressed in terms of powers of
ω ≔ e-2π/N = cos(2π/N) - i sin(2π/N).
We will use indices 0, 1, …, N - 1 (rather than 1, 2, …, N) for the rows of vectors and for the rows and columns of matrices. When it is necessary, we will use a subscript to specify the size of a matrix, e.g., I8, F16 will denote the 8 × 8 identity matrix and the 16 × 16 DFT matrix, respectively.
Given an N × N matrix
and an N-vector
we can evaluate the components of
by using the algorithm
The cost of this computation is approximately N2 operations when we define an operation to be the work we do as we execute the statement
S ≔ S + akn · bn
from the inner loop. [More specifically, we fetch akn, bn, and the “old” value of S from storage; we form the product akn · bn and the sum S + (akn · bn); and we store this result as the “new” value of S.] Of course, complex arithmetic requires more effort than real arithmetic, and by using the real-imaginary decomposition
we verify that
1 complex operation = 4 real operations.
- Type
- Chapter
- Information
- A First Course in Fourier Analysis , pp. 291 - 366Publisher: Cambridge University PressPrint publication year: 2008