• Sebagai contoh jika citra berukuran 512 512 dan kernel berukuran
16 16, maka ada sekitar 32 juta perkalian yang dibutuhkan.
• Ini jelas tidak cocok untuk proses yang real time tanpa perangkat
keras yang dedicated.
• Untuk mengoperasikan citra dalam ranah frekuensi, maka citra dalam ranah
spasial, f(x,y), harus ditransformasikan menjadi citra dalam ranah frekuensi,
F(u,v).
• Setelah selesai dioperasikan dalam ranah frekuensi, maka citra dalam ranah
frekuensi, F(u,v), dapat dikembalikan ke dalam ranah spasial, f(x,y).
Amplitudo = 100
Frekuensi = banyaknya gelombang
dalam satu detik = 200 Hz
2x =
• Untuk f(x) real, F(u) adalah fungsi kompleks dan dapat dituliskan
sebagai:
f ( x)
F (u )e i 2ux du F (u){cos(2ux) i sin (2ux)}du
Latihan
1, 𝑡 ≤ 𝑇
1. Misalkan f(t) =
0, 𝑡 lainnya
Hitunglah hasil transformasi Fourier dan transformasi Fourier balikannya.
Hitung juga spektrum Fourier nya.
𝑡, 0≤t ≤1
𝑡−3
2. Misalkan f(t) = − , 1<𝑡 ≤3
2
0, 𝑡 lainnya
f (t ) g * (t )dt
F (u )G * (u )du
Transformasi Fourier Diskrit
• Transformasi Fourier diskrit untuk satu peubah:
N 1
f
1 i 2ux / N
Fu xe , u = 0, 1, 2, …, N – 1
N x 0
yang dalam hal ini, sinyal kontinu f(x) diterok menjadi N nilai diskrit sejarak x,
yaitu himpunan nilai {f(x0), f(x0 + x), f(x0 + 2x), …, f(x0 + (N-1)x)}.
Jadi,
fx = f(x0 + x x), x = 0, 1, 2, …, N – 1
• Interpretasi dari TFD adalah sebagai berikut: TFD mengkonversi data diskrit
menjadi sejumlah sinusoida diskrit yang frekuensinya dinomori dengan u = 0, 1, 2,
…, N – 1, dan ampiltudonya diberikan oleh F(u).
• Faktor 1/N pada persamaan F(u) adalah faktor skala yang dapat disertakan dalam
persamaan F(u) atau dalam persamaan f(x), tetapi tidak kedua-duanya.
• Contoh: Diketahui fungsi sinyal f(x) dengan hasil penerokan ke dalam nilai-nilai
diskrit sebagai berikut (N = 4):
x0 = 0.5, f0 = 2
x1 = 0.75, f1 = 3
x2 = 1.0, f2= 4
x3 = 1.25, f3= 4
1 3
1
F2 f x e i .2.2x / 4 ( 2e 0 3e i 4e i 2 4e i 3 )
4 x 0 4
1 1
= (1 0i )
4 4
1
F3 (2 i )
4
Spektrum Fouriernya:
F0 3.25
1
F1 (1 / 2) (1 / 4) 1 / 4 1 / 16 5 / 16
2 2
5
4
1
F2
4
1
F3 5
4
void TFD(int N)
/* Melakukan Transformasi Fourier Diskrit untuk N buah data masukan. Hasil transformasi disimpan di
dalam array R dan I. Array R menyimpan bagian riil, dan array I menyimpan bagian bagian imajiner. Kedua
array ini dideklarasikan sebagai peubah global. Data masukan disimpan di dalam array f[0] s/d f[N-1]
*/
{
int j, k;
double tetha;
1
Fu ,v f x , y e i 2 ( ux / N vy / M ) , u dan v = 0, 1, 2, …, N – 1
NM x 0 y 0
N 1 M 1
f x, y
u 0 v 0
Fu ,v e i 2 ( ux / N vy / M ) , x dan y = 0, 1, 2, …, N – 1
atau N 1 M 1
, u dan x = 0, 1, …, N – 1
1 i 2ux / N 1
Fu ,v f x, y e f x , y e i 2vy / M
N x 0 M y 0
N 1 M 1
f x, y F u ,v e
i 2ux / N
F u ,v e
i 2vy / M , v dan y = 0, 1, …, M – 1
u 0 v 0
Spektrum Fourier-nya adalah:
>> A = magic(3)
>> B = abs(B)
A=
8 1 6 B=
3 5 7
4 9 2 45.0000 0 0
0.0000 15.5885 5.1962
0.0000 5.1962 15.5885
>> B = fft2(A)
>> B = fftshift(B)
B=
B=
45.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i
0.0000 + 0.0000i 13.5000 + 7.7942i 0.0000 - 5.1962i 15.5885 0.0000 5.1962
0.0000 - 0.0000i 0.0000 + 5.1962i 13.5000 - 7.7942i 0 45.0000 0
5.1962 0.0000 15.5885
• Transformasi citra dari ranah spasial ke ranah frekuensi dan sebaliknya
• Cara lain:
ux vy ux vy
j 2 ( ) j 2 ( ) j 2 ( )
Pisahkan: e N
e N
e N
Misalkan: , maka:
A= B=
17 24 1 8 15 1 1 1 1 1
23 5 7 14 16 1 1 1 1 1
4 6 13 20 22 1 1 1 1 1
10 12 19 21 3 1 1 1 1 1
11 18 25 2 9 1 1 1 1 1
C= D=
M 1 N 1 1
(2 x 1)u (2 y 1)v ,u 0
C (u, v) cos
I ( x, y ) u v cos (4) u M
2M 2N 2 ,1 u M 1
u 0 v 0
M
• DCT membagi citra ke dalam 3 ranah frekuensi: low frequencies,
middle frequencies, dan high frequencies)
low middle
high
I = imread('lena-gray.bmp');
J = dct2(I);
imshow(log(abs(J)),[]),
colormap(gca,jet(64)), colorbar
10
-2
-4
-6
52
Tugas
• Implementasikan Transformasi Fourier dan balikannya untuk suatu
citra. Tampillkan citra spektrum Fourier nya.