Download presentation
Presentation is loading. Please wait.
1
Fast Fourier Transforms Dr. Vinu Thomas
2
Discrete Fourier Transform
The N point 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 Complexity in terms of real operations 4N2 real multiplications N(4N-2) real additions Most fast methods are based on symmetry properties Conjugate symmetry Periodicity in n and k
3
FFT Algorithms, A History
All such algorithms exploit the conjugate symmetry and periodicity of the discrete complex exponential Origins traced back to Gauss (1805). Runge (1905), Danielson and Lanczos (1942) described algorithms where computation was proportional to However this was not considered of great importance for want of computing devices capable of computing for large values of N. The application of such algorithms were overlooked till Cooley and Tukey (1965) proposed fast algorithms to compute DFT for composite N.
4
FFT Algorithms, A History
Fundamental principle of such algorithms: decomposing computation of N point DFT into a computation of successively smaller DFTs. We will discuss the DIT-FFT, DIF-FFT and the Cooley-Tukey algorithm for composite N. In DIT-FFFT, the time sequence x[n] is progressively decomposed into successively smaller sequences. IN DIF-FFT, the frequency domain sequence X[k] is progressively decomposed into smaller sub-sequences.
5
Decimation In Time FFT
6
Makes use of both symmetry and periodicity
Consider special case of N an integer power of 2 Separate x[n] into two sequence of length N/2 Even indexed samples in the first sequence Odd indexed samples in the other sequence Substitute variables n=2r for n even and n=2r+1 for n odd where G[k] and H[k] are the N/2-point DFTs of each subsequence How to find Observe that the periodicity of G[k] and H[k] are N/2
7
Decimation In Time 8-point DFT example using decimation-in-time
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/2+N complex multiplications N2/2+N complex additions - Even for N>2, this is less than N2 More efficient than direct DFT
8
Now similarly breaking the N/2 point sequences into N/4 point even and odd sequences, and re-labelling x[2r]=g[r] and x[2r+1]=h[r], For the 8 point example
9
Decimation In Time 8-point DFT example using decimation-in-time
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/2+N complex multiplications N2/2+N complex additions More efficient than direct DFT Repeat same process Divide N/2-point DFTs into Two N/4-point DFTs Combine outputs
10
Decimation In Time Cont’d
Combining outputs after two steps of decimation in time Repeat until we’re left with two-point DFT’s
11
Decimation-In-Time FFT Algorithm
Final flow graph for 8-point decimation in time Complexity: N stages, log2N complex multiplications and additions per stage Thus total complexity is N log2N complex multiplications and additions
12
Butterfly Computation
Flow graph constitutes of butterflies We can implement each butterfly with one multiplication
13
Final complexity for decimation-in-time FFT
Final DIT structure with input bit-reversed, output natural Final complexity for decimation-in-time FFT (N/2)log2N complex multiplications and Nlog2N additions
14
Note the arrangement of the input indices
In-Place Computation Decimation-in-time flow graphs require only one set of N storage registers. Input and output for each stage Note the arrangement of the input indices Bit reversed indexing
15
DIT-FFT: Bit Reversal
16
Rearrangements of DIT-FFT Flow Graph
DIT structure, input normal ordered, output bit reversed order
17
DIT structure with both input and output natural
18
DIT structure with same structure for each stage
19
The last two topologies are now rarely used.
IN place computation is not possible with these structures.
20
Decimation-In-Frequency FFT Algorithm
The DFT equation Split the DFT equation into even and odd frequency indexes Substitute variables to get
21
Decimation-In-Frequency FFT Algorithm
Similarly for odd-numbered frequencies Substitute variables to get
22
Decimation-In-Frequency FFT Algorithm
First equation is the N/2 point DFT of the N/2 point sequence obtained by adding the first part of x[n] to its second part. Second equation is the N/2 point DFT of the N/2 point sequence obtained by subtracting the second part of x[n] from the first part and then multiplying this sequence by WNn
23
DIF-FFT: Stage 1, N=8
24
DIF FFT: Stage 2, N=8
25
Decimation-In-Frequency FFT Algorithm
Final flow graph for 8-point decimation in frequency
26
DIF-FFT : IN place Computations and Bit reversal
Successive vertical nodes in the signal flow graph maybe interpreted as storage registers . In place computation is possible, attributed to the bit reversal in the output sequence.
27
The DIF FFT is the transpose of the DIT FFT
To obtain flowgraph transposes: Reverse direction of flowgraph arrows Interchange input(s) and output(s) DIT butterfly: DIF butterfly:
28
The DIF FFT is the transpose of the DIT FFT
Comparing DIT and DIF structures: DIT FFT structure: DIF FFT structure: Alternate forms for DIF FFTs are similar to those of DIT FFTs
29
Alternate DIF FFT structures
DIF structure with input natural, output bit-reversed
30
Alternate DIF FFT structures
DIF structure with input bit-reversed, output natural
31
Alternate DIF FFT structures
DIF structure with both input and output natural
32
Alternate DIF FFT structures
DIF structure with same structure for each stage
33
Using FFTs for inverse DFTs
We’ve always been talking about forward DFTs in our discussion about FFTs …. what about the inverse FFT? One way to modify FFT algorithm for the inverse DFT computation is: Replace by wherever it appears Multiply final output by This method has the disadvantage that it requires modifying the internal code in the FFT subroutine
34
A better way to modify FFT code for IDFT
Taking the complex conjugate of both sides of the IDFT equation: This suggests that we can modify the FFT algorithm for the inverse DFT computation by the following: Complex conjugate the input DFT coefficients Compute the forward FFT Complex conjugate the output of the FFT and multiply by This method has the advantage that the internal FFT code is undisturbed; it is widely used.
35
A better way to modify FFT code for IDFT
Taking the complex conjugate of both sides of the IDFT equation: This suggests that we can modify the FFT algorithm for the inverse DFT computation by the following: Complex conjugate the input DFT coefficients Compute the forward FFT Complex conjugate the output of the FFT and multiply by This method has the advantage that the internal FFT code is undisturbed; it is widely used.
36
APPLICATIONS
37
Efficient Computation of DFT
DFT algorithm is designed to perform complex additions and multiplications of inputs, i.e., it can accept complex valued inputs. Real world signals are real valued. Therefore the full computational power of the FFT structure will be unused if only the registers for the real values of the inputs are used and the registers for the imaginary values of the inputs are not used. It is possible to use the registers for the imaginary values of the inputs also, to compute A) DFT of two N point real valued sequences using one N point FFT processor in one pass of the algorithm (example: Computing spectrum of Stereophonic Sound: Left and Right Channels ) B) DFT of a 2N point real valued sequence using one N point FFT processor in one pass of the algorithm. Thus in hardware implementation, there is efficient use of the chip area.
38
Efficient Computation of DFT of two Real N Point sequences
39
Efficient Computation of DFT of two Real N Point sequences
Thus by performing a single DFT of the complex valued sequence x[n], we have obtained the DFT of the real valued sequences x1[n] and x2[n], with the help of only a few additional computations required for the last step, i.e., 2N complex additions more.
40
Efficient Computation of DFT of a Real 2N Point sequence
41
Efficient Computation of DFT of a Real 2N Point sequence
To Compute the 2N point DFT of the sequence g[n] from the DFTs of its even part and odd part, proceed as in the first stage of the DIT FFT. The 2N point DFT of the sequence g[n] is computed as in the next slide,
42
Efficient Computation of DFT of a Real 2N Point sequence
43
Efficient Computation of DFT of a Real 2N Point sequence
Thus additional computations required is 2N complex additions to compute X1[k] and X2[k], and 2N Complex additions + 2N Complex multiplications for computing G[k] from X1[k] and X2[k].
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.