Anda di halaman 1dari 32

EE4008 Digital Signal Processing

• Direct Computation of N Point DFT of real data x(n)


N
X −1
2πkn
XR (k) = x(n) cos
n=0 N
N
X −1
2πkn
XI (k) = − x(n) sin
n=0 N

• Resulting in:
1. 2N 2 evaluation of trigonometric functions
2. 2N 2 real multiplications
3. 2N (N − 1) real additions
4. indexing and addressing operations

FFT. Dr Liam Marnane


1 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Fast Fourier Transform

• Collection of algorithms to compute DFT efficiently


• Radix r is the smallest DFT performed:
– Radix 2, N = 2v
– Radix 4, N = 4v
• Decimation
– In Time :- input x(n) is decimated by factor r.
– In Frequency :- output X(k) is decimated by a factor
r at each stage.

FFT. Dr Liam Marnane


2 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Define
( −j2π )
WN = e N

Following Properties:
Periodic with period N
−j2π(k+N )
WNk+N = e ( N
)

( −j2πk ) ( −j2πN
)
= e N e N

( −j2πk )
= e N

= WNk

FFT. Dr Liam Marnane


3 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Odd Function
−j2π(k+ N
2 ))
k+ N (
WN 2 = e N

−j2π N
( −j2πk ) ( N 2 )
= e N e
( −j2πk )
= −e N

= −WNk

FFT. Dr Liam Marnane


4 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Decimation in Time FFT


N point DFT Then
N −1
x(n)WNnk
X
X(k) = k = 0, 1, . . . , N − 1
n=0

x(n)WNnk x(n)WNnk
X X
= +
neven nodd
(N/2)−1 (N/2)−1
k(2m+1)
x(2m)WN2mk
X X
= + x(2m + 1)WN
m=0 m=0

Let f1 (m) = x(2m) even samples, and f2 (m) = x(2m + 1)


odd samples. With WN2 = WN/2

FFT. Dr Liam Marnane


5 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

(N/2)−1 (N/2)−1
mk
WNk km
X X
X(k) = f1 (m)WN/2 + f2 (m)WN/2
m=0 m=0

= F1 (k) + WNk F2 (k) k = 0, 1, . . . , N − 1

N
F1 (k) and F2 (k) are periodic with period 2

N
F1 (k + ) = F1 (k)
2
N
F2 (k + ) = F2 (k)
2
k+ N
and WN 2 = −WNk

FFT. Dr Liam Marnane


6 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

N
Xlower = X(k) = F1 (k) + WNk F2 (k)
k = 0, 1, . . . , −1
2
N k N
Xupper = X(k + ) = F1 (k) − WN F2 (k) k = 0, 1, . . . , −1
2 2
A N point DFT X(k) of sequence x(0), x(1), . . . , x(N − 1)
can be expressed in terms of two N2 point DFTs:
N
• F1 (k) is 2
point DFT of even samples x(0), x(2), x(4), . . .
N
• F2 (k) is 2
point DFT of odd samples x(1), x(3), x(5), . . .

FFT. Dr Liam Marnane


7 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

N
8 Point DFT 2
=4
k=0 X(0) = X1 (0) + W80 X2 (0)
k=1 X(1) = X1 (1) + W81 X2 (1)
k=2 X(2) = X1 (2) + W82 X2 (2)
k=3 X(3) = X1 (3) + W83 X2 (3)
k=4 X(4) = X(0 + N/2) = X1 (0) − W80 X2 (0)
k=5 X(5) = X(1 + N/2) = X1 (1) − W81 X2 (1)
k=6 X(6) = X(2 + N/2) = X1 (2) − W82 X2 (2)
k=7 X(7) = X(3 + N/2) = X1 (3) − W83 X2 (3)

X1 (k) is 4 point DFT of x(0), x(2), x(4), x(6)


and X2 (k) is 4 point DFT of x(1), x(3), x(5), x(7).

FFT. Dr Liam Marnane


8 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

x(0) = x1 (0) X1 (0)

X(0)
x(2) = x1 (1) DFT X1 (1)

X(1)
x(4) = x1 (2) X1 (2)

N =4 X(2)
x(6) = x1 (3) X1 (3)

X(3)

Combining
X(4)
x(1) = x2 (0) X2 (0)

DFT X(5)
x(3) = x2 (1) X2 (1)

X(6)
x(5) = x2 (2) X2 (2)

N =4 X(7)
x(7) = x2 (3) X2 (3)

FFT. Dr Liam Marnane


9 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Calculation of 4 point DFTs X1 (k) and X2 (k)

X1 (0) = X3 (0) + W40 X4 (0)


X1 (1) = X3 (1) + W41 X4 (1)
X1 (2) = X1 (0 + N/2) = X3 (0) − W40 X4 (0)
X1 (3) = X1 (1 + N/2) = X3 (1) − W41 X4 (1)

Where X3 (k) is 2 point DFT of even terms of sequence


x(0), x(2), x(4), x(6) that is 2 point DFT of x(0) and x(4).
X4 (k) is 2 point DFT of odd terms of sequence x(0), x(2), x(4), x(6)
that is 2 point DFT of x(2) and x(6).

FFT. Dr Liam Marnane


10 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Likewise for X2 (k):

X2 (0) = X5 (0) + W40 X6 (0)


X2 (1) = X5 (1) + W41 X6 (1)
X2 (2) = X2 (0 + N/2) = X5 (0) − W40 X6 (0)
X2 (3) = X2 (1 + N/2) = X5 (1) − W41 X6 (1)

Where X5 (k) is 2 point DFT of even terms of sequence


x(1), x(3), x(5), x(7) that is 2 point DFT of x(1) and x(5).
X6 (k) is 2 point DFT of odd terms of sequence x(1), x(3), x(5), x(7)
that is 2 point DFT of x(3) and x(7).

FFT. Dr Liam Marnane


11 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

X3 (0)
x(0) = x3 (0) DFT
X1 (0)
X3 (1)
x(4) = x3 (1) N =2 X(0)
X1 (1)

Combining
X(1)
X4 (0) X1 (2)
x(2) = x4 (0) DFT
X(2)
X4 (1) X1 (3)
x(6) = x4 (1) N =2
X(3)

Combining
X(4)
X5 (0) X2 (0)
x(1) = x5 (0) DFT
X(5)
X5 (1) X2 (1)
x(5) = x5 (1) N =2

Combining
X(6)
X2 (2)
X6 (0)
x(3) = x6 (0) DFT X(7)
X2 (3)
X6 (1)
x(7) = x6 (1) N =2

FFT. Dr Liam Marnane


12 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Bit Reversal
Input Binary Bit Reversed Position
x(0) 000 000 0
x(1) 001 100 4
x(2) 010 010 2
x(3) 011 110 6
x(4) 100 001 1
x(5) 101 101 5
x(6) 110 011 3
x(7) 111 111 7

FFT. Dr Liam Marnane


13 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

FFT using Matrix Notation


• 8 Point DFT
• Matrix Vector Multiplication
• Define
( −j2π )
w=e 8

• w(k+8) = wk
• w(k+4) = −wk

FFT. Dr Liam Marnane


14 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

    
X(0) 1 1 1 1 1 1 1 1 x(0)
    
X(1)   1 w w2 w3 w4 w5 w6 w7 x(1)
    
  
    
w2 w4 w6 w8 w10 w12 w14
    

 X(2)   1
 

 x(2) 

w3 w6 w9 w12 w15 w18 w21
    
 X(3)   1  x(3) 
=
    
  

 X(4)   1
  w4 w8 w12 w16 w20 w24 w28 
 x(4) 

    
X(5)   1 w5 w10 w15 w20 w25 w30 w35 x(5)
    
  
    
X(6)   1 w6 w12 w18 w24 w30 w36 w42 x(6)
    
  
    
X(7) 1 w7 w14 w21 w28 w35 w42 w49 x(7)

FFT. Dr Liam Marnane


15 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

    
X(0) 1 1 1 1 1 1 1 1 x(0)
    
X(1)   1 w w2 w3 w4 w5 w6 w7 x(1)
    
  
    
w2 w4 w6 w2 w4 w6
    

 X(2)   1
  1 
 x(2) 

w3 w6 w4 w7 w2 w5
    
 X(3)   1 w  x(3) 
=
    
  

 X(4)   1
  w4 1 w4 1 w4 1 w4 
 x(4) 

    
X(5)   1 w5 w2 w7 w4 w1 w6 w3 x(5)
    
  
    
X(6)   1 w6 w4 w2 1 w6 w4 w2 x(6)
    
  
    
X(7) 1 w7 w6 w5 w4 w3 w2 w x(7)

FFT. Dr Liam Marnane


16 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

    
X(0) 1 1 1 1 1 1 1 1 x(0)
    
X(1)   1 w2 w4 w6 w w3 w5 w7 x(2)
    
  
    
w4 w4 w2 w6 w2 w6
    

 X(2)   1
  1 
 x(4) 

w6 w4 w2 w3 w7 w5
    
 X(3)   1 w  x(6) 
=
    
  

 X(4)   1
  1 1 1 w4 w4 w4 w4 
 x(1) 

    
X(5)   1 w2 w4 w6 w5 w7 w w3 x(3)
    
  
    
X(6)   1 w4 1 w4 w6 w2 w6 w2 x(5)
    
  
    
X(7) 1 w6 w4 w2 w7 w5 w3 w x(7)

FFT. Dr Liam Marnane


17 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

    
X(0) 1 1 1 1 1 1 1 1 x(0)
    
X(1)   1 j w w3 w5 w7 x(2)
    

  
−j −1 



−1 w2 w6 w2 w6
    

 X(2)   1
  −1 1 
 x(4) 

−1 −j w3 w7 w5
    
 X(3)   1 j w  x(6) 
=
    
  

 X(4)   1
  1 1 1 w4 w4 w4 w4 
 x(1) 

    
X(5)   1 j w5 w7 w w3 x(3)
    
 −j −1  
    
X(6)   1 1 −1 w6 w2 w6 w2 x(5)
    

  
−1 



X(7) 1 j −1 −j w7 w5 w3 w x(7)

FFT. Dr Liam Marnane


18 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

    
X(0) 1 1 1 1 1 1 1 1 x(0)
    
X(1)   1 j w w3 w5 7
w  x(2)
    

  
−j −1 



w2 w6 w2 6
    

 X(2)   1
  −1 1 −1 w  
 x(4) 

w3 w7 5
    
 X(3)   1 j −1 −j w w   x(6) 
=
    
  

 X(4)   1
  1 1 1 −1 −1 −1 −1  
 x(1) 

    
X(5)   1 j −w 3 −w5 −w7   x(3)
    
 −j −1 −w 
    
X(6)   1 1 −1 −w2 −w6 −w2 6 x(5)
    

  
−1 −w  



X(7) 1 j −1 −j −w 3 −w −w7 −w5 x(7)

FFT. Dr Liam Marnane


19 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

 
 A4 B4 
X= x
A4 −B4

where  

1 1 1 1 
 
 1 −j −1 j 
A4 = 



 1 −1 1 −1 


 
1 j −1 −j

and
B4 = w k A4

FFT. Dr Liam Marnane


20 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Decimation in Time Radix 2, 8pt FFT


x(0) X(0)

0
x(4) w8
X(1)
−1
0
x(2) w8 X(2)
−1
0 2
x(6) w8 w8
X(3)
−1 −1 0
w8
x(1) X(4)
1
−1
0
w8 w8
x(5) X(5)
−1 −1
0 2
x(3) w8 w8
X(6)
−1 −1
0 2 3
x(7) w8 w8 w8 X(7)
−1 −1 −1

FFT. Dr Liam Marnane


21 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

³ ´
X(0) = x(0) + w80 × x(4) + w80 x(2) + w80 × x(6)
³ ³ ´´
+w80 x(1) + w80 × x(5) + w80 x(3) + w80 × x(7)
= x(0) + x(1) + x(2) + x(3) + x(4) + x(5) + x(6) + x(7)
³ ´
X(1) = x(0) − w80 × x(4) + w82 x(2) − w80 × x(6)
³ ³ ´´
+w81 x(1) − w80 × x(5) + w82 x(3) − w80 × x(7)
= x(0) + w81 × x(1) + w82 × x(2) + w81 × w82 × x(3)
−x(4) − w81 × x(5) − w82 × x(6) − w81 × w82 × x(7)

FFT. Dr Liam Marnane


22 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Decimation in Frequency FFT


N point DFT
Then
N −1
x(n)WNnk
X
X(k) = k = 0, 1, . . . , N − 1
n=0
N
2
−1 N −1
x(n)WNnk + x(n)WNnk
X X
X(k) =
n=0 n= N
2
N N
−1 −1
2
N k/2
2
N
x(n)WNkn x(n + )WNkn
X X
X(k) = + WN
n=0 n=0 2

FFT. Dr Liam Marnane


23 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

kN
But WN 2 = (−1)k

N
−1
2
X · N
¸
X(k) = x(n) + (−1) x(n + ) WNkn
k

n=0 2

Let us split X(k) into even and odd Numbered Samples


N
−1 ·
2 ¸
X N pn N
X(2p) = x(n) + x(n + ) WN p = 0, 1, . . . , −1
n=0
2 2 2
N
−1 ½·
2 ¸ ¾
X N pn N
X(2p + 1) = x(n) − x(n + ) WNn W N p = 0, 1, . . . , −1
n=0
2 2 2

FFT. Dr Liam Marnane


24 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

N
Define 2
Point Sequence:
N N
g1 (n) = x(n) + x(n + ) n = 0, 1, 2, . . . , − 1
2 2
N N
· ¸
g2 (n) = x(n) − x(n + ) WNn n = 0, 1, 2, . . . , − 1
2 2
N
Then we have the 2
point DFTs of g1 (n) and g2 (n)
N
−1
2 X pn N
X(2p) = g1 (n)W N p = 0, 1, . . . , − 1
n=0 2 2
N
−1
2 X pn N
X(2p + 1) = g2 (n)W N p = 0, 1, . . . , − 1
n=0 2 2

FFT. Dr Liam Marnane


25 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

g1 (0) X(0)
x(0)
g1 (1) DFT X(2)
x(1)
g1 (2) X(4)
x(2) N =4
g1 (3) X(6)
x(3)

Combining
x(4)
g2 (0) X(1)
x(5) DFT
g2 (1) X(3)
x(6)
g2 (2) X(5)
x(7) N =4
g2 (3) X(7)

FFT. Dr Liam Marnane


26 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

x(0) g1 (0) X(0)

x(1) g1 (1) DFT X(2)

x(2) g1 (2) X(4)


N =4
x(3) g1 (3) X(6)

0
w8 g2 (0)
x(4) X(1)
1 DFT
−1 w8 g2 (1)
x(5) X(3)
−1 2
x(6) w8 g2 (2) X(5)
−1 N =4
3
x(7) w8 g2 (3) X(7)
−1

FFT. Dr Liam Marnane


27 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Decimation in Frequency Radix 2, 8pt FFT


x(0) X(0)

0
x(1) w8 X(4)
−1
0
x(2) w8 X(2)
−1 0
2
w8 w8
x(3) X(6)
0
−1 −1
w8
x(4) X(1)
−1 1 0
w8 w8
x(5) X(5)
−1 −1
2 0
x(6) w8 w8 X(3)
−1 −1 0
3
w8 2
w8 w8
x(7) X(7)
−1 −1 −1

FFT. Dr Liam Marnane


28 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

8 Point DFT Example


µ ¶
Data x = 1 1 1 1 0.5 0.5 0.5 0.5
8 Point DFT is:
 
  1 1 1 1 1 1 1 1  
X(0) −jπ −j3π j3π jπ x(0)
X(1)
 1 e 4 −j e 4 −1 e 4 j e 4  x(1)
    
 X(2)   1 −j −1 j 1 −j −1 j  x(2) 
   −j3π −jπ jπ j3π  
 X(3) = 1 e 4 j e 4 −1 e 4 −j e 4  x(3) 
1 1 1 1
 X(4)
  −1 −1 −1 −1
 x(4)

   j3π jπ −jπ −j3π
 
 X(5)   1 e 4 −j e 4 −1 e 4 j e 4
 x(5) 
    
X(6)  1 j −1 −j 1 j −1 −j  x(6)
X(7) jπ j3π −j3π −jπ x(7)
1 e 4 j e 4 −1 e 4 −j e 4

FFT. Dr Liam Marnane


29 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

8 Point DFT Example

 
  1 1 1 1 1 1 1 1  
6 −jπ −j3π j3π jπ 1
0.5 − 1.270711j
 1 e 4 −j e 4 −1 e 4 j e 4  1
    
 0   1 −j −1 j 1 −j −1 j  1 
   −j3π −jπ jπ j3π  
 0.5 − 0.20711j = 1 e 4 j e 4 −1 e 4 −j e 4  1 
0 1 1 1 1 0.5
   −1 −1 −1 −1
 
   j3π jπ −jπ −j3π
 
 0.5 + 0.270711j   1 e 4 −j e 4 −1 e 4 j e 4
 0.5 
    
0  1 j −1 −j 1 j −1 −j  0.5
0.5 + 1.270711j jπ j3π −j3π −jπ 0.5
1 e 4 j e 4 −1 e 4 −j e 4

Note
π π 1 j
µ ¶ µ ¶
−jπ
e 4 = cos − j sin =√ −√
4 4 2 2

FFT. Dr Liam Marnane


30 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Decimation in Time Radix 2, 8pt FFT


1 X(0)

0
w8 =1
0.5 X(1)
−1
0
w8 =1 X(2)
1
−1
0 2
w8 =1 w8 = −j
0.5 X(3)
−1 −1
0
w8 =1
1 X(4)
1 1−j −1
0 w8 = √
w8 =1 2 X(5)
0.5

−1 −1
0 2
w8 =1 w8 = −j
1 X(6)
−1 −1
0 2 3 1+j
w8 =1 w8 = −j w8 =− √
0.5 2 X(7)

−1 −1 −1

FFT. Dr Liam Marnane


31 email: liam@rennes.ucc.ie
EE4008 Digital Signal Processing

Decimation in Time Radix 2, 8pt FFT


1 X(0)

0.5 X(1)
−1
1 X(2)
−1
0.5 X(3)
−1 −1
1 X(4)
−1
0.5 X(5)

−1 −1
1 X(6)
−1 −1
0.5 X(7)

−1 −1 −1

FFT. Dr Liam Marnane


32 email: liam@rennes.ucc.ie

Anda mungkin juga menyukai