Title: Chapter 9 Computation of the Discrete Fourier Transform
1Chapter 9 Computation of the Discrete Fourier
Transform
Biomedical Signal processing
- Zhongguo Liu
- Biomedical Engineering
- School of Control Science and Engineering,
Shandong University
1
2Chapter 9 Computation of the Discrete Fourier
Transform
9.0 Introduction 9.1 Efficient Computation of
Discrete Fourier Transform 9.2 The Goertzel
Algorithm 9.3 decimation-in-time FFT
Algorithms 9.4 decimation-in-frequency FFT
Algorithms 9.5 practical considerations(software
realization)
39.0 Introduction
- Implement a convolution of two sequences by the
following procedure
- Why not convolve the two sequences directly?
- There are efficient algorithms called Fast
Fourier Transform (FFT) that can be orders of
magnitude more efficient than others.
49.1 Efficient Computation of Discrete Fourier
Transform
- The DFT pair was given as
- Baseline for computational complexity
- Each DFT coefficient requires
- N complex multiplications
- N-1 complex additions
- All N DFT coefficients require
- N2 complex multiplications
- N(N-1) complex additions
4
59.1 Efficient Computation of Discrete Fourier
Transform
- Complexity in terms of real operations
- 4N2 real multiplications
- 2N(N-1) real additions (approximate 2N2)
5
69.1 Efficient Computation of Discrete Fourier
Transform
- Most fast methods are based on Periodicity
properties - Periodicity in n and k Conjugate symmetry
6
79.2 The Goertzel Algorithm
- Makes use of the periodicity
- Multiply DFT equation with this factor
- using xn0 for nlt0 and ngtN-1
- Xk can be viewed as the output of a filter to
the input xn - Impulse response of filter
- Xk is the output of the filter at time nN
7
89.2 The Goertzel Algorithm
- Computational complexity
- 4N real multiplications 4N real additions
- Slightly less efficient than the direct method
8
9Second Order Goertzel Filter
- Multiply both numerator and denominator
9
10Second Order Goertzel Filter
- Complexity for one DFT coefficient ( x(n) is
complex sequence). - Poles 2N real multiplications and 4N real
additions - Zeros Need to be implement only once
- 4 real multiplications and 4 real additions
- Complexity for all DFT coefficients
- Each pole is used for two DFT coefficients
- Approximately N2 real multiplications and 2N2
real additions
10
11Second Order Goertzel Filter
- If do not need to evaluate all N DFT coefficients
- Goertzel Algorithm is more efficient than FFT if
- less than M DFT coefficients are needed,M lt log2N
11
129.3 decimation-in-time FFT Algorithms
- Makes use of both periodicity and symmetry
- Consider special case of N an integer power of 2
- Separate xn into two sequence of length N/2
- Even indexed samples in the first sequence
- Odd indexed samples in the other sequence
12
139.3 decimation-in-time FFT Algorithms
- Substitute variables n2r for n even and n2r1
for odd
- Gk and Hk are the N/2-point DFTs of each
subsequence
13
149.3 decimation-in-time FFT Algorithms
- Gk and Hk are the N/2-point DFTs of each
subsequence
14
158-point DFT using decimation-in-time
Figure 9.3
16computational complexity
- Two N/2-point DFTs
- 2(N/2)2 complex multiplications
- 2(N/2)2 complex additions
- Combining the DFT outputs
- N complex multiplications
- N complex additions
- Total complexity
- N2/2N complex multiplications
- N2/2N complex additions
- More efficient than direct DFT
16
179.3 decimation-in-time FFT Algorithms
- Repeat same process , Divide N/2-point DFTs into
- Two N/4-point DFTs
- Combine outputs
N8
17
189.3 decimation-in-time FFT Algorithms
- After two steps of decimation in time
- Repeat until were left with two-point DFTs
18
199.3 decimation-in-time FFT Algorithms
- flow graph for 8-point decimation in time
- Complexity
- Nlog2N complex multiplications and additions
19
20Butterfly Computation
- Flow graph constitutes of butterflies
- We can implement each butterfly with one
multiplication
- Final complexity for decimation-in-time FFT
- (N/2)log2N complex multiplications and additions
20
219.3 decimation-in-time FFT Algorithms
- Final flow graph for 8-point decimation in time
- Complexity
- (Nlog2N)/2 complex multiplications and Nlog2N
additions
21
229.3.1 In-Place Computation????
- Decimation-in-time flow graphs require two sets
of registers - Input and output for each stage
22
239.3.1 In-Place Computation????
- Note the arrangement of the input indices
- Bit reversed indexing(????)
23
24cause of bit-reversed order
binary coding for position 000 001 010 011 100
101 110 111
Figure 9.13
259.3.2 Alternative forms
- Note the arrangement of the input indices
- Bit reversed indexing(????)
25
269.3.2 Alternative forms
strongpointin-place computations shortcomingnon-
sequential access of data
Figure 9.14
27Figure 9.15
shortcomingnot in-place computation
non-sequential access of data
28Figure 9.16
shortcomingnot in-place computation
strongpoint sequential access of data
299.3 decimation-in-time FFT Algorithms
- Substitute variables n2r for n even and n2r1
for odd
Review
- Gk and Hk are the N/2-point DFTs of each
subsequence
29
309.3.1 In-Place Computation????
- Bit reversed indexing(????)
30
319.3.2 Alternative forms
strongpointin-place computations shortcomingnon-
sequential access of data
Figure 9.14
329.4 Decimation-In-Frequency FFT Algorithm
- Split the DFT equation into even and odd
frequency indexes
32
339.4 Decimation-In-Frequency FFT Algorithm
33
34- decimation-in-frequency decomposition of an
N-point DFT to N/2-point DFT
34
35- decimation-in-frequency decomposition of an
8-point DFT to four 2-point DFT
35
3636
37(No Transcript)
38(No Transcript)
39(No Transcript)
40(No Transcript)
41- Final flow graph for 8-point DFT decimation in
frequency
41
429.4.1 In-Place Computation????
DIF FFT
DIT FFT
42
439.4.1 In-Place Computation????
DIF FFT
DIT FFT
43
449.4.2 Alternative forms
- decimation-in-frequecy Butterfly Computation
- decimation-in-time Butterfly Computation
44
45The DIF FFT is the transpose of the DIT FFT
DIF FFT
DIT FFT
45
469.4.2 Alternative forms
DIF FFT
DIT FFT
479.4.2 Alternative forms
DIF FFT
DIT FFT
48Figure 9.24 erratum
499.4.2 Alternative forms
DIF FFT
DIT FFT
50Chapter 9 HW
50
???
???
? ?