Fast Fourier Transforms Dr. Vinu Thomas

Slides:



Advertisements
Similar presentations
Chapter 19 Fast Fourier Transform (FFT) (Theory and Implementation)
Advertisements

DFT & FFT Computation.
David Hansen and James Michelussi
Digital Kommunikationselektronik TNE027 Lecture 5 1 Fourier Transforms Discrete Fourier Transform (DFT) Algorithms Fast Fourier Transform (FFT) Algorithms.
DFT and FFT FFT is an algorithm to convert a time domain signal to DFT efficiently. FFT is not unique. Many algorithms are available. Each algorithm has.
LECTURE Copyright  1998, Texas Instruments Incorporated All Rights Reserved Use of Frequency Domain Telecommunication Channel |A| f fcfc Frequency.
Chapter 8: The Discrete Fourier Transform
Lecture #17 INTRODUCTION TO THE FAST FOURIER TRANSFORM ALGORITHM Department of Electrical and Computer Engineering Carnegie Mellon University Pittsburgh,
Introduction to Fast Fourier Transform (FFT) Algorithms R.C. Maher ECEN4002/5002 DSP Laboratory Spring 2003.
Image Enhancement in the Frequency Domain Part I Image Enhancement in the Frequency Domain Part I Dr. Samir H. Abdul-Jauwad Electrical Engineering Department.
Some Properties of the 2-D Fourier Transform Translation Distributivity and Scaling Rotation Periodicity and Conjugate Symmetry Separability Convolution.
Chapter 12 Fourier Transforms of Discrete Signals.
Lecture #18 FAST FOURIER TRANSFORM INVERSES AND ALTERNATE IMPLEMENTATIONS Department of Electrical and Computer Engineering Carnegie Mellon University.
Chapter 19 Fast Fourier Transform (FFT) (Theory and Implementation)
Unit 7 Fourier, DFT, and FFT 1. Time and Frequency Representation The most common representation of signals and waveforms is in the time domain Most signal.
Discrete Time Periodic Signals A discrete time signal x[n] is periodic with period N if and only if for all n. Definition: Meaning: a periodic signal keeps.
Fast Fourier Transforms
Integral Transform Dongsup Kim Department of Biosystems, KAIST Fall, 2004.
Discrete-Time and System (A Review)
1 Chapter 8 The Discrete Fourier Transform 2 Introduction  In Chapters 2 and 3 we discussed the representation of sequences and LTI systems in terms.
1 The Fourier Series for Discrete- Time Signals Suppose that we are given a periodic sequence with period N. The Fourier series representation for x[n]
Digital Signal Processing – Chapter 10
FFT USING OPEN-MP Done by: HUSSEIN SALIM QASIM & Tiba Zaki Abdulhameed
Hossein Sameti Department of Computer Engineering Sharif University of Technology.
Digital Signal Processing Chapter 3 Discrete transforms.
Fourier Analysis of Discrete Time Signals
ACCESS IC LAB Graduate Institute of Electronics Engineering, NTU Under-Graduate Project Case Study: Single-path Delay Feedback FFT Speaker: Yu-Min.
Chapter 5 Finite-Length Discrete Transform
Speaker: Darcy Tsai Advisor: Prof. An-Yeu Wu Date: 2013/10/31
Professor A G Constantinides 1 Discrete Fourier Transforms Consider finite duration signal Its z-tranform is Evaluate at points on z-plane as We can evaluate.
Fast Fourier Transforms. 2 Discrete Fourier Transform The DFT pair was given as Baseline for computational complexity: –Each DFT coefficient requires.
The Discrete Fourier Transform
EE345S Real-Time Digital Signal Processing Lab Fall 2006 Lecture 17 Fast Fourier Transform Prof. Brian L. Evans Dept. of Electrical and Computer Engineering.
بسم الله الرحمن الرحيم Digital Signal Processing Lecture 14 FFT-Radix-2 Decimation in Frequency And Radix -4 Algorithm University of Khartoum Department.
Chapter 9. Computation of Discrete Fourier Transform 9.1 Introduction 9.2 Decimation-in-Time Factorization 9.3 Decimation-in-Frequency Factorization 9.4.
Discrete Fourier Transform
1 Chapter 8 The Discrete Fourier Transform (cont.)
Chapter 4 Discrete-Time Signals and transform
The content of lecture This lecture will cover: Fourier Transform
DIGITAL SIGNAL PROCESSING ELECTRONICS
CEN352 Dr. Nassim Ammour King Saud University
Polynomial + Fast Fourier Transform
Chapter 9 Computation of the Discrete Fourier Transform
Fast Fourier Transform
{ Storage, Scaling, Summation }
Fast Fourier Transform (FFT) (Section 4.11)
Real-time double buffer For hard real-time
Discrete Cosine Transform (DCT)
Lecture #17 INTRODUCTION TO THE FAST FOURIER TRANSFORM ALGORITHM
Real-time 1-input 1-output DSP systems
4.1 DFT In practice the Fourier components of data are obtained by digital computation rather than by analog processing. The analog values have to be.
Chapter 8 The Discrete Fourier Transform
Fast Fourier Transformation (FFT)
Lecture 18 DFS: Discrete Fourier Series, and Windowing
Chapter 9 Computation of the Discrete Fourier Transform
LECTURE 18: FAST FOURIER TRANSFORM
Chapter 19 Fast Fourier Transform
The Report of Monographic Study
Speaker: Yumin Adviser: Prof. An-Yeu Wu Date: 2013/10/24
The Cooley-Tukey decimation-in-time algorithm
Lecture #18 FAST FOURIER TRANSFORM ALTERNATE IMPLEMENTATIONS
Fast Fourier Transform (FFT) Algorithms
Speaker: Chris Chen Advisor: Prof. An-Yeu Wu Date: 2014/10/28
Lec.6:Discrete Fourier Transform and Signal Spectrum
Lecture #17 INTRODUCTION TO THE FAST FOURIER TRANSFORM ALGORITHM
Fast Fourier Transform
LECTURE 18: FAST FOURIER TRANSFORM
Fourier Transforms of Discrete Signals By Dr. Varsha Shah
Electrical Communications Systems ECE
Presentation transcript:

Fast Fourier Transforms Dr. Vinu Thomas

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

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.

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.

Decimation In Time FFT

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

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

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

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

Decimation In Time Cont’d Combining outputs after two steps of decimation in time Repeat until we’re left with two-point DFT’s

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

Butterfly Computation Flow graph constitutes of butterflies We can implement each butterfly with one multiplication

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

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

DIT-FFT: Bit Reversal

Rearrangements of DIT-FFT Flow Graph DIT structure, input normal ordered, output bit reversed order

DIT structure with both input and output natural

DIT structure with same structure for each stage

The last two topologies are now rarely used. IN place computation is not possible with these structures.

Decimation-In-Frequency FFT Algorithm The DFT equation Split the DFT equation into even and odd frequency indexes Substitute variables to get

Decimation-In-Frequency FFT Algorithm Similarly for odd-numbered frequencies Substitute variables to get

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

DIF-FFT: Stage 1, N=8

DIF FFT: Stage 2, N=8

Decimation-In-Frequency FFT Algorithm Final flow graph for 8-point decimation in frequency

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.

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:

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

Alternate DIF FFT structures DIF structure with input natural, output bit-reversed

Alternate DIF FFT structures DIF structure with input bit-reversed, output natural

Alternate DIF FFT structures DIF structure with both input and output natural

Alternate DIF FFT structures DIF structure with same structure for each stage

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

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.

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.

APPLICATIONS

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.

Efficient Computation of DFT of two Real N Point sequences

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.

Efficient Computation of DFT of a Real 2N Point sequence

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,

Efficient Computation of DFT of a Real 2N Point sequence

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