a brief introduction to the fft · 2021. 4. 22. · c k.m. chugg - april 1, 2021{ a brief...

7
A Brief Introduction to the FFT Keith M. Chugg April 1, 2021 The Fast Fourier Transform (FFT) is an algorithm for computing the Discrete Fourier Transform (DFT) more efficiently than directly using the DFT definition. The FFT is one of the most widely used algorithms in (electrical) engineering. It is widely implemented in software packages such as Matlab and Python’s Numpy. Furthermore, there are many digital circuit implementations of the FFT used in a wide array of applications spanning imaging systems to WiFi modems. 1 Background and Definitions The DFT is an expansion of a signal x[n], defined on Z N = {0, 1,...N - 1}, in terms of the orthogonal basis signals e k [n]= 1 N e j 2π k N n k ∈Z N ,n ∈Z N (1) where the N frequencies ν k = k/N for k ∈Z N yield complex exponentials with period N . There are various forms for the DFT, depending on the convention for scaling the complex exponentials in (1)– i.e., the factor of 1/N is most common in the engineering literature and software packages. If the factor of 1/N is replaced by 1, the DFT is often referred to as the Discrete Time Fourier Series [1]. If the factor of 1/N is replaced by 1/ N , the transform is sometimes called the Normalized DFT – in this case the basis is orthonormal – and is sometimes used in the math literature. The basic results herein apply with a scaling factor regardless of these conventions. For the scaling convention in (1), the DFT is X [k]= N -1 X n=0 x[n]e -j 2π k N n = N -1 X n=0 x[n]W kn N k ∈Z N (2a) W N = e -j 2π N (2b) where the W N notation is widely adopted in the FFT literature and W = W N will be adopted when the context is clear. It is clear from (2a) that the DFT can be viewed as a matrix-vector multiplication. Specifically, the matrix F N = W 0 W 0 W 0 ··· W 0 W 0 W 0 W 1 W 2 ··· W N -2 W N -1 W 0 W 2 W 4 ··· W 2(N -2) W 2(N -1) . . . . . . . . . W 0 W N -2 W 2(N -2) ··· W (N -2)(N -2) W (N -2)(N -1) W 0 W N -1 W 2(N -1) ··· W (N -1)(N -2) W (N -1)(N -1) (3) 1

Upload: others

Post on 16-May-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Brief Introduction to the FFT · 2021. 4. 22. · c K.M. Chugg - April 1, 2021{ A Brief Introduction to the FFT 4 fP igare (4 4) permutation matrices and fD igare (4 4) matrices

A Brief Introduction to the FFT

Keith M. Chugg

April 1, 2021

The Fast Fourier Transform (FFT) is an algorithm for computing the Discrete Fourier Transform(DFT) more efficiently than directly using the DFT definition. The FFT is one of the most widelyused algorithms in (electrical) engineering. It is widely implemented in software packages such asMatlab and Python’s Numpy. Furthermore, there are many digital circuit implementations of theFFT used in a wide array of applications spanning imaging systems to WiFi modems.

1 Background and Definitions

The DFT is an expansion of a signal x[n], defined on ZN = {0, 1, . . . N − 1}, in terms of theorthogonal basis signals

ek[n] =1

Nej2π

kNn k ∈ ZN , n ∈ ZN (1)

where the N frequencies νk = k/N for k ∈ ZN yield complex exponentials with period N . Thereare various forms for the DFT, depending on the convention for scaling the complex exponentials in(1) – i.e., the factor of 1/N is most common in the engineering literature and software packages. Ifthe factor of 1/N is replaced by 1, the DFT is often referred to as the Discrete Time Fourier Series[1]. If the factor of 1/N is replaced by 1/

√N , the transform is sometimes called the Normalized

DFT – in this case the basis is orthonormal – and is sometimes used in the math literature. Thebasic results herein apply with a scaling factor regardless of these conventions.

For the scaling convention in (1), the DFT is

X[k] =N−1∑n=0

x[n]e−j2πkNn =

N−1∑n=0

x[n]W knN k ∈ ZN (2a)

WN = e−j2πN (2b)

where the WN notation is widely adopted in the FFT literature and W = WN will be adoptedwhen the context is clear. It is clear from (2a) that the DFT can be viewed as a matrix-vectormultiplication. Specifically, the matrix

FN =

W 0 W 0 W 0 · · · W 0 W 0

W 0 W 1 W 2 · · · WN−2 WN−1

W 0 W 2 W 4 · · · W 2(N−2) W 2(N−1)

.... . .

...

W 0 WN−2 W 2(N−2) · · · W (N−2)(N−2) W (N−2)(N−1)

W 0 WN−1 W 2(N−1) · · · W (N−1)(N−2) W (N−1)(N−1)

(3)

1

Page 2: A Brief Introduction to the FFT · 2021. 4. 22. · c K.M. Chugg - April 1, 2021{ A Brief Introduction to the FFT 4 fP igare (4 4) permutation matrices and fD igare (4 4) matrices

c©K.M. Chugg - April 1, 2021– A Brief Introduction to the FFT 2

so that the element of FN at row k and column n is

[FN ]k,n = W knN = W

(knmodN)N (4)

where the last equality follows from the definition of WN .With this definition, we have that (2a) can be expressed in matrix-vector form as

X(N×1)

= FN(N×N)

x(N×1)

(5)

where X is the vector of DFT coefficients {X[k]} and x is the vector of time samples {x[n]}, orderedfrom 0 down to N − 1.

An important observation is that performing the DFT computation in (2a), or equivalently thematrix-vector multiplication in (5), is equivalent to computing N dot products each of size N . Itfollows that the number of multiply accumulate (MAC) operations scales as N2.

2 Fast Fourier Transform

In this section we will outline a method for computing the DFT, the FFT, with a number of MACoperations that scale as N log2N . There are many variants of the FFT, so our goal is just to conveythe main idea and provide a simple example.

3 An FFT Example for N = 4

The basic idea of the FFT is to compute the size N DFT in terms of two size N/2 DFTs and thenapply this concept repeatedly until one is computing only N = 2 DFTs directly. Thus, the 2-pointDFT is important to consider first. For N = 2, we have W2 = e−jπ = −1 and

X[0] = x[0] + x[1] (6)

X[1] = x[0]− x[1] (7)

F2 =

[+1 +1+1 −1

](8)

Note that the 2-point DFT comprises only a “DC term (ν0 = 0)” (the sum of all x[n]) and thehighest frequency term (ν1 = 0.5), which is the difference between the two time samples.

Let us now consider an N = 4 DFT and see if we can compute this using 2-point DFTs. ForN = 4 we have

W4 = e−j2π4 = (−j) (9)

It follows that the DFT matrix is

F4 =

1 1 1 11 −j (−j)2 (−j)31 (−j)2 (−j)4 (−j)61 (−j)3 (−j)6 (−j)9

=

1 1 1 11 −j −1 +j1 −1 1 −11 +j −1 −j

(10)

Page 3: A Brief Introduction to the FFT · 2021. 4. 22. · c K.M. Chugg - April 1, 2021{ A Brief Introduction to the FFT 4 fP igare (4 4) permutation matrices and fD igare (4 4) matrices

c©K.M. Chugg - April 1, 2021– A Brief Introduction to the FFT 3

<latexit sha1_base64="g5PzLmFy+vOmzyu2NpQ32mafKcg=">AAACDHicbVC7TsMwFL0uUEp5FRhZIioQU5UwAGOlLoxF0IfURpXjOq1VJ45sBxFV/YWu8BVMbIiVf2DlF/gBnLRLWo5k6eic63uPjhdxprRtf6PCxuZWcbu0U97d2z84rBwdt5WIJaEtIriQXQ8ryllIW5ppTruRpDjwOO14k0bqd56oVEyEjzqJqBvgUch8RrBOpeee7Q4qVbtmZ7DWibMk1Xoxenug6Kc5qPz2h4LEAQ014VipnmNH2p1iqRnhdFbux4pGmEzwiE6zhDPr3EhDyxfSvFBbmZqba0icCI6zwCq/AgdKJYFnlgRYj9Wql4r/eb1Y+7fulIVRrGlIFhn8mFtaWGkT1pBJSjRPDMFEMhPeImMsMdGmr9yVSUBmpiVntZN10r6qOdc1+97UdQELlOAUzuASHLiBOtxBE1pAYAxzeIFXNEfv6AN9LkYLaPnnBHJAX3/Yo57v</latexit>

x[0]<latexit sha1_base64="HYnjrud2UfHQht82UlF3HS8+Oak=">AAACDHicbVC7TsMwFL0uUEp5FRhZIioQU5UwAGOlLoxF0IfURpXjOq1VJ45sBxFV/YWu8BVMbIiVf2DlF/gBnLRLWo5k6eic63uPjhdxprRtf6PCxuZWcbu0U97d2z84rBwdt5WIJaEtIriQXQ8ryllIW5ppTruRpDjwOO14k0bqd56oVEyEjzqJqBvgUch8RrBOpeee4w4qVbtmZ7DWibMk1Xoxenug6Kc5qPz2h4LEAQ014VipnmNH2p1iqRnhdFbux4pGmEzwiE6zhDPr3EhDyxfSvFBbmZqba0icCI6zwCq/AgdKJYFnlgRYj9Wql4r/eb1Y+7fulIVRrGlIFhn8mFtaWGkT1pBJSjRPDMFEMhPeImMsMdGmr9yVSUBmpiVntZN10r6qOdc1+97UdQELlOAUzuASHLiBOtxBE1pAYAxzeIFXNEfv6AN9LkYLaPnnBHJAX3/aSZ7w</latexit>

x[1]<latexit sha1_base64="Os52gAb4wAF1DMo/jpYcKvSyx34=">AAACDHicbVC7TsMwFL0pr1JeBUYWiwrEVCUdgLFSF8Yi6ENqo8pxndaqE0e2g4iq/kJX+AomNsTKP7DyC/wATtolLUeydHTO9b1Hx4s4U9q2v63CxubW9k5xt7S3f3B4VD4+aSsRS0JbRHAhux5WlLOQtjTTnHYjSXHgcdrxJo3U7zxRqZgIH3USUTfAo5D5jGCdSs+9mjsoV+yqnQGtE2dJKvXt6O2BWj/NQfm3PxQkDmioCcdK9Rw70u4US80Ip7NSP1Y0wmSCR3SaJZyhCyMNkS+keaFGmZqba0icCI6zwCq/AgdKJYFnlgRYj9Wql4r/eb1Y+7fulIVRrGlIFhn8mCMtUNoEGjJJieaJIZhIZsIjMsYSE236yl2ZBGRmWnJWO1kn7VrVua7a96auS1igCGdwDlfgwA3U4Q6a0AICY5jDC7xac+vd+rA+F6MFa/nnFHKwvv4A2++e8Q==</latexit>

x[2]<latexit sha1_base64="LBUhVRG5NhmPAIPodn/GcUGOc2w=">AAACDHicbVDLSgMxFL3xUWt9VV26CRbFVZlRUJeFblxWtA9oh5JJM21o5kGSEYfSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z32htfWOzsFXcLu3s7u0flA+PWiqMJWVNGopQdlyimOABa2quBetEkhHfFaztjuup335iUvEweNRJxByfDAPucUp0Kj13r5x+uWJVrQx4ldgLUqkVorcHhn4a/fJvbxDS2GeBpoIo1bWtSDsTIjWngk1LvVixiNAxGbJJlnCKz4w0wF4ozQs0ztTcXF2SJBQkC6zyK4ivVOK7ZolP9Egte6n4n9eNtXfrTHgQxZoFdJ7BiwXWIU6bwAMuGdUiMYRQyU14TEdEEqpNX7krY59OTUv2cierpHVZta+r1r2p6xzmKMIJnMIF2HADNbiDBjSBwghm8AKvaIbe0Qf6nI+uocWfY8gBff0B3ZWe8g==</latexit>

x[3]

<latexit sha1_base64="Cx9uuvPz4MUGp5EUIvZEpp83Vm8=">AAACDHicbVDLSsNAFL2pWmt9VV26GSyKq5K4UJeFIrisaB/QhjKZTtqhk0yYmQih9Be61a9w5U7c+g9u/QV/wEnaTVoPDBzOuXPv4XgRZ0rb9rdV2NjcKm6Xdsq7e/sHh5Wj47YSsSS0RQQXsuthRTkLaUszzWk3khQHHqcdb9JI/c4zlYqJ8EknEXUDPAqZzwjWqXTXs91BpWrX7AxonThLUq0Xo7dHav00B5Xf/lCQOKChJhwr1XPsSLtTLDUjnM7K/VjRCJMJHtFplnCGzo00RL6Q5oUaZWpuriFxIjjOAqv8ChwolQSeWRJgPVarXir+5/Vi7d+6UxZGsaYhWWTwY460QGkTaMgkJZonhmAimQmPyBhLTLTpK3dlEpCZaclZ7WSdtK9qznXNfjB1XcACJTiFM7gEB26gDvfQhBYQGMMcXuDVmlvv1of1uRgtWMs/J5CD9fUHhCuevA==</latexit>

E[0]

<latexit sha1_base64="zktJk+im0R+GHFYvPEdfvfswO3s=">AAACDHicbVDLSsNAFL2pWmt9VV26GSyKq5K4UJeFIrisaB/QhjKZTtqhk0yYmQih9Be61a9w5U7c+g9u/QV/wEnaTVoPDBzOuXPv4XgRZ0rb9rdV2NjcKm6Xdsq7e/sHh5Wj47YSsSS0RQQXsuthRTkLaUszzWk3khQHHqcdb9JI/c4zlYqJ8EknEXUDPAqZzwjWqXTXc9xBpWrX7AxonThLUq0Xo7dHav00B5Xf/lCQOKChJhwr1XPsSLtTLDUjnM7K/VjRCJMJHtFplnCGzo00RL6Q5oUaZWpuriFxIjjOAqv8ChwolQSeWRJgPVarXir+5/Vi7d+6UxZGsaYhWWTwY460QGkTaMgkJZonhmAimQmPyBhLTLTpK3dlEpCZaclZ7WSdtK9qznXNfjB1XcACJTiFM7gEB26gDvfQhBYQGMMcXuDVmlvv1of1uRgtWMs/J5CD9fUHhdGevQ==</latexit>

E[1]

<latexit sha1_base64="LEquZ/yn0KNo/odk3NMe+RF08CE=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwAGOlLmwUQR9SG1WO67RWnTiyHaSo6i90ha9gYkOs/AMrv8AP4KRd0nIkS0fnXN97dLyIM6Vt+9sqbGxuFbdLO+Xdvf2Dw8rRcVuJWBLaIoIL2fWwopyFtKWZ5rQbSYoDj9OON2mkfueZSsVE+KSTiLoBHoXMZwTrVLrvOe6gUrVrdga0TpwlqdaL0dsjtX6ag8pvfyhIHNBQE46V6jl2pN0plpoRTmflfqxohMkEj+g0SzhD50YaIl9I80KNMjU315A4ERxngVV+BQ6USgLPLAmwHqtVLxX/83qx9m/dKQujWNOQLDL4MUdaoLQJNGSSEs0TQzCRzIRHZIwlJtr0lbsyCcjMtOSsdrJO2lc157pmP5i6LmCBEpzCGVyCAzdQhztoQgsIjGEOL/Bqza1368P6XIwWrOWfE8jB+voDlmGexw==</latexit>

O[1]

<latexit sha1_base64="jZXETBfHs3QLH7p0qKIKfzqSNCA=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwAGOlLmwUQR9SG1WO67RWnTiyHaSo6i90ha9gYkOs/AMrv8AP4KRd0nIkS0fnXN97dLyIM6Vt+9sqbGxuFbdLO+Xdvf2Dw8rRcVuJWBLaIoIL2fWwopyFtKWZ5rQbSYoDj9OON2mkfueZSsVE+KSTiLoBHoXMZwTrVLrv2e6gUrVrdga0TpwlqdaL0dsjtX6ag8pvfyhIHNBQE46V6jl2pN0plpoRTmflfqxohMkEj+g0SzhD50YaIl9I80KNMjU315A4ERxngVV+BQ6USgLPLAmwHqtVLxX/83qx9m/dKQujWNOQLDL4MUdaoLQJNGSSEs0TQzCRzIRHZIwlJtr0lbsyCcjMtOSsdrJO2lc157pmP5i6LmCBEpzCGVyCAzdQhztoQgsIjGEOL/Bqza1368P6XIwWrOWfE8jB+voDlLuexg==</latexit>

O[0]

<latexit sha1_base64="pQ0JMWxzrrwcp/EOYV2FtxpGVes=">AAACDHicbVC7TsMwFL3mUUp5FRhZLCoQU5UwAGOlLoxF0IfURpXjuq1VJ45sBymq+gtd4SuY2BAr/8DKL/ADOGmXtBzJ0tE51/ceHT8SXBvH+UYbm1vbhZ3ibmlv/+DwqHx80tIyVpQ1qRRSdXyimeAhaxpuBOtEipHAF6ztT+qp335mSnMZPpkkYl5ARiEfckpMKnW6jtcvV5yqkwGvE3dJKrVC9PbI0E+jX/7tDSSNAxYaKojWXdeJjDclynAq2KzUizWLCJ2QEZtmCWf4wkoDPJTKvtDgTM3N1RVJpCBZYJ1fQQKtk8C3SwJixnrVS8X/vG5shnfelIdRbFhIFxmGscBG4rQJPOCKUSMSSwhV3IbHdEwUocb2lbsyCejMtuSudrJOWtdV96bqPNi6LmGBIpzBOVyBC7dQg3toQBMojGEOL/CK5ugdfaDPxegGWv45hRzQ1x+jo57P</latexit>

X[0]<latexit sha1_base64="zHqYTB9JoTAbI0i8iqVwSF5LY3o=">AAACDHicbVC7TsMwFL3mUUp5FRhZLCoQU5UwAGOlLoxF0IfURpXjuq1VJ45sBymq+gtd4SuY2BAr/8DKL/ADOGmXtBzJ0tE51/ceHT8SXBvH+UYbm1vbhZ3ibmlv/+DwqHx80tIyVpQ1qRRSdXyimeAhaxpuBOtEipHAF6ztT+qp335mSnMZPpkkYl5ARiEfckpMKnW6rtcvV5yqkwGvE3dJKrVC9PbI0E+jX/7tDSSNAxYaKojWXdeJjDclynAq2KzUizWLCJ2QEZtmCWf4wkoDPJTKvtDgTM3N1RVJpCBZYJ1fQQKtk8C3SwJixnrVS8X/vG5shnfelIdRbFhIFxmGscBG4rQJPOCKUSMSSwhV3IbHdEwUocb2lbsyCejMtuSudrJOWtdV96bqPNi6LmGBIpzBOVyBC7dQg3toQBMojGEOL/CK5ugdfaDPxegGWv45hRzQ1x+lSZ7Q</latexit>

X[1]<latexit sha1_base64="S/Z9Wi562g+rv/PVFIU04yfbpqM=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5V0AMZKXRiLoA+pjSrHdVqrThzZDlJU9Re6wlcwsSFW/oGVX+AHcNIuaTmSpaNzru89Ol7EmdK2/W0VtrZ3irulvfL+weHRceXktKNELAltE8GF7HlYUc5C2tZMc9qLJMWBx2nXmzZTv/tMpWIifNJJRN0Aj0PmM4J1KvX6dXdYqdo1OwPaJM6KVBvF6O2RWj+tYeV3MBIkDmioCcdK9R070u4MS80Ip/PyIFY0wmSKx3SWJZyjSyONkC+keaFGmZqba0qcCI6zwCq/AgdKJYFnlgRYT9S6l4r/ef1Y+3fujIVRrGlIlhn8mCMtUNoEGjFJieaJIZhIZsIjMsESE236yl2ZBmRuWnLWO9kknXrNuanZD6auK1iiBOdwAdfgwC004B5a0AYCE1jAC7xaC+vd+rA+l6MFa/XnDHKwvv4Apu+e0Q==</latexit>

X[2]<latexit sha1_base64="rtA/HwpqGYOSYzlzZ+IG/oDKkoM=">AAACDHicbVDLSgMxFL2pWmt9VV26CRbFVZlRUJeFblxWtA9oh5JJM21o5kGSEYbSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z36iwsblV3C7tlHf39g8OK0fHbRXGkrIWDUUouy5RTPCAtTTXgnUjyYjvCtZxJ43U7zwzqXgYPOkkYo5PRgH3OCU6lbq9a2dQqVo1KwNeJ/aSVOvF6O2RoZ/moPLbH4Y09lmgqSBK9Wwr0s6USM2pYLNyP1YsInRCRmyaJZzhcyMNsRdK8wKNMzU315AkCQXJAqv8CuIrlfiuWeITPVarXir+5/Vi7d05Ux5EsWYBXWTwYoF1iNMm8JBLRrVIDCFUchMe0zGRhGrTV+7KxKcz05K92sk6aV/V7Jua9WDquoAFSnAKZ3AJNtxCHe6hCS2gMIY5vMArmqN39IE+F6MFtPxzAjmgrz+olZ7S</latexit>

X[3]

<latexit sha1_base64="qK+VWTjQo1ZhtZkv462soMvq+Zg=">AAACEXicbVDLSgMxFM3UV62vqstugkVxVTIu1J2FLnRZwT6kLSWTybShmcmQZIRhmK/oStAPcSeCK7/A73DpxnTazbQeCBzOubn3cJyQM6UR+rYKa+sbm1vF7dLO7t7+QfnwqK1EJAltEcGF7DpYUc4C2tJMc9oNJcW+w2nHmTRmfueJSsVE8KDjkA58PAqYxwjWRnpM+o4Hm+kQDctVVEMZ4CqxF6R683v7XPnsus1h+afvChL5NNCEY6V6Ngr1IMFSM8JpWupHioaYTPCIJlnMFJ4ayYWekOYFGmZqbq4hcSw4zlKr/ArsKxX7jlniYz1Wy95M/M/rRdq7HiQsCCNNAzLP4EUcagFndUCXSUo0jw3BRDITHpIxlphoU1ruysQnqWnJXu5klbQvavZlDd2jav0MzFEEFXACzoENrkAd3IEmaAECfDAFL+DVmlpv1rv1MR8tWIs/xyAH6+sPhkChkw==</latexit>

P0

<latexit sha1_base64="iDW1aXWV/1h3onSYTdMUbtcCvCQ=">AAACEXicbVDLSgMxFM3UV62vqstugkVxVWZcqDsLXeiygn1IW0omk2lDk8mQZIRhmK/oStAPcSeCK7/A73DpxnTazbQeCBzOubn3cNyQUaVt+9sqrK1vbG4Vt0s7u3v7B+XDo7YSkcSkhQUTsusiRRgNSEtTzUg3lARxl5GOO2nM/M4TkYqK4EHHIRlwNAqoTzHSRnpM+q4Pm+nQGZards3OAFeJsyDVm9/b58pn12sOyz99T+CIk0BjhpTqOXaoBwmSmmJG0lI/UiREeIJGJMlipvDUSB70hTQv0DBTc3MNiWLBUJZa5VcgrlTMXbOEIz1Wy95M/M/rRdq/HiQ0CCNNAjzP4EcMagFndUCPSoI1iw1BWFITHuIxkghrU1ruyoTj1LTkLHeyStoXNeeyZt/b1foZmKMIKuAEnAMHXIE6uANN0AIYcDAFL+DVmlpv1rv1MR8tWIs/xyAH6+sPh+WhlA==</latexit>

P1

<latexit sha1_base64="iufr+oXEXw41WPoykX0jicfh/d0=">AAACEXicbVDLSgMxFM34rPVVddlNsCiuykwX6s5CF7qsYB/SlpLJZNrQZDIkGWEY5iu6EvRD3Ingyi/wO1y6MZ12M60HAodzbu49HDdkVGnb/rbW1jc2t7YLO8Xdvf2Dw9LRcVuJSGLSwoIJ2XWRIowGpKWpZqQbSoK4y0jHnTRmfueJSEVF8KDjkAw4GgXUpxhpIz0mfdeHzXRYG5YqdtXOAFeJsyCVm9/b5/Jn12sOSz99T+CIk0BjhpTqOXaoBwmSmmJG0mI/UiREeIJGJMlipvDMSB70hTQv0DBTc3MNiWLBUJZa5VcgrlTMXbOEIz1Wy95M/M/rRdq/HiQ0CCNNAjzP4EcMagFndUCPSoI1iw1BWFITHuIxkghrU1ruyoTj1LTkLHeyStq1qnNZte/tSv0czFEAZXAKLoADrkAd3IEmaAEMOJiCF/BqTa036936mI+uWYs/JyAH6+sPiYqhlQ==</latexit>

P2

<latexit sha1_base64="S8aR9LS+yKZFA63pPPHM6N5RUok=">AAACEXicbVDLSgMxFM34rPVVddlNsCiuSsaFurNQQZcV7EPaUjKZTBuaTIYkIwxDv6IrQT/EnQiu/AK/w6UbZ6bdTOuBwOGcm3sPxwk40wahb2tldW19Y7OwVdze2d3bLx0ctrQMFaFNIrlUHQdryplPm4YZTjuBolg4nLadcT31209UaSb9BxMFtC/w0GceI9gk0mPcczx4M0CTQamCqigDXCb2nFSuf2+fy58dtzEo/fRcSUJBfUM41rpro8D0Y6wMI5xOir1Q0wCTMR7SOIs5gSeJ5EJPquT5BmZqbq6ucCQ5zlLr/AostI6EkywR2Iz0opeK/3nd0HhX/Zj5QWioT2YZvJBDI2FaB3SZosTwKCGYKJaEh2SEFSYmKS13ZSxI2pK92MkyaZ1X7YsqukeV2imYoQDK4BicARtcghq4Aw3QBAQIMAUv4NWaWm/Wu/UxG12x5n+OQA7W1x9x9aGH</latexit>

D0

<latexit sha1_base64="XQbjdbHK+gi9RKuufeWrCRPMIp4=">AAACEXicbVDLSsNAFL3xWeur6rKbwaK4KokLdWehgi4r2Ie0pUwmk3boTBJmJkII/YquBP0QdyK48gv8DpduTNJu0npg4HDOnXsPxw44U9o0v42V1bX1jc3CVnF7Z3dvv3Rw2FJ+KAltEp/7smNjRTnzaFMzzWknkBQLm9O2Pa6nfvuJSsV870FHAe0LPPSYywjWifQY92wX3QysyaBUMatmBrRMrDmpXP/ePpc/O05jUPrpOT4JBfU04ViprmUGuh9jqRnhdFLshYoGmIzxkMZZzAk6SSQHub5MnqdRpubm6hJHPsdZapVfgYVSkbCTJQLrkVr0UvE/rxtq96ofMy8INfXILIMbcqR9lNaBHCYp0TxKCCaSJeERGWGJiU5Ky10ZC5K2ZC12skxa51Xromrem5XaKcxQgDIcwxlYcAk1uIMGNIGAgCm8wKsxNd6Md+NjNrpizP8cQQ7G1x9zm6GI</latexit>

D1

<latexit sha1_base64="fqvp9x2JZpoJbSPFsXipgzJU0bg=">AAACR3icbZDLSgMxFIYz9Vbrreqym2BRXJWMiLopFirqsoK9QFuGTCbThmYuJBmhDPMgrn0WF93qyqdwIYjgxnRaCm09EPj5zsm5/HbImVQIfRiZldW19Y3sZm5re2d3L79/0JBBJAitk4AHomVjSTnzaV0xxWkrFBR7NqdNe1Ad55tPVEgW+I9qGNKuh3s+cxnBSiMrX447tgtvE+sclmGqa4l1NlE3iWXOmDljaMaQlS+iEkoDLgtzKorXv3fPhdeWU7PyXx0nIJFHfUU4lrJtolB1YywUI5wmuU4kaYjJAPdonB6XwGONHOgGQj9fwZTO1VUFHgYcp7fK+RbYk3Lo2bqJh1VfLubG8L9cO1LuVTdmfhgp6pPJDm7EoQrg2EToMEGJ4kMtMBFMLw9JHwtMlLZ6bsrAI4l2yVz0ZFk0zkrmRQk9oGLlBEwiCwrgCJwCE1yCCrgHNVAHBLyAEXgD78bI+DS+jZ9JacaY/jkEc5Ex/gDWRrM3</latexit>

F4 = P2D1P1D0P0

<latexit sha1_base64="wcDFVlBZttLThLwC4znb5e7YtHg=">AAACCnicbVDLSgMxFL2pr1pfVcGNm8GiCGKZUVCXhW66rGIf0JaSSTNtbGYyJBlhKP2DutQPcSdu/Qk/wbU/YDrtZloPBA7n3Nx7OG7ImdK2/Y0yK6tr6xvZzdzW9s7uXn7/oK5EJAmtEcGFbLpYUc4CWtNMc9oMJcW+y2nDHZanfuOZSsVE8KjjkHZ83A+YxwjWRnq4fOrmC3bRTmAtE2dOCiX0cnRdufipdvO/7Z4gkU8DTThWquXYoe6MsNSMcDrOtSNFQ0yGuE9HSb6xdWqknuUJaV6grURNzZUljgXHSVyVXoF9pWLfNUt8rAdq0ZuK/3mtSHt3nRELwkjTgMwyeBG3tLCmPVg9JinRPDYEE8lMeIsMsMREm7ZSV4Y+GZuWnMVOlkn9qujcFO17U9cZzJCFYziBc3DgFkpQgSrUgIAHE3iFNzRB7+gDfc5GM2j+5xBSQF9/cuKdhg==</latexit>�j

Figure 1: An N = 4 FFT is obtained by computing the 4-point DFT using two stages, eachcomputing two, N = 2 point DFTs with permutations between computational stages. Yellowboxes are 2-point DFTs.

where theW knN = W

(knmodN)N identity has been applied. Using this, it is straightforward to compute

the N = 4 DFT as

X[0] = x[0] + x[1] + x[2] + x[3] (11a)

= (x[0] + x[2]) + (x[1] + x[3]) (11b)

= E[0] +O[0] (11c)

X[1] = x[0]− jx[1]− x[2] + jx[3] (11d)

= (x[0]− x[2])− j(x[1]− x[3]) (11e)

= E[1] + (−j)O[1] (11f)

X[2] = x[0]− x[1] + x[2] + x[3] (11g)

= (x[0] + x[2])− (x[1] + x[3]) (11h)

= E[0]−O[0] (11i)

X[3] = x[0] + jx[1]− x[2]− jx[3] (11j)

= (x[0]− x[2]) + j(x[1]− x[3]) (11k)

= E[1]− (−j)O[1] (11l)

where we have introduced “even” and “odd” signals:

e[0] = x[0] e[1] = x[2] (12a)

o[0] = x[1] o[1] = x[3] (12b)

and we have defined E[k] and O[k] as the 2-point DFTs of e[n] and o[n], respectively, as is impliedin (11). This processing, where E[k] and O[k] are computed, then combined to obtain X[k], isshown in Fig. 1. This is a 4-point FFT to compute a 4-point DFT.

3.1 The FFT as a DFT Matrix Factorization (N = 4 Example)

Below each stage of the processing in Fig. 1, a matrix label has been assigned – this denotes theequivalent matrix-vector multiplication for each stage in the processing flow diagram. Specifically,

Page 4: A Brief Introduction to the FFT · 2021. 4. 22. · c K.M. Chugg - April 1, 2021{ A Brief Introduction to the FFT 4 fP igare (4 4) permutation matrices and fD igare (4 4) matrices

c©K.M. Chugg - April 1, 2021– A Brief Introduction to the FFT 4

{Pi} are (4× 4) permutation matrices and {Di} are (4× 4) matrices that are block diagonal with(2× 2) blocks. These matrices can be read off of the digram and imply a factorization of the DFTmatrix F4 as also shown in Fig. 1. Specifically, we have

P0 =

1 0 0 00 0 1 00 1 0 00 0 0 1

(13a)

D0 =

+1 +1 0 0+1 −1 0 0

0 0 +1 +10 0 +1 −1

(13b)

P1 = P0 (13c)

D1 =

+1 +1 0 0+1 −1 0 0

0 0 +1 +10 0 +j −j

(13d)

P2 =

1 0 0 00 0 0 10 1 0 00 0 1 0

(13e)

where the scaling of O[1] by −j has been absorbed into D1. It is straightforward to verify that

F4 = P2D1P1D0P0 (14)

Thus, the FFT can be viewed as factorization of the DFT matrix into a sequence of permutationand block diagonal matrices.

4 Generalizing to N = 2q

To get some insight into how the N = 4 may generalize, consider that the key step was to separatex[n] into the two subsequences e[m] = x[2m] and o[m] = x[2m+ 1] for m ∈ ZM where M = N/2.This approach is known as decimation in time and leads directly to an FFT algorithm for N apower of 2. Specifically, the DFT of x[n] can be computed by combining the N/2-point DFTs for

Page 5: A Brief Introduction to the FFT · 2021. 4. 22. · c K.M. Chugg - April 1, 2021{ A Brief Introduction to the FFT 4 fP igare (4 4) permutation matrices and fD igare (4 4) matrices

c©K.M. Chugg - April 1, 2021– A Brief Introduction to the FFT 5

the even and odd subsequences

X[k] = DFTN {x[n]} =N−1∑n=0

x[n]e−j2πkNn (15)

=M−1∑m=0

x[2m]e−j2πkN(2m) +

M−1∑m=0

x[2m+ 1]e−j2πkN(2m+1) (16)

=

M−1∑m=0

x[2m]e−j2πkMm + e−j2π

kN

M−1∑m=0

x[2m+ 1]e−j2πkMm (17)

= DFTM {e[n]}+W kNDFTM {o[n]} (18)

= E[k] +W kNO[k] (19)

(20)

Note that E[k] and O[k] should be interpreted as periodic in k with period M = N/2 since k ∈ ZN .This means that that the pair (E[k], O[k]) are combined twice with a different “twiddle factor” W k

N

to produce the N -point DFT of x[n]. Specifically, for k ∈ ZMX[k] = E[k] +W k

NO[k] (21a)

X[k +M ] = E[k]−W kNO[k] (21b)

since E[k] and O[k] are periodic with period M and

Wk+N/2N = e−j2π

kN e−jπ = −W k

N . (22)

The two equations in (21) can be viewed as a 2-point DFT of E[k] and W kNO[k]. Thus, the N -

point DFT can be obtained by first computing N/2-point DFTs over the even and odd subsequencesand then combining the results using N/2 size 2 DFTs. In fact, the expression in (11) is this exactrelationship with W4 = −j. This concept is illustrated in Fig. 2 where this is applied to the N = 8case.

Note that if the green boxes in Fig. 2, which are 4-point DFTs, are replaced by the N = 4 FFTdiagram in Fig. 1, we obtain an N = 8 FFT. This is shown in Fig. 3. This comprises 3 computationstages, each having four 2-point DFTs.

When N is a power of 2, this process can be repeated recursively as we have shown for N = 8.For example, if we consider N = 16, we can use (21) to compute this DFT using two 8-point DFTsand a combining stage of eight, 2-point DFTs. Then, we could replace the 8-point DFTs with thethe 8-point FFT in Fig. 3, yielding a 16-point FFT. In this manner, when N is a power of 2, theFFT can be constructed and it consists of log2(N) stages, each comprising N/2 DFT units. Thus,in contrast to the direct computation of the DFT via matrix multiplication, which has complexityscaling as N2, the FFT has complexity that scales as N log2(N). Thus, the important result fromthe FFT is that

Computational Complexity of Direct-DFT Computation

Computational Complexity of FFT Computation∼ N2

N log2(N)=

N

log2(N)

For large values of N , this difference is very significant. For example, for N = 1024, this ratio isabout 100. For N = 216 this ratio is 4096.

Page 6: A Brief Introduction to the FFT · 2021. 4. 22. · c K.M. Chugg - April 1, 2021{ A Brief Introduction to the FFT 4 fP igare (4 4) permutation matrices and fD igare (4 4) matrices

c©K.M. Chugg - April 1, 2021– A Brief Introduction to the FFT 6

<latexit sha1_base64="g5PzLmFy+vOmzyu2NpQ32mafKcg=">AAACDHicbVC7TsMwFL0uUEp5FRhZIioQU5UwAGOlLoxF0IfURpXjOq1VJ45sBxFV/YWu8BVMbIiVf2DlF/gBnLRLWo5k6eic63uPjhdxprRtf6PCxuZWcbu0U97d2z84rBwdt5WIJaEtIriQXQ8ryllIW5ppTruRpDjwOO14k0bqd56oVEyEjzqJqBvgUch8RrBOpeee7Q4qVbtmZ7DWibMk1Xoxenug6Kc5qPz2h4LEAQ014VipnmNH2p1iqRnhdFbux4pGmEzwiE6zhDPr3EhDyxfSvFBbmZqba0icCI6zwCq/AgdKJYFnlgRYj9Wql4r/eb1Y+7fulIVRrGlIFhn8mFtaWGkT1pBJSjRPDMFEMhPeImMsMdGmr9yVSUBmpiVntZN10r6qOdc1+97UdQELlOAUzuASHLiBOtxBE1pAYAxzeIFXNEfv6AN9LkYLaPnnBHJAX3/Yo57v</latexit>

x[0]<latexit sha1_base64="HYnjrud2UfHQht82UlF3HS8+Oak=">AAACDHicbVC7TsMwFL0uUEp5FRhZIioQU5UwAGOlLoxF0IfURpXjOq1VJ45sBxFV/YWu8BVMbIiVf2DlF/gBnLRLWo5k6eic63uPjhdxprRtf6PCxuZWcbu0U97d2z84rBwdt5WIJaEtIriQXQ8ryllIW5ppTruRpDjwOO14k0bqd56oVEyEjzqJqBvgUch8RrBOpeee4w4qVbtmZ7DWibMk1Xoxenug6Kc5qPz2h4LEAQ014VipnmNH2p1iqRnhdFbux4pGmEzwiE6zhDPr3EhDyxfSvFBbmZqba0icCI6zwCq/AgdKJYFnlgRYj9Wql4r/eb1Y+7fulIVRrGlIFhn8mFtaWGkT1pBJSjRPDMFEMhPeImMsMdGmr9yVSUBmpiVntZN10r6qOdc1+97UdQELlOAUzuASHLiBOtxBE1pAYAxzeIFXNEfv6AN9LkYLaPnnBHJAX3/aSZ7w</latexit>

x[1]<latexit sha1_base64="Os52gAb4wAF1DMo/jpYcKvSyx34=">AAACDHicbVC7TsMwFL0pr1JeBUYWiwrEVCUdgLFSF8Yi6ENqo8pxndaqE0e2g4iq/kJX+AomNsTKP7DyC/wATtolLUeydHTO9b1Hx4s4U9q2v63CxubW9k5xt7S3f3B4VD4+aSsRS0JbRHAhux5WlLOQtjTTnHYjSXHgcdrxJo3U7zxRqZgIH3USUTfAo5D5jGCdSs+9mjsoV+yqnQGtE2dJKvXt6O2BWj/NQfm3PxQkDmioCcdK9Rw70u4US80Ip7NSP1Y0wmSCR3SaJZyhCyMNkS+keaFGmZqba0icCI6zwCq/AgdKJYFnlgRYj9Wql4r/eb1Y+7fulIVRrGlIFhn8mCMtUNoEGjJJieaJIZhIZsIjMsYSE236yl2ZBGRmWnJWO1kn7VrVua7a96auS1igCGdwDlfgwA3U4Q6a0AICY5jDC7xac+vd+rA+F6MFa/nnFHKwvv4A2++e8Q==</latexit>

x[2]<latexit sha1_base64="LBUhVRG5NhmPAIPodn/GcUGOc2w=">AAACDHicbVDLSgMxFL3xUWt9VV26CRbFVZlRUJeFblxWtA9oh5JJM21o5kGSEYfSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z32htfWOzsFXcLu3s7u0flA+PWiqMJWVNGopQdlyimOABa2quBetEkhHfFaztjuup335iUvEweNRJxByfDAPucUp0Kj13r5x+uWJVrQx4ldgLUqkVorcHhn4a/fJvbxDS2GeBpoIo1bWtSDsTIjWngk1LvVixiNAxGbJJlnCKz4w0wF4ozQs0ztTcXF2SJBQkC6zyK4ivVOK7ZolP9Egte6n4n9eNtXfrTHgQxZoFdJ7BiwXWIU6bwAMuGdUiMYRQyU14TEdEEqpNX7krY59OTUv2cierpHVZta+r1r2p6xzmKMIJnMIF2HADNbiDBjSBwghm8AKvaIbe0Qf6nI+uocWfY8gBff0B3ZWe8g==</latexit>

x[3]

<latexit sha1_base64="ZWYhbr3vgQrggWvvy1wasgostWk=">AAACDHicbVDLSgMxFL3xUWt9VV26CRbFVZkRUZeFblxWtA9oh5JJM21o5kGSEYfSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z32htfWOzsFXcLu3s7u0flA+PWiqMJWVNGopQdlyimOABa2quBetEkhHfFaztjuup335iUvEweNRJxByfDAPucUp0Kj13r5x+uWJVrQx4ldgLUqkVorcHhn4a/fJvbxDS2GeBpoIo1bWtSDsTIjWngk1LvVixiNAxGbJJlnCKz4w0wF4ozQs0ztTcXF2SJBQkC6zyK4ivVOK7ZolP9Egte6n4n9eNtXfrTHgQxZoFdJ7BiwXWIU6bwAMuGdUiMYRQyU14TEdEEqpNX7krY59OTUv2cierpHVZta+r1r2p6xzmKMIJnMIF2HADNbiDBjSBwghm8AKvaIbe0Qf6nI+uocWfY8gBff0B3zue8w==</latexit>

x[4]<latexit sha1_base64="mJFUQlXDCKtZw+xEVhB3YfLhR9o=">AAACDHicbVDLSgMxFL3xUWt9VV26CRbFVZkRfCwL3bisaB/QDiWTZtrQzIMkIw6lv9CtfoUrd+LWf3DrL/gDZqbdTOuBwOGcm3sPx40EV9qyvtHa+sZmYau4XdrZ3ds/KB8etVQYS8qaNBSh7LhEMcED1tRcC9aJJCO+K1jbHddTv/3EpOJh8KiTiDk+GQbc45ToVHruXjn9csWqWhnwKrEXpFIrRG8PDP00+uXf3iCksc8CTQVRqmtbkXYmRGpOBZuWerFiEaFjMmSTLOEUnxlpgL1QmhdonKm5ubokSShIFljlVxBfqcR3zRKf6JFa9lLxP68ba+/WmfAgijUL6DyDFwusQ5w2gQdcMqpFYgihkpvwmI6IJFSbvnJXxj6dmpbs5U5WSeuyal9XrXtT1znMUYQTOIULsOEGanAHDWgChRHM4AVe0Qy9ow/0OR9dQ4s/x5AD+voD4OGe9A==</latexit>

x[5]

<latexit sha1_base64="l64qrCQQeUyQ44Qo8PvV/t37Rxk=">AAACDHicbVC7TgJBFL3jAxFfqKXNRKKxIrsWYklCY4lRHglsyOwwCxNmH5mZNW4Iv0CrX2FlZ2z9B1t/wR9wdqFZ8CSTnJxz596T40aCK21Z32hjc2u7sFPcLe3tHxwelY9P2iqMJWUtGopQdl2imOABa2muBetGkhHfFazjThqp33liUvEweNRJxByfjALucUp0Kj33as6gXLGqVga8TuwlqdQL0dsDQz/NQfm3Pwxp7LNAU0GU6tlWpJ0pkZpTwWalfqxYROiEjNg0SzjDF0YaYi+U5gUaZ2puriFJEgqSBVb5FcRXKvFds8QneqxWvVT8z+vF2rt1pjyIYs0CusjgxQLrEKdN4CGXjGqRGEKo5CY8pmMiCdWmr9yViU9npiV7tZN10r6u2jdV697UdQkLFOEMzuEKbKhBHe6gCS2gMIY5vMArmqN39IE+F6MbaPnnFHJAX3/kLZ72</latexit>

x[7]

<latexit sha1_base64="yq9uqo4LxMXVFW4sK021sWL3kQ8=">AAACDHicbVC7TgJBFL3jAxFfqKXNRKKxIrsWaElCY4lRHglsyOwwCxNmH5mZNW4Iv0CrX2FlZ2z9B1t/wR9wdqFZ8CSTnJxz596T40aCK21Z32hjc2u7sFPcLe3tHxwelY9P2iqMJWUtGopQdl2imOABa2muBetGkhHfFazjThqp33liUvEweNRJxByfjALucUp0Kj33as6gXLGqVga8TuwlqdQL0dsDQz/NQfm3Pwxp7LNAU0GU6tlWpJ0pkZpTwWalfqxYROiEjNg0SzjDF0YaYi+U5gUaZ2puriFJEgqSBVb5FcRXKvFds8QneqxWvVT8z+vF2rt1pjyIYs0CusjgxQLrEKdN4CGXjGqRGEKo5CY8pmMiCdWmr9yViU9npiV7tZN10r6u2rWqdW/quoQFinAG53AFNtxAHe6gCS2gMIY5vMArmqN39IE+F6MbaPnnFHJAX3/ih571</latexit>

x[6]

<latexit sha1_base64="Cx9uuvPz4MUGp5EUIvZEpp83Vm8=">AAACDHicbVDLSsNAFL2pWmt9VV26GSyKq5K4UJeFIrisaB/QhjKZTtqhk0yYmQih9Be61a9w5U7c+g9u/QV/wEnaTVoPDBzOuXPv4XgRZ0rb9rdV2NjcKm6Xdsq7e/sHh5Wj47YSsSS0RQQXsuthRTkLaUszzWk3khQHHqcdb9JI/c4zlYqJ8EknEXUDPAqZzwjWqXTXs91BpWrX7AxonThLUq0Xo7dHav00B5Xf/lCQOKChJhwr1XPsSLtTLDUjnM7K/VjRCJMJHtFplnCGzo00RL6Q5oUaZWpuriFxIjjOAqv8ChwolQSeWRJgPVarXir+5/Vi7d+6UxZGsaYhWWTwY460QGkTaMgkJZonhmAimQmPyBhLTLTpK3dlEpCZaclZ7WSdtK9qznXNfjB1XcACJTiFM7gEB26gDvfQhBYQGMMcXuDVmlvv1of1uRgtWMs/J5CD9fUHhCuevA==</latexit>

E[0]<latexit sha1_base64="zktJk+im0R+GHFYvPEdfvfswO3s=">AAACDHicbVDLSsNAFL2pWmt9VV26GSyKq5K4UJeFIrisaB/QhjKZTtqhk0yYmQih9Be61a9w5U7c+g9u/QV/wEnaTVoPDBzOuXPv4XgRZ0rb9rdV2NjcKm6Xdsq7e/sHh5Wj47YSsSS0RQQXsuthRTkLaUszzWk3khQHHqcdb9JI/c4zlYqJ8EknEXUDPAqZzwjWqXTXc9xBpWrX7AxonThLUq0Xo7dHav00B5Xf/lCQOKChJhwr1XPsSLtTLDUjnM7K/VjRCJMJHtFplnCGzo00RL6Q5oUaZWpuriFxIjjOAqv8ChwolQSeWRJgPVarXir+5/Vi7d+6UxZGsaYhWWTwY460QGkTaMgkJZonhmAimQmPyBhLTLTpK3dlEpCZaclZ7WSdtK9qznXNfjB1XcACJTiFM7gEB26gDvfQhBYQGMMcXuDVmlvv1of1uRgtWMs/J5CD9fUHhdGevQ==</latexit>

E[1]<latexit sha1_base64="MxBM84iCF+O/cSAKuSr26vAbSXk=">AAACDHicbVDLSgMxFL2pr1pfVZdugkVxVWa6UJeFIrisaB/QDiWTZtrQzIMkIwylv9CtfoUrd+LWf3DrL/gDZqbdTOuBwOGcm3sPx40EV9qyvlFhY3Nre6e4W9rbPzg8Kh+ftFUYS8paNBSh7LpEMcED1tJcC9aNJCO+K1jHnTRSv/PMpOJh8KSTiDk+GQXc45ToVLrr1ZxBuWJVrQx4ndhLUqlvR2+PDP00B+Xf/jCksc8CTQVRqmdbkXamRGpOBZuV+rFiEaETMmLTLOEMXxhpiL1QmhdonKm5uYYkSShIFljlVxBfqcR3zRKf6LFa9VLxP68Xa+/WmfIgijUL6CKDFwusQ5w2gYdcMqpFYgihkpvwmI6JJFSbvnJXJj6dmZbs1U7WSbtWta+r1oOp6xIWKMIZnMMV2HADdbiHJrSAwhjm8AKvaI7e0Qf6XIwW0PLPKeSAvv4Ah3eevg==</latexit>

E[2]<latexit sha1_base64="TC4YgXUbn1MVODFyfDafwSohWfg=">AAACDHicbVDLSsNAFL3jo9b6qrp0EyyKq5IoqMtCEVxWtA9oQ5lMJ+3QSSbMTIRQ+gvd6le4cidu/Qe3/oI/4CTtJq0HBg7n3Ln3cLyIM6Vt+xutrW9sFraK26Wd3b39g/LhUUuJWBLaJIIL2fGwopyFtKmZ5rQTSYoDj9O2N66nfvuZSsVE+KSTiLoBHobMZwTrVLrrXrn9csWu2hmsVeIsSKVWiN4eKfpp9Mu/vYEgcUBDTThWquvYkXYnWGpGOJ2WerGiESZjPKSTLOHUOjPSwPKFNC/UVqbm5uoSJ4LjLLDKr8CBUkngmSUB1iO17KXif1431v6tO2FhFGsaknkGP+aWFlbahDVgkhLNE0MwkcyEt8gIS0y06St3ZRyQqWnJWe5klbQuq8511X4wdZ3DHEU4gVO4AAduoAb30IAmEBjBDF7gFc3QO/pAn/PRNbT4cww5oK8/iR2evw==</latexit>

E[3]

<latexit sha1_base64="LEquZ/yn0KNo/odk3NMe+RF08CE=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwAGOlLmwUQR9SG1WO67RWnTiyHaSo6i90ha9gYkOs/AMrv8AP4KRd0nIkS0fnXN97dLyIM6Vt+9sqbGxuFbdLO+Xdvf2Dw8rRcVuJWBLaIoIL2fWwopyFtKWZ5rQbSYoDj9OON2mkfueZSsVE+KSTiLoBHoXMZwTrVLrvOe6gUrVrdga0TpwlqdaL0dsjtX6ag8pvfyhIHNBQE46V6jl2pN0plpoRTmflfqxohMkEj+g0SzhD50YaIl9I80KNMjU315A4ERxngVV+BQ6USgLPLAmwHqtVLxX/83qx9m/dKQujWNOQLDL4MUdaoLQJNGSSEs0TQzCRzIRHZIwlJtr0lbsyCcjMtOSsdrJO2lc157pmP5i6LmCBEpzCGVyCAzdQhztoQgsIjGEOL/Bqza1368P6XIwWrOWfE8jB+voDlmGexw==</latexit>

O[1]<latexit sha1_base64="iVgLx4V8m7FOT0cAFuUwyavIyWc=">AAACDHicbVC7TgJBFL2DL8QXamkzkWisyC6FWpLQ2IlRHglsyOwwCxNmH5mZNdkQfoFWv8LKztj6D7b+gj/g7EKz4EkmOTnnzr0nx40EV9qyvlFhY3Nre6e4W9rbPzg8Kh+ftFUYS8paNBSh7LpEMcED1tJcC9aNJCO+K1jHnTRSv/PMpOJh8KSTiDk+GQXc45ToVLrv1ZxBuWJVrQx4ndhLUqlvR2+PDP00B+Xf/jCksc8CTQVRqmdbkXamRGpOBZuV+rFiEaETMmLTLOEMXxhpiL1QmhdonKm5uYYkSShIFljlVxBfqcR3zRKf6LFa9VLxP68Xa+/WmfIgijUL6CKDFwusQ5w2gYdcMqpFYgihkpvwmI6JJFSbvnJXJj6dmZbs1U7WSbtWta+r1oOp6xIWKMIZnMMV2HADdbiDJrSAwhjm8AKvaI7e0Qf6XIwW0PLPKeSAvv4AmAeeyA==</latexit>

O[2]<latexit sha1_base64="UlANQXPm6sGQlQroIPO+Rzdg0BY=">AAACDHicbVDLSsNAFL3jo9b6qrp0EyyKq5IoqMtCN+6saB/QhjKZTtqhk0yYmQih9Be61a9w5U7c+g9u/QV/wEnaTVoPDBzOuXPv4XgRZ0rb9jdaW9/YLGwVt0s7u3v7B+XDo5YSsSS0SQQXsuNhRTkLaVMzzWknkhQHHqdtb1xP/fYzlYqJ8EknEXUDPAyZzwjWqXTfvXL75YpdtTNYq8RZkEqtEL09UvTT6Jd/ewNB4oCGmnCsVNexI+1OsNSMcDot9WJFI0zGeEgnWcKpdWakgeULaV6orUzNzdUlTgTHWWCVX4EDpZLAM0sCrEdq2UvF/7xurP1bd8LCKNY0JPMMfswtLay0CWvAJCWaJ4ZgIpkJb5ERlpho01fuyjggU9OSs9zJKmldVp3rqv1g6jqHOYpwAqdwAQ7cQA3uoAFNIDCCGbzAK5qhd/SBPueja2jx5xhyQF9/ma2eyQ==</latexit>

O[3]

<latexit sha1_base64="jZXETBfHs3QLH7p0qKIKfzqSNCA=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwAGOlLmwUQR9SG1WO67RWnTiyHaSo6i90ha9gYkOs/AMrv8AP4KRd0nIkS0fnXN97dLyIM6Vt+9sqbGxuFbdLO+Xdvf2Dw8rRcVuJWBLaIoIL2fWwopyFtKWZ5rQbSYoDj9OON2mkfueZSsVE+KSTiLoBHoXMZwTrVLrv2e6gUrVrdga0TpwlqdaL0dsjtX6ag8pvfyhIHNBQE46V6jl2pN0plpoRTmflfqxohMkEj+g0SzhD50YaIl9I80KNMjU315A4ERxngVV+BQ6USgLPLAmwHqtVLxX/83qx9m/dKQujWNOQLDL4MUdaoLQJNGSSEs0TQzCRzIRHZIwlJtr0lbsyCcjMtOSsdrJO2lc157pmP5i6LmCBEpzCGVyCAzdQhztoQgsIjGEOL/Bqza1368P6XIwWrOWfE8jB+voDlLuexg==</latexit>

O[0]

<latexit sha1_base64="nIUGMBZQWCvkViUf86YStqQbfE4=">AAACC3icbVC7TgJBFL3rE/GFWtJMJBorsmuhdJJQaIlRHgkQMjs7CxNmdzYzsyYbwifQavwOO2PLR/gdljYOC82CJ5nk5Jw7954cN+JMadv+tjY2t7Z3dnN7+f2Dw6PjwslpU4lYEtogggvZdrGinIW0oZnmtB1JigOX05Y7qs391guVionwWScR7QV4EDKfEayN9NTqV/qFkl22U6B14ixJ6e73/r04a3v1fuGn6wkSBzTUhGOlOo4d6d4YS80Ip5N8N1Y0wmSEB3ScBpygCyN5yBfSvFCjVM3M1SROBMdpXpVdgQOlksA1SwKsh2rVm4v/eZ1Y+5XemIVRrGlIFhn8mCMt0LwI5DFJieaJIZhIZsIjMsQSE23qylwZBWRiWnJWO1knzeuyc1O2H+1S9RIWyEERzuEKHLiFKjxAHRpAYABTeIU3a2p9WJ/W12J0w1r+OYMMrNkfB02fKg==</latexit>

W8

<latexit sha1_base64="XsmOQP/5q6MedZeHQaAjz7JBX4s=">AAACDXicbVDNTgIxGPwWFRH/UI9eGonGE9nloBxJuHjExAUSQNItXWjobjdt12RDeAau+gQ+gTfj1YNP4HPwApaFy4KTNJnMfP2+yXgRZ0rb9q+V29ndy+8XDoqHR8cnp6Wz85YSsSTUJYIL2fGwopyF1NVMc9qJJMWBx2nbmzSWfvuFSsVE+KSTiPYDPAqZzwjWRnLbg9pzdVAq2xU7BdomzpqU63ln4Xk/781BadEbChIHNNSEY6W6jh3p/hRLzQins2IvVjTCZIJHdJpGnKFrIw2RL6R5oUapmplrSJwIjtPEKrsCB0olgWeWBFiP1aa3FP/zurH2a/0pC6NY05CsMvgxR1qgZRVoyCQlmieGYCKZCY/IGEtMtCksc2USkJlpydnsZJu0qhXnrmI/mrpuYIUCXMIV3IID91CHB2iCCwQYzOEV3qy59WF9Wl+r0Zy1/nMBGVjffxwbn7g=</latexit>

W 28

<latexit sha1_base64="Xkl4f4VrcaqHLR/pmWKwcTFJar4=">AAACDXicbVDNTgIxGPwWFRH/UI9eGonGE9nVRDmScPGIiQskgKRbutDQ3W7arsmG8Axc9Ql8Am/GqwefwOfgBSwLlwUnaTKZ+fp9k/EizpS27V8rt7W9k98t7BX3Dw6Pjksnp00lYkmoSwQXsu1hRTkLqauZ5rQdSYoDj9OWN64v/NYLlYqJ8EknEe0FeBgynxGsjeS2+tXn236pbFfsFGiTOCtSruWduef9vDf6pXl3IEgc0FATjpXqOHakexMsNSOcTovdWNEIkzEe0kkacYoujTRAvpDmhRqlamauLnEiOE4Tq+wKHCiVBJ5ZEmA9UuveQvzP68Tar/YmLIxiTUOyzODHHGmBFlWgAZOUaJ4YgolkJjwiIywx0aawzJVxQKamJWe9k03SvKk4dxX70dR1BUsU4Bwu4BocuIcaPEADXCDAYAav8GbNrA/r0/pajuas1Z8zyMD6/gMdwJ+5</latexit>

W 38

<latexit sha1_base64="pQ0JMWxzrrwcp/EOYV2FtxpGVes=">AAACDHicbVC7TsMwFL3mUUp5FRhZLCoQU5UwAGOlLoxF0IfURpXjuq1VJ45sBymq+gtd4SuY2BAr/8DKL/ADOGmXtBzJ0tE51/ceHT8SXBvH+UYbm1vbhZ3ibmlv/+DwqHx80tIyVpQ1qRRSdXyimeAhaxpuBOtEipHAF6ztT+qp335mSnMZPpkkYl5ARiEfckpMKnW6jtcvV5yqkwGvE3dJKrVC9PbI0E+jX/7tDSSNAxYaKojWXdeJjDclynAq2KzUizWLCJ2QEZtmCWf4wkoDPJTKvtDgTM3N1RVJpCBZYJ1fQQKtk8C3SwJixnrVS8X/vG5shnfelIdRbFhIFxmGscBG4rQJPOCKUSMSSwhV3IbHdEwUocb2lbsyCejMtuSudrJOWtdV96bqPNi6LmGBIpzBOVyBC7dQg3toQBMojGEOL/CK5ugdfaDPxegGWv45hRzQ1x+jo57P</latexit>

X[0]<latexit sha1_base64="zHqYTB9JoTAbI0i8iqVwSF5LY3o=">AAACDHicbVC7TsMwFL3mUUp5FRhZLCoQU5UwAGOlLoxF0IfURpXjuq1VJ45sBymq+gtd4SuY2BAr/8DKL/ADOGmXtBzJ0tE51/ceHT8SXBvH+UYbm1vbhZ3ibmlv/+DwqHx80tIyVpQ1qRRSdXyimeAhaxpuBOtEipHAF6ztT+qp335mSnMZPpkkYl5ARiEfckpMKnW6rtcvV5yqkwGvE3dJKrVC9PbI0E+jX/7tDSSNAxYaKojWXdeJjDclynAq2KzUizWLCJ2QEZtmCWf4wkoDPJTKvtDgTM3N1RVJpCBZYJ1fQQKtk8C3SwJixnrVS8X/vG5shnfelIdRbFhIFxmGscBG4rQJPOCKUSMSSwhV3IbHdEwUocb2lbsyCejMtuSudrJOWtdV96bqPNi6LmGBIpzBOVyBC7dQg3toQBMojGEOL/CK5ugdfaDPxegGWv45hRzQ1x+lSZ7Q</latexit>

X[1]<latexit sha1_base64="S/Z9Wi562g+rv/PVFIU04yfbpqM=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5V0AMZKXRiLoA+pjSrHdVqrThzZDlJU9Re6wlcwsSFW/oGVX+AHcNIuaTmSpaNzru89Ol7EmdK2/W0VtrZ3irulvfL+weHRceXktKNELAltE8GF7HlYUc5C2tZMc9qLJMWBx2nXmzZTv/tMpWIifNJJRN0Aj0PmM4J1KvX6dXdYqdo1OwPaJM6KVBvF6O2RWj+tYeV3MBIkDmioCcdK9R070u4MS80Ip/PyIFY0wmSKx3SWJZyjSyONkC+keaFGmZqba0qcCI6zwCq/AgdKJYFnlgRYT9S6l4r/ef1Y+3fujIVRrGlIlhn8mCMtUNoEGjFJieaJIZhIZsIjMsESE236yl2ZBmRuWnLWO9kknXrNuanZD6auK1iiBOdwAdfgwC004B5a0AYCE1jAC7xaC+vd+rA+l6MFa/XnDHKwvv4Apu+e0Q==</latexit>

X[2]<latexit sha1_base64="rtA/HwpqGYOSYzlzZ+IG/oDKkoM=">AAACDHicbVDLSgMxFL2pWmt9VV26CRbFVZlRUJeFblxWtA9oh5JJM21o5kGSEYbSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z36iwsblV3C7tlHf39g8OK0fHbRXGkrIWDUUouy5RTPCAtTTXgnUjyYjvCtZxJ43U7zwzqXgYPOkkYo5PRgH3OCU6lbq9a2dQqVo1KwNeJ/aSVOvF6O2RoZ/moPLbH4Y09lmgqSBK9Wwr0s6USM2pYLNyP1YsInRCRmyaJZzhcyMNsRdK8wKNMzU315AkCQXJAqv8CuIrlfiuWeITPVarXir+5/Vi7d05Ux5EsWYBXWTwYoF1iNMm8JBLRrVIDCFUchMe0zGRhGrTV+7KxKcz05K92sk6aV/V7Jua9WDquoAFSnAKZ3AJNtxCHe6hCS2gMIY5vMArmqN39IE+F6MFtPxzAjmgrz+olZ7S</latexit>

X[3]

<latexit sha1_base64="T289+vXERi4NRYZx00G9lwUCgZY=">AAACDHicbVDLSgMxFL2pWmt9VV26CRbFVZkRUZeFblxWtA9oh5JJM21o5kGSEYbSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z36iwsblV3C7tlHf39g8OK0fHbRXGkrIWDUUouy5RTPCAtTTXgnUjyYjvCtZxJ43U7zwzqXgYPOkkYo5PRgH3OCU6lbq9a2dQqVo1KwNeJ/aSVOvF6O2RoZ/moPLbH4Y09lmgqSBK9Wwr0s6USM2pYLNyP1YsInRCRmyaJZzhcyMNsRdK8wKNMzU315AkCQXJAqv8CuIrlfiuWeITPVarXir+5/Vi7d05Ux5EsWYBXWTwYoF1iNMm8JBLRrVIDCFUchMe0zGRhGrTV+7KxKcz05K92sk6aV/V7Jua9WDquoAFSnAKZ3AJNtxCHe6hCS2gMIY5vMArmqN39IE+F6MFtPxzAjmgrz+qO57T</latexit>

X[4]<latexit sha1_base64="S0h/9ZAku0lZh35mgiMGDIUBNkg=">AAACDHicbVDLSgMxFL2pWmt9VV26CRbFVZkRfCwL3bisaB/QDiWTZtrQzIMkIwylv9CtfoUrd+LWf3DrL/gDZqbdTOuBwOGcm3sPx40EV9qyvlFhY3OruF3aKe/u7R8cVo6O2yqMJWUtGopQdl2imOABa2muBetGkhHfFazjThqp33lmUvEweNJJxByfjALucUp0KnV7186gUrVqVga8TuwlqdaL0dsjQz/NQeW3Pwxp7LNAU0GU6tlWpJ0pkZpTwWblfqxYROiEjNg0SzjD50YaYi+U5gUaZ2puriFJEgqSBVb5FcRXKvFds8QneqxWvVT8z+vF2rtzpjyIYs0CusjgxQLrEKdN4CGXjGqRGEKo5CY8pmMiCdWmr9yViU9npiV7tZN10r6q2Tc168HUdQELlOAUzuASbLiFOtxDE1pAYQxzeIFXNEfv6AN9LkYLaPnnBHJAX3+r4Z7U</latexit>

X[5]<latexit sha1_base64="lvx6mXdeTXZJh8vzAXxY3dVqSp8=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwFMZKXRiLoA+pjSrHdVqrThzZDlJU9Re6wlcwsSFW/oGVX+AHcNIuaTmSpaNzru89Ol7EmdK2/W0VtrZ3irulvfL+weHRceXktKNELAltE8GF7HlYUc5C2tZMc9qLJMWBx2nXmzZTv/tMpWIifNJJRN0Aj0PmM4J1KvX6dXdYqdo1OwPaJM6KVBvF6O2RWj+tYeV3MBIkDmioCcdK9R070u4MS80Ip/PyIFY0wmSKx3SWJZyjSyONkC+keaFGmZqba0qcCI6zwCq/AgdKJYFnlgRYT9S6l4r/ef1Y+3fujIVRrGlIlhn8mCMtUNoEGjFJieaJIZhIZsIjMsESE236yl2ZBmRuWnLWO9kknZuaU6/ZD6auK1iiBOdwAdfgwC004B5a0AYCE1jAC7xaC+vd+rA+l6MFa/XnDHKwvv4ArYee1Q==</latexit>

X[6]<latexit sha1_base64="bQTEay8+gPqEI1pA7mjryDbPsA0=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwUMZKXRiLoA+pjSrHdVqrThzZDlJU9Re6wlcwsSFW/oGVX+AHcNIuaTmSpaNzru89Ol7EmdK2/W0VtrZ3irulvfL+weHRceXktKNELAltE8GF7HlYUc5C2tZMc9qLJMWBx2nXmzZTv/tMpWIifNJJRN0Aj0PmM4J1KvX6dXdYqdo1OwPaJM6KVBvF6O2RWj+tYeV3MBIkDmioCcdK9R070u4MS80Ip/PyIFY0wmSKx3SWJZyjSyONkC+keaFGmZqba0qcCI6zwCq/AgdKJYFnlgRYT9S6l4r/ef1Y+3fujIVRrGlIlhn8mCMtUNoEGjFJieaJIZhIZsIjMsESE236yl2ZBmRuWnLWO9kknZuac1uzH0xdV7BECc7hAq7BgTo04B5a0AYCE1jAC7xaC+vd+rA+l6MFa/XnDHKwvv4Ary2e1g==</latexit>

X[7]

<latexit sha1_base64="TmhMCIrkEJ2CbHmh/LeJA3aF6y8=">AAACEnicbVDLSsNAFJ34rPVVdekmWJS6KYkLdWehIi4r9IVNKZPppB06jzAzEUPoN7jpVr/AL3Cnbv0Bv0Pcm6TdpPXAwOGcO/cejutTorRlfRtLyyura+u5jfzm1vbObmFvv6lEIBFuIEGFbLtQYUo4bmiiKW77EkPmUtxyR9XEbz1gqYjgdR36uMvggBOPIKhj6d5hrniMrm/q416haJWtFOYisWekePVa+v14ck5rvcKP0xcoYJhrRKFSHdvydTeCUhNE8TjvBAr7EI3gAEdpzrF5HEt90xMyflybqZqZq0oYCgrT2Cq7AjKlQubGSxjUQzXvJeJ/XifQ3mU3ItwPNOZomsELqKmFmfRh9onESNMwJhBJEoc30RBKiHTcWubKiKGkJXu+k0XSPCvb52XrzipWTsAUOXAIjkAJ2OACVMAtqIEGQICDCXgGL8bEeDPejc/p6JIx+3MAMjC+/gA7+aKS</latexit>

DFT

<latexit sha1_base64="c9uO8mCVVdF70W0esvI927EWj48=">AAACFHicbVDLSgMxFM3UV62vquDGTbAoglBmFNRloZsuK9gHdErJpJk2NJMMSUYchn6C2271Q9yJW/d+gmt/wMy0m2k9EDicc3Pv4Xgho0rb9rdVWFvf2Nwqbpd2dvf2D8qHR20lIolJCwsmZNdDijDKSUtTzUg3lAQFHiMdb1JP/c4TkYoK/qjjkPQDNOLUpxhpI7lu4InnJBSU6+mgXLGrdga4SpwFqdSsl5ObxtVPc1D+dYcCRwHhGjOkVM+xQ91PkNQUMzItuZEiIcITNCJJlnQKz400hL6Q5nENMzU3V5coFgxlwVV+BQqUigPPLAmQHqtlLxX/83qR9u/7CeVhpAnH8wx+xKAWMG0EDqkkWLPYEIQlNeEhHiOJsDa95a5MApy25Cx3skra11Xntmo/mLouwBxFcArOwCVwwB2ogQZoghbAIAQz8ArerJn1bn1Yn/PRgrX4cwxysL7+AJfOooc=</latexit>

point

<latexit sha1_base64="TmhMCIrkEJ2CbHmh/LeJA3aF6y8=">AAACEnicbVDLSsNAFJ34rPVVdekmWJS6KYkLdWehIi4r9IVNKZPppB06jzAzEUPoN7jpVr/AL3Cnbv0Bv0Pcm6TdpPXAwOGcO/cejutTorRlfRtLyyura+u5jfzm1vbObmFvv6lEIBFuIEGFbLtQYUo4bmiiKW77EkPmUtxyR9XEbz1gqYjgdR36uMvggBOPIKhj6d5hrniMrm/q416haJWtFOYisWekePVa+v14ck5rvcKP0xcoYJhrRKFSHdvydTeCUhNE8TjvBAr7EI3gAEdpzrF5HEt90xMyflybqZqZq0oYCgrT2Cq7AjKlQubGSxjUQzXvJeJ/XifQ3mU3ItwPNOZomsELqKmFmfRh9onESNMwJhBJEoc30RBKiHTcWubKiKGkJXu+k0XSPCvb52XrzipWTsAUOXAIjkAJ2OACVMAtqIEGQICDCXgGL8bEeDPejc/p6JIx+3MAMjC+/gA7+aKS</latexit>

DFT

<latexit sha1_base64="c9uO8mCVVdF70W0esvI927EWj48=">AAACFHicbVDLSgMxFM3UV62vquDGTbAoglBmFNRloZsuK9gHdErJpJk2NJMMSUYchn6C2271Q9yJW/d+gmt/wMy0m2k9EDicc3Pv4Xgho0rb9rdVWFvf2Nwqbpd2dvf2D8qHR20lIolJCwsmZNdDijDKSUtTzUg3lAQFHiMdb1JP/c4TkYoK/qjjkPQDNOLUpxhpI7lu4InnJBSU6+mgXLGrdga4SpwFqdSsl5ObxtVPc1D+dYcCRwHhGjOkVM+xQ91PkNQUMzItuZEiIcITNCJJlnQKz400hL6Q5nENMzU3V5coFgxlwVV+BQqUigPPLAmQHqtlLxX/83qR9u/7CeVhpAnH8wx+xKAWMG0EDqkkWLPYEIQlNeEhHiOJsDa95a5MApy25Cx3skra11Xntmo/mLouwBxFcArOwCVwwB2ogQZoghbAIAQz8ArerJn1bn1Yn/PRgrX4cwxysL7+AJfOooc=</latexit>

point

<latexit sha1_base64="B8yAEpYcmwvX1N1iRBcIQsK8H1Y=">AAACCXicbVC7TgJBFL2LL8QXamkzkWiwIbvGqJ0kNJaQyCMBQmaHWZgwu7OZmTXZEL6Awkb/wsbOWOpX+B3G3mGhWfAkk5ycc+fek+OGnClt299WZm19Y3Mru53b2d3bP8gfHjWUiCShdSK4kC0XK8pZQOuaaU5boaTYdzltuqPKzG8+UqmYCB50HNKujwcB8xjB2ki1q16+YJfsBGiVOAtSuHst/n4+dS6qvfxPpy9I5NNAE46Vajt2qLtjLDUjnE5ynUjREJMRHtBxEm+CzozUR56Q5gUaJWpqriJxLDhO0qr0CuwrFfuuWeJjPVTL3kz8z2tH2rvtjlkQRpoGZJ7BizjSAs1qQH0mKdE8NgQTyUx4RIZYYqJNWakrI59MTEvOcierpHFZcq5Lds0ulM9hjiycwCkUwYEbKMM9VKEOBChM4RlerKn1Zr1bH/PRjLX4cwwpWF9/xSyehA==</latexit>

4

<latexit sha1_base64="B8yAEpYcmwvX1N1iRBcIQsK8H1Y=">AAACCXicbVC7TgJBFL2LL8QXamkzkWiwIbvGqJ0kNJaQyCMBQmaHWZgwu7OZmTXZEL6Awkb/wsbOWOpX+B3G3mGhWfAkk5ycc+fek+OGnClt299WZm19Y3Mru53b2d3bP8gfHjWUiCShdSK4kC0XK8pZQOuaaU5boaTYdzltuqPKzG8+UqmYCB50HNKujwcB8xjB2ki1q16+YJfsBGiVOAtSuHst/n4+dS6qvfxPpy9I5NNAE46Vajt2qLtjLDUjnE5ynUjREJMRHtBxEm+CzozUR56Q5gUaJWpqriJxLDhO0qr0CuwrFfuuWeJjPVTL3kz8z2tH2rvtjlkQRpoGZJ7BizjSAs1qQH0mKdE8NgQTyUx4RIZYYqJNWakrI59MTEvOcierpHFZcq5Lds0ulM9hjiycwCkUwYEbKMM9VKEOBChM4RlerKn1Zr1bH/PRjLX4cwwpWF9/xSyehA==</latexit>

4

Figure 2: An N = 8 point DFT can be computed using two stages. In the first stage, two 4-pointDFTs are computed over the even and odd indices, respectively. In the second stage, four, 2-pointDFTs are computed. Yellow boxes are 2-point DFTs. Replacing the N = 4 DFT (green) boxes bythe N = 4 FFT in Fig. 1 yields an N = 8 FFT.

<latexit sha1_base64="g5PzLmFy+vOmzyu2NpQ32mafKcg=">AAACDHicbVC7TsMwFL0uUEp5FRhZIioQU5UwAGOlLoxF0IfURpXjOq1VJ45sBxFV/YWu8BVMbIiVf2DlF/gBnLRLWo5k6eic63uPjhdxprRtf6PCxuZWcbu0U97d2z84rBwdt5WIJaEtIriQXQ8ryllIW5ppTruRpDjwOO14k0bqd56oVEyEjzqJqBvgUch8RrBOpeee7Q4qVbtmZ7DWibMk1Xoxenug6Kc5qPz2h4LEAQ014VipnmNH2p1iqRnhdFbux4pGmEzwiE6zhDPr3EhDyxfSvFBbmZqba0icCI6zwCq/AgdKJYFnlgRYj9Wql4r/eb1Y+7fulIVRrGlIFhn8mFtaWGkT1pBJSjRPDMFEMhPeImMsMdGmr9yVSUBmpiVntZN10r6qOdc1+97UdQELlOAUzuASHLiBOtxBE1pAYAxzeIFXNEfv6AN9LkYLaPnnBHJAX3/Yo57v</latexit>

x[0]<latexit sha1_base64="HYnjrud2UfHQht82UlF3HS8+Oak=">AAACDHicbVC7TsMwFL0uUEp5FRhZIioQU5UwAGOlLoxF0IfURpXjOq1VJ45sBxFV/YWu8BVMbIiVf2DlF/gBnLRLWo5k6eic63uPjhdxprRtf6PCxuZWcbu0U97d2z84rBwdt5WIJaEtIriQXQ8ryllIW5ppTruRpDjwOO14k0bqd56oVEyEjzqJqBvgUch8RrBOpeee4w4qVbtmZ7DWibMk1Xoxenug6Kc5qPz2h4LEAQ014VipnmNH2p1iqRnhdFbux4pGmEzwiE6zhDPr3EhDyxfSvFBbmZqba0icCI6zwCq/AgdKJYFnlgRYj9Wql4r/eb1Y+7fulIVRrGlIFhn8mFtaWGkT1pBJSjRPDMFEMhPeImMsMdGmr9yVSUBmpiVntZN10r6qOdc1+97UdQELlOAUzuASHLiBOtxBE1pAYAxzeIFXNEfv6AN9LkYLaPnnBHJAX3/aSZ7w</latexit>

x[1]<latexit sha1_base64="Os52gAb4wAF1DMo/jpYcKvSyx34=">AAACDHicbVC7TsMwFL0pr1JeBUYWiwrEVCUdgLFSF8Yi6ENqo8pxndaqE0e2g4iq/kJX+AomNsTKP7DyC/wATtolLUeydHTO9b1Hx4s4U9q2v63CxubW9k5xt7S3f3B4VD4+aSsRS0JbRHAhux5WlLOQtjTTnHYjSXHgcdrxJo3U7zxRqZgIH3USUTfAo5D5jGCdSs+9mjsoV+yqnQGtE2dJKvXt6O2BWj/NQfm3PxQkDmioCcdK9Rw70u4US80Ip7NSP1Y0wmSCR3SaJZyhCyMNkS+keaFGmZqba0icCI6zwCq/AgdKJYFnlgRYj9Wql4r/eb1Y+7fulIVRrGlIFhn8mCMtUNoEGjJJieaJIZhIZsIjMsYSE236yl2ZBGRmWnJWO1kn7VrVua7a96auS1igCGdwDlfgwA3U4Q6a0AICY5jDC7xac+vd+rA+F6MFa/nnFHKwvv4A2++e8Q==</latexit>

x[2]<latexit sha1_base64="LBUhVRG5NhmPAIPodn/GcUGOc2w=">AAACDHicbVDLSgMxFL3xUWt9VV26CRbFVZlRUJeFblxWtA9oh5JJM21o5kGSEYfSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z32htfWOzsFXcLu3s7u0flA+PWiqMJWVNGopQdlyimOABa2quBetEkhHfFaztjuup335iUvEweNRJxByfDAPucUp0Kj13r5x+uWJVrQx4ldgLUqkVorcHhn4a/fJvbxDS2GeBpoIo1bWtSDsTIjWngk1LvVixiNAxGbJJlnCKz4w0wF4ozQs0ztTcXF2SJBQkC6zyK4ivVOK7ZolP9Egte6n4n9eNtXfrTHgQxZoFdJ7BiwXWIU6bwAMuGdUiMYRQyU14TEdEEqpNX7krY59OTUv2cierpHVZta+r1r2p6xzmKMIJnMIF2HADNbiDBjSBwghm8AKvaIbe0Qf6nI+uocWfY8gBff0B3ZWe8g==</latexit>

x[3]

<latexit sha1_base64="ZWYhbr3vgQrggWvvy1wasgostWk=">AAACDHicbVDLSgMxFL3xUWt9VV26CRbFVZkRUZeFblxWtA9oh5JJM21o5kGSEYfSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z32htfWOzsFXcLu3s7u0flA+PWiqMJWVNGopQdlyimOABa2quBetEkhHfFaztjuup335iUvEweNRJxByfDAPucUp0Kj13r5x+uWJVrQx4ldgLUqkVorcHhn4a/fJvbxDS2GeBpoIo1bWtSDsTIjWngk1LvVixiNAxGbJJlnCKz4w0wF4ozQs0ztTcXF2SJBQkC6zyK4ivVOK7ZolP9Egte6n4n9eNtXfrTHgQxZoFdJ7BiwXWIU6bwAMuGdUiMYRQyU14TEdEEqpNX7krY59OTUv2cierpHVZta+r1r2p6xzmKMIJnMIF2HADNbiDBjSBwghm8AKvaIbe0Qf6nI+uocWfY8gBff0B3zue8w==</latexit>

x[4]<latexit sha1_base64="mJFUQlXDCKtZw+xEVhB3YfLhR9o=">AAACDHicbVDLSgMxFL3xUWt9VV26CRbFVZkRfCwL3bisaB/QDiWTZtrQzIMkIw6lv9CtfoUrd+LWf3DrL/gDZqbdTOuBwOGcm3sPx40EV9qyvtHa+sZmYau4XdrZ3ds/KB8etVQYS8qaNBSh7LhEMcED1tRcC9aJJCO+K1jbHddTv/3EpOJh8KiTiDk+GQbc45ToVHruXjn9csWqWhnwKrEXpFIrRG8PDP00+uXf3iCksc8CTQVRqmtbkXYmRGpOBZuWerFiEaFjMmSTLOEUnxlpgL1QmhdonKm5ubokSShIFljlVxBfqcR3zRKf6JFa9lLxP68ba+/WmfAgijUL6DyDFwusQ5w2gQdcMqpFYgihkpvwmI6IJFSbvnJXxj6dmpbs5U5WSeuyal9XrXtT1znMUYQTOIULsOEGanAHDWgChRHM4AVe0Qy9ow/0OR9dQ4s/x5AD+voD4OGe9A==</latexit>

x[5]

<latexit sha1_base64="l64qrCQQeUyQ44Qo8PvV/t37Rxk=">AAACDHicbVC7TgJBFL3jAxFfqKXNRKKxIrsWYklCY4lRHglsyOwwCxNmH5mZNW4Iv0CrX2FlZ2z9B1t/wR9wdqFZ8CSTnJxz596T40aCK21Z32hjc2u7sFPcLe3tHxwelY9P2iqMJWUtGopQdl2imOABa2muBetGkhHfFazjThqp33liUvEweNRJxByfjALucUp0Kj33as6gXLGqVga8TuwlqdQL0dsDQz/NQfm3Pwxp7LNAU0GU6tlWpJ0pkZpTwWalfqxYROiEjNg0SzjDF0YaYi+U5gUaZ2puriFJEgqSBVb5FcRXKvFds8QneqxWvVT8z+vF2rt1pjyIYs0CusjgxQLrEKdN4CGXjGqRGEKo5CY8pmMiCdWmr9yViU9npiV7tZN10r6u2jdV697UdQkLFOEMzuEKbKhBHe6gCS2gMIY5vMArmqN39IE+F6MbaPnnFHJAX3/kLZ72</latexit>

x[7]

<latexit sha1_base64="yq9uqo4LxMXVFW4sK021sWL3kQ8=">AAACDHicbVC7TgJBFL3jAxFfqKXNRKKxIrsWaElCY4lRHglsyOwwCxNmH5mZNW4Iv0CrX2FlZ2z9B1t/wR9wdqFZ8CSTnJxz596T40aCK21Z32hjc2u7sFPcLe3tHxwelY9P2iqMJWUtGopQdl2imOABa2muBetGkhHfFazjThqp33liUvEweNRJxByfjALucUp0Kj33as6gXLGqVga8TuwlqdQL0dsDQz/NQfm3Pwxp7LNAU0GU6tlWpJ0pkZpTwWalfqxYROiEjNg0SzjDF0YaYi+U5gUaZ2puriFJEgqSBVb5FcRXKvFds8QneqxWvVT8z+vF2rt1pjyIYs0CusjgxQLrEKdN4CGXjGqRGEKo5CY8pmMiCdWmr9yViU9npiV7tZN10r6u2rWqdW/quoQFinAG53AFNtxAHe6gCS2gMIY5vMArmqN39IE+F6MbaPnnFHJAX3/ih571</latexit>

x[6]

<latexit sha1_base64="pQ0JMWxzrrwcp/EOYV2FtxpGVes=">AAACDHicbVC7TsMwFL3mUUp5FRhZLCoQU5UwAGOlLoxF0IfURpXjuq1VJ45sBymq+gtd4SuY2BAr/8DKL/ADOGmXtBzJ0tE51/ceHT8SXBvH+UYbm1vbhZ3ibmlv/+DwqHx80tIyVpQ1qRRSdXyimeAhaxpuBOtEipHAF6ztT+qp335mSnMZPpkkYl5ARiEfckpMKnW6jtcvV5yqkwGvE3dJKrVC9PbI0E+jX/7tDSSNAxYaKojWXdeJjDclynAq2KzUizWLCJ2QEZtmCWf4wkoDPJTKvtDgTM3N1RVJpCBZYJ1fQQKtk8C3SwJixnrVS8X/vG5shnfelIdRbFhIFxmGscBG4rQJPOCKUSMSSwhV3IbHdEwUocb2lbsyCejMtuSudrJOWtdV96bqPNi6LmGBIpzBOVyBC7dQg3toQBMojGEOL/CK5ugdfaDPxegGWv45hRzQ1x+jo57P</latexit>

X[0]<latexit sha1_base64="zHqYTB9JoTAbI0i8iqVwSF5LY3o=">AAACDHicbVC7TsMwFL3mUUp5FRhZLCoQU5UwAGOlLoxF0IfURpXjuq1VJ45sBymq+gtd4SuY2BAr/8DKL/ADOGmXtBzJ0tE51/ceHT8SXBvH+UYbm1vbhZ3ibmlv/+DwqHx80tIyVpQ1qRRSdXyimeAhaxpuBOtEipHAF6ztT+qp335mSnMZPpkkYl5ARiEfckpMKnW6rtcvV5yqkwGvE3dJKrVC9PbI0E+jX/7tDSSNAxYaKojWXdeJjDclynAq2KzUizWLCJ2QEZtmCWf4wkoDPJTKvtDgTM3N1RVJpCBZYJ1fQQKtk8C3SwJixnrVS8X/vG5shnfelIdRbFhIFxmGscBG4rQJPOCKUSMSSwhV3IbHdEwUocb2lbsyCejMtuSudrJOWtdV96bqPNi6LmGBIpzBOVyBC7dQg3toQBMojGEOL/CK5ugdfaDPxegGWv45hRzQ1x+lSZ7Q</latexit>

X[1]<latexit sha1_base64="S/Z9Wi562g+rv/PVFIU04yfbpqM=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5V0AMZKXRiLoA+pjSrHdVqrThzZDlJU9Re6wlcwsSFW/oGVX+AHcNIuaTmSpaNzru89Ol7EmdK2/W0VtrZ3irulvfL+weHRceXktKNELAltE8GF7HlYUc5C2tZMc9qLJMWBx2nXmzZTv/tMpWIifNJJRN0Aj0PmM4J1KvX6dXdYqdo1OwPaJM6KVBvF6O2RWj+tYeV3MBIkDmioCcdK9R070u4MS80Ip/PyIFY0wmSKx3SWJZyjSyONkC+keaFGmZqba0qcCI6zwCq/AgdKJYFnlgRYT9S6l4r/ef1Y+3fujIVRrGlIlhn8mCMtUNoEGjFJieaJIZhIZsIjMsESE236yl2ZBmRuWnLWO9kknXrNuanZD6auK1iiBOdwAdfgwC004B5a0AYCE1jAC7xaC+vd+rA+l6MFa/XnDHKwvv4Apu+e0Q==</latexit>

X[2]<latexit sha1_base64="rtA/HwpqGYOSYzlzZ+IG/oDKkoM=">AAACDHicbVDLSgMxFL2pWmt9VV26CRbFVZlRUJeFblxWtA9oh5JJM21o5kGSEYbSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z36iwsblV3C7tlHf39g8OK0fHbRXGkrIWDUUouy5RTPCAtTTXgnUjyYjvCtZxJ43U7zwzqXgYPOkkYo5PRgH3OCU6lbq9a2dQqVo1KwNeJ/aSVOvF6O2RoZ/moPLbH4Y09lmgqSBK9Wwr0s6USM2pYLNyP1YsInRCRmyaJZzhcyMNsRdK8wKNMzU315AkCQXJAqv8CuIrlfiuWeITPVarXir+5/Vi7d05Ux5EsWYBXWTwYoF1iNMm8JBLRrVIDCFUchMe0zGRhGrTV+7KxKcz05K92sk6aV/V7Jua9WDquoAFSnAKZ3AJNtxCHe6hCS2gMIY5vMArmqN39IE+F6MFtPxzAjmgrz+olZ7S</latexit>

X[3]

<latexit sha1_base64="T289+vXERi4NRYZx00G9lwUCgZY=">AAACDHicbVDLSgMxFL2pWmt9VV26CRbFVZkRUZeFblxWtA9oh5JJM21o5kGSEYbSX+hWv8KVO3HrP7j1F/wBM9NupvVA4HDOzb2H40aCK21Z36iwsblV3C7tlHf39g8OK0fHbRXGkrIWDUUouy5RTPCAtTTXgnUjyYjvCtZxJ43U7zwzqXgYPOkkYo5PRgH3OCU6lbq9a2dQqVo1KwNeJ/aSVOvF6O2RoZ/moPLbH4Y09lmgqSBK9Wwr0s6USM2pYLNyP1YsInRCRmyaJZzhcyMNsRdK8wKNMzU315AkCQXJAqv8CuIrlfiuWeITPVarXir+5/Vi7d05Ux5EsWYBXWTwYoF1iNMm8JBLRrVIDCFUchMe0zGRhGrTV+7KxKcz05K92sk6aV/V7Jua9WDquoAFSnAKZ3AJNtxCHe6hCS2gMIY5vMArmqN39IE+F6MFtPxzAjmgrz+qO57T</latexit>

X[4]<latexit sha1_base64="S0h/9ZAku0lZh35mgiMGDIUBNkg=">AAACDHicbVDLSgMxFL2pWmt9VV26CRbFVZkRfCwL3bisaB/QDiWTZtrQzIMkIwylv9CtfoUrd+LWf3DrL/gDZqbdTOuBwOGcm3sPx40EV9qyvlFhY3OruF3aKe/u7R8cVo6O2yqMJWUtGopQdl2imOABa2muBetGkhHfFazjThqp33lmUvEweNJJxByfjALucUp0KnV7186gUrVqVga8TuwlqdaL0dsjQz/NQeW3Pwxp7LNAU0GU6tlWpJ0pkZpTwWblfqxYROiEjNg0SzjD50YaYi+U5gUaZ2puriFJEgqSBVb5FcRXKvFds8QneqxWvVT8z+vF2rtzpjyIYs0CusjgxQLrEKdN4CGXjGqRGEKo5CY8pmMiCdWmr9yViU9npiV7tZN10r6q2Tc168HUdQELlOAUzuASbLiFOtxDE1pAYQxzeIFXNEfv6AN9LkYLaPnnBHJAX3+r4Z7U</latexit>

X[5]<latexit sha1_base64="lvx6mXdeTXZJh8vzAXxY3dVqSp8=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwFMZKXRiLoA+pjSrHdVqrThzZDlJU9Re6wlcwsSFW/oGVX+AHcNIuaTmSpaNzru89Ol7EmdK2/W0VtrZ3irulvfL+weHRceXktKNELAltE8GF7HlYUc5C2tZMc9qLJMWBx2nXmzZTv/tMpWIifNJJRN0Aj0PmM4J1KvX6dXdYqdo1OwPaJM6KVBvF6O2RWj+tYeV3MBIkDmioCcdK9R070u4MS80Ip/PyIFY0wmSKx3SWJZyjSyONkC+keaFGmZqba0qcCI6zwCq/AgdKJYFnlgRYT9S6l4r/ef1Y+3fujIVRrGlIlhn8mCMtUNoEGjFJieaJIZhIZsIjMsESE236yl2ZBmRuWnLWO9kknZuaU6/ZD6auK1iiBOdwAdfgwC004B5a0AYCE1jAC7xaC+vd+rA+l6MFa/XnDHKwvv4ArYee1Q==</latexit>

X[6]<latexit sha1_base64="bQTEay8+gPqEI1pA7mjryDbPsA0=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwUMZKXRiLoA+pjSrHdVqrThzZDlJU9Re6wlcwsSFW/oGVX+AHcNIuaTmSpaNzru89Ol7EmdK2/W0VtrZ3irulvfL+weHRceXktKNELAltE8GF7HlYUc5C2tZMc9qLJMWBx2nXmzZTv/tMpWIifNJJRN0Aj0PmM4J1KvX6dXdYqdo1OwPaJM6KVBvF6O2RWj+tYeV3MBIkDmioCcdK9R070u4MS80Ip/PyIFY0wmSKx3SWJZyjSyONkC+keaFGmZqba0qcCI6zwCq/AgdKJYFnlgRYT9S6l4r/ef1Y+3fujIVRrGlIlhn8mCMtUNoEGjFJieaJIZhIZsIjMsESE236yl2ZBmRuWnLWO9kknZuac1uzH0xdV7BECc7hAq7BgTo04B5a0AYCE1jAC7xaC+vd+rA+l6MFa/XnDHKwvv4Ary2e1g==</latexit>

X[7]

<latexit sha1_base64="nIUGMBZQWCvkViUf86YStqQbfE4=">AAACC3icbVC7TgJBFL3rE/GFWtJMJBorsmuhdJJQaIlRHgkQMjs7CxNmdzYzsyYbwifQavwOO2PLR/gdljYOC82CJ5nk5Jw7954cN+JMadv+tjY2t7Z3dnN7+f2Dw6PjwslpU4lYEtogggvZdrGinIW0oZnmtB1JigOX05Y7qs391guVionwWScR7QV4EDKfEayN9NTqV/qFkl22U6B14ixJ6e73/r04a3v1fuGn6wkSBzTUhGOlOo4d6d4YS80Ip5N8N1Y0wmSEB3ScBpygCyN5yBfSvFCjVM3M1SROBMdpXpVdgQOlksA1SwKsh2rVm4v/eZ1Y+5XemIVRrGlIFhn8mCMt0LwI5DFJieaJIZhIZsIjMsQSE23qylwZBWRiWnJWO1knzeuyc1O2H+1S9RIWyEERzuEKHLiFKjxAHRpAYABTeIU3a2p9WJ/W12J0w1r+OYMMrNkfB02fKg==</latexit>

W8

<latexit sha1_base64="XsmOQP/5q6MedZeHQaAjz7JBX4s=">AAACDXicbVDNTgIxGPwWFRH/UI9eGonGE9nloBxJuHjExAUSQNItXWjobjdt12RDeAau+gQ+gTfj1YNP4HPwApaFy4KTNJnMfP2+yXgRZ0rb9q+V29ndy+8XDoqHR8cnp6Wz85YSsSTUJYIL2fGwopyF1NVMc9qJJMWBx2nbmzSWfvuFSsVE+KSTiPYDPAqZzwjWRnLbg9pzdVAq2xU7BdomzpqU63ln4Xk/781BadEbChIHNNSEY6W6jh3p/hRLzQins2IvVjTCZIJHdJpGnKFrIw2RL6R5oUapmplrSJwIjtPEKrsCB0olgWeWBFiP1aa3FP/zurH2a/0pC6NY05CsMvgxR1qgZRVoyCQlmieGYCKZCY/IGEtMtCksc2USkJlpydnsZJu0qhXnrmI/mrpuYIUCXMIV3IID91CHB2iCCwQYzOEV3qy59WF9Wl+r0Zy1/nMBGVjffxwbn7g=</latexit>

W 28

<latexit sha1_base64="Xkl4f4VrcaqHLR/pmWKwcTFJar4=">AAACDXicbVDNTgIxGPwWFRH/UI9eGonGE9nVRDmScPGIiQskgKRbutDQ3W7arsmG8Axc9Ql8Am/GqwefwOfgBSwLlwUnaTKZ+fp9k/EizpS27V8rt7W9k98t7BX3Dw6Pjksnp00lYkmoSwQXsu1hRTkLqauZ5rQdSYoDj9OWN64v/NYLlYqJ8EknEe0FeBgynxGsjeS2+tXn236pbFfsFGiTOCtSruWduef9vDf6pXl3IEgc0FATjpXqOHakexMsNSOcTovdWNEIkzEe0kkacYoujTRAvpDmhRqlamauLnEiOE4Tq+wKHCiVBJ5ZEmA9UuveQvzP68Tar/YmLIxiTUOyzODHHGmBFlWgAZOUaJ4YgolkJjwiIywx0aawzJVxQKamJWe9k03SvKk4dxX70dR1BUsU4Bwu4BocuIcaPEADXCDAYAav8GbNrA/r0/pajuas1Z8zyMD6/gMdwJ+5</latexit>

W 38

<latexit sha1_base64="wcDFVlBZttLThLwC4znb5e7YtHg=">AAACCnicbVDLSgMxFL2pr1pfVcGNm8GiCGKZUVCXhW66rGIf0JaSSTNtbGYyJBlhKP2DutQPcSdu/Qk/wbU/YDrtZloPBA7n3Nx7OG7ImdK2/Y0yK6tr6xvZzdzW9s7uXn7/oK5EJAmtEcGFbLpYUc4CWtNMc9oMJcW+y2nDHZanfuOZSsVE8KjjkHZ83A+YxwjWRnq4fOrmC3bRTmAtE2dOCiX0cnRdufipdvO/7Z4gkU8DTThWquXYoe6MsNSMcDrOtSNFQ0yGuE9HSb6xdWqknuUJaV6grURNzZUljgXHSVyVXoF9pWLfNUt8rAdq0ZuK/3mtSHt3nRELwkjTgMwyeBG3tLCmPVg9JinRPDYEE8lMeIsMsMREm7ZSV4Y+GZuWnMVOlkn9qujcFO17U9cZzJCFYziBc3DgFkpQgSrUgIAHE3iFNzRB7+gDfc5GM2j+5xBSQF9/cuKdhg==</latexit>�j

<latexit sha1_base64="wcDFVlBZttLThLwC4znb5e7YtHg=">AAACCnicbVDLSgMxFL2pr1pfVcGNm8GiCGKZUVCXhW66rGIf0JaSSTNtbGYyJBlhKP2DutQPcSdu/Qk/wbU/YDrtZloPBA7n3Nx7OG7ImdK2/Y0yK6tr6xvZzdzW9s7uXn7/oK5EJAmtEcGFbLpYUc4CWtNMc9oMJcW+y2nDHZanfuOZSsVE8KjjkHZ83A+YxwjWRnq4fOrmC3bRTmAtE2dOCiX0cnRdufipdvO/7Z4gkU8DTThWquXYoe6MsNSMcDrOtSNFQ0yGuE9HSb6xdWqknuUJaV6grURNzZUljgXHSVyVXoF9pWLfNUt8rAdq0ZuK/3mtSHt3nRELwkjTgMwyeBG3tLCmPVg9JinRPDYEE8lMeIsMsMREm7ZSV4Y+GZuWnMVOlkn9qujcFO17U9cZzJCFYziBc3DgFkpQgSrUgIAHE3iFNzRB7+gDfc5GM2j+5xBSQF9/cuKdhg==</latexit>�j

<latexit sha1_base64="Cx9uuvPz4MUGp5EUIvZEpp83Vm8=">AAACDHicbVDLSsNAFL2pWmt9VV26GSyKq5K4UJeFIrisaB/QhjKZTtqhk0yYmQih9Be61a9w5U7c+g9u/QV/wEnaTVoPDBzOuXPv4XgRZ0rb9rdV2NjcKm6Xdsq7e/sHh5Wj47YSsSS0RQQXsuthRTkLaUszzWk3khQHHqcdb9JI/c4zlYqJ8EknEXUDPAqZzwjWqXTXs91BpWrX7AxonThLUq0Xo7dHav00B5Xf/lCQOKChJhwr1XPsSLtTLDUjnM7K/VjRCJMJHtFplnCGzo00RL6Q5oUaZWpuriFxIjjOAqv8ChwolQSeWRJgPVarXir+5/Vi7d+6UxZGsaYhWWTwY460QGkTaMgkJZonhmAimQmPyBhLTLTpK3dlEpCZaclZ7WSdtK9qznXNfjB1XcACJTiFM7gEB26gDvfQhBYQGMMcXuDVmlvv1of1uRgtWMs/J5CD9fUHhCuevA==</latexit>

E[0]

<latexit sha1_base64="zktJk+im0R+GHFYvPEdfvfswO3s=">AAACDHicbVDLSsNAFL2pWmt9VV26GSyKq5K4UJeFIrisaB/QhjKZTtqhk0yYmQih9Be61a9w5U7c+g9u/QV/wEnaTVoPDBzOuXPv4XgRZ0rb9rdV2NjcKm6Xdsq7e/sHh5Wj47YSsSS0RQQXsuthRTkLaUszzWk3khQHHqcdb9JI/c4zlYqJ8EknEXUDPAqZzwjWqXTXc9xBpWrX7AxonThLUq0Xo7dHav00B5Xf/lCQOKChJhwr1XPsSLtTLDUjnM7K/VjRCJMJHtFplnCGzo00RL6Q5oUaZWpuriFxIjjOAqv8ChwolQSeWRJgPVarXir+5/Vi7d+6UxZGsaYhWWTwY460QGkTaMgkJZonhmAimQmPyBhLTLTpK3dlEpCZaclZ7WSdtK9qznXNfjB1XcACJTiFM7gEB26gDvfQhBYQGMMcXuDVmlvv1of1uRgtWMs/J5CD9fUHhdGevQ==</latexit>

E[1]

<latexit sha1_base64="MxBM84iCF+O/cSAKuSr26vAbSXk=">AAACDHicbVDLSgMxFL2pr1pfVZdugkVxVWa6UJeFIrisaB/QDiWTZtrQzIMkIwylv9CtfoUrd+LWf3DrL/gDZqbdTOuBwOGcm3sPx40EV9qyvlFhY3Nre6e4W9rbPzg8Kh+ftFUYS8paNBSh7LpEMcED1tJcC9aNJCO+K1jHnTRSv/PMpOJh8KSTiDk+GQXc45ToVLrr1ZxBuWJVrQx4ndhLUqlvR2+PDP00B+Xf/jCksc8CTQVRqmdbkXamRGpOBZuV+rFiEaETMmLTLOEMXxhpiL1QmhdonKm5uYYkSShIFljlVxBfqcR3zRKf6LFa9VLxP68Xa+/WmfIgijUL6CKDFwusQ5w2gYdcMqpFYgihkpvwmI6JJFSbvnJXJj6dmZbs1U7WSbtWta+r1oOp6xIWKMIZnMMV2HADdbiHJrSAwhjm8AKvaI7e0Qf6XIwW0PLPKeSAvv4Ah3eevg==</latexit>

E[2]

<latexit sha1_base64="TC4YgXUbn1MVODFyfDafwSohWfg=">AAACDHicbVDLSsNAFL3jo9b6qrp0EyyKq5IoqMtCEVxWtA9oQ5lMJ+3QSSbMTIRQ+gvd6le4cidu/Qe3/oI/4CTtJq0HBg7n3Ln3cLyIM6Vt+xutrW9sFraK26Wd3b39g/LhUUuJWBLaJIIL2fGwopyFtKmZ5rQTSYoDj9O2N66nfvuZSsVE+KSTiLoBHobMZwTrVLrrXrn9csWu2hmsVeIsSKVWiN4eKfpp9Mu/vYEgcUBDTThWquvYkXYnWGpGOJ2WerGiESZjPKSTLOHUOjPSwPKFNC/UVqbm5uoSJ4LjLLDKr8CBUkngmSUB1iO17KXif1431v6tO2FhFGsaknkGP+aWFlbahDVgkhLNE0MwkcyEt8gIS0y06St3ZRyQqWnJWe5klbQuq8511X4wdZ3DHEU4gVO4AAduoAb30IAmEBjBDF7gFc3QO/pAn/PRNbT4cww5oK8/iR2evw==</latexit>

E[3]

<latexit sha1_base64="LEquZ/yn0KNo/odk3NMe+RF08CE=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwAGOlLmwUQR9SG1WO67RWnTiyHaSo6i90ha9gYkOs/AMrv8AP4KRd0nIkS0fnXN97dLyIM6Vt+9sqbGxuFbdLO+Xdvf2Dw8rRcVuJWBLaIoIL2fWwopyFtKWZ5rQbSYoDj9OON2mkfueZSsVE+KSTiLoBHoXMZwTrVLrvOe6gUrVrdga0TpwlqdaL0dsjtX6ag8pvfyhIHNBQE46V6jl2pN0plpoRTmflfqxohMkEj+g0SzhD50YaIl9I80KNMjU315A4ERxngVV+BQ6USgLPLAmwHqtVLxX/83qx9m/dKQujWNOQLDL4MUdaoLQJNGSSEs0TQzCRzIRHZIwlJtr0lbsyCcjMtOSsdrJO2lc157pmP5i6LmCBEpzCGVyCAzdQhztoQgsIjGEOL/Bqza1368P6XIwWrOWfE8jB+voDlmGexw==</latexit>

O[1]

<latexit sha1_base64="iVgLx4V8m7FOT0cAFuUwyavIyWc=">AAACDHicbVC7TgJBFL2DL8QXamkzkWisyC6FWpLQ2IlRHglsyOwwCxNmH5mZNdkQfoFWv8LKztj6D7b+gj/g7EKz4EkmOTnnzr0nx40EV9qyvlFhY3Nre6e4W9rbPzg8Kh+ftFUYS8paNBSh7LpEMcED1tJcC9aNJCO+K1jHnTRSv/PMpOJh8KSTiDk+GQXc45ToVLrv1ZxBuWJVrQx4ndhLUqlvR2+PDP00B+Xf/jCksc8CTQVRqmdbkXamRGpOBZuV+rFiEaETMmLTLOEMXxhpiL1QmhdonKm5uYYkSShIFljlVxBfqcR3zRKf6LFa9VLxP68Xa+/WmfIgijUL6CKDFwusQ5w2gYdcMqpFYgihkpvwmI6JJFSbvnJXJj6dmZbs1U7WSbtWta+r1oOp6xIWKMIZnMMV2HADdbiDJrSAwhjm8AKvaI7e0Qf6XIwW0PLPKeSAvv4AmAeeyA==</latexit>

O[2]

<latexit sha1_base64="UlANQXPm6sGQlQroIPO+Rzdg0BY=">AAACDHicbVDLSsNAFL3jo9b6qrp0EyyKq5IoqMtCN+6saB/QhjKZTtqhk0yYmQih9Be61a9w5U7c+g9u/QV/wEnaTVoPDBzOuXPv4XgRZ0rb9jdaW9/YLGwVt0s7u3v7B+XDo5YSsSS0SQQXsuNhRTkLaVMzzWknkhQHHqdtb1xP/fYzlYqJ8EknEXUDPAyZzwjWqXTfvXL75YpdtTNYq8RZkEqtEL09UvTT6Jd/ewNB4oCGmnCsVNexI+1OsNSMcDot9WJFI0zGeEgnWcKpdWakgeULaV6orUzNzdUlTgTHWWCVX4EDpZLAM0sCrEdq2UvF/7xurP1bd8LCKNY0JPMMfswtLay0CWvAJCWaJ4ZgIpkJb5ERlpho01fuyjggU9OSs9zJKmldVp3rqv1g6jqHOYpwAqdwAQ7cQA3uoAFNIDCCGbzAK5qhd/SBPueja2jx5xhyQF9/ma2eyQ==</latexit>

O[3]

<latexit sha1_base64="jZXETBfHs3QLH7p0qKIKfzqSNCA=">AAACDHicbVC7TsMwFL0pUEp5FRhZLCoQU5UwAGOlLmwUQR9SG1WO67RWnTiyHaSo6i90ha9gYkOs/AMrv8AP4KRd0nIkS0fnXN97dLyIM6Vt+9sqbGxuFbdLO+Xdvf2Dw8rRcVuJWBLaIoIL2fWwopyFtKWZ5rQbSYoDj9OON2mkfueZSsVE+KSTiLoBHoXMZwTrVLrv2e6gUrVrdga0TpwlqdaL0dsjtX6ag8pvfyhIHNBQE46V6jl2pN0plpoRTmflfqxohMkEj+g0SzhD50YaIl9I80KNMjU315A4ERxngVV+BQ6USgLPLAmwHqtVLxX/83qx9m/dKQujWNOQLDL4MUdaoLQJNGSSEs0TQzCRzIRHZIwlJtr0lbsyCcjMtOSsdrJO2lc157pmP5i6LmCBEpzCGVyCAzdQhztoQgsIjGEOL/Bqza1368P6XIwWrOWfE8jB+voDlLuexg==</latexit>

O[0]

Figure 3: An N = 8 point FFT obtained by replacing the N = 4 DFT (green) boxes in Fig. 2 bythe N = 4 FFT in Fig. 1. Yellow boxes are 2-point DFTs. Note that this now has 3 = log2(8)computational stages, each with 4 = N/2, 2-point DFTs.

Page 7: A Brief Introduction to the FFT · 2021. 4. 22. · c K.M. Chugg - April 1, 2021{ A Brief Introduction to the FFT 4 fP igare (4 4) permutation matrices and fD igare (4 4) matrices

c©K.M. Chugg - April 1, 2021– A Brief Introduction to the FFT 7

5 Variations and Notes

Since the DFT is self-dual, the inverse DFT can be computed using an FFT architecture very similarto that used for the FFT. In fact, another popular architecture is to develop a fast transform forthe inverse DFT by starting with X[k] and decimating in frequency. This yields a computationalgraph that is essentially the transpose (reverse) of that in Fig. 3. Another interesting variantyields a computational graph for which the permutations between all stages are each the sameperfect shuffle permutation. This regular structure may be especially attractive for digital hardwareimplementations.

The FFTs considered in this handout are all “radix-2” FFTs, meaning that they continue tosimplify down to 2-point DFT computations. This can be generalized to radix-4 architectures wherethe basic DFT blocks are 4-point DFTs. This may be useful if one has a parallel processing resourcethat can compute a 4-point DFT matrix multiply in one clock cycle. This can be generalized toother values for the FFT radix, but the radix-2 architecture is by far the most widely employed.

Considering N to be a power of 2 simplifies the exposition and directly yields the decompositiondown to 2-point DFTs. Most software packages, however, support any value of N . The book byPorat [2] is a good reference for FFT development when N is not a power of 2. The matrixfactorization approach can yield interesting insights into the FFT. Poularikis and Seely’s book [3]develops the FFT using matrix factorizations and the traditional equation-based approach and isa good starting reference. This book also covers the fast Hadamard transform (FHT) which hasa development very similar to that of the FFT. In fact, there are other generalization of the FFTthat involve the selection of an orthogonal basis so that the change-of-coordinate matrix (e.g., FNin our case) can be factored into a sequence of permutation and block diagonal matrices. A popularreference for the FFT is Oppenheim and Schafer [4] and their notation and diagram conventionsare widely adopted in academia and industry.

References

[1] A. V. Oppenheim, A. S. Willsky, and I. T. Young, Signals and Systems. Englewood Cliffs, NewJersey: Prentice-Hall, 1983.

[2] B. Porat, A course in digital signal processing. Wiley, 1997.

[3] D. Poularikas and S. L. Seely, Signals and Systems. Boston, MA: B/C Engineering, 1985.

[4] A. V. Oppenheim and R. W. Schafer, Digital Signal Processing. Englewood Cliffs, New Jersey:Prentice-Hall, 1975.