An Iterative FFT We rewrite the loop to calculate nkyk[1] once

Slides:



Advertisements
Similar presentations
DFT & FFT Computation.
Advertisements

College of Information Technology & Design
Parallel Processing (CS 730) Lecture 7: Shared Memory FFTs*
Parallel Fast Fourier Transform Ryan Liu. Introduction The Discrete Fourier Transform could be applied in science and engineering. Examples: ◦ Voice recognition.
Digital Kommunikationselektronik TNE027 Lecture 5 1 Fourier Transforms Discrete Fourier Transform (DFT) Algorithms Fast Fourier Transform (FFT) Algorithms.
COP 3502: Computer Science I (Note Set #21) Page 1 © Mark Llewellyn COP 3502: Computer Science I Spring 2004 – Note Set 21 – Balancing Binary Trees School.
1 Merge Sort Review of Sorting Merge Sort. 2 Sorting Algorithms Selection Sort uses a priority queue P implemented with an unsorted sequence: –Phase 1:
Recursion.
Advanced Topics in Algorithms and Data Structures Lecture pg 1 Recursion.
CPSC 171 Introduction to Computer Science More Efficiency of Algorithms.
Insertion sort, Merge sort COMP171 Fall Sorting I / Slide 2 Insertion sort 1) Initially p = 1 2) Let the first p elements be sorted. 3) Insert the.
Insertion sort, Merge sort COMP171 Fall Sorting I / Slide 2 Insertion sort 1) Initially p = 1 2) Let the first p elements be sorted. 3) Insert the.
UNC Chapel Hill Lin/Manocha/Foskey Optimization Problems In which a set of choices must be made in order to arrive at an optimal (min/max) solution, subject.
Discrete Mathematics Recursion and Sequences
Introduction to Algorithms
1 Section 2.3 Complexity of Algorithms. 2 Computational Complexity Measure of algorithm efficiency in terms of: –Time: how long it takes computer to solve.
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.
Fast Fourier Transform Irina Bobkova. Overview I. Polynomials II. The DFT and FFT III. Efficient implementations IV. Some problems.
Fast Fourier Transforms
February 17, 2015Applied Discrete Mathematics Week 3: Algorithms 1 Double Summations Table 2 in 4 th Edition: Section th Edition: Section th.
Ch. 8 & 9 – Linear Sorting and Order Statistics What do you trade for speed?
HOW TO SOLVE IT? Algorithms. An Algorithm An algorithm is any well-defined (computational) procedure that takes some value, or set of values, as input.
Synchronization (Barriers) Parallel Processing (CS453)
College of Nanoscale Science and Engineering A uniform algebraically-based approach to computational physics and efficient programming James E. Raynolds.
A Computer Science Tapestry 1 Recursion (Tapestry 10.1, 10.3) l Recursion is an indispensable technique in a programming language ä Allows many complex.
Reynolds 2006 Complexity1 Complexity Analysis Algorithm: –A sequence of computations that operates on some set of inputs and produces a result in a finite.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
Chapter 12 Recursion, Complexity, and Searching and Sorting
Hossein Sameti Department of Computer Engineering Sharif University of Technology.
File Organization and Processing Week 13 Divide and Conquer.
Getting Started Introduction to Algorithms Jeff Chastine.
Important Components, Blocks and Methodologies. To remember 1.EXORS 2.Counters and Generalized Counters 3.State Machines (Moore, Mealy, Rabin-Scott) 4.Controllers.
Complexity 20-1 Complexity Andrei Bulatov Parallel Arithmetic.
Prof. Amr Goneid, AUC1 Analysis & Design of Algorithms (CSCE 321) Prof. Amr Goneid Department of Computer Science, AUC Part 8. Greedy Algorithms.
2-3 Tree. Slide 2 Outline  Balanced Search Trees 2-3 Trees Trees.
Binary Search Tree vs. Balanced Search Tree. Why care about advanced implementations? Same entries, different insertion sequence: 10,20,30,40,50,60,70,
By: Lokman Chan Recursive Algorithm Recursion Definition: A function that is define in terms of itself. Goal: Reduce the solution to.
1 Today’s Material Iterative Sorting Algorithms –Sorting - Definitions –Bubble Sort –Selection Sort –Insertion Sort.
Discrete Structures Trees (Ch. 11)
Slides for Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers 2nd ed., by B. Wilkinson & M
Basic Data Structures Stacks. A collection of objects Objects can be inserted into or removed from the collection at one end (top) First-in-last-out.
 In computer programming, a loop is a sequence of instruction s that is continually repeated until a certain condition is reached.  PHP Loops :  In.
Optimization Problems In which a set of choices must be made in order to arrive at an optimal (min/max) solution, subject to some constraints. (There may.
Introduction to Algorithms (2 nd edition) by Cormen, Leiserson, Rivest & Stein Chapter 2: Getting Started.
Data Structures and Algorithms (AT70.02) Comp. Sc. and Inf. Mgmt. Asian Institute of Technology Instructor: Prof. Sumanta Guha Slide Sources: CLRS “Intro.
Fast Fourier Transforms. 2 Discrete Fourier Transform The DFT pair was given as Baseline for computational complexity: –Each DFT coefficient requires.
A Different Solution  alternatively we can use the following algorithm: 1. if n == 0 done, otherwise I. print the string once II. print the string (n.
Chapter 4, Part II Sorting Algorithms. 2 Heap Details A heap is a tree structure where for each subtree the value stored at the root is larger than all.
Today’s Material Sorting: Definitions Basic Sorting Algorithms
1 Vectors, binary search, and sorting. 2 We know about lists O(n) time to get the n-th item. Consecutive cons cell are not necessarily consecutive in.
Discrete Fourier Transform
1 i206: Lecture 17: Exam 2 Prep ; Intro to Regular Expressions Marti Hearst Spring 2012.
CMPT 438 Algorithms.
Dynamic Programming Typically applied to optimization problems
Applied Discrete Mathematics Week 2: Functions and Sequences
Sorting Networks Characteristics The basic unit: a comparator
Data Structures and Algorithms (AT70. 02) Comp. Sc. and Inf. Mgmt
Algorithm Analysis CSE 2011 Winter September 2018.
Announcements Final Exam on August 17th Wednesday at 16:00.
Algorithm An algorithm is a finite set of steps required to solve a problem. An algorithm must have following properties: Input: An algorithm must have.
DFT and FFT By using the complex roots of unity, we can evaluate and interpolate a polynomial in O(n lg n) An example, here are the solutions to 8 =
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.
Karnaugh Maps Topics covered in this presentation: Karnaugh Maps
Fast Fourier Transformation (FFT)
Greedy Algorithms Many optimization problems can be solved more quickly using a greedy approach The basic principle is that local optimal decisions may.
Chapter 9 Computation of the Discrete Fourier Transform
Searching CLRS, Sections 9.1 – 9.3.
Recurrences (Method 4) Alexandra Stefan.
Recurrences.
Algorithm Course Algorithms Lecture 3 Sorting Algorithm-1
Presentation transcript:

An Iterative FFT We rewrite the loop to calculate nkyk[1] once We refer to this calculation as a butterfly operation

Order of Evaluation Recursive call sequence for n = 8 The order 0,4,2,6,1,5,3,7 is a bit reversal Start with 000,001,010,011,100,101,110,111 Reverse the bits of each binary number to obtain 000,100,010,110,001,101,011,111 We show how to calculate this shortly

Developing an Iterative Solution Consider the tree structure on the prior slide We computer the DFT for each pair of items first We take the pairs and compute the DFT for 4 vectors We continue until we reach the final n-element DFT Expressing this strategy as an algorithm We now expand the code in line 3 in more detail

An Intermediate Solution

The Final Solution

The Bit Reversal Assume we have a routine rev(k) that reverses a binary numeral We can reverse n-bits in O( lg n) time, so the overall complexity is O( n lg n) An alternative is to store the reversed bits in a table so bit-reverse-copy runs in O( n ) time

Efficient FFT Complexity The complexity is O( n lg n); to show this we must show the innermost loop (lines 9-12) runs in O( n lg n) time

A Parallel FFT Circuit

Design of the Circuit a bit reversal permutation is at the left there are lg n stages, each stage has n/2 butterflies the butterfly operations at each stage can be done in parallel For each stage s from 1,2,…, lg n, there are n/2s butterfly groups with 2s-1 butterflies per group at stage s we use where m = 2s