SPFirst Lecture #13

DSP First, 2/e
Lecture 17
DFT: Discrete Fourier
Transform
READING ASSIGNMENTS
 This Lecture:
 Chapter 8, Sections 8-1 to 8-3
 Other Reading:
 Chap. 8, Sect. 8-4
June 2016
© 2003-2016, JH McClellan & RW Schafer
3
LECTURE OBJECTIVES
 Discrete Fourier Transform
N 1
X [k ]   x[n ]e  j ( 2 / N ) k n
n 0
1
x[n ] 
N
N 1
j ( 2 / N ) k n
X
[
k
]
e

k 0
 DFT from DTFT by frequency sampling
 DFT computation (FFT)
 DFT pairs and properties
 Periodicity in DFT (time & frequency)
June 2016
© 2003-2016, JH McClellan & RW Schafer
4
Sample the DTFT  DFT
 Want computable Fourier transform
 Finite signal length (L)
 Finite number of frequencies
X (e jˆ ) 


x[n]e  jˆ n
n  
L 1
X ( e jˆ k )   x[n ]e  jˆ k n
n 0
ˆk  (2 / N )k , k  0,1,2, N  1
k is the frequency index
Periodic : X (e j (ˆ 2 ) )  X (e jˆ ) 
June 2016
© 2003-2016, JH McClellan & RW Schafer
X [ k  N ]  X [k ]
5
Want a Computable
INVERSE Fourier Transform
 Write the inverse DTFT as a finite Riemann sum:
x[n ]  lim
N 
 X ( e
N 1
jˆ k
k 0
 Note that ( ˆ )  ( 2 / N ) 
2
2

) 2ˆ e j ( 2 k / N ) n
1
N
 Propose:
1
x[n ] 
N
N 1
jˆ k
j ( 2 k / N ) n
X
[
k
]
e
,
where
X
[
k
]

X
(
e
)

k 0
 This is the inverse Discrete Fourier Transform (IDFT)
N 1
 X [k ]   x[n ] e  j ( 2 k / N ) n , will be forward DFT
June 2016
k 0
© 2003-2016, JH McClellan & RW Schafer
6
Inverse DFT when L=N
(proof)
 Complex exponentials are ORTHOGONAL
1 N 1
x[n ]   X [k ]e j ( 2 / N ) k n
N k 0
1

N
 N 1
 j ( 2 / N ) k m  j ( 2 / N ) k n
  x[m ]e
e

k 0  m 0

1

N
 N 1  j ( 2 / N ) k m j ( 2 / N ) k n 
x[m ]  e
e


N
m 0
 k 0

 N [n  m] 
1

N
June 2016
N 1
N 1

j ( 2 / N ) k ( n  m ) 
x[m ]  e
  x[n ]

m 0
 k 0

N 1
N 1
© 2003-2016, JH McClellan & RW Schafer

0
nm
nm
7
Orthogonality of Complex
Exponentials
The sequence set: e
1
N
j ( 2 / N ) kn
N 1

j ( 2 / N ) kn  j ( 2 / N ) mn
e
e

n 0
N 1
k 0
for n  0,1,, N  1
1

N
N 1
j ( 2 / N ) n ( k  m )
e

n 0
k m
1,
1 1  e j 2 ( k  m )


j ( 2 / N ) ( k  m )
N 1 e
0, otherwise
because 0  k , m  N ,| k  m | N
1  e j 2 l
and lim
N
j
(
2

/
N
)
l
l 0 1  e
June 2016
© 2003-2016, JH McClellan & RW Schafer
8
4-pt DFT: Numerical Example
 Take the 4-pt DFT of the following signal
x[n ]   [n ]   [n  1]
{x[n ]}  [1, 1, 0, 0]
X [0]  x[0]e  j 0  x[1]e  j 0  x[2]e  j 0  x[3]e  j 0  1  1  0  0  2
X [1]  x[0]e  j 0  x[1]e  j / 2  x[2]e  j 2 / 2  x[3]e  j 3 / 2
 1  j  2 e  j / 4
X [2]  x[0]e  j 0  x[1]e  j  x[2]e  j 2  x[3]e  j 3  1  1  0  0  0
X [3]  x[0]e  j 0  x[1]e  j 3 / 2  x[2]e  j 3  x[3]e  j 9 / 2
 1  j  2 e j / 4
June 2016
© 2003-2016, JH McClellan & RW Schafer
9
N-pt DFT: Numerical Example
 Take the N-pt DFT of the impulse
x[n ]   [n ]
N 1
X [k ]    [n ]e
{x[n ]}  [1, 0, 0,0]
 j ( 2 / N ) k n
n 0
0
   [n ]e  j ( 2 / N ) k n  1
n 0
{ X [k ]}  [1, 1, 1,,1]
June 2016
© 2003-2016, JH McClellan & RW Schafer
10
4-pt iDFT: Numerical Example
June 2016
© 2003-2016, JH McClellan & RW Schafer
11
Matrix Form for N-pt DFT
 In MATLAB, NxN DFT matrix is dftmtx(N)
• Obtain DFT by X = dftmtx(N)*x
• Or, more efficiently by X = fft(x,N)
•
Fast Fourier transform (FFT) algorithm later
1
 X [0]  1
 X [1]  1
 j 2 / N
e

 
 X [2]   1
e  j 4 / N

 



 
 X [ N  1] 1 e  j 2( N 1) / N
1

e  j 4 / N

e  j 8 / N



e  j 4( N 1) / N

  x[0] 
e  j 2( N 1) / N   x[1] 
e  j 4( N 1) / N   x[2] 



  
e  j 2( N 1)( N 1) / N   x[ N  1]
DFT matrix
June 2016
© 2003-2016, JH McClellan & RW Schafer
1
Signal
vector
12
FFT: Fast Fourier Transform
 FFT is an algorithm for computing the DFT
 N log2N versus N2 operations




Count multiplications (and additions)
For example, when N = 1024 = 210
≈10,000 ops vs. ≈1,000,000 operations
≈1000 times faster
 What about N=256, how much faster?
June 2016
© 2003-2016, JH McClellan & RW Schafer
13
Zero-Padding gives denser
FREQUENCY SAMPLING
 Want many samples of DTFT




WHY? to make a smooth plot
Finite signal length (L)
Finite number of frequencies (N)
j̂
L

N
,
N


,
X
[
k
]

X
(
e
)
Thus, we need
X (e
jˆ k
L 1
)   x[n ]e
n 0
June 2016
 jˆ k n
ˆk  (2 / N )k , k  0,1,2, N  1
© 2003-2016, JH McClellan & RW Schafer
14
Zero-Padding with the FFT
 Get many samples of DTFT
 Finite signal length (L)
 Finite number of frequencies (N)
 Thus, we need L  N , N  , X [k ]  X (e j̂ )
In MATLAB
• Use X = fft(x,N)
• With L=length(x) less than N
• Define xpadtoN = [x,zeros(1,N-L)];
• Take the N-pt DFT of xpadtoN
June 2016
© 2003-2016, JH McClellan & RW Schafer
15
DFT periodic in k
(frequency domain)
 Since DTFT is periodic in frequency, the DFT
must also be periodic in k
X [k ]  X (e j ( 2 / N ) k )
X [k  N ]  X (e j ( 2 / N )( k  N ) )  X (e j ( 2 / N )( k )( 2 / N ) N ) )  X (e j ( 2 / N ) k )
 What about Negative indices and Conjugate
Symmetry?
N  32 
June 2016
X ( e  j ( 2 / N ) k )  X  ( e j ( 2 / N ) k )
X [31]  X [1]
 X [  k ]  X [k ]
X [30]  X [2]
X [ N  k ]  X [k ]
X [29]  X [3]
© 2003-2016, JH McClellan & RW Schafer
16
DFT Periodicity in
Frequency Index
X [k ]  X (e jˆk )  X (e j ( 2 / N ) k )
k  0,1,2, N  1
X [k  N ]  X [k ]  X (e j (ˆ 2 ) )  X (e jˆ )
 X [ N  k ]  X [ k ],
e.g., X [ N  2]  X [ 2]
June 2016
© 2003-2016, JH McClellan & RW Schafer
17
DFT pairs & properties
 Recall DTFT pairs because DFT is sampled DTFT
 See next two slides
 DFT acts on a finite-length signal, so we can use
DTFT pairs & properties for finite signals
 Want DFT properties related to computation
 And, we will concentrate on one more pair:
 DTFT and DFT of finite sinusoid (or cexp)
 Length-L signal
 N-pt DFT
June 2016
© 2003-2016, JH McClellan & RW Schafer
18
These 3 signals have infinite length
June 2016
© 2003-2016, JH McClellan & RW Schafer
19
Summary of DTFT Pairs
June 2016
© 2003-2016, JH McClellan & RW Schafer
20
These 3 properties involve circular indexing
June 2016
© 2003-2016, JH McClellan & RW Schafer
21
June 2016
© 2003-2016, JH McClellan & RW Schafer
22
Convolution Property not
the same
 Almost true for DFT:
 Convolution maps to multiplication of transforms
 Need a different kind of convolution
 CIRCULAR CONVOLUTION
 LATER in an advanced DSP course
 Likewise, for Time-Shifting
 Has to be circular
 Because the “n” domain is also periodic
June 2016
© 2003-2016, JH McClellan & RW Schafer
23
Delay Property of DFT
 Recall DTFT property for time shifting:
jˆ
jˆ
y[n]  x[n  nd ]  Y (e )  X (e )e
 jˆ nd
 Expected DFT property via frequency sampling
y[n ]  x[n  nd ]  Y [k ]  X [k ] e
 j ( 2 k / N ) nd
 Indices such as n  nd must be evaluated
modulo-N because  j ( 2 k / N )( nd  N )
 j ( 2 k / N ) nd
e
June 2016
© 2003-2016, JH McClellan & RW Schafer
e
24
DTFT of a Length-L Pulse
 Know DTFT of finite rectangular pulse
 Dirichlet form and a linear phase term
1 0  n  L
sin( 12 Lˆ )  jˆ ( L1) / 2
jˆ
x[n]  
 X (e ) 
e
sin( 12 ˆ )
0 otherwise
sin( 12 Lˆ )
DL (ˆ ) 
sin( 12 ˆ )
 Use frequency-sampling to get DFT
sin( 12 L( 2 k / N ))  j ( 2 k / N )( L1) / 2
 j ( k / N )( L 1)
X [k ] 
e

D
(
2

k
/
N
)
e
L
1
sin( 2 ( 2 k / N ))
June 2016
© 2003-2016, JH McClellan & RW Schafer
25
DTFT of a Finite Length
Complex Exponential (1)
 Know DTFT of finite rectangular pulse
 Dirichlet form and a linear phase term
1 0  n  L
sin( 12 Lˆ )  jˆ ( L1) / 2
jˆ
x[n]  
 X (e ) 
e
sin( 12 ˆ )
0 otherwise
sin( 12 Lˆ )
DL (ˆ ) 
sin( 12 ˆ )
 Use frequency-shift property
e jˆ0n
y[n]  
 0
June 2016
sin( 12 L(ˆ  ˆ0 ))  j (ˆ ˆ0 )( L1) / 2
 Y (e ) 
e
1 ˆ
sin( 2 (  ˆ0 ))
otherwise
0n L
jˆ
© 2003-2016, JH McClellan & RW Schafer
26
DTFT of a Finite Length
Complex Exponential (2)
 Know DTFT, so we can sample in frequency
e jˆ0n
y[n]  
 0
sin( 12 L(ˆ  ˆ0 ))  j (ˆ ˆ0 )( L1) / 2
 Y (e ) 
e
1 ˆ
sin( 2 (  ˆ0 ))
otherwise
0n L
jˆ
 Thus, the N-point DFT is
e jˆ0n 0  n  L
y[ n ]  

LnN
 0
Y [k ]  Y ( e jˆ ) at ˆ  2N k
sin( 12 L( 2N k  ˆ 0 ))  j ( 2N k ˆ0 )( L1) / 2
Y [k ] 
e
1 2 k
sin( 2 ( N  ˆ 0 ))
June 2016
© 2003-2016, JH McClellan & RW Schafer
Dirichlet Function
sin( 12 Lˆ )
DL (ˆ ) 
sin( 12 ˆ )
27
20-pt DFT of Complex
Exponential
ˆ 0 
2
N
(2.5)
e jˆ0n
x1[n]  
 0
June 2016
sin( 12 L( 2N k  ˆ0 ))  j ( 2N k ˆ0 )( L1) / 2
 X 1[ k ] 
e
1 2 k
sin( 2 ( N  ˆ0 ))
otherwise
0n L
sin( 12 Lˆ )
DL (ˆ ) 
so the outline is a shifted Dirichlet form
1 ˆ
sin( 2  ) © 2003-2016, JH McClellan & RW Schafer
28
20-pt DFT of Complex Exp: “on
the grid”
ˆ 0 
2
N
( 2)
e jˆ0n
x2 [n]  
 0
June 2016
sin( 12 L( 2N k  ˆ0 ))  j ( 2N k ˆ0 )( L1) / 2
 X 2 [k ] 
e
1 2 k
sin( 2 ( N  ˆ0 ))
otherwise
0n L
sin( 12 Lˆ )
© 2003-2016,
McClellan & RW
DL (ˆ ) 
so theJH outline
isSchafer
a shifted Dirichlet form
1 ˆ
sin( 2  )
29
50-pt DFT of Sinusoid: zero
padding
L  20, N  50
ˆ 0 
2
N
(10)  0.4
?
 A cos(ˆ 0n ) 0  n  L
x4 [n ]  

0
otherwise

2 k
L N
X 4 [k ]  AD (
1
2
June 2016
 ˆ 0 ) e
 j(
2 k
ˆ 0 )( L 1) / 2
N
2 k
L N
 AD (
1
2
© 2003-2016, JH McClellan & RW Schafer
 ˆ 0 ) e
 j(
2 k
ˆ 0 )( L 1) / 2
N
30
RECALL: BandPass Filter (BPF)
Frequency shifting
up and down is done
by cosine multiplication
in the time domain
BPF is frequency shifted
version of LPF (below)
sin( 12 ˆ diff n )
hBP [n ]  2 cos(ˆ mid n )
n
0 | ˆ | ˆ co1
DTFT

 H BP ( e jˆ )  1 ˆ co1 | ˆ | ˆ co2
0 ˆ | ˆ | 
co 2

June 2016
© 2003-2016, JH McClellan & RW Schafer
31
50-pt DFT of Sinusoid: zero
padding
L  20, N  50
ˆ 0 
2
N
(10)  0.4
?
Zero-crossings of Dirichlet ?
Width of Dirichlet ?
Density of frequency samples?
June 2016
© 2003-2016, JH McClellan & RW Schafer
Thus we have
a simple BPF
32