Beruflich Dokumente
Kultur Dokumente
3.0 INTRODUCTION Fast Fourier transforms (FFf) are a group of algorithms for significantly speeding up the computation of the OFT. The most widely known of these algorithms is attributed to Cooley and Tukey [1] and is used for a number of points N equal to a power-of-two. A unique feature of this book is that it provides multiple FFT algorithms for fast computation of any length DFf. These are found in Chapters 8 and 9. In fact, the article by Cooley and Tukey presented a non-power-of-two algorithm which has mostly been ignored. Several of the algorithms in Chapter 9 are spin-offs of that work. The most important fact about all FFf algorithms is that they are mathematically equivalent to the Off, not an approximation of it. This means that all of the properties, strengths, and most of the weaknesses of the DFf apply to the FFf algorithms in this book. The FFf improves two weaknesses of the Off: high number of adds and multiplies; and quantization noise. An example of an 8-point OFT to FFf is used in this chapter to illustrate how FFfs actually speed up the Off. The chapter concludes with a detailed explanation of how to use the building-block approach to construct FFfs. 3.1 IMPROVEMENTS TO THE OFT The FFT improves the DFf by reducing the computational load and quantization noise of the DFf.
28
CHA~ 3
2N
(3-1)
Chapter 9 establishes that the number of computations required for FFf algorithms, regardless of the transform length, can be expressed as a constant times N *log, (N). Therefore, the computation reduction factor when using an FFf algorithm is a constant times N / log, (N). The constant is different, but near 5, for each algorithm and nearly always provides a significant advantage for using the FFT.
SEC. 3.3
29
to illustrate these techniques is to show the process for the 8-point DFT. This is the only place in this book where an FFT algorithm is actually derived from its DFf origins. The rest of the book focuses on choosing and applying the algorithms, not deriving them. The building-block algorithms described in Chapter 8 are the result of using techniques, such as those in this section, to remove redundant computations from small OFTs.
w;n
Ao Al A2 A3 A4 As A6 A7
Wo WO WO WI WO W2 WO W~~ WO W4 WO WS WO W6 WO W7
WO 2 W3 w W4 W6 W6 fV I WO W4 W2 W7 W4 W2 W6 WS
rVo
WO
WO
S
WO
6
WO
ao
aI
W W W2 W 4 W7 W 2 W4 WO WI w6 WO W6 W 4 W4 W3 W2 W WO W4 WO W4
W7
W6
fV
S
a2
a3
W W3 W2 WI
a4
as
(3-2)
a6
a7
W7
WI
Figure 3-1
Vector representation of fV kn .
30 CHAP. 3
For example,
4 - W I2 - W 20 36 W8 - 8 - 8 - W 28- 8 -8 - W
(3-3)
This cyclic feature of plays a primary role in the development of all of the FFT algorithms in this book. In Equation 3-1 all of the exponents (k * n) of W larger than 8 have been reduced to the equivalent power that is less than 8 by repeatedly subtracting 8 until the exponent is less than 8. Using the example in Equation 3-3, the powers of k en = 36, 28, 20, and 12 have all been replaced by Wi.
r:'
: wl
Ao Al A2
1 0
0
1
0
1
0
1
0
1 1 1
W
0
-j
0
-jW
0
1 0
-j
0
-1
0
j
0
A3 A4
As A6
-jW
0
j
0
W
0
1 0
0
-1
0
1
0
-1
0
-W
0
-j
0
}
jW
0
1 0
0
j
0
-1
0
-j
0
A7
}W
-W
exhibit 90 sym-
Wi
Wl
(3-5)
The simplest example of using the property in Equation 3-5 in columns 0 and 4 of the matrix in Equation 3-4. Notice to multiply the ao + a4 and ai + a6 terms in the right-hand rows 2 and 6 both subtract the al + as and a3 + a7 terms.
to reduce computations is that rows 0 and 4 have 1 column vector. Similarly, In both cases, redundant
SEC. 3.3
computations can be removed by performing the required computations once and using the results twice. Other symmetries similar to this illustration also exist in Equation 3-4. When all these are exploited, matrix Equation 3-4 is converted to matrix Equation 3-6.
Ao Al A2 A3 A4 As
1 0 0 0 0 0 1 0 0 I 0 0 0 0 0 I
I
1
0 0 0 0
0 0
0 0
-j
0
W
0 0 0
-jW
+ a4) -
(a2 + a6)
0 0 0
-W
0 0 0
j
0 0 0 -1
0 0 0
jW
0 0 1 0 0 1 0 0 0 0 0
+ j(a2 - a6) (al + as) + (a3 + a7) (al + as) - (a3 + a7) + j(a3
- Q7)
(3-6)
A6
A7
0 0
In addition to removing redundant computations, the other important feature of this approach is that the required computations are performed in a way that allows them to be efficiently used later in the algorithm. Specifically, the first step in this version of the 8point FFT algorithm is to compute the terms found in the right-hand vector in Equation 3-4. The second step is to combine these results as shown in the right-hand vector in Equation 3-6.
32
CHAP. 3
ao a4 a2 a6 a1 as a3 a7
-1
-j
Figure 3-2
AO
-1
A1 A2
-j
-1
A3 A4 AS
-1
A6
-1
-JW
-1
A7
plex multiplies, which is 64 multiplies and 32 adds. Removing these 96 computations reduces the DFf arithmetic operations count to 400, which reduces the gain associated with using the FFT algorithm to a factor of 6.67 (400/60). This is still a significant savings. Other approaches to making the 8-point OFT fast are in Section 8.8. Most will have the same number of total computations, even though they are derived by different approaches.
SEC. 3.4
33
an
erer
LPF
~AO
LPF
t-t--
A1
~AO
er-
LPF
<
Ap _ 1
>
Set of P ~Al
--~
Filters
~Ap_l
Set of P Filters
Figure 3-3
frequency spectrum into Q equally spaced increments by using a Q-point DFT to implement Q narrowband filters. The result is Q narrowband filters for each of the P filters as shown in Figure 3-4. If Figure 3-4 were expanded by using the block diagram in Figure 3-3, there would be Q narrowband filters for each of the P narrowband filters. Since a narrowband filter connected to the output of a narrowband filter is also a narrowband filter, Figure 3-4 can be redrawn as P * Q narrowband filters. Since these N == P * Q narrowband filter outputs are also equally spaced and cover the same frequency spectrum as an array of N narrowband filters, they must be the same as the ones implemented by a P * Q-point OFT. This is the strategy used by each of the FFT algorithms in Chapter 9 to decompose the FFT into the smaller building blocks described in Chapter 8. If Figure 3-4 is compared with the prime factor algorithm block diagrams (Figures 9-17 and 9-18) or the mixed-radix algorithm block diagrams (Figures 9-23, 924, and 9-25), two differences are noticed. First, the frequency component outputs are in different order in each of the figures. The details of the FFT algorithms result in these different output frequency orders. Second, while Figure 3-4 and all of the FFT algorithms have P Q-point FFTs, all of the FFT algorithms have QP -point FFTs on the input and Figure 3-4 only has one. This makes it look like Figure 3-4 requires fewer computations than the FFT algorithms in Chapter 9. The catch is that each of the P narrowband input filters on the left-hand side of Figure 3-4 must process all N of the input data samples, However, each of the P-point FFTs on the inputs to the FFT algorithms in Figures 9-17,9-18,9-23, 9-24, and 9-25 only processes Q points. In all cases each of the Q-point output filters and
34
CHA~ 3
Set r
Second Set of Q
---..
Filters
Filters
P-th Set of Q Filters
Ap*Q_l A(P-l)* Q A(P-l)* Q +1
Figure 3-4
FFTs only processes P intermediate results. Section 3.3 shows how the FFT approach is used to reduce the total computational load over using the narrowband filter approach.
3.5 CONCLUSIONS
The fast versions of the Off overcome two of its weaknesses. The FFT reduces computationalload (adds and multiplies) by significantly reducing the redundancy that is inherent in the structure of the DFf equation. Quantization noise is also reduced by using FFTs because the number of computations is less than with the DFf. While improving the DFf so dramatically that it is now used in hundreds of applications, the FFT does not add any drawbacks of its own, which cannot be said for the element covered in the next chapter. Weighting functions get teamed with FfTs to reduce two more weaknesses of the DfT.
REFERENCES
[1] J. W. Cooley and J. W. Tukey, "An Algorithm for the Machine Calculation of Complex Fourier Series," Mathematics of Computation, Vol. 19, p. 297 (1965).