EE 7730: Lecture 1

EE 4780
2D Discrete Fourier Transform (DFT)
2D Discrete Fourier Transform

2D Fourier Transform
F (u, v) 



f [m, n]e  j 2 (um  vn )
m  n 

2D Discrete Fourier Transform (DFT)
1
F [k , l ] 
MN
M 1 N 1
  f [m, n]e
l 
 k
 j 2  m  n 
N 
M
m0 n 0
2D DFT is a sampled version of 2D FT.
Bahadir K. Gunturk
2
2D Discrete Fourier Transform

2D Discrete Fourier Transform (DFT)
1
F [k , l ] 
MN
M 1 N 1
  f [m, n]e
l 
 k
 j 2  m  n 
N 
M
m0 n 0
where k  0,1,..., M  1 and l  0,1,..., N  1

Inverse DFT
M 1 N 1
f [m, n]    F [k , l ]e
l 
 k
j 2  m  n 
N 
M
k 0 l 0
Bahadir K. Gunturk
3
2D Discrete Fourier Transform

It is also possible to define DFT as follows
F [k , l ] 
1
MN
M 1 N 1
  f [m, n]e
l 
 k
 j 2  m  n 
N 
M
m0 n 0
where k  0,1,..., M  1 and l  0,1,..., N  1

Inverse DFT
f [m, n] 
Bahadir K. Gunturk
1
MN
M 1 N 1
  F[k , l ]e
l 
 k
j 2  m  n 
N 
M
k 0 l 0
4
2D Discrete Fourier Transform

Or, as follows
M 1 N 1
F [k , l ]    f [m, n]e
l 
 k
 j 2  m  n 
N 
M
m0 n 0
where k  0,1,..., M  1 and l  0,1,..., N  1

Inverse DFT
1
f [m, n] 
MN
Bahadir K. Gunturk
M 1 N 1
  F[k , l ]e
l 
 k
j 2  m  n 
N 
M
k 0 l 0
5
2D Discrete Fourier Transform
Bahadir K. Gunturk
6
2D Discrete Fourier Transform
Bahadir K. Gunturk
7
2D Discrete Fourier Transform
Bahadir K. Gunturk
8
2D Discrete Fourier Transform
Bahadir K. Gunturk
9
Periodicity

[M,N] point DFT is periodic with period [M,N]
F [k , l ] 
1
MN
M 1 N 1
  f [m, n]e
l 
 k
 j 2  m  n 
N 
M
m0 n 0
1
F [k  M , l  N ] 
MN
M 1 N 1
1

MN
M 1 N 1
  f [m, n]e
lN 
 k M
 j 2 
m
n
N 
 M
1
m0 n 0
  f [m, n]e
l 
N 
 k
M
 j 2  m  n   j 2  m  n 
N 
N 
M
M
e
m 0 n 0
 F [k , l ]
Bahadir K. Gunturk
10
Periodicity

[M,N] point DFT is periodic with period [M,N]
M 1 N 1
f [m, n]    F [k , l ]e
l 
 k
j 2  m  n 
N 
M
k 0 l 0
M 1 N 1
f [m  M , n  N ]    F [k , l ]e
l
 k

j 2  ( m  M )  ( n  N ) 
N
M

k 0 l 0
M 1 N 1
   F [k , l ]e
1
l 
 k
j 2  m  n 
N 
M
e
l 
 k
j 2  M  N 
N 
M
k 0 l 0
 f [m, n]
Bahadir K. Gunturk
11
Convolution

Be careful about the convolution property!
f [m]* g[m]  F [k ]G[k ]
f [ m]
m
Length=P
f [m]* g[m]
g[ m]

*
m
Length=Q
m
Length=P+Q-1
For the convolution property to hold, M must be greater
than or equal to P+Q-1.
Bahadir K. Gunturk
12
Convolution
f [m]* g[m]  F [k ]G[l ]

Zero padding
f [ m]
f [m]* g[m]
g[ m]
m

*
m
m
4-point DFT
(M=4)
F [k ]
Bahadir K. Gunturk
G[ k ]
F [k ]G[k ]
13
DFT in MATLAB

Let f be a 2D image with dimension [M,N], then its 2D DFT
can be computed as follows:
Df = fft2(f,M,N);



puts the zero-frequency component at the top-left
corner.
fftshift shifts the zero-frequency component to the center.
(Useful for visualization.)
Example:
fft2
f = imread(‘saturn.tif’); f = double(f);
Df = fft2(f,size(f,1), size(f,2));
figure; imshow(log(abs(Df)),[ ]);
Df2 = fftshift(Df);
figure; imshow(log(abs(Df2)),[ ]);
Bahadir K. Gunturk
14
DFT in MATLAB
f
Df = fft2(f)
After fftshift
Bahadir K. Gunturk
15
DFT in MATLAB

Let’s test convolution property
f = [1 1];
g = [2 2 2];
Conv_f_g = conv2(f,g); figure; plot(Conv_f_g);
Dfg = fft (Conv_f_g,4); figure; plot(abs(Dfg));
Df1 = fft (f,3);
Dg1 = fft (g,3);
Dfg1 = Df1.*Dg1; figure; plot(abs(Dfg1));
Df2 = fft (f,4);
Dg2 = fft (g,4);
Dfg2 = Df2.*Dg2; figure; plot(abs(Dfg2));
Inv_Dfg2 = ifft(Dfg2,4);
figure; plot(Inv_Dfg2);
Bahadir K. Gunturk
16
DFT in MATLAB

Increasing the DFT size
f = [1 1];
g = [2 2 2];
Df1 = fft (f,4);
Dg1 = fft (g,4);
Dfg1 = Df1.*Dg1; figure; plot(abs(Dfg1));
Df2 = fft (f,20);
Dg2 = fft (g,20);
Dfg2 = Df2.*Dg2; figure; plot(abs(Dfg2));
Df3 = fft (f,100);
Dg3 = fft (g,100);
Dfg3 = Df3.*Dg3; figure; plot(abs(Dfg3));
Bahadir K. Gunturk
17
DFT in MATLAB

Scale axis and use fftshift
f = [1 1];
g = [2 2 2];
Df1 = fft (f,100);
Dg1 = fft (g,100);
Dfg1 = Df1.*Dg1;
t = linspace(0,1,length(Dfg1));
figure; plot(t, abs(Dfg1));
Dfg1_shifted = fftshift(Dfg1);
t2 = linspace(-0.5, 0.5, length(Dfg1_shifted));
figure; plot(t, abs(Dfg1_shifted));
Bahadir K. Gunturk
18
Example
Bahadir K. Gunturk
19
Example
Bahadir K. Gunturk
20
DFT-Domain Filtering
a = imread(‘cameraman.tif');
Da = fft2(a);
Da = fftshift(Da);
figure; imshow(log(abs(Da)),[]);
H = zeros(256,256);
H(128-20:128+20,128-20:128+20) = 1;
figure; imshow(H,[]);
H
Db = Da.*H;
Db = fftshift(Db);
b = real(ifft2(Db));
figure; imshow(b,[]);
Frequency domain
Bahadir K. Gunturk
Spatial domain
21
Low-Pass Filtering
61x61
Bahadir K. Gunturk
81x81
121x121
22
Low-Pass Filtering
h
*
1 1 1
1
1 1 1

9
1 1 1
=
DFT(h)
Bahadir K. Gunturk
23
High-Pass Filtering
h
*
1 1 1
1 8 1


1 1 1
=
DFT(h)
Bahadir K. Gunturk
24
High-Pass Filtering
High-pass filter
Bahadir K. Gunturk
25
Anti-Aliasing
a=imread(‘barbara.tif’);
Bahadir K. Gunturk
26
Anti-Aliasing
a=imread(‘barbara.tif’);
b=imresize(a,0.25);
c=imresize(b,4);
Bahadir K. Gunturk
27
Anti-Aliasing
a=imread(‘barbara.tif’);
b=imresize(a,0.25);
c=imresize(b,4);
H=zeros(512,512);
H(256-64:256+64, 256-64:256+64)=1;
Da=fft2(a);
Da=fftshift(Da);
Dd=Da.*H;
Dd=fftshift(Dd);
d=real(ifft2(Dd));
Bahadir K. Gunturk
28
Noise Removal

For natural images, the energy is concentrated mostly in
the low-frequency components.
“Einstein”
DFT of “Einstein”
Profile along the red line
Signal vs Noise
Noise=40*rand(256,256);
Bahadir K. Gunturk
29
Noise Removal

At high-frequencies, noise power is comparable to the
signal power.
Signal vs Noise

Low-pass filtering increases signal to noise ratio.
Bahadir K. Gunturk
30
Appendix
Bahadir K. Gunturk
31
Appendix: Impulse Train
■ The Fourier Transform of a comb function is
F  combM , N [m, n] 



 combM , N [m, n]e
 j 2  um  vn 
m  n 
  
  j 2 umvn 
       [m  kM , n  lN ] e
m  n    k  l 



  
 j 2 um  vn  
       [m  kM , n  lN ]e 

k   l   m  n 



Bahadir K. Gunturk



 j 2  ukM  vlN 


e




k  l 
32
Impulse Train (cont’d)
■ The Fourier Transform of a comb function is
F  combM , N [m, n] 






 j 2  ukM  vlN 


e




k  l 
 j 2  ( uM ) k  ( vN ) l 


1
e




k  l 


   (uM  k , vN  l )
k  l 
1

MN
Bahadir K. Gunturk
(Fourier Trans. of 1)



?


  u 
k  l 
k
l 
,v  
M
N
33
Impulse Train (cont’d)
■ Proof




   (uM  k ) F (u)du     (uM  k ) F (u)du
 k 
k  

1
 
k  M
1

M

 v
M
  (v  k ) F 


 k  1
F

 
M  M
k 
1

M

Bahadir K. Gunturk


  (u 
k 



 dv


  (v 
k  
k
) F  v  dv
M
k
)F  u  du
M
34
Appendix: Downsampling
v
n
F (u, v)
f [m, n]
m

12
12
u
Question: What is the Fourier Transform of d [m, n]  f [ Mm, Nn] ?
Bahadir K. Gunturk
35
Downsampling

Let g[m, n]  f [m, n]combM , N [m, n]
Using the multiplication property:
G (u, v)  F (u, v)*
1
comb 1 1 (u, v)
,
MN
M N

combM , N ( x, y )
1

MN
Bahadir K. Gunturk
1 1
2 2


 F ( x, y ) 
1 1
2 2



    x  kM , y  lN 
k  l 
  u  x 
k  l 

k
l 
, v  y  dxdy
M
N
36
Downsampling


1 1
2 2
k
l 

F
(
x
,
y
)

u

x

,
v

y




 dxdy


M
N

k  l  1 1
1
G (u, v) 
MN
2 2

1
MN
k
l 

F
u

,
v





M
N


k k ll
where

1
k 1
 k  k such that
u   

2
M 2

1
l 1
 l  l such that  v   
2
N 2

Bahadir K. Gunturk
37
Example
F (u )
f [ m]
0
m
1
0
Bahadir K. Gunturk
u
1
G (u )
g[m]  f [m]comb2[m]
m
W
1
W
u
1
38
Example
F (u )
f [ m]
0
m
1
m
d [m]  g[2m]
0
Bahadir K. Gunturk
u
1
G (u )
g[m]  f [m]comb2[m]
0
W
1
W
u
1
?
m
39
Downsampling
g[m, n]  f [m, n]combM , N [m, n]
G(u, v) 
d [m, n]  g[ Mm, N , n]
D(u, v) 



d [m, n]e
 j 2  um  vn 
m  n 


k
l 

F
u

,
v





M
N


k k ll


g[ Mm, Nn]e
 j 2  um  vn 
m  n 

g[m ', n ']e
v 
 u
 j 2  m '  n ' 
N 
M
m '...,  M ,0, M ,... n '...,  N ,0, N ,...
Mm  m '
Nn  n '


1
MN



  g[m ', n ']e
v 
 u
 j 2  m '  n ' 
N 
M
m ' n '
1
 u v
 G ,  
 M N  MN
Bahadir K. Gunturk
k v l 
 u
F

,  



M M N N
k k ll
40
Example
F (u )
f [ m]
0
m
1
m
u
1
G (u )
g[m]  f [m]comb2[m]
0
W
1
W
u
1
D(u )
d [m]  g[2m]
0
Bahadir K. Gunturk
m
1
2W
u
1
41
Example
F (u )
f [ m]
0
m
1
W
u
1
D(u )
d [m]  f [ Mm]
0
m
No aliasing if MW 
Bahadir K. Gunturk
1
MW
u
1
1
2
42