Sunteți pe pagina 1din 14

8-Point Decimation-In-Frequency

FFT algorithm Derivation


Class Report:
Student:

Definition of Discrete Fourier Transform


Definition of discrete Fourier transform: Let x[n] be a

finite-length sequence of length N, that is


outside the range of 0 n N - 1
x[ n ] = 0
The DFT of x[n], denoted by X[k], is defined as
X [k ] =

N 1

n=0

x [ n ]W Nn k

for 0 k N-1

where WNm = e2 m / N = cos( 2Nm ) j sin( 2Nm )


The Inverse DFT (IDFT) is given by

1 N 1
x[ n ] = X [ k ]W N kn
for 0 n N-1
N n=0
The DFT pair is denoted by
x[ n ] X [ k ]

Computing Discrete Fourier Transform


Definition of discrete Fourier transform (DFT):
N 1

X ( k ) = x ( n )W Nnk
n=0

For 0 k N-1

WNm = e 2m / N = cos( 2m / N ) j sin( 2m / N )


FFT: fast DFT computation
- Uses algebraic identities to compute DFT in
O(NlogN) steps
- The computation is organized into logrN stages
for the radix-r FFT

Computing Discrete Fourier Transform


Definition of discrete Fourier transform (DFT):
X (k ) =

N 1

n=0

x ( n )W Nnk

For 0 k N-1

WNm = e 2m / N = cos( 2m / N ) j sin( 2m / N )


FFT: fast DFT computation
- Uses algebraic identities to compute DFT in
O(NlogN) steps
- The computation is organized into logrN stages
for the radix-r FFT
Size

16

64

256

1024

DFT

256

4096

65,536

1,048,576

FFT

32

192

1,024

5,120

4096

16384

16,777,216 268,435,456
24,576

114,688

65536
4,294,967,296
524,288

Formation of FFT by Decimation-In-Frequency1

Definition of DFT:
N 1

X [ k ] = x[ n]e

j (2 / N ) kn

n =0

= x[ n]WNkn
n =0

Decompose sequence into first half and second half


N/2-point sequences
X [k ] =

N / 2 1

nk
N

x[n]W

n =0

N 1

n= N / 2

x[ n]WNnk

Changing the variable n = m + N/2 of the second term


N /2 1

N /2 1

N mk
X [ k ] = x[n]W + W
x[m + ]WN

2
n =0
m=0
N / 2 1
N
k
X [k ] = {x[ n] + (1) x[ n + ]}WNnk
2
n =0
nk
N

( N / 2) k
N

If k is even, we get
X [k ] =

N / 2 1

n =0

N
{x[n] + (1) x[n + ]}WNnk
2
k

Formation of FFT by Decimation-In-Frequency2

If k is even, we get
N / 2 1

N
X [2l ] = {x[n] + (1) x[ n + ]}WN2 nl
2
n=0
N / 2 1
N
N
= {x[n] + x[n + ]}WNnl/ 2 , 0 l 1
2
2
n=0
k

If k is odd, we get
N / 2 1

N
n (2 l +1)
]}
W

N
2
n =0
N /2 1
N
N
n
nl
= {x[n] x[n + ]}WN WN 2 , 0 l 1
2
2
n =0

X [2l + 1] =

{x[ n] x[ n +

The above two equations represent the N/2-point DFTs of the


following two N/2-point sequences
x0 [n] = ( x[n] + x[n + N2 ])

x1[n] = ( x[n] x[n + N2 ])WNn , 0 n

N
2

Two-Point DFT DIF Butterfly Operation

Equations for DIF butterfly operations


x0 [n] = x[n] + x[n + N2 ]

x1[n] = ( x[n] x[n + N2 ])WNn


xl [n]

x0 [n]

N
X l [n + ]
2

x1[n]

x0 [n] WN0
x [ n] =
1 0

WNn
xl [n]
0 1 1

WNn 1 1 xl [n + ]

8-Point DFT
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)

X(0)

W80

X(1)

X [0] W80
X [1] 0
0 W8
W
X 8[2] W80

0
X
[3]

= W8
W 0
X [4]
W
0 80
X8[5] W8
W
X [6] W 0

80
X [7] W8
0
8

W80 W
W880 W80 W80 W80 W80 W80 x[0]

W81 W82 W83 W84 W85 W86 W87 x[1]


2
2 W4
W8 W88 W86 W80 W82 W84 W86 x[2]

2
W83 W86 W81 W84 W87 W
W85 x[3]
08
W8 0
4
0
4
0
4
W8 W8 W8 W8 W8 W8 W84 x[4]

02
1 6
5
7
4
1
3
W8 W
W8 W8 W8 W8 W8W8 W8 x[5]
4
2

x
[6]
W86 W84 W82 W80 W86 W
W
8
8
2

7
6
5
4
3W8 2
1
W8 W8 W8 W8 W8 W8 W8 x[7]

W82

W84

Number of Complex Multiplications: N2 = 64

X(2)
X(3)
X(4)
X(5)
X(6)
X(7)

8-Point DIF FFT Derivation


x(0)

x0 [0]

X(0)

W80

x(1)

x0 [1]

x(2)

x0 [2]

N/2-Point
W80
DFT

x0 [3]

W82

x(3)
x(4)
x(5)
x(6)
x(7)

X(2)
X(4)

W80

W80x1[0]
W81x1[1]

X(6)
X(1)

W82x1[2]

N/2-Point
W80
DFT

W84x1[3]

W82

W80

X(3)
X(5)
X(7)

8-Point DIF FFT Derivation


x(0)

x0 [0]

X(0)

W80

x(1)

x0 [1] X [0] W 0 W 0 W 0 W 0 x [0]


0
4
4
4
4

x(2)

x0 [2]

x(3)
x(4)
x(5)
x(6)
x(7)

x0 [3]

N/2-Point
DFT

x [1]
X [2] 0
1
2
3
W
W
W
W
0
4
4
4
4

= W
= 0
0
2
4
2
8
X [4] W4 W4 W4 W4 x0 [2]

0
3
2
1
x
[3]
X
[6]
2
0
W
W
W
W

W
0
W

4
4
4
4
8

W80x1[0]
W81x1[1]

X(2)
X(4)
X(6)
X(1)

W82x1[2]

N/2-Point
W80
DFT

W84x1[3]

W82

W80

X(3)
X(5)
X(7)

8-Point DIF FFT Linear Input


x(0)

x0 [0]

x00 [0]

x(1)

x0 [1]

x00 [1]

x(2)

x0 [2]

x(3)
x(4)
x(5)
x(6)
x(7)

x0 [3]

N/4-Point
DFT

X(0)

N/4-Point
2
W8 x01[1]
DFT

X(2)

W80 x01[0]

W80x1[0]

x10 [0]

W81x1[1]

x10 [1]

W82x1[2]

W80 x11[0]

W83x1[3]

W82x11[1]

X(4)

X(6)

N/4-Point
DFT

X(1)

N/4-Point
DFT

X(3)

X(5)

X(7)

8-Point DIF FFT Linear Input


x(0)

x0 [0]

x00 [0]

x(1)

x0 [1]

x00 [1]

x(2)

x0 [2]

W80 x01[0]

x0 [3]

W82 x01[1]

W80x1[0]

x10 [0]

W81x1[1]

x10 [1]

W82x1[2]

W80 x11[1]

x(3)
x(4)
x(5)
x(6)
x(7)

W83x1[3]

X [0] W20 W20 x[0]


0
X [4] = 0
1
x[1]

W2 W2 8

X(0)

X(4)

N/4-Point0
DFTW8

X(2)

N/4-Point0
DFTW8

X(1)

N/4-Point
2
W8 x11[0]
DFT

X(3)

X(6)

X(5)

X(7)

8 Point DIT FFT Bit-Reverse Input


x(0)
x(4)

X(0)

W80
W80

x(2)
x(6)

X(1)

W80

W82

W80

x(3)
x(7)

X(3)

W80

x(1)
x(5)

X(2)

W80

W81
W80

W82

W82

W83

X(4)
X(5)
X(6)
X(7)

16-Point Linear Input FFT Signal Flow


x(0)

X(0)

x(1)

x(2)

x(3)

x(4)

x(5)

x(6)

x(7)
x(8)
x(9)

0
0
0

x(10)

x(11)

x(12)

x(13)

x(14)

x(15)

0
2

3
4
5
6
7

X(8)
X(4)

X(12)
X(2)

4 4
6 4

0
1
2

0
4 4

0
4 6

X(10)
X(6)

X(14)
X(1)

1
2
2
4
4
4
4

0
2
4 6
6 6

0
4 5

X(9)
X(5)

X(13)
X(3)

3
0
4 7

X(11)
X(7)

0 X(15)