x (2) k even h n=(n) + (n+% x(6) X(3), x (5) 4 x(4)- x(), x (2), Decomposition of an N-point DFT into 2 N/2-point DFT's.

Similar documents
THE INVERSE Z-TRANSFORM. 1. Lecture 6-47 minutes. Inv.rse -trondorm. -~~~ -' CkIn-)C ETC. Exam olp. b. i. ipole at g. nao 6.1

ELEG 305: Digital Signal Processing

Parallel Numerical Algorithms

DSP Algorithm Original PowerPoint slides prepared by S. K. Mitra

Lecture 20: Discrete Fourier Transform and FFT

1 Pheasant Lane December 1990 Ithaca, NY (607) AN INTUITIVE APPROACH TO FFT ALGORITHMS

Fundamentals of the DFT (fft) Algorithms

Frequency-domain representation of discrete-time signals

EEC 281 VLSI Digital Signal Processing Notes on the RRI-FFT

E The Fast Fourier Transform

Complement Arithmetic

HST.582J / 6.555J / J Biomedical Signal and Image Processing Spring 2007

Appendix 3: FFT Computer Programs

2.161 Signal Processing: Continuous and Discrete Fall 2008

Fall 2011, EE123 Digital Signal Processing

Scientific Computing: An Introductory Survey

DISCRETE-TIME SIGNAL PROCESSING

Chapter 2: The Fourier Transform

Homework #1 Solution

Let H(z) = P(z)/Q(z) be the system function of a rational form. Let us represent both P(z) and Q(z) as polynomials of z (not z -1 )

Radix-4 Factorizations for the FFT with Ordered Input and Output

Optimizing the Dimensional Method for Performing Multidimensional, Multiprocessor, Out-of-Core FFTs

VII. Discrete Fourier Transform (DFT) Chapter-8. A. Modulo Arithmetic. (n) N is n modulo N, n is an integer variable.

The Fourier transform allows an arbitrary function to be represented in terms of simple sinusoids. The Fourier transform (FT) of a function f(t) is

Introduction to HPC. Lecture 20

6.02 Fall 2012 Lecture #10

/ (2π) X(e jω ) dω. 4. An 8 point sequence is given by x(n) = {2,2,2,2,1,1,1,1}. Compute 8 point DFT of x(n) by

! Circular Convolution. " Linear convolution with circular convolution. ! Discrete Fourier Transform. " Linear convolution through circular

Queens College, CUNY, Department of Computer Science Numerical Methods CSCI 361 / 761 Spring 2018 Instructor: Dr. Sateesh Mane.

VU Signal and Image Processing. Torsten Möller + Hrvoje Bogunović + Raphael Sahann

Chapter 4 Discrete Fourier Transform (DFT) And Signal Spectrum

DHANALAKSHMI COLLEGE OF ENGINEERING DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING EC2314- DIGITAL SIGNAL PROCESSING UNIT I INTRODUCTION PART A

MITOCW MITRES_6-007S11lec09_300k.mp4

CS S Lecture 5 January 29, 2019

DISCRETE FOURIER TRANSFORM

Transform Representation of Signals

1 1.27z z 2. 1 z H 2

Discrete-Time Systems

ELEG 305: Digital Signal Processing

11 The Max-Product Algorithm

1 Introduction to information theory

Analysis and Synthesis of Weighted-Sum Functions

Module 3. Convolution. Aim

Algorithms and Data Structures

ECSE 512 Digital Signal Processing I Fall 2010 FINAL EXAMINATION

Integer multiplication with generalized Fermat primes

6.003: Signals and Systems

MITOCW watch?v=rf5sefhttwo

1. Calculation of the DFT

Logic Design II (17.342) Spring Lecture Outline

Appendix A. Common Mathematical Operations in Chemistry

The Fourier Transform (and more )

INTRODUCTION TO THE DFS AND THE DFT

Chapter 1 Error Analysis

K K.OA.2 1.OA.2 2.OA.1 3.OA.3 4.OA.3 5.NF.2 6.NS.1 7.NS.3 8.EE.8c

DSP Configurations. responded with: thus the system function for this filter would be

Input Decidable Language -- Program Halts on all Input Encoding of Input -- Natural Numbers Encoded in Binary or Decimal, Not Unary

Lecture 17: Designing Sequential Systems Using Flip Flops

EDISP (NWL3) (English) Digital Signal Processing DFT Windowing, FFT. October 19, 2016

DIGITAL SIGNAL PROCESSING

DFT & Fast Fourier Transform PART-A. 7. Calculate the number of multiplications needed in the calculation of DFT and FFT with 64 point sequence.

Course : Algebraic Combinatorics

MITOCW watch?v=jtj3v Rx7E

Physics 505 Homework No. 1 Solutions S1-1

Digital Signal Processing. Midterm 2 Solutions

Section 4.1: Sequences and Series

APPENDIX A. The Fourier integral theorem

3.2 Complex Sinusoids and Frequency Response of LTI Systems

EE123 Digital Signal Processing

Course Name: Digital Signal Processing Course Code: EE 605A Credit: 3

Adders, subtractors comparators, multipliers and other ALU elements

BDD Based Upon Shannon Expansion

ECE250: Algorithms and Data Structures Analyzing and Designing Algorithms

Microcontrollers. Fast - Fourier - Transformation. þ additional file AP EXE available

ELEG 305: Digital Signal Processing

Adders, subtractors comparators, multipliers and other ALU elements

CS 179: GPU Programming. Lecture 9 / Homework 3

Chirp Transform for FFT

Jim Lambers MAT 610 Summer Session Lecture 2 Notes

2.161 Signal Processing: Continuous and Discrete Fall 2008

1 Sequences and Summation

The Discrete Fourier transform

CS 179: GPU Programming. Lecture 9 / Homework 3

hexadecimal-to-decimal conversion

Definition. A signal is a sequence of numbers. sequence is also referred to as being in l 1 (Z), or just in l 1. A sequence {x(n)} satisfying

CSCI Honor seminar in algorithms Homework 2 Solution

The New Largest Known Prime is 2 p 1 With p = Who Cares? Sam Wagstaff Computer Sciences and Mathematics.

SIGNALS AND SYSTEMS. Unit IV. Analysis of DT signals

Digital Signal Processing, Homework 1, Spring 2013, Prof. C.D. Chung

Study Guide Block 2: Ordinary Differential Equations. Unit 4: Linear Differential Equations. Overview

6 Systems Represented by Differential and Difference Equations

Chapter 5 Divide and Conquer

Divide and Conquer. Maximum/minimum. Median finding. CS125 Lecture 4 Fall 2016

Systems I: Computer Organization and Architecture

Module 1: Analyzing the Efficiency of Algorithms

Prentice Hall Mathematics Course Correlated to Kansas Mathematics Content Standards, Knowledge Base Indicators (Grade 7)

LECTURE 18: Inequalities, convergence, and the Weak Law of Large Numbers. Inequalities

Graphing Radicals Business 7


arxiv: v1 [cs.na] 8 Feb 2016

Transcription:

COMPUTATION OF DISCRETE FOURIER TRANSFORM - PART 2 1. Lecture 19-49 minutes k even n.o h n=(n) + (n+% x (2), x (2) x(4)- x(6) Decomposition of an N-point DFT into 2 N/2-point DFT's. X(3), x (5) 4 x(), C. 2+N MADS 19.1

FFT flow-graph for decimation-in-time algorithm. Storage Register o 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 X(0) X(4) X(2) X(6) X(1) X(5) X(3) X(7) Data Index 000 100 010 110 001 101 011 111 Relation between data index and data storage register. x(n) = x (-.- 2 2 n 2 +2n,+2 0 no) no n n2 Sorting of data implied by the development of the decimation-in-time algorithm. 19.2

X (0) X (4) Rearrangement of flowgraph d. with data in normal order and output in bit-reversed order. X(2) X (6) X (1) X (5) X (3) OPPENHEIM 9 SCHAFER 6-12 X (7) Rearrangement of flowgraph d. with both input and output in normal order. OPPENHEIM & SCHAFER 6-13 x()< ( x(4) Rearrangement of flowgraph d having the same geometry for each stage. x(2) < x(6) < x(1) x(5),< x(3) x(7) OPPENHEIM & SCHAFER 6-14 19.3

X (0) X(2) Computation of even and odd-numbered DFT values. X (4) X (6) X(1) X (3) X (5) X (7) x(o) x(2) x(3) x(4) x(5) x(6) IX(0) XM4 X(2) X(6) X(1) X(5) X(3) Decomposition of the N/2-point DFT's of flow-graph j. x(7) -1-1 X(7) X,- 1 (p) X,(p) Flow-graph for twopoint DFT. X,(q) 19.4

Flow-graph of complete decimationin-frequency decomposition of an eightpoint DFT computation. OPPENHEIM & SCHAFER 6-18 -1-1 -1 X.+(P) Flow-graph of a typical butterfly computation required in decimation-infrequency FFT algorithm. Xm(q) Flow-graph of a typical butterfly computation required in decimation-intime FFT algorithm. 19.5

2. Comments In this lecture we continue the discussion which was begun last time, in which we had developed a flow chart for efficient computation of the DFT. Here we discuss the implication of that flow chart for "in-place" computation if the input data is stored in a "bit reversed" order. This bit-reversed order arises as a natural consequence of the way in which that flow-graph was derived, i.e. by dividing the input into its even and odd numbered points, then dividing each of those in a similar manner, etc. By rearranging the flow-graph it is possible to generate a number of other algorithms. For example, the input ordering can be rearranged so that bit reversal is not required. However, the advantage of in-place computation is lost. Another rearrangement, commonly referred to as the Singleton algorithm results in a flow-graph structure which is identical from stage to stage. This form is useful when the data is stored in sequential memory such as shift registers or disk rather than random access memory. The above algorithms are collectively referred to as "decimation-intime" algorithms because they were based on successive subdivisions of the input sequence. A companion set of algorithms referred to as "decimation-in- frequency " are based on successive subdivisions of the output. We conclude this lecture by introducing this class of algorithms, obtaining in particular, the basic flow-graph representing this algorithm. In the next lecture we consider a number of rearrangements of this flow-graph. 3. Reading Text: Section 9.3.1 (page 592) and 9.3.2. Also section 9.4 up to, but not including section 9.4.1. 4. Problems Problem 19.1 Consider a 16-point sequence x(o), x(l),..., x(15). in bit-reversed order. List the sequence Problem 19.2 (a) Draw the flow-graph for a four-point decimation-in-time FFT algorithm utilizing the butterflies of Figure 9.9 of the text and with the input in bit-reversed order, the output in normal order, and 19.6

representing in-place computation. (b) Rearrange the flow graph of part (a) so that it still corresponds to in-place computation but with the input in normal-order and the output in bit-reversed order. Problem 19.3 Consider the FFT algorithm for N a power of 2, implemented in the form characterized by Figure 9.20 (page 602) in the text. We are assuming that N is an arbitrary power of 2, not that N=8. In indexing through the data in an array, we shall assume that points in an array are stored in consecutive complex (double) registers numbered 0 through N - 1. The arrays are numbered 0 through log 2 N. The array holding the initial data is the zeroth array. The output of the first stage of butterflies is the first array, etc. All of the following questions relate to the computation th of the m- array where 1,< m < log 2 N. The answer should be in by generalizing the results for N = 8. terms of m. All of the questions can be answered (a) How many butterflies are to be computed? (b) What are the powers of WN involved in computing the m- array from the (m - 1)st array? (c) What is the separation between the addresses of the two complex input points to a butterfly? (d) What is the separation between the addresses of the first points of butterflies utilizing the same coefficients? Note that the butterfly computation for this algorithm is of the form of Fig. 9.21 in the text, i.e. the coefficient multiplication is applied at the output of the butterfly. Problem 19.4 * When implementing a decimation-in-time FFT algorithm, the basic butterfly computation is as shown in the flow graph of Figure P19.4-1 Xm + P) = X (p) + Wr X (q) m 1m N m Xm+ (q) = X (p) -W X (q) m+1m N m In using fixed-point arithmetic in implementing the computations it is commonly assumed that all numbers are scaled to be less than unity. Thus we must be concerned with overflow in the butterfly computations. (a) Show that if we require 19.7

IX(P)I< and m then overflow cannot occur in the butterfly computation; i.e., Re [X m+(p)] < 1, Im [X (p)] < 1, Re [X (q)]< 1, and Im [Xm+ 1 (q)] < 1 X m(p) XM 1 ( X m(q) - Xm+ 1 (q) Figure P19. 4-1 (b) In practice, it is easier and more convenient to require Re[Xm(p)I,< 2Re[Xm ImX 2 Im[Xm(q I m~lj 2 Are these conditions sufficient to ensure that overflow cannot occur in the butterfly computation? Justify your answer. Problem 19.5 * The FORTRAN program shown below implements the decimation-in-time algorithm of Figure 9.10 of the text. In the subroutine FFT(X, M), X is a complex array of dimension N that contains initially the input sequence x(n) and finally contains the transform X(k). The quantity M is an integer, M = log 2 N. (a) From a cursory inspection of the program indicate which lines of code are concerned with (1) bit reversal, (2) recursive computation of the complex exponential multipliers, and (3) the basic butterfly computation. (b) Three errors have been inserted into the program as it is given here. Find these errors and make appropriate corrections to the FORTRAN code. 19.8

SUBROUTINE FFT(X,M) 0001 COMPLEX X(1024), U,W,T 0002 N = 2**M 0003 NV2 = N/2 0004 NMl = N - 1 0005 J = 1 0006 DO 7 I = 1,NM1 0007 T = X(J) 0008 X(J) = X(I) 0009 X(I) = T 0010 5 K = NV2 0011 6 IF(K.GE.J) GO TO 7 0012 J = J- K 0013 K = K/2 0014 GO TO 6 0015 7 J = J + K 0016 PI = 3.14159265358979 0017 DO 20 L = 1,M 0018 LE = 2**L 0019 LEl = LE/2 0020 U = (1.0,0.0) 0021 W = CMPLX(COS(PI/FLOAT(LEl)), SIN(PI/FLOAT(LEl))) 0022 DO 20 J = 1, LEl 0023 DO 10 I = J,N,LE 0024 IP = I + LE 0025 T = X(IP)*U 0026 X(IP) = X(I) - T 0027 10 X(I) = X(I) + T 0028 20 U = U*W 0029 RETURN 0030 END 0031 19.9

MIT OpenCourseWare http://ocw.mit.edu Resource: Digital Signal Processing Prof. Alan V. Oppenheim The following may not correspond to a particular course on MIT OpenCourseWare, but has been provided by the author as an individual learning resource. For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.