Presentation is loading. Please wait.

Presentation is loading. Please wait.

Fast Fourier Transforms Dr. Vinu Thomas

Similar presentations


Presentation on theme: "Fast Fourier Transforms Dr. Vinu Thomas"— Presentation transcript:

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].


Download ppt "Fast Fourier Transforms Dr. Vinu Thomas"

Similar presentations


Ads by Google