EE 4780
2D Discrete Fourier Transform (DFT)
Bahadir K. Gunturk 2
2D Discrete Fourier Transform
2D Fourier Transform
2 ( )( , ) [ , ] j um vn
m n
F u v f m n e
1 1 2
0 0
1[ , ] [ , ]
k lM N j m nM N
m n
F k l f m n eMN
2D Discrete Fourier Transform (DFT)
2D DFT is a sampled version of 2D FT.
Bahadir K. Gunturk 3
2D Discrete Fourier Transform
Inverse DFT
1 1 2
0 0
1[ , ] [ , ]
k lM N j m nM N
m n
F k l f m n eMN
2D Discrete Fourier Transform (DFT)
1 1 2
0 0
[ , ] [ , ]k lM N j m nM N
k l
f m n F k l e
where and 0,1,..., 1k M 0,1,..., 1l N
Bahadir K. Gunturk 4
2D Discrete Fourier Transform
Inverse DFT
1 1 2
0 0
1[ , ] [ , ]
k lM N j m nM N
m n
F k l f m n eMN
It is also possible to define DFT as follows
1 1 2
0 0
1[ , ] [ , ]
k lM N j m nM N
k l
f m n F k l eMN
where and 0,1,..., 1k M 0,1,..., 1l N
Bahadir K. Gunturk 5
2D Discrete Fourier Transform
Inverse DFT
1 1 2
0 0
[ , ] [ , ]k lM N j m nM N
m n
F k l f m n e
Or, as follows
1 1 2
0 0
1[ , ] [ , ]
k lM N j m nM N
k l
f m n F k l eMN
where and 0,1,..., 1k M 0,1,..., 1l N
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
2D Discrete Fourier Transform
Bahadir K. Gunturk 10
Periodicity
1 1 2
0 0
1[ , ] [ , ]
k lM N j m nM N
m n
F k l f m n eMN
1 1 2
0 0
1[ , ] [ , ]
k M l NM N j m nM N
m n
F k M l N f m n eMN
1 1 2 2
0 0
1[ , ]
k l M NM N j m n j m nM N M N
m n
f m n e eMN
1
[M,N] point DFT is periodic with period [M,N]
[ , ]F k l
Bahadir K. Gunturk 11
Periodicity
1 1 2
0 0
[ , ] [ , ]k lM N j m nM N
k l
f m n F k l e
1
[M,N] point DFT is periodic with period [M,N]
1 1 2 ( ) ( )
0 0
[ , ] [ , ]k lM N j m M n NM N
k l
f m M n N F k l e
1 1 2 2
0 0
[ , ]k l k lM N j m n j M NM N M N
k l
F k l e e
[ , ]f m n
Bahadir K. Gunturk 12
Convolution
Be careful about the convolution property!
[ ]f m
m*
[ ]g m
m
[ ]* [ ]f m g m
m
Length=P Length=Q Length=P+Q-1
For the convolution property to hold, M must be greater than or equal to P+Q-1.
[ ]* [ ] [ ] [ ]f m g m F k G k
Bahadir K. Gunturk 13
Convolution
Zero padding
[ ]* [ ] [ ] [ ]f m g m F k G l
[ ]f m
m*
[ ]g m
m
[ ]* [ ]f m g m
m
[ ]F k
4-point DFT(M=4)
[ ]G k [ ] [ ]F k G k
Bahadir K. Gunturk 14
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);
fft2 puts the zero-frequency component at the top-left corner.
fftshift shifts the zero-frequency component to the center. (Useful for visualization.)
Example: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 15
DFT in MATLAB
f
Df = fft2(f)
After fftshift
Bahadir K. Gunturk 16
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 17
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 18
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 19
Example
Bahadir K. Gunturk 20
Example
Bahadir K. Gunturk 21
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,[]);
Db = Da.*H;
Db = fftshift(Db);
b = real(ifft2(Db));
figure; imshow(b,[]);
Frequency domain Spatial domain
H
Bahadir K. Gunturk 22
Low-Pass Filtering
81x8161x61 121x121
Bahadir K. Gunturk 23
Low-Pass Filtering
1 1 11
1 1 19
1 1 1
* =
DFT(h)
h
Bahadir K. Gunturk 24
High-Pass Filtering
* =1 1 1
1 8 1
1 1 1
DFT(h)
h
Bahadir K. Gunturk 25
High-Pass Filtering
High-pass filter
Bahadir K. Gunturk 26
Anti-Aliasing
a=imread(‘barbara.tif’);
Bahadir K. Gunturk 27
Anti-Aliasing
a=imread(‘barbara.tif’);b=imresize(a,0.25);c=imresize(b,4);
Bahadir K. Gunturk 28
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 29
Noise Removal For natural images, the energy is concentrated mostly in
the low-frequency components.
Profile along the red lineDFT of “Einstein”“Einstein”
Noise=40*rand(256,256);Signal vs Noise
Bahadir K. Gunturk 30
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 31
Appendix
Bahadir K. Gunturk 32
Appendix: Impulse Train
■ The Fourier Transform of a comb function is
2, ,[ , ] [ , ] j um vn
M N M Nm n
F comb m n comb m n e
2[ , ] j um vn
k lm n
m kM n lN e
2[ , ] j um vn
m nk l
m kM n lN e
2j ukM vlN
k l
e
Bahadir K. Gunturk 33
Impulse Train (cont’d)
■ The Fourier Transform of a comb function is
2, [ , ] j ukM vlN
M Nk l
F comb m n e
2 ( ) ( )1 j uM k vN l
k l
e
(Fourier Trans. of 1)
( , )k l
uM k vN l
1
,k l
k lu v
MN M N
?
Bahadir K. Gunturk 34
Impulse Train (cont’d)
■ Proof
( ) ( ) ( ) ( )k k
uM k F u du uM k F u du
1( )
k
vv k F dv
M M
1
k
kF
M M
1( )
k
kv F v dv
M M
1( )
k
ku F u du
M M
Bahadir K. Gunturk 35
Appendix: Downsampling
m
n
u
v
[ , ]f m n( , )F u v
1 2
1 2
[ , ] [ , ]d m n f Mm Nn Question: What is the Fourier Transform of ?
Bahadir K. Gunturk 36
Downsampling
Let ,[ , ] [ , ] [ , ]M Ng m n f m n comb m n
Using the multiplication property:
1 1,
1( , ) ( , )* ( , )
M N
G u v F u v comb u vMN
1 1
2 2
1 1
2 2
1( , ) ,
k l
k lF x y u x v y dxdy
MN M N
, ( , ) ,M Nk l
comb x y x kM y lN
Bahadir K. Gunturk 37
Downsampling1 1
2 2
1 1
2 2
1( , ) ( , ) ,
k l
k lG u v F x y u x v y dxdy
MN M N
1,
k lk l
k lF u v
MN M N
1 1 such that
2 2k
kk u
M
where
1 1 such that
2 2l
ll v
N
Bahadir K. Gunturk 38
Example
umW
[ ]f m
11
( )F u
umW
2[ ] [ ] [ ]g m f m comb m
11
( )G u
0
0
Bahadir K. Gunturk 39
Example
umW
[ ]f m
11
( )F u
umW
2[ ] [ ] [ ]g m f m comb m
11
( )G u
0
0
m
[ ] [2 ]d m g m
0
?
Bahadir K. Gunturk 40
Downsampling
,[ , ] [ , ] [ , ]
[ , ] [ , , ]M Ng m n f m n comb m n
d m n g Mm N n
2 2( , ) [ , ] [ , ]j um vn j um vn
m n m n
D u v d m n e g Mm Nn e
1( , ) ,
k lk l
k lG u v F u v
MN M N
2 ' '
' ..., ,0, ,... ' ..., ,0, ,...
2 ' '
' '
[ ', ']
[ ', ']
u vj m n
M N
m M M n N N
u vj m n
M N
m n
g m n e
g m n e
'
'
Mm m
Nn n
1, ,
k lk l
u v u k v lG FM N MN M M N N
Bahadir K. Gunturk 41
Example
umW
[ ]f m
11
( )F u
umW
2[ ] [ ] [ ]g m f m comb m
11
( )G u
0
0
m
[ ] [2 ]d m g m
0u
2W 11
( )D u
Bahadir K. Gunturk 42
Example
umW
[ ]f m
11
( )F u
0
m
[ ] [ ]d m f Mm
0u
MW 11
( )D u
1
2MW No aliasing if