You are on page 1of 128

Nguyễn Công Phương

SIGNAL PROCESSING

The Discrete Fourier Transform


Contents
I. Introduction
II. Discrete – Time Signals and Systems
III. The z – Transform
IV. Fourier Representation of Signals
V. Transform Analysis of LTI Systems
VI. Sampling of Continuous – Time Signals
VII.The Discrete Fourier Transform
VIII.Structures for Discrete – Time Systems
IX. Design of FIR Filters
X. Design of IIR Filters
XI. Random Signal Processing
s i tes.google.com/site/ncpdhbkhn 2
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 3
Computational Fourier Analysis
(1), Summary

s i tes.google.com/site/ncpdhbkhn 4
Computational Fourier Analysis
(2), CTFT
∞ ∞
X c ( jΩ) =  xc (t )e− jΩt dt ≈
−∞

n= −∞
xc (nT )e− jΩnT (T ) = Xˆ c ( jΩ)

Xˆ c ( jΩ) = TXɶ ( e jω ) , x[n] = xc (nT ) 


DTFT
→ Xɶ (e jω )
ω =Ω T

1 ∞
 2π 
Xɶ ( e jΩ T
)=
T

l =−∞
X c  jΩ − j

l
T 

TXɶ (e jΩT ), Ω <π /T


X c ( jΩ) = 
0, otherwise

s i tes.google.com/site/ncpdhbkhn 5
Computational Fourier Analysis
(3), CTFS
xɶ [ n ]= xɶ c ( nT )
xɶc (t + T0 ) = xɶc (t ) 
→ xɶ[n + N ] = xɶ[n]
T =T0 / N

N −1 N −1 2π
1 1 −j
ck ≈  xɶc (nT )e  xɶ[n]e
− jk Ω0nT kn
(T ) = N
= cɶk
T0 n=0 N n=0

2π 2π
Ω0 = = T
T0 N

s i tes.google.com/site/ncpdhbkhn 6
Computational Fourier Analysis
(4), DTFT

Xɶ (e ) =

 x[n]e
n =−∞
− jωn

N −1
Xɶ (e ) ≈  x[n]e− jωn = Xɶ N (e jω )

n= 0

1, 0 ≤ n ≤ N −1
Xɶ N (e jω ) ←
DTFT
 xN [n ] = x[n ] pN [n ], pN [ n] = 
0, otherwise

X [k ] = Xɶ N (e jω ), k = 0, 1, ..., K − 1

 X [0]   e jω0 0 e jω0 1 ⋯ e jω0 ( N −1)


  x[0] 
 X [1]   jω1 0  
 = e e jω11 ⋯ e jω1 ( N −1)
 x[1]

 ⋮   ⋮ ⋮ ⋱ ⋮  ⋮ 
   jωK −1 0  
 X [ K − 1] e e jωK−11 ⋯ e jωK −1 ( N −1)   x[ N − 1]

↔ X = Wx → x = W−1X
s i tes.google.com/site/ncpdhbkhn 7
Computational Fourier Analysis
(5), DTFT
N −1 x = W − 1X
Xɶ ( e jω ) ≈  x[n ]e− jωn = Xɶ N (e jω )
n =0


ωk = k, k = 0,1,..., N − 1
N
N −1 2π
−j
→ X [ k ] =  x[ n]e
kn
N
, k = 0, 1,..., N − 1
n= 0
2π 1
1 N −1 − j kn → cɶk =
cɶk =  xɶ[n ]e N N
X [k ]
N n =0 N −1 2π
x[n] =  cɶk e
j kn
xɶ[n] = x[ n] N

k =0

N −1 2π
1
 X [k ]e
j kn
→ x[ n] = N
, n = 0, 1,..., N − 1
N k =0
s i tes.google.com/site/ncpdhbkhn 8
Computational Fourier Analysis
Ex. (6), DTFT 2π
N −1 −j
x[n] = {0,1, 2,3} X [ k ] =  x[ n]e
kn
N , k = 0,1,..., N − 1

n =0

3 2π
−j
=  x[ n]e
kn
N , k = 0, 1, 2, 3
n =0

2π 2π 2π 2π
−j 0×0 −j 0×1 −j 0×2 −j 0×3
X [0] = x[0]e 4 + x[1]e 4 + x[ 2]e 4 + x[3]e 4

= 0e0 + 1e0 + 2e0 + 3e0 = 6


2π 2π 2π 2π
−j 1×0 −j 1×1 −j 1× 2 −j 1×3
X [1] = x[ 0]e 4 + x[1]e 4 + x[ 2]e 4 + x[3]e 4

= 0e 0 + 1e − j2 π / 4 + 2e − j 4 π / 4 + 3e − j 6π / 4 = e − jπ /2 + 2e − jπ + 3e − j 3π / 2
= 1[cos(−π / 2) + j sin( −π / 2)] + 2[cos(−π ) + j sin( −π )]
+ 3[cos( −3π / 2) + j sin(−3π / 2)]
= 1( 0 − j ) + 2( −1 + j 0) + 3(0 + j ) = −2 + j 2
s i tes.google.com/site/ncpdhbkhn 9
Computational Fourier Analysis
Ex. (7), DTFT
x[n] = {0,1, 2,3} X [k ] = {6, −2 + j 2, −2, −2 − j 2}
↑ ↑
N −1 2π
1 j kn
x[ n] =
N
 X [k ]e
k =0
N
, n = 0,1,..., N − 1
2π 2π 2π 2π
1 j 0×0 j 1×0 j 2×0 j 3×0 
x[ 0] =  X [0]e 4 + X [1]e 4 + X [ 2]e 4 + X [3]e 4

4 
=
1
4
{
6e0 + ( −2 + j 2)e0 + (−2)e0 + ( −2 − j 2)e0 = 0 }
2π 2π 2π 2π
1 j 0×1 j 1×1 j 2×1 j 3×1 
x[1] =  X [0]e 4 + X [1]e 4 + X [ 2]e 4 + X [3]e 4 
4 
=
1
4
{
6e0 + ( −2 + j 2)e jπ / 2 + ( −2)e jπ + ( −2 − j 2)e j3π / 2 }
1
= {6 + ( −2 + j 2) j + (−2)(−1) + ( −2 − j 2)(− j )} = 1
4
s i tes.google.com/site/ncpdhbkhn 10
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
a) Algebraic Formulation of DFT
b) Matrix Formulation of DFT
c) Inherent Periodicity of DFT and IDFT
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 11
Algebraic Formulation of DFT
(1)
N −1 2π
−j
X [ k ] =  x[n ]e
kn
N
, 0 ≤ k ≤ N −1
n =0

N −1 2π
1
 X [k ]e
j kn
x[n] = N
, 0 ≤ n ≤ N −1
N k =0

N −1 N −1
1
x[n] =
N
 X [k ]W
k =0
− kn
N
←
−j
2π → X
N , WN = e
DFT
[ k ] =  x[
N
n ]WN
kn

n= 0

Synthesis equation Analysis equation

s i tes.google.com/site/ncpdhbkhn 12
Algebraic Formulation of DFT
(2)
N

 
(W )
−j k
−k N − j 2π k
N = e N
 = e =1
 
Ex. 1
W32 W64 W65
N =3
1 1

0.8

0.6
0.8

0.6
N =6
0.4 0.4
Imaginary Par t

Imaginary Par t
0.2 0.2

0
W30 0
W63 W60
-0.2 -0.2

-0.4 -0.4

-0.6 -0.6

-0.8 -0.8

W61
-1 -1
1
W
-1
3
-0.5 0
Real Part
0.5 1 -1 W62 -0.5 0
Real Par t
0.5 1

N −1
0, if m = 1
W N
km
=
if m = 0
k =0 N,
s i tes.google.com/site/ncpdhbkhn 13
Algebraic Formulation of DFT
(3)
N

 
(W )
N −j k
−k − j 2π k
N = e N
 = e =1
 
Ex. 1 2 −j

0
W W =e0 3
= e0 = 1 = 1 0
N =3
1
3 3
0.8

−j 1  2π   2π 
W =e = cos  − + − 3 
0.6
1 3
0.4 3  j sin cos
 3   
Imaginary Par t

0.2

0
W30 = −0.5 − j0.866 = 1 − 2π / 3
-0.2

-0.4 −j 2  4π   4π 
-0.6
W =e
3
2 3
= cos  −  + j sin cos − 3 
-0.8
 3   
-1

W31
-1 -0.5 0 0.5 1
= −0.5 + j 0.866 = 1 2π / 3
Real Part

N −1
0, if m = 1
W N
km
=
if m = 0
k =0 N,
s i tes.google.com/site/ncpdhbkhn 14
Algebraic Formulation of DFT
Ex. 2 (4)
Find DFT of unit sample pulse?
N −1 N −1
X [ k ] =  x[ n]W N
kn
=  δ [ n]WNkn
n =0 n =0
N −1
X [0] =  δ [ n]WN0 n
n= 0

= δ [0]WN0×0 + δ [1]WN0×1 + δ [ 2]WN0×2 + ⋯ + δ [ N − 1]WN0( N −1)


= 1 × 1 + 0 ×1 + 0 × 1 + ⋯ + 0 × 1 = 1
N −1
X [1] =  δ [n]WN1n
n =0

= δ [0]WN1×0 + δ [1]WN1×1 + δ [2]WN1×2 + ⋯ + δ [ N − 1]WN1( N −1)


= 1× 1 + 0 × WN1×1 + 0 × WN1×2 + ⋯ + 0 × WN1( N −1) = 1
s i tes.google.com/site/ncpdhbkhn 15
Algebraic Formulation of DFT
Ex. 2 (5)
Find DFT of unit sample pulse? X [k ] = {1, 1,1,..., 1}

N −1 2π 2π 2π
1 1 N −1 j N kn 1 N −1

 X [k ]e = 1e e
j kn j kn
x[n] = N
= N
N k =0 N k =0 N k =0

1  j 2Nπ 0×0 2π
j 1× 0

j ( N −1)× 0  1 0 0
x[0] =  e + e N
+ ... + e N
 = 
 e + e + ... + e 0
 = 1
N   N

1  j 2Nπ 0×1 2π
j 1×1

j ( N −1)×1 
x[1] = e + e N + ... + e N 
N  
→ x[1] = 0
N −1
0, if m = 1 2π

 N
j k
W km
= , WNk = e N

k= 0 N , if m = 0
s i tes.google.com/site/ncpdhbkhn 16
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
a) Algebraic Formulation of DFT
b) Matrix Formulation of DFT
c) Inherent Periodicity of DFT and IDFT
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 17
Matrix Formulation of DFT (1)
 X [0]  1 1 ⋯ 1   x[0] 
 X [1]  1 W 1 ⋯ WNN −1   x[1] 
 = N  
 ⋮  ⋮ ⋮ ⋱ ⋮  ⋮ 
   N −1  
 X [ K − 1]  1 W N ⋯ WN( N −1)( N −1)   x[ N − 1]

↔ X N = WN x N → x N = WN−1X N
T
w k = 1 W k
N
⋯ W ( N −1) k
N


w = 1*
H
k  (W ) k *
N ⋯ (W ( N −1) k *
N ) 
N −1
0, if k ≠ m
w w m = W
H − kn
W mn
=
if k = m
k N N
n =0  N,
s i tes.google.com/site/ncpdhbkhn 18
Matrix Formulation of DFT (2)
X N = WN x N → x N = WN−1X N

N −1
0, if k ≠ m
w w m = W
H − kn
W mn
=
if k = m
k N N
n =0  N,

→ WNH WN = NI N

1 H 1 *
→ WN−1 = WN = WN
N N

1 H 1 *
→ x N = WN X N = WN X N
N N

s i tes.google.com/site/ncpdhbkhn 19
Matrix Formulation of DFT (3)
 X [0]  1 1 ⋯ 1   x[0] 
 X [1]  1 W 1 ⋯ WNN −1   x[1] 
 = N  
 ⋮  ⋮ ⋮ ⋱ ⋮  ⋮ 
   N −1  
 X [ K − 1]  1 W N ⋯ WN( N −1)( N −1)   x[ N − 1]

X N = WN x N

N −1
1 H 1 * 1
x N = WN X N = WN X N =
N N N
 X
k =0
[ k ] w *
k

s i tes.google.com/site/ncpdhbkhn 20
Matrix Formulation of DFT (4)
Ex.
Given x[0] = 0, x[1] = 1, x[2] = 2, x[3] = 3. Find their DFT coefficients?
0× 0
 X [0]   WN WN1×0 WN2×0 ⋯ WN( N −1)0   x[0] 
 X [1]   W 0×1 W 1×1
W 2×1
⋯ WN ( N −1)1  
x[ 1] 
   N N N  
 X [ 2]  =  WN0×2 WN1×2 WN2×2 ⋯ WN ( N −1) 2
  x[2] 
    
 ⋮   ⋮ ⋮ ⋮ ⋱ ⋮  ⋮ 
 X [ N − 1] WN0( N −1) WN1( N −1) WN2 ( N −1) ⋯ ( N −1)( N −1) 
WN   x[n − 1]

 X [0] W40×0 W41×0 W42×0 W43×0   0


 X [1]  W 0×1 
W41×1 W42×1 W43×1  1 
→ = 4  
 X [2] W40×2 W41× 2
W42× 2
W4   2
3×2

   0×3 1×3 2× 3 3×3   


 X [3]  W4 W4 W4 W4   3

s i tes.google.com/site/ncpdhbkhn 21
Matrix Formulation of DFT (5)
Ex.
Given x[0] = 0, x[1] = 1, x[2] = 2, x[3] = 3. Find their DFT coefficients?

 X [0] W40×0 W41×0 W42×0 W43×0   0


 X [1]  W 0×1 W41×1
W42×1 3×1   
W4  1
 = 4  
 X [2] W40×2 W41×2
W42× 2
W4   2
3×2

   0×3 1×3 2×3 3× 3   


 X [3] W4 W4 W4 W4   3

W40 W40 W40 W40   0 1 1 1 1   0


 0   3
W41 W42 W43  1  1 W4 W4 W4   1
1 2
W4
=   =  
W40 W4 W4 W4   2 1 W4 W4 W4   2
2 4 6 2 4 6

 0 3 6 9   3 6 9 
W4 W4 W4 W4   3  1 W4
W 4
W 4   3

s i tes.google.com/site/ncpdhbkhn 22
Matrix Formulation of DFT (6)
Ex.
Given x[0] = 0, x[1] = 1, x[2] = 2, x[3] = 3. Find their DFT coefficients?

 X [0] 1 1 1 1  0  W32 = W35


N =3
1

 X [1]  1 W 1 W 2 W 3  1  0.8

= 4 
0.6

 4 4
  0.4

 X [2] 1 W4 W4 W4  2 
2 4 6

Imagi nary Part


0.2

W30 = W33
   9 
0

3 6 -0.2

 X [ 3]  1 W4
W 4
W 4   3 -0.4

-0.6

−j k -0.8

W 4
k +4
=W = e
4
k 4 -1

W31 = W34
-1 - 0.5 0 0.5 1
Real Pa rt

 X [0] 1 1 1 1   0
 X [1]  1 W 1 W 2 W 3  1 
→ = 4 4 4 
 
 X [2] 1 W4 2
1 W4  2 
2

   3 2 1 
 X [ 3]  1 W4
W 4
W 4   3

s i tes.google.com/site/ncpdhbkhn 23
Matrix Formulation of DFT (7)
Ex.
Given x[0] = 0, x[1] = 1, x[2] = 2, x[3] = 3. Find their DFT coefficients?

 X [0] 1 1 1 1   0 1 1 1 1   0   6 
 X [1]  1 W 1 W 2 W 3   1 1 − j −1 j   1   −2 + j2 
 = 4 4 4 
  =   =  
 X [2] 1 W42 1 W42   2 1 −1 1 −1   2   −2 
   1      
 X [ 3]  1 W4
3
W 4
2
W 4  
3 1 j − 1 − j   
3 − 2 − j 2 
2π π
k+ 4
−j k −j k π  π 
W 4 =W = e
4
k 4
=e 2
= cos  k  − j sin  k 
2  2 
W41 = cos(π / 2) − j sin(π / 2) = − j

W42 = cos(2π / 2) − j sin(2π / 2) = −1

W43 = cos(3π / 2) − j sin(3π / 2) = j


s i tes.google.com/site/ncpdhbkhn 24
Matrix Formulation of DFT (8)
Ex.
Given x[0] = 0, x[1] = 1, x[2] = 2, x[3] = 3. Find their DFT coefficients?
 X [0]  6 
 X [1]  −2 + j 2
 = 
 X [2]  −2 
   
 X [ 3]   −2 − j 2 
1
x N = WN* X N
N
1 1 1 1  1 1 1 1 
1 − j −1 j  1 j −1 − j 
WN =  →W =
* 
1 −1 1 −1 N
1 −1 1 −1
   
1 j −1 − j  1 − j −1 j 
 x[0] 1 1 1 1   6  0 
 x[1]  1 j −1 − j  −2 + j 2  1 
1
→ =   = 
 x[2] 4 1 −1 1 −1  −2  2 
      
 x [ 3]  1 − j −1 j  − 2 − j 2   3
s i tes.google.com/site/ncpdhbkhn 25
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
a) Algebraic Formulation of DFT
b) Matrix Formulation of DFT
c) Inherent Periodicity of DFT and IDFT
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 26
Inherent Periodicity of
DFT and IDFT
WN( k +N )n = WNkn = WNk ( N +n )
0 n
N −1
x[n]
N −1
Xɶ [ k + N ] = Xɶ [k ] =  x[n]WNkn , for all k DFT
n =0

IDFT
xɶ[n + N ] = xɶ[n], for all n xɶ[n ]

⋯ ⋯
0 N −1 n

s i tes.google.com/site/ncpdhbkhn 27
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
a) Frequency – Domain Sampling
b) Time – Domain Aliasing
c) Reconstruction of DTFT
d) Relationship between CTFT, DTFT, and DFT
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 28
Frequency – Domain Sampling
(1)
X(z)
Unit circle

X[k]
1
x[n] =  Xɶ (e )e
jω − jω n

2π 0

2π ∞ 2π
−j
 x[ n]e
j k kn
X [ k ] = Xɶ ( e N
)= N

n =−∞


j k 2π
X [ k ] = X ( z ) z=e j (2 π / N )k = Xɶ (e N
) 0 N
N −1
1
0

s i tes.google.com/site/ncpdhbkhn 29
Frequency – Domain Sampling

(2) X (e )
x[ n]
IDTFT

ω
0 n 0 π 2π
X ( e jω )

 x[n − 12l]
l =−∞
IDFT
N = 12
ω
0 n 0 π 2π

X ( e jω )
 x[n − 6l ]
l =−∞
IDFT
N=6
ω
0 n 0 π 2π
s i tes.google.com/site/ncpdhbkhn 30
Frequency – Domain Sampling
(3)
∞ 2π ∞ lN + N −1 2π
−j −j
 
kn
 x[ n]e
kn
X [k] = N = x[n]e N
, 0 ≤ k ≤ N −1
n= −∞ l =−∞ n= lN

N −1 2π
 ∞  − j N kn
=    x[n − lN ]  e
n = 0  l =−∞ 
∞ N −1 2π

 x[n − lN ] = xɶ[n ] =  cɶ e
j kn
N
k
l =−∞ k =0

N −1 2π
1 −j
 xɶ[n]e
kn
cɶk = N
N k =0

N −1 2π 2π N −1
1 1
 Xɶ ( e 
j kn j kn
− kn
→ xɶ[n ] = N
)e N
= X [ k ]WN
N k =0 N k =0

s i tes.google.com/site/ncpdhbkhn 31
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
a) Frequency – Domain Sampling
b) Time – Domain Aliasing
c) Reconstruction of DTFT
d) Relationship between CTFT, DTFT, and DFT
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 32
Time – Domain Aliasing
Ex. 1
1
x[n] = a u[n ], 0 < a < 1 ←→ Xɶ ( e ) =
DTFT
n jω

1 − ae− jω
2
N= 8
N = 16
Origin
1 .5

Amplitude
N −1 2π 2π
1 j k j kn 1

xɶ[n ] =
N
 Xɶ (e
k =0
N
)e N

0 .5

0
2 4 6 8 10 12 14 16

x[n] → Xɶ → Xɶ N → x[ n] → Xɶ
n

10
Origin
9
N = 16
8 N= 8

7
M agnitude

2π N −1 2π 6

) =  xɶ[ n]e
j k j kn
Xɶ N (e N N 5

4
k =0
3

1
100 200 300 400 500 600
ω
s i tes.google.com/site/ncpdhbkhn 33
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
a) Frequency – Domain Sampling
b) Time – Domain Aliasing
c) Reconstruction of DTFT
d) Relationship between CTFT, DTFT, and DFT
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 34
Reconstruction of DTFT (1)

j k
x[ n] 
DTFT
→ X [k ] = Xɶ ( e N ), 0 ≤ k ≤ N − 1 
IDTFT
→ x[ n], 0 ≤ n ≤ N − 1

2π N −1 2π
−j
) =  x[n]e
j k kn
Xɶ ( e N K
, 0 ≤ k ≤ K −1
n =0

 x[n], 0 ≤ n ≤ N − 1
xzero − padded [n ] = 
0, N ≤ n ≤ K −1

2π N −1 2π N −1
−j
) =  x[ n]e =  xzp [ n]WKkn = X zp [k ]
j k kn
→ Xɶ ( e N K

n =0 n =0

s i tes.google.com/site/ncpdhbkhn 35
Reconstruction of DTFT (2)
Ex. 2
1, 0 ≤ n ≤ N −1
x[n] = u[n] − u[n − N ] = 
0, otherwise

N −1
1 − e− jω N sin(ω N / 2) − jω ( N −1) / 2
Xɶ ( e jω ) =  x[n]e − jω n = − jωn
= e
n =0 1− e sin(ω / 2)


j k sin(π Nk / K ) − jπ ( N −1) k / K
X [ k ] = Xɶ (e K
)= e
sin(π k / K )

s i tes.google.com/site/ncpdhbkhn 36
Reconstruction of DTFT (3)
N −1
X ( z ) =  x[n ]z −n
n= 0

2π 2π
1
N −1 N −1
 −n
=   Xɶ (e
j k j kn
N N
)e z
n =0  N k =0 
n
2π 2π
1 N −1 j k N −1  
 Xɶ (e )  e
j kn
−1
= N N
z 
N k =0 k =0  

j k
1 − z−N N −1
Xɶ (e N
)
=
N

k =0
j

k
1−e N
z −1
s i tes.google.com/site/ncpdhbkhn 37
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
a) Frequency – Domain Sampling
b) Time – Domain Aliasing
c) Reconstruction of DTFT
d) Relationship between CTFT, DTFT, and DFT
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 38
Relationships between CTFT,
x (t)
c
DTFT, and DFT X c ( jΩ)

CTFT

0 t 0
Sampling Periodization
1 ∞  2π 
X ( e ) =  X c  jΩ − jm
ɶ j ΩT
x[ n] = xc ( nT ) 
T m =−∞  T 

DTFT

0 nT 0 Ω
Periodization Sampling
 2π k 2π 

1 ∞
xɶ[ n] =  x (nT − lNT )
c X [k ] =  X c  j
T m= −∞  NT
− jm
T 

l =−∞

DFT
n N
0 s i tes.google.com/site/ncpdhbkhn 0 N 39
N k
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
a) Linearity
b) Periodic, Circular, and Modulo – N Operations
c) Symmetry
d) Circular Shift of a Sequence
e) Circular Convolution
f) Circular Correlation
g) DFT of Stretched and Sampled Sequences
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 40
Linearity
y[n ] = a1 x1[n ] + a2 x2 [n ]

N1 −1 N 2 −2
→ Y [k ] = a1  x1[n ]W + a2  x2 [n ]WNkn , 0 ≤ k ≤ N − 1
kn
N
n =0 n =0

= a1 X 1[k ] + a2 X 2 [k ], 0 ≤ k ≤ N −1

s i tes.google.com/site/ncpdhbkhn 41
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
a) Linearity
b) Periodic, Circular, and Modulo – N Operations
c) Symmetry
d) Circular Shift of a Sequence
e) Circular Convolution
f) Circular Correlation
g) DFT of Stretched and Sampled Sequences
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 42
Periodic, Circular, and
Modulo – N Operations (1)
x[n]
n = lN + r, 0 ≤ r ≤ N − 1
 n N
= n modulo N = r n
0 ( N − 1)
xɶ[n]
xɶ[n] = x[ n N ], for all n
n
0 N
Xɶ [k ] = X [ k ], for all k x[4] x  n 

N
x[3] N

x[5] x[2]

n=0
2 1
0

s i tes.google.com/site/ncpdhbkhn 43
n
Periodic, Circular, and
Modulo – N Operations (2)
x[n]
x[ n N
]

n
0 ( N − 1)
N −1
xɶ[n]
1 0
n
0 N
zɶ[n ] = xɶ[− n ]
x[ −n N ]

N −1 n
0 N
1, 0 ≤ n ≤ N − 1
pN [ n] = 
z[n] = zɶ[n] pN [ n] 0, otherwise
1 0
0 n
s i tes.google.com/site/ncpdhbkhn N 44
Periodic, Circular, and
Modulo – N Operations (3)

x[n] = x[ −n N ], (circular even symmetry)


x[n] = − x[ −n N ], (circular odd symmetry)

 x[0], n=0
x[n] =  (circular even symmetry)
 x[ N − n], 1 ≤ n ≤ N −1
0, n=0
x[n] =  (circular odd symmetry)
− x[ N − n], 1 ≤ n ≤ N −1

s i tes.google.com/site/ncpdhbkhn 45
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
a) Linearity
b) Periodic, Circular, and Modulo – N Operations
c) Symmetry
d) Circular Shift of a Sequence
e) Circular Convolution
f) Circular Correlation
g) DFT of Stretched and Sampled Sequences
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 46
Symmetry (1)
1 1

0.8 0.8

0.6 0.6
x1 [n]

x2 [n]
0.4 0.4

0.2 0.2

0 0
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7
n n

3 3

2.5
2
2
X 1R [k]

X 2R [k]
1.5 1

1
0
0.5

0 -1
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7
k k

2 2

1 1
X 1I[k]

X 2I[k]

0 0

-1 -1

-2 -2
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7
k k

s i tes.google.com/site/ncpdhbkhn 47
Symmetry (2)
x[ n] = xR [n] + jxI [n ], 0 ≤ n ≤ N −1
X [ k ] = X R [k ] + jX I [k ], 0 ≤ k ≤ N − 1
N −1 2π N −1 2π
−j 1
X [ k ] =  x[n ]e  X [ k ]e
kn j kn
N
, x[n ] = N

n =0 N k =0

 N −1
  2π   2π  
X
 R [k ] =  x
 R
n =0 
[ n ]cos 
 N
kn +
 I

x [ n ]sin 
 N
kn  ,

0≤k < N

 N −1
  2π   2π  
 X I [k ] =   xR [n]sin  kn  − xI [n ]cos  kn  , 0≤k < N
 n =0   N   N 
→
 x [ n] =  X [ k ]cos  2π kn  − X [k ]sin  2π kn   ,
N −1

 R   R
k =0 
 N



I  N



0≤n< N


 N −1
  2π   2π  
x
 I [ k ] =  R X [k ]sin  N

kn 

+ X I [ k ]cos  N kn  ,
 
0≤k< N
 k =0 
s i tes.google.com/site/ncpdhbkhn 48
Symmetry (3)
 N −1
  2π   2π 
 X R [k ] =   xR [n]cos  kn  + xI [n ]sin  kn , 0 ≤ k < N
 n= 0   N   N 

 X [k ] =  x [n ]sin  2π kn  − x [n]cos  2π kn  , 0 ≤ k < N
N −1

 I   R 

 I





 n = 0  N N 
If x[n] is real,then xI [ n] = 0

 N −1
 2π  N −1  2π 
X
 R

[ k ] = 
n =0
x R [ n ]cos 
 N
kn  
=
 n =0
x [ n ]cos 
 N
kn 

→
 X [ k ] = x [n]sin  2π kn  = x[n]sin  2π kn 
N −1 N −1

 I 
n= 0
R  N

 
 n =0
 N


  X R [0], k =0
 X R [k ] = X R [ − k N ] = 
  X R [ N − k ], 1 ≤ k ≤ N − 1
 0, k =0

→  X I [ k ] = − X I [ −k N ] = 
  − X I [ N − k ], 1 ≤ k ≤ N − 1
  X [0], k =0
 X *[k ] = X [ −k ] = 
  X [ N − k ], 1 ≤ k ≤ N − 1
N

s i tes.google.com/site/ncpdhbkhn 49
Symmetry (4)

x[n] = xce [ n] + x co [n], 0 ≤ n ≤ N −1

x[n] + x[ − n  x[ n] + x[ N − n ]
]  , 1 ≤ n ≤ N −1
x ce[ n] = N
= x ce[ −n N ] =  2
2  x[0], n=0

x[ n] − x[ −n  x[ n] − x[ N − n]
]  , 1 ≤ n ≤ N −1
x co [n ] = N
= − x [ −n N ] = 
ce
2
2 0, n=0

s i tes.google.com/site/ncpdhbkhn 50
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
a) Linearity
b) Periodic, Circular, and Modulo – N Operations
c) Symmetry
d) Circular Shift of a Sequence
e) Circular Convolution
f) Circular Correlation
g) DFT of Stretched and Sampled Sequences
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 51
Circular Shift of a Sequence
x[ n N ] x[n]

N −1 n
0 N −1
1 0 xɶ[n ]

x[ n − m N ] ⋯ ⋯ n
0 N −1
zɶ[n ] = x[n − 2]
ɶ

1 ⋯ ⋯ n
N −1 0
0 N −1
z[n] = zɶ[n ] pN [n] = x[ n − 2 N ]

x[ n − m N
] ←
DFT
N
→ WN
km
X [k ]
n
0
s i tes.google.com/site/ncpdhbkhn N −1 52
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
a) Linearity
b) Periodic, Circular, and Modulo – N Operations
c) Symmetry
d) Circular Shift of a Sequence
e) Circular Convolution
f) Circular Correlation
g) DFT of Stretched and Sampled Sequences
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 53
Circular Convolution (1)

y[n] =  h[m]x[n − m]
m =−∞
←
DTFT
→ Yɶ (e jω ) = Hɶ (e jω ) Xɶ (e jω )

Y [k ] = H [k ] X [k ], 0 ≤ k ≤ N − 1
N −1
1
y[n] =
N
 Y [k ]W
k =0
− kn
N

N −1 N −1
1 1  N −1 km  
N −1
kl 
=
N
 H [k ] X [k ]W
k=0
− kn
N
=
N
 
k = 0 m = 0
h[ m ]WN  
  l =0
x [l ]WN  N

W − kn

N −1 N −1 N −1
1 1 k ( m +l − n ) 
=
N
 
m =0
h[ m ]
l =0
x[l ] N


k =0
WN 

1 N −1
1, m + l − n = rN
W k ( m +l −n )
N =
N k =0 0, otherwise
m + l − n = rN → l = n − m + rN = (n − m) modulo N = n − m N
N −1 N −1
y[n] =  h[m ]x[n − m] =  h[m]x[ n − m N
]
m =0 m= 0

s i tes.google.com/site/ncpdhbkhn 54
Circular Convolution (2)
N −1 N −1
y[ n] =  h[m ]x[n − m ] =  h[m] x[ n − m N
]
m= 0 m =0

y[n ] = h[n] N x[n]

y[n ] = h[n] N x[ n] ←


DFT
N
→ Y [ k ] = H [k ] X [k ]

x [n ] x[ n − 2 8 ] x[ n − 8 8 ]
x[4] x[3] x[2] x[1] x[4] x[3]

x[5] x[2] x[3] x[0] x[5] x[2]

n=0 n=0 n=0

Circular mapping Circular addressing


s i tes.google.com/site/ncpdhbkhn 55
Circular Convolution (3)
Ex. 3

Given h[ n] = {1 2 3 4}, x[n ] = {0 1 2 3}. Find y[ n] = h[n] N x[n].


↑ ↑
N −1
y[n ] =  h[m]x[ n − m N ] Method 1
m =0

y[0] = h[0] x[0] + h[1]x[3] + h[2]x[2] + h[3]x[1] x[3]


x[2]
x[0]
x[1] x[0]
x[3]
x[1]
x[2]
= 1 × 0 + 2 × 3 + 3 × 2 + 4 × 1 = 16 h[ 2] h[1]
y[1] = h[0]x[1] + h[1]x[0] + h[2]x[3] + h[3]x[2]
nn = 1
0
23
= 1 × 1 + 2 × 0 + 3 × 3 + 4 × 2 = 18

y[2] = h[0]x[2] + h[1]x[1] + h[2]x[0] + h[3]x[3] h[ 3] h[ 0]


= 1 × 2 + 2 × 1 + 3 × 0 + 4 × 3 = 16 x[1]
x[0]
x[2]
x[3] x[0]
x[3]
x[1]
x[2]
y[ 3] = h[ 0] x[ 3] + h[1] x[ 2] + h[ 2] x[1] + h[ 3] x[ 0]
= 1 × 3 + 2 × 2 + 3 × 1 + 4 × 0 = 10
s i tes.google.com/site/ncpdhbkhn 56
Circular Convolution (4)
Ex. 3

Given h[ n] = {1 2 3 4}, x[n ] = {0 1 2 3}. Find y[ n] = h[n] N x[n].


↑ ↑

y[0] = h[0]x[0] + h[1]x[3] + h[2]x[2] + h[3]x[1] = 1 × 0 + 2 × 3 + 3 × 2 + 4 × 1 = 16


y[1] = h[0]x[1] + h[1]x[0] + h[2]x[3] + h[3]x[2] = 1 ×1 + 2 × 0 + 3 × 3 + 4 × 2 = 18
y[2] = h[0]x[2] + h[1]x[1] + h[2]x[0] + h[3]x[3] = 1 × 2 + 2 × 1 + 3 × 0 + 4 × 3 = 16
y[3] = h[0]x[3] + h[1] x[2] + h[2]x[1] + h[3]x[0] = 1 × 3 + 2 × 2 + 3 × 1 + 4 × 0 = 10

 y[0]  x[ 0] x[3] x[ 2] x[1]   h[0]


 y[1]   x[1] x[ 0] x[ 3] x[2]  h[1] 
→ =  
 y[ 2]  x[ 2] x[1] x[ 0] x[ 3]  h[ 2]
    
 y[ 3]   x[3] x[ 2] x[1] x[0]  h[ 3] 

s i tes.google.com/site/ncpdhbkhn 57
Circular Convolution (5)
Ex. 3

Given h[ n] = {1 2 3 4}, x[n ] = {0 1 2 3}. Find y[ n] = h[n] N x[n].


↑ ↑

y[ n] = h[n] N x[n] ←


DFT
N
→ Y [k ] = H [k ] X [k ] Method 2

 X [ 0] 1 1 1 1   0 1 1 1 1   0  6 
 X [1]  1 W 1 W 2 W 3   1 1 − j −1 j   1  −2 + j 2 
 = 4 4 4  
=   = 
 X [ 2] 1 W4 2
1 W4   2 1 −1 1 −1  2  −2 
2

   1       
 X [ 3]  1 W4
3
W 4
2
W 3
4   1 j − 1 − j 3
   −2 − j 2 

 H [ 0]  1 1 1 1   0 1 1 1 1   1  10 
 H [1]  1 W 1 W 2 W 3   1 1 − j −1 j   2  −2 + j 2 
 = 4 4 4 
 =  =  
 H [ 2]  1 W4 2
1 W4   2 1 −1 1 −1  3  −2 
2

   1       
 H [ 3]  1 W 4
3
W 4
2
W 3
4   1 j − 1 − j 4
   −2 − j 2 
s i tes.google.com/site/ncpdhbkhn 58
Circular Convolution (6)
Ex. 3

Given h[ n] = {1 2 3 4}, x[n ] = {0 1 2 3}. Find y[ n] = h[n] N x[n].


↑ ↑

y[ n] = h[n] N x[n] ←


DFT
N
→ Y [k ] = H [k ] X [k ] Method 2

X = [6; − 2 + j 2; − 2; − 2 − j 2] ; H = [10; − 2 + j 2; − 2; − 2 − j 2]

→ Y [0] = H [ 0] X [ 0] = 6 × 10 = 60; Y [1] = − j 8; Y [ 2] = 4; Y [ 3] = j8

 y[0] 1 1 1 1  Y [0] 1 1 1 1   60  16


 y[1]  1 − j −1 j   Y [1]  1 − j −1 j   − j8 10
 1
=   1
=   =  
 y[2] 4 1 −1 1 −1 Y [2] 4 1 −1 1 −1  4  16
         
 y[3] 1 j −1 − j  Y [3] 1 j −1 − j   j 8  18
s i tes.google.com/site/ncpdhbkhn 59
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
a) Linearity
b) Periodic, Circular, and Modulo – N Operations
c) Symmetry
d) Circular Shift of a Sequence
e) Circular Convolution
f) Circular Correlation
g) DFT of Stretched and Sampled Sequences
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 60
Circular Correlation

N −1
rxy [l ] =  x[ n] y[ n − l N
], 0 ≤ l ≤ N −1
n= 0

rxy [l ] = x[n] N y[ −n N
] ←
DFT
N
→ R xy [ k ] = X [ k ]Y *
[k ]

s i tes.google.com/site/ncpdhbkhn 61
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
a) Linearity
b) Periodic, Circular, and Modulo – N Operations
c) Symmetry
d) Circular Shift of a Sequence
e) Circular Convolution
f) Circular Correlation
g) DFT of Stretched and Sampled Sequences
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 62
DFT of Stretched Sequences
x[n]

n
0 N −1
x ( L ) [n ]
x( L ) [n ] ←
DFT
NL
→ Xɶ [k ] = X [ k N
]

n
0 L −1
1 ( L) 1
x [n ] = xɶ[n ] ←
DFT
→ X [k ]
L L NL  x[ n / L], n = 0, L, 2 L, ..., ( N − 1) L
x [ n] = 
( L)

0, otherwise

s i tes.google.com/site/ncpdhbkhn 63
DFT of Sampled Sequences
x[n]

n
M −1 N −1
1  N 0
x( M ) [n ] ←→
DFT
N /M
M

m =0
X k + m 
 M x( M ) [n ]

n
0
M −1
1  N
M
  x n + m 
M
←
DFT
N /M
→ X (M )[k ] x( M )[ n] = x[ nM ], 0≤ n ≤
N
−1
m= 0 M

s i tes.google.com/site/ncpdhbkhn 64
Properties of the DFT

s i tes.google.com/site/ncpdhbkhn 65
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
a) Linear Convolution Using Circular Convolution
b) Implementation of FIR Filters Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 66
Linear Convolution Using
Circular Convolution (1)

y[n ] =  h[k ]x[n − k ], 0≤n≤L+M −2
k =−∞
Y ( e jω ) = H (e jω ) X (e jω )
Y [ k ] = Y (e j 2π k / N ), 0 ≤ k ≤ N − 1
H [k ] = H (e j 2π k / N ), X [k ] = X (e j 2π k / N )

→ yzero − padded [n] = hzp [n] N xzp [ n] ←


DFT
N
→ Y [ k ] = H [k ] X [k ]

x[n] x zp [n ] X [k ]
Pad with N – point
Length (M – 1) zeros DFT Y [ k ] = H [k ] X [k ]
L y [n]
N – point
N = L + M −1
IDFT Length
h[n] Pad with N – point N
Length (L – 1) zeros h [n ] DFT H [k ]
zp
M s i tes.google.com/site/ncpdhbkhn 67
Linear Convolution Using
Circular Convolution (2)

y[n ] =  h[k ]x[n − k ], 0≤n≤L+M −2
k =−∞
 y[0]  x[0] 0 0 
 y[1]   x[1] x[0] 0 
   
 y[2]  x[2] x[1] x[0]  h[0]
    
→  y[3] =  x[3] x[2] x[1]   h[1] 
 y[4]  x[4] x[3] x[2]  h[2]
   
 y [5 ]   0 x[4] x[3]
 y[6]  0 0 x[4]
 x[0] 0 0 x[4] x[3] x[1]  h[0]
x[2]
 x[1] x[0] 0 0 x[4] x[3] x[2]  h[1] 
  
 x[2] x[1] x[0] 0 0 x[4] x[3] h[ 2]
  
=  x[3] x[2] x[1] x[0] 0 0 x[4]  0 
 x[4] x[3] x[ 2] x[1] x[0] 0 0  0 
  
 0 x[4] x[3] x[2] x[1] x[0] 0   0 
 0 0 x[ 4] x[3] x[2] x[1] x[0]  0 
s i tes.google.com/site/ncpdhbkhn 68
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
a) Linear Convolution Using Circular Convolution
b) Implementation of FIR Filters Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 69
Implementation of FIR Filters
Using the DFT (1)
x[ n ] x zp [n ] X [k ]
Pad with N – point
Length (M – 1) zeros DFT Y [ k ] = H [k ] X [k ]
L y [n]
N – point
N = L + M −1
IDFT Length
h[n ] Pad with N – point N
Length (L – 1) zeros h [n ] DFT H [k ]
zp
M

• The input may have indefinite length


• The input’s length may be too large for storage &
computation
• The computation can not be started untill all input
signal samples have been collected  delays
s i tes.google.com/site/ncpdhbkhn 70
Implementation of FIR Filters
Using the DFT (2)
The overlap – add method

 y[0]  h[0] 0 0 0 0 0 0 0 
 y[1]   h[1] h[0] 0 0 0 0 0 0   x[0]
   
 y[2]  h[2] h[1] h[0] 0 0 0 0 0   x[1] 
    
 y[3]  0 h[2] h[1] h[0] 0 0 0 0   x[2]
 y[4]  0  
0 h[2] h[1] h[0] 0 0 0   x[3] 
 = 
 y[5]  0 0 0 h[ 2] h[1] h[0] 0 0   x[4]
 y[6]  0  
0 0 0 h[2] h[1] h[0] 0   x[5] 
   
 y[7]  0 0 0 0 0 h[2] h[1] h[0]  x[6]
 y[8]  0   
0 0 0 0 0 h[2] h[1]  x[7]
   
 y[9]  0 0 0 0 0 0 0 h[ 2]
s i tes.google.com/site/ncpdhbkhn 71
Implementation of FIR Filters
Using the DFT (3)
The overlap – add method

 y[0]  h[0] 0 0 0 0 x[1] 0


0 0 
 y[1]   h[1]  x[2]
y[h4[]0]= [h[00] 0 0 h[2] 0 h[1]]0 0   x[0]
0
   
 y[2]  h[2] h[1] h[0] 0 0 0 x[3]0 0   x[1] 
      
 y[ 3]   0 h[2] h[1] h[0] 0 0 x[ 4 ] 0
0   x[2]
 y[4]  0  
0 h[2] h[1] h[0] 0 0 0   x[3] 
 = 
 y[5]  0 0 0 h[ 2] h[1] h[0] 0 0   x[4]
 y[6]  0  
0 0 0 h[2] h[1] h[0] 0   x[5] 
    x[3] 
 y[7]  0 0 0 0 0 h[2] h[1] h[0]  x[6]
x[4]  
 y[8]  0 y[50] = [ h[01] h[0
0] 0 0 h[2]]0  
h[2] h[1]  x[7]
    x[5] 
 y[9]  0 0 0 0 0 0 0 h[ 2]
 x[ 6] 
s i tes.google.com/site/ncpdhbkhn 72
Implementation of FIR Filters
Using the DFT (4)
The overlap – save method

 y[0]  h[0] 0 0 0 0 0 0 0 
 y [1]   h[1] h[0] 0 0 0 0 0 0   x[0]
   
 y [2]  h[2] h[1] h[0] 0 0 0 0 0   x[1] 
    
 y[3]  0 h[2] h[1] h[0] 0 0 0 0   x[2]
 y [4]  0  
0 h[2] h[1] h[0] 0 0 0   x[3] 
 = 
 y[5]  0 0 0 h[ 2] h[1] h[0] 0 0   x[4]
 y[6]  0  
0 0 0 h[2] h[1] h[0] 0   x[5] 
   
 y[7]  0 0 0 0 0 h[2] h[1] h[0]  x[6]
 y[8]  0   
0 0 0 0 0 h[2] h[1]  x[7]
   
 y[9]  0 0 0 0 0 0 0 h[ 2]
s i tes.google.com/site/ncpdhbkhn 73
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
a) Effects of Time – Windowing on Sinusoidal Signals
b) Effects of Time – Windowing on Signals with Continuous Spectra
c) “Good” Window and the Uncertainty Principle
d) The Spectrogram
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 74
Effects of Time – Windowing on
Sinusoidal Signals (1)
1

xc (t )
0

-1
-6 -4 -2 0 2 4 6
t

1
1, 0 ≤ t ≤ T0 / 2
wc (t ) = 

wc(t)
0.5

0, otherwise 0
-6 -4 -2 0 2 4 6
t

1
wc(t)xc(t)

xˆc (t ) = wc (t ) xc (t ) 0

-1
-6 -4 -2 0 2 4 6
t

1, 0 ≤ n ≤ L − 1
w[n] =  → xˆ[n] = xˆc (nT ) = wc (nT ) x c (nT ) = w[ n]x[ n]
0, otherwise
s i tes.google.com/site/ncpdhbkhn 75
Effects of Time – Windowing on
Sinusoidal Signals (2)
x c (t ) x[ n ] xˆ[ n ] Xˆ [k ]
N – point
Ideal A/D
DFT

1
T= w[n ]
Fs

x c (t ) xˆc (t ) xˆ[n ] Xˆ [k ]
N – point
Ideal A/D
DFT

1
w c (t ) T=
Fs

s i tes.google.com/site/ncpdhbkhn 76
Effects of Time – Windowing on
Sinusoidal Signals (3)
x c ( t ) = A1 cos(Ω1t + φ1 ), −∞<t <∞

1 1
= A1e − jφ1 e − jΩ1t + A1e jφ1 e jΩ1t
2 2
1 − jφ1 1
xˆc (t ) = wc (t ) x c (t ) = A1e wc (t )e − jΩ1t
+ A1e jφ1 wc (t )e jΩ1t
2 2
1 1
→ Xˆ c ( jΩ) = A1e − jφ1Wc [ j(Ω + Ω1 )] + A1e jφ1Wc [ j(Ω − Ω1 )]
2 2
1, 0 ≤ t ≤ T0
wc (t ) = wR (t) = 
0, otherwise
sin(Ω T0 / 2) − jΩT0 / 2
Wc ( jΩ) = WR ( jΩ ) = e
Ω/2
s i tes.google.com/site/ncpdhbkhn 77
Effects of Time – Windowing on
Sinusoidal Signals (4) 1
1

0.5 xc ( t ) X c ( jΩ)
0 0.5

-0.5 −Ω1 Ω1
-1
t 0 Ω
-6 -4 -2 0 2 4 6 -6 -4 -2 0 2 4 6

1 3

wc (t ) 2 Wc ( jΩ)
0.5 1


0
0 t -1
-6 -4 -2 0 2 4 6 -6 -4 -2 0 2 4 6
T0
3

0

xˆc (t ) = wc (t ) xc (t )
-1
-6 -4 -2 0 2 4 6

1 3

0.5 2 Xˆ c ( jΩ)
0 1


-0.5 0
-1 t -1
-6 -4 -2 0 2 4 6 -6 -4 -2 0 2 4 6
s i tes.google.com/site/ncpdhbkhn 78
Effects of Time – Windowing on
Sinusoidal Signals (5)
3
W c(j(Ω - Ω2))
2.5 W c(j(Ω - Ω1))

1.5

0.5

-0.5
0 2 4 6 8 10 12

2π 1
∆Ω = Ω 2 − Ω1 ≥ Ω 0 = → T0 ≥
T0 F2 − F1
W c(j(Ω - Ω2)) + Wc(j(Ω - Ω1))
3.5

2.5

1.5

0.5

0 2 4 6 8 10 12

s i tes.google.com/site/ncpdhbkhn 79
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
a) Effects of Time – Windowing on Sinusoidal Signals
b) Effects of Time – Windowing on Signals with Continuous Spectra
c) “Good” Window and the Uncertainty Principle
d) The Spectrogram
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 80
Effects of Time – Windowing on
Signals with Continuous Spectra
1
Spectrum of infinite duration signal
Magnitude

0.5

0
-8 -6 -4 -2 0 2 4 6 8
F (Hz)
1
Spectrum of rectangular window
Magnitude

0.5

-0.5
-8 -6 -4 -2 0 2 4 6 8
F (Hz)
1
Shifted copies of window spectrum
M agnitude

0.5

200 400 600 800 1000 1200 1400 1600


F (Hz)

Spectrum of windowed si gnal


Magnitude

0
-8 -6 -4 -2 0 2 4 6 8
F (Hz) ∞
1 ∞ 1
Xɶ c ( jΩ ) =

θ )W c
( j ( θ )) d θ
−∞ c s i tes.google.com/site/ncpdhbkhn
X ( j Ω − ≈

X
k = −∞
c
( jθ k )Wc ( j(Ω − θk )) ∆θ 81
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
a) Effects of Time – Windowing on Sinusoidal Signals
b) Effects of Time – Windowing on Signals with Continuous Spectra
c) “Good” Window and the Uncertainty Principle
d) The Spectrogram
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 82
“Good” Windows and
the Uncertainty Principle (1)

Smearing & leakage

s i tes.google.com/site/ncpdhbkhn 83
“Good” Windows and
the Uncertainty Principle (2)
1  jΩ 
x c ( at ) ←
CTFT
→ Xc  
a  a 
xc (at ) = cos[Ω0 (at )] = cos[(aΩ 0 )t ]
Time and frequency scaling property

Uncertainty principle

σ =  t xc (t ) dt
2 2 2
t −∞

1 ∞
σ =  Ω 2 X c ( jΩ) d Ω
2 2

2π −∞

1
σ tσ Ω ≥
2
s i tes.google.com/site/ncpdhbkhn 84
“Good” Windows and
the Uncertainty Principle (3)
12
WR(jΩ ) wRectangular (t)
0.8
10

0.6
8

0.4
6

0.2
4

0 2

-0.2
-1.5 -1 -0.5 0 0.5 1 1.5 - 1.5 -1 -0.5 0 0.5 1 1.5
Ω t

2
12
WB (jΩ) = [WR(jΩ) ] wBartlett (t)
0.9

0.8 10

4 sin (Ω T0 / 4)
2
WBartlett ( jΩ ) =
0.7
8
0.6
Ω 2T0 / 2
0.5 6
0.4

0.3 4

0.2
2
0.1

-1.5 -1 -0.5 0 0.5 1 1.5 - 1.5 -1 -0.5 0 0.5 1 1.5


Ω s i tes.google.com/site/ncpdhbkhn t 85
“Good” Windows and
the Uncertainty Principle (4)
WHann ( j Ω) = 0.5WRectangular ( j Ω)
+ 0.25WRectangular ( j (Ω − 2π / T0 ))
+ 0.25WRectangular ( j (Ω + 2π / T0 ))

  2π t  
wHann (t ) =  0.50 + 0.50 cos    wRect (t )
  T0  

s i tes.google.com/site/ncpdhbkhn 86
“Good” Windows and
the Uncertainty Principle (5)
WHamming ( jΩ) = 0.54WRectangular ( jΩ)
+ 0.23WRectangular ( j (Ω − 2π / T0 ))
+ 0.23WRectangular ( j (Ω + 2π / T0 ))

  2π t  
wHamm (t ) =  0.54 + 0.46 cos    wRect (t )
  T0  

s i tes.google.com/site/ncpdhbkhn 87
“Good” Windows and
the Uncertainty Principle (6)

s i tes.google.com/site/ncpdhbkhn 88
“Good” Windows and
1.2
the Uncertainty Principle (7)
Rectangular 0.5 Bartlett
0.45
1
0.4

0.8 0.35
Amplitude

Amplitude
0.3
0.6 0.25
0.2
0.4
0.15

0.2 0.1
0.05

100 200 300 400 500 600 700 800 900 1000 100 200 300 400 500 600 700 800 900 1000
F (Hz) F (Hz)

Ex. x(t ) = cos(2π Ft ) + cos(2π 3Ft ) + cos(2π 4Ft )


0.5 0.55
Hann Hamming
0.45 0.5

0.4 0.45

0.35 0.4
0.35
Amplitude

Amplitude
0.3
0.3
0.25
0.25
0.2
0.2
0.15 0.15
0.1 0.1
0.05 0.05

100 200 300 400 500 600 700 800 900 1000 100 200 300 400 500 600 700 800 900 1000
F (Hz) s i tes.google.com/site/ncpdhbkhn F (Hz) 89
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
a) Effects of Time – Windowing on Sinusoidal Signals
b) Effects of Time – Windowing on Signals with Continuous Spectra
c) “Good” Window and the Uncertainty Principle
d) The Spectrogram
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications

s i tes.google.com/site/ncpdhbkhn 90
The Spectrogram (1)
L−1
X [k , n] =  w[m]x[n + m]e− j ( 2π k / N )m
m= 0

s i tes.google.com/site/ncpdhbkhn 91
The Spectrogram (2)

s i tes.google.com/site/ncpdhbkhn 92
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 93
Direct Computation of
the Discrete – Fourier Transform
N −1
X [ k ] =  x[n]WNkn , k = 0, 1,..., N − 1
n =0

N −1
1
x[n] =
N
 X
k =0
[ k ]WN
− kn
, n = 0,1,..., N − 1

N −1
  2π   2π  
X R[ k ] =   xR [n]cos  kn  + xI [n ]sin  kn  
k =0   N  N 
N −1
  2π   2π 
X I [k ] =   xR[ n]sin  kn  − xI [n]cos  kn 
k =0   N   N 

The total cost of computing all X[k] coefficients is approximately N2 operations!!!

Fast Fourier Transform


s i tes.google.com/site/ncpdhbkhn 94
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The Fast Fourier Transform Idea Using a Matrix
Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 95
The Fast Fourier Transform Idea
Using a Matrix Approach (1)
 X [0] 1 1 1 1 1 1 1 1   x[0]
 X [1]  1 W8 W82 W83 W84 W85 W86 W87   x[1] 
     a b   e   ae + bf 
 X [2] 1 2 4 6
1 W8 W8 W8   x[ 2]
2 4 6
c =
d   f   ce + df 
W8 W8 W8
   3   
 X [ 3]  = 1 W8 W86 W8 W84 W87 W82 W85   x[3]
 X [4] 1 W8
4
1 W84 1 W84 1 W84   x[ 4]
   5   b a   f   bf + ae 
 X [ 5]  1 W W82 W87 W84 W8 W86 W83   x[5] =
8
d c   e   df + ce 
  
 X [6] 1 W 6
W84 W82 1 W86 W84 W82   x[6] 
  
8
 7 6 5 4 3 2 
 X [7] 1 W8 W8 W8 W8 W8 W8 W8   x[7]
1 1 1 1 1 1 1 1   x[0]
1 W82 W84 W86 W8 W83 W85 W87   x[2]
  
1 W84 1 W84 W82 W8 W8 W8   x[4]
6 2 6

  
1 W86 W84 W82 W83 W8 W87 W85   x[6]
=
1 1 1 1 W84 W84 W84 W84   x[1] 
  
1 W82 W84 W86 W85 W87 W8 W83   x[3]
1 W84 1 W84 W86 W82 W86 W82   x[5]
  
1 W86 W84 W82 W87 W85 W83 W8   x[7]
s i tes.google.com/site/ncpdhbkhn 96
The Fast Fourier Transform Idea
Using a Matrix Approach (2)
 X [0] 1 1 1 1 1 1 1 1   x[0] W82
 X [1]  1 W82 W84 W86 W8 W83 W85 W87   x[ 2]
1

     0.8
W83 W81
 X [2] 1 W84 1 W84 W82 W8 W8 W8   x[ 4]
6 2 6 0.6

    
0.4

X [ 3]  = 1 W86 W84 W82 W83 W8 W87 W85   x[6]

Imagi nary Part



0.2

0
W84 8
W80
 X [4] 1 1 1 1 W84 W84 W84 W84   x[1]  -0.2

     -0.4

 X [ 5]  1 W82 W84 W86 W85 W87 W8 W83   x[3] -0.6

 X [6] 1 W 4
1 W 4
W 6
W82 W86 W82   x[5] -0.8
W85 W87
  
8 8 8
 6  -1

 X [7] 1 W W84 W 2


W 7 5 3
W8 W8 W8   x[7] -1 -0.5 0 0.5 1
8 8 8
W86
Rea l Part

1 1 1 1 1 1 1 1   x[0]
1 W82 W84 W86 W83 W85 W87   x[2]

W8
  W84 = −1
1 W84 1 W84 W82 W86 W82 W8   x[4]
6

  W85 = −W81

1 W86 W84 W82 W83 W8 W87 W85   x[6]
= W86 = −W82
1 1 1 1 −1 −1 −1 −1   x[1] 
   W87 = −W83
1 W82 W84 W86 −W8 −W83 −W85 −W87   x[3] 
1 W84 1 W84 −W82 −W86 −W82 −W86   x[5] 
  
1 W86 W84 W82 −W83 −W8 −W87 −W85   x[7]
s i tes.google.com/site/ncpdhbkhn 97
The Fast Fourier Transform Idea
Using a Matrix Approach (3)
 X [0] 1 1 1 1 1 1 1 1   x[0]
 X [1]  1 W82 W84 W86 W8 W83 W85 W87   x[2]
    
 X [2] 1 W84 1 W84 W82 W86 W82 W8   x[4]
6

    
 X [ 3]  = 1 W86 W84 W82 W83 W8 W87 W85   x[6]
 X [4] 1 1 1 1 −1 −1 −1 −1   x[1] 
    
 X [ 5]  1 W82 W84 W86 −W8 −W83 −W85 −W87   x[3]
 X [6] 1 W84 1 W84 −W82 −W86 −W82 −W86   x[5]
   5  
 X [7] 1 W86 W84 W82 −W83 −W8 −W87 −W8   x[7]
1 1 1 1  1 0 0 0   x[0]  x[1] 
1 W4 W42 W43  0 W 0 0   x [2 ]  x[3]
W4 =  ; D =  8 ; X
Even =
  ; XOdd =  
1 W42 1 W42  8 0 0 W82 0   x [4 ]  x[5]
       
1 W43 W42 W4  0 0 0 W83   x[6]  x[7]
XTop = [ X [0] X [1] X [2] X [3]] ; X Bottom = [ X [4] X [5] X [6] X [7]]
T T

 XTop   W4 D8 W4   x Even 
→ =
 X Bottom   W4 −D8 W4   xOdd 
s i tes.google.com/site/ncpdhbkhn 98
The Fast Fourier Transform Idea
Using a Matrix Approach (4)
 XTop   W4 D8 W4  x Even 
 = X T = X E + DN X O
 Bottom   W4
X −D8 W4   xOdd  →
N X B = X E − DN X O
− point DFT : X E = WN / 2 x E & XO = WN / 2x O
2
N – point Input Sequence
n = Even n = Odd
N/2 – point N/2 – point
Sequence Sequence
xE [n ] xO [ n]
N – point FFT
N/2 – point N/2 – point
DFT DFT
X E [k ] X O [k ]
Merge N/2 – point DFT

N – point DFT Coefficients X [k ]


s i tes.google.com/site/ncpdhbkhn 99
The Fast Fourier Transform Idea
Using a Matrix Approach (5)
 X [0] 1 1 1 1 1 1 1 1   x[0]
 X [1]  1 W82 W84 W86 W8 W83 W85 W87   x[2]
    
 X [2] 1 W84 1 W84 W82 W86 W82 W8   x[4]
6

    
 X [ 3]  = 1 W86 W84 W82 W83 W8 W87 W85   x[6]
 X [4] 1 1 1 1 −1 −1 −1 −1   x[1] 
    
 X [ 5]  1 W82 W84 W86 −W8 −W83 −W85 −W87   x[3]
 X [6] 1 W84 1 W84 −W82 −W86 −W82 −W86   x[5]
   5  
 X [7] 1 W86 W84 W82 −W83 −W8 −W87 −W8   x[7]
 X [0] 1 1 1 1 1 1 1 1   x[0]
 X [2] 1 W82 W84 W86 1 W82 W84 W86 
x [1] 
    
 X [4] 1 W84 1 W84 1 W84 1 W84   x [2 ]
  1 W86 W84 W82 1 W86 W84 W82
 
 X [ 6 ]=  x [3]  →  X E  =  W4 W4   x T 
 X [1]  1     
W8 W82 W83 −1 −W8 −W82 −W83   x[4]  X O   W4D 8 − W4D 8   x B 
    
 X [ 3]  1 W83 W86 W8 −1 −W83 −W86 −W8   x[5] 
 X [5] 1 W85 W82 W87 −1 −W85 −W82 −W87   x[6]
    
 X [ 7 ] 1 W87 W86 W85 −1 −W87 −W86 −W85   x[7]
s i tes.google.com/site/ncpdhbkhn 100
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The Fast Fourier Transform Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
a) Algebraic Derivation
b) Practical Programming Considerations
c) Alternative Forms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 101
Algebraic Derivation (1)
N −1
X [k ] =  x[n]WNkn , k = 0,1,..., N − 1
n= 0
N N
−1 −1
2 2
=  x[2m ]WNk ( 2m ) +  x[2m + 1]WNk (2 m+1)
m =0 m= 0
N N
−1 −1
2 2
=  x[2m ]WNk (2 m ) + WNk  x[2m + 1]WNk (2 m )
m =0 m= 0

a[n] = x[2n], n = 0,1, 2,..., N / 2 − 1


b[n] = x[2n + 1], n = 0, 1, 2,..., N / 2 − 1
WN2 = WN / 2

→ X [k ] = A[k ] + WNk B[k ], k = 0,1,..., N − 1


N / 2 −1
A[k ] = 
m =0
a[m ]WNkm/ 2 , k = 0,1,..., N / 2 − 1
N / 2 −1
B[ k ] = 
m =0
b[m]WNkm/ 2 , k = 0, 1,..., N / 2 − 1
s i tes.google.com/site/ncpdhbkhn 102
Algebraic Derivation (2)
X [ k ] = A[k ] + WNk B[ k ], k = 0, 1, ..., N / 2 − 1

N
 N  N k+  N
→ X  k +  = A  k +  + WN 2 B  k + 
 2  2  2

 N
 k+ 2 
W 
N

= −WNk

 N
→ X k +  = A[k ] − WNk B[k ]
 2

N
X [k ] = A[k ] + WNk B[k ], k = 0, 1, ..., −1
2
 N N
X  k +  = A[k ] − WNk B[k ], k = 0, 1, ..., − 1
 2 2

s i tes.google.com/site/ncpdhbkhn 103
Algebraic Derivation (3)
Ex.
X [k ] = DFT8{x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7]}, 0 ≤ k ≤ 7

ր
C [k ] = DFT2{x[0], x[4]}, k = 0,1
A[k ] = DFT4{x[0], x[2], x[4], x[6]}, 0 ≤ k ≤ 3
ց
D[k ] = DFT2{x[2], x[6]}, k = 0,1
ր
X [k ]
ց

ր
E[ k ] = DFT2{x[1], x [5]}, k = 0,1
B[k ] = DFT4{x[1], x[3], x[5], x[7]}, 0≤k≤3
ց
F [ k ] = DFT2 {x [3], x[ 7]}, k = 0,1

A[k ] = C[k ] + W82k D[k ], k = 0,1


A[k + 2] = C[k ] − W82 k D[k ], k = 0,1  X [k ] = A[ k ] + W8k B[k ], k = 0, 1, 2, 3
→
 X [ k + 2] = A[ k ] − W8 B[ k ], k = 0,1, 2, 3
k
B[ k ] = E [k ] + W82k F [ k ], k = 0,1
B[ k + 2] = E [k ] − W82 k F [ k ], k = 0, 1
s i tes.google.com/site/ncpdhbkhn 104
Algebraic Derivation (4)
Ex.
X [ k ] = DFT8{x[ 0], x[1], x[ 2], x[3], x[ 4], x[ 5], x[ 6], x[ 7]}, 0 ≤ k ≤ 7

A[ k ] = C[ k ] + W82 k D[ k ], k = 0,1
A[k + 2] = C[ k ] − W82k D[ k ], k = 0,1

 X m [ p] = X m−1[ p] + WNr X m −1[ q]


→
 X m [ q] = X m −1[ p ] − WN X m −1[ q]
r

X m −1[ p] X m[ p ]

WNr
X m −1[ q] X m [ q]
−1
s i tes.google.com/site/ncpdhbkhn 105
Algebraic Derivation (5)
Ex.
X [ k ] = DFT8{x[ 0], x[1], x[ 2], x[3], x[ 4], x[ 5], x[ 6], x[ 7]}, 0 ≤ k ≤ 7
x[ 0] x[ 0] x[ 0] x[0] Merge two X [ 0]
1 – point
x[1] x[ 2] x[ 4] x[4] DFTs Merge two X [1]
2 – point
x[ 2] DFTs
x[ 2] x[ 4] x[ 2] Merge two X [ 2]
1 – point
x[ 3] x[ 6] x[ 6] x[ 6] DFTs Merge two X [ 3]
4 – point
x[ 4] x[1] x[1] x[1] Merge two DFTs X [ 4]
1 – point
x[ 5] x[ 3] x[ 5] x[ 5] DFTs Merge two X [ 5]
4 – point
x[ 6] x[ 5] x[ 3] x[ 3] DFTs X [ 6]
Merge two
1 – point
x[ 7] x[ 7] x[ 7] x[ 7] DFTs X [ 7]
Algebraic Merging
s i tes.google.com/site/ncpdhbkhn 106
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
a) Algebraic Derivation
b) Practical Programming Considerations
c) Alternative Forms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 107
Practical Programming
Considerations
Stage 1 Stage 1 Stage 1
C[ 0] A[0]
x[0] X [0]
W80 C[1] A[1]
x[ 4] X [1]
−1
D[ 0] A[2]
x[ 2] X [2]
−1
0 0
W8
D[1] W 8
A[3]
x[ 6] X [3]
−1 2
−1
E [0] W 8
B[0] W80
x[1] X [ 4]
−1
0 1
W8
E[1] B[1] W 8
x[5] X [5]
−1 2
−1
0
F[ 0 ] W 8
B[ 2] W 8
x[ 3] X [6]
−1 −1
0 3
W8
F [1] W 8
2
B[3] W 8
x[ 7] X [7]
−1 −1 −1108
s i tes.google.com/site/ncpdhbkhn
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
a) Algebraic Derivation
b) Practical Programming Considerations
c) Alternative Forms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 109
Alternative Form (1)

s i tes.google.com/site/ncpdhbkhn 110
Alternative Form (2)

s i tes.google.com/site/ncpdhbkhn 111
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 112
Decimation – in – Frequency
FFT Algorithms (1)
N −1
X [k ] =  x[ n]WNkn , k = 0,1,..., N − 1
n= 0
N −1 N −1
N
X [2k ] =  x[ n]W N
(2 k )n
=  x[ n]WNkn/ 2 , k = 0,1,..., −1
n= 0 n= 0 2
N N
−1 −1  N
2 2
 N  k  k + 2 
=  x[ n]W kn
N /2 +  x  n +  WN / 2
n =0 n =0  2
N N
−1 −1
2
 N
2
=  x[ n]WNkn/ 2 +  x  n +  WNkn/ 2
n =0 n =0  2
N
−1
2
  N  N
=   x[n] + x n +  WNkn/ 2 , k = 0, 1,..., − 1
n =0   2  2
N
−1
2   N   n  kn N
X [2k + 1] =  
n =0  
x[ n ] − x 

n +  
2  
WN
WN /2
, k = 0, 1,...,
2
−1

s i tes.google.com/site/ncpdhbkhn 113
Decimation – in – Frequency
FFT Algorithms (2)
N
−1
2   N  N
X [k ] =   x [n ] +
n =0 
x  n +  WNkn/ 2 , k = 0, 1,..., − 1
 2  2
N
−1
2   N   N
X [2k + 1] =    x[n] − x n +   WNn WNkn/ 2 , k = 0, 1,..., − 1
n =0    2   2
a[n ] = x[n ] + x[n + N / 2], n = 0, 1,..., N / 2 − 1
b[n ] = ( x[n ] − x[ n + N / 2])WNn , n = 0,1,..., N / 2 − 1
N
−1
2
N
A[k ] =  a[n]W
n= 0
kn
N/2 , k = 0,1,...,
2
−1
N
−1
2 N
B [k ] =  b[n ]W
n =0
kn
N /2 , k = 0, 1,...,
2
−1

 N
 X [ 2 k ] = A[ k ], k = 0, 1,..., −1
→ 2
 X [2k + 1] = B[ k ], k = 0, 1,..., N − 1
 2
s i tes.google.com/site/ncpdhbkhn 114
Decimation – in – Frequency
Ex. FFT Algorithms (3)
X [k ] = DFT8{x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7]}, 0 ≤ k ≤ 7
a[n] = x[n] + x[n + 4]
b[n] = ( x[n] − x[n + 4])W8n

A[0] = X [0] B[0] = X [1]


A[1] = X [2] B[1] = X [3]
A[2] = X [4] B[2] = X [5]
A[3] = X [6] B[3] = X [7]

c[ n] = a[ n] + a[ n + 2]
d [n ] = ( a[n ] − a[ n + 2])W82n
e[ n] = b[ n] + b[ n + 2]
f [n ] = ( b[ n] − b[n + 2])W82n
s i tes.google.com/site/ncpdhbkhn 115
Decimation – in – Frequency
Ex. FFT Algorithms (4)
X [k ] = DFT8{x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7]}, 0 ≤ k ≤ 7
N
−1
2
N C[ 0] = c[ 0] + c[1] = A[ 0] = X [ 0]
A[ k ] =  a[n]WNkn/ 2 , k = 0,1,...,
2
−1  C[1] = c[ 0] − c[1] = A[ 2] = X [ 4]
n =0 
N
−1  D[0] = d [ 0] + d [1] = A[1] = X [ 2]

2
N
B[k ] =  b[ n]WNkn/ 2 , k = 0,1,..., −1  D[1] = d [0] − d [1] = A[ 3] = X [6]
n= 0 2 →
N  E[ 0] = e[ 0] + e[1] = B[ 0] = X [1]
X [2k ] = A[ k ], k = 0, 1, ..., − 1  E[1] = e[ 0] − e[1] = B[ 2] = X [ 5]
2 
N  F [ 0] = f [ 0] + f [1] = B[1] = X [ 3]
X [2k + 1] = B[ k ], k = 0,1,..., − 1  F [1] = f [ 0] − f [1] = B[3] = X [ 7]
2

X m−1[ p] X m[ p]
 X m [ p ] = X m−1[ p] + X m −1[ q]

 X m [ q] = ( X m −1[ p ] − X m−1[ q])WN
r

X m−1[q] WNr X m[q]

s i tes.google.com/site/ncpdhbkhn
−1 116
Decimation – in – Frequency
Ex. FFT Algorithms (5)
X [ k ] = DFT8{x[ 0], x[1], x[ 2], x[3], x[ 4], x[ 5], x[ 6], x[ 7]}, 0 ≤ k ≤ 7
x[0] X [0]
W80
x[1] X [ 4]
−1
W80
x[ 2] X [2]
−1
W82 W80
x[ 3] X [6]
0
−1 −1
W 8
x[4] X [1]
−1
W81 W80
x[5] X [5]
−1 −1
W82 W8
0

x[ 6] X [3]
−1 −1
W83 W82 W80
x[ 7] X [7]
−1 −1 −1
s i tes.google.com/site/ncpdhbkhn 117
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
s i tes.google.com/site/ncpdhbkhn 118
Generalizations and Additional
FFT Algorithms (1)
n = N 2n1 + n2 , n1 = 0, 1,..., N 1 − 1, n2 = 0,1,..., N 2 − 1
k = k1 + N1k2 , n1 = 0, 1,..., N1 − 1, n2 = 0, 1,..., N 2 − 1

→ nk = ( N 2 n1 + n 2 )( k1 + N1k 2 ) = Nn1k 2 + N 1n2 k 2 + N 2n1k1 + n2 k1

WNN = 1, WNN1 = WN 2 , WNN 2 = WN1

N −1
X [ k ] =  x[n]WNkn , k = 0, 1,..., N − 1
n =0

N 2 −1 N1 −1
→ X [k1 + N 1k2 ] =   21 2 N
x
n2 =0 n1 =0
[ N n + n ]W ( N 2 n1 +n2 )( k1 + N1 k2 )

  N1 −1
N 2 −1
 k1n2  k2n2
=     x[ N 2 n1 + n2 ]WN1  WN  WN 2
k1n1

n2 =0 
  n1=0  
s i tes.google.com/site/ncpdhbkhn 119
Generalizations and Additional
FFT Algorithms (2)
  N 1−1
N 2 −1
 k1n2  k2n2
X [ k1 + N1k2 ] =     x[ N 2 n1 + n2 ]WN1  WN  WN 2
k1n1

n2 =0 
  n1 =0  

x n2 [n1 ] = x[ N 2n1 + n2 ]

N −1
→ X n2 [k1 ] =  n2 1 N1
x [n ]W k1n1

n1 =0

N2 −1
→ X [k1 + N 1k2 ] =  N n2 1 N2
W k1 n2

n2 =0
X [k ]W k 2 n2

x k1 [n 2 ] = W Nk1n2 X n 2 [ k1 ]

N 2 −1
→ X [k1 + N 1k 2 ] = 
n2 = 0
x k1 [n2 ]WNk22 n2

s i tes.google.com/site/ncpdhbkhn 120
Generalizations and Additional
FFT Algorithms (3)
1. Form the N2 decimated sequences
xn2 [n1 ] = x[ N 2 n1 + n2 ],
compute the N1 – point DFT of each sequences.

2. Multiply each N1 – point DFT by the twiddle


factor:
xk1 [n2 ] = W k1n2
N X n2 [k1 ].

3. Compute the N2 – point DFTs of the N1


sequences determined from step 2.
s i tes.google.com/site/ncpdhbkhn 121
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
a) Goertzel’s Algorithm
b) Chirp Transform Algorithm
c) Sliding DFT

s i tes.google.com/site/ncpdhbkhn 122
Goertzel’s Algorithm (1)
N −1
X [k ] =  x[n ]WNkn , k = 0,1,..., N − 1
n= 0
W N− kN = 1
N −1 N −1
→ X [k ] = W − kN
N  x[n ]W
n= 0
N
kn
=  x[n ]WN− k ( N −n )
n= 0
3
N = 4 → X [k ] =  x[n]W4− k ( 4− n)
n= 0

= x[3]W4−k + x[2]W4−2 k + x[1]W4−3k + x[0]W4−4k

{ {
= W4− k x[3] + W4− k x[2] + W4− k {x[1] + W4− k x[0]} }}
s i tes.google.com/site/ncpdhbkhn 123
Goertzel’s Algorithm (2)
{ {
X [ k ] = W4− k x[3] + W4− k x[2] + W4−k {x[1] + W4− k x[0]} }}

yk [−1] = 0, yk [0] = x[0] + W4− k yk [ −1],


yk [1] = x[1] + W4−k yk [0], yk [2] = x[2] + W4−k yk [1]
yk [3] = x[3] + W4− k yk [2], yk [ 4] = x[ 4] + W4−k yk [3] = W4− k yk [3]

yk [n] = WN−k yk [n − 1] + x[n], 0 ≤ n ≤ N


X [ k ] = yk [ N ]

s i tes.google.com/site/ncpdhbkhn 124
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
a) Goertzel’s Algorithm
b) Chirp Transform Algorithm
c) Sliding DFT

s i tes.google.com/site/ncpdhbkhn 125
Chirp Transform Algorithm
N −1
X [ k ] =  x[n]WNkn , k = 0, 1,..., N − 1
n =0

1 2
kn = [k − ( n − k )2 + n 2 ]
2
N −1 k2 −( n −k )2 n2
→ X [k ] =  x[ n]W W N
2
N
2 W N
2

n =0

 N −1  k2  −( n −k ) 2  n2
=    x[n]WN2  WN 2  WN2
 n =0  
 

( 2

)
=  x[ n]WNn / 2 * WN− n / 2  WNn / 2 ,
2


2
0 ≤ n ≤ N −1

h[ n] = WN− n = e j (π n / N ) n
2
/2

 x[n]  −n 2 / 2
 h[n]  * W N
→ X [k ] =  
h[ n]
s i tes.google.com/site/ncpdhbkhn 126
The Discrete Fourier Transform
1. Computational Fourier Analysis
2. The Discrete Fourier Transform
3. Sampling the Discrete – Time Fourier Transform
4. Properties of the Discrete Fourier Transform
5. Linear Convolution Using the DFT
6. Fourier Analysis of Signals Using the DFT
7. Direct Computation of the DFT
8. The FFT Idea Using a Matrix Approach
9. Decimation – in – Time FFT Algorithms
10. Decimation – in – Frequency FFT Algorithms
11. Generalizations and Additional FFT Algorithms
12. Computation of DFT for Special Applications
a) Goertzel’s Algorithm
b) Chirp Transform Algorithm
c) Sliding DFT

s i tes.google.com/site/ncpdhbkhn 127
Sliding DFT
n − N + 1 x [m ] n
xN −1[ m] n

xn −1[m] n
0 N −1 n−N n −1

 x[n − N + 1 + m], 0 ≤ m ≤ N − 1
xn [ m] =  , n ≥ N −1
0, otherwise

N −1 N −1
X n [k ] =  xn [ m]W mk
N =  x[ n − N + 1 + m]WNmk , n ≥ N − 1, 0 ≤ k ≤ N − 1
m =0 m= 0

= {X n −1[ k ] + x[ n] − x[n − N ]}WN− k , n ≥ N − 1, 0 ≤ k ≤ N − 1


N −1
X N −1[k ] =  x[ n]WNmk , 0 ≤ k ≤ N −1
m= 0

s i tes.google.com/site/ncpdhbkhn 128

You might also like