Konvolusi Dan Transformasi Fourier
Materi pertemuan ke 4 Eri Prasetyo W
1
Teori Konvolusi •
Konvolusi dua buah fungsi f(x) dan g(x) didefinisikan sebagai berikut :
h x
f x
g x
f a g x a da
Integral dari – tak hingga sampai tak terhingga Untuk fungsi diskrit , konvolusi didefinisikan sebagai
h x
f x
g x
f a g x a
g(x) disebut dengan kernel konvolusi (filter) , kernel g(x) merupakan jendela yang dioperasikan secara bergeser pada sinyal masukan f(x) hasil konvolusi dinyatakan dengan keluaran h(x) Perhitungan hasil konvolusi diperlihatkan pada gambar a – f, dan hasil konvolusi ditunjukkan pada gambar g x/2 , 0 <= x <= 1 f(x) * g(x) =
X – x/2, 1<= x <= 2 0, Lainnya
2
Ilustrasi proses konvolusi
3
f(x)*g(x)
1/2
(g)
1
x 2
Contoh ilustrasi konvolusi lain adalah impulse Fungsi Impulse Fungsi Delta Dirac pada domain kontinue dan Fungsi Delta Kronecker pada domain diskrit d(x) yang mempunyai nilai 1 pada suatu x dan mempunyai nilai 0 pada x lainnya.
d(x ) 1 x
4
Impulse Response • Impulse Response – Menurut teori filtering, pada sistem yang ideal, sinyal yang masuk (impulse) sama dengan sinyal yang keluar (impulse response). Hal tersebut dapat digambarkan dengan transfer function dalam bentuk fungsi Delta Dirac.
• Sistem yang ideal proses konvolusi
f(x)
d(x)
f(x)*d(x)
5
POINT SPREAD FUNCTION (PSF) (FUNGSI SEBARAN TITIK)
• Sistem yang tidak ideal – Pada sistem yang tidak ideal, sinyal yang masuk mengalami degradasi atau penurunan kwalitas.
• Blurring f(x) an impulse is a point of light
proses konvolusi
g(x)
f(x)*g(x)
g(x) blurs the point (optical phenomenon yang disebut point spread function - PSF) g(x) juga disebut sebagai impulse response function 6
Konvolusi pada fungsi Dwimatra •
Fungsi malar
h x
f x,y
g x,y
f a , b g x a , y b da db
• Fungsi diskrit
h x,y
f x,y
g x,y
f a ,b g x a , y b Fungsi penapis g(x,y) disebut juga convolution filter, convolution mask, convolution kernel atau template. Dalam bentuk diskret kernel konvolusi dinyatakan dalam bentuk matriks, misal 2x2, 3x3, 2x1 atau 1x2
7
Ilustrasi konvolusi
F(i,j)=Ap1+Bp2+Cp3+Dp4+Ep5+Fp6+Gp7+Hp8+Ip9 Contoh: misal citra f(x,y) yang berukuran 5x5 dan sebuah kernel dengan ukuran 3x3, matriks sebagai berikut : 44354
0
-1
0
66552
g(x,y)= -1
4
-1
F(x,y)= 5 6 6 6 2
0
-1
0
67553 35244 Operasi konvolusi antara citra f(x,y) dengan kernel g(x,y), F(x,y)*g(x,y) 8
•
Menghitung hasil konvolusi
1.
Menempatkan kernel pada sudut kiri atas , kemudian hitung nilai pixel pada posisi (0,0) dari kernel : hasil = 3 Geser kernel satu pixel ke kanan ,kemudian hitung nilai pixel pada posisi (0,0) dari kernel: hasil = 0 Selanjutnya dengan cara yang sama geser ke kanan, dst Geser kernel satu pixel ke bawah, lakukan perhitungan seperti diatas Nilai pixel citra tepi tidak berubah
2.
3. 4. 5.
4 4 6 3 5 0 6 6 3 5
3 5 0 2 2 6 0 2 2 4
4 2 2 3 4
= hasil konvolusi
9
Transformasi Fourier • Mengapa perlu transformasi ? – Setiap orang pada suatu saat pernah menggunakan suatu teknik analisis dengan transformasi untuk menyederhanakan penyelesaian suatu masalah [Brigham,1974] – Contoh: penyelesaian fungsi y = x/z • Analisa konvensional : pembagian secara manual • Analisa transformasi : melakukan transformasi – log(y) = log(x) – log(z) – look-up table pengurangan look-up table 10
• Transformasi juga diperlukan bila kita ingin mengetahui suatu informasi tertentu yang tidak tersedia sebelumnya • Contoh : – jika ingin mengetahui informasi frekuensi kita memerlukan transformasi Fourier – Jika ingin mengetahui informasi tentang kombinasi skala dan frekuensi kita memerlukan transformasi wavelet
Transformasi Citra • Transformasi citra, sesuai namanya, merupakan proses perubahan bentuk citra untuk mendapatkan suatu informasi tertentu • Transformasi bisa dibagi menjadi 2 : – Transformasi piksel/transformasi geometris: – Transformasi ruang/domain/space 11
Transformasi Pixel • • •
Transformasi piksel masih bermain di ruang/domain yang sama (domain spasial), hanya posisi piksel yang kadang diubah Contoh: rotasi, translasi, scaling, invers, shear, dll. Transformasi jenis ini relatif mudah diimplementasikan dan banyak aplikasi yang dapat melakukannya (Paint, ACDSee, dll)
Transformasi Ruang •
•
Transformasi ruang merupakan proses perubahan citra dari suatu ruang/domain ke ruang/domain lainnya, contoh: dari ruang spasial ke ruang frekuensi Masih ingat istilah ‘ruang’ ? Ingat-ingat kembali pelajaran Aljabar Linier tentang Basis dan Ruang – Contoh : Ruang vektor. Salah satu basis yang merentang ruang vektor 2 dimensi adalah [1 0] dan [0 1]. Artinya, semua vektor yang mungkin ada di ruang vektor 2 dimensi selalu dapat direpresentasikan sebagai kombinasi linier dari basis tersebut. 12
• Ada beberapa transformasi ruang yang akan kita pelajari, yaitu : – Transformasi Fourier (basis: cos-sin) – Transformasi Hadamard/Walsh (basis: kolom dan baris yang ortogonal) – Transformasi DCT (basis: cos) – Transformasi Wavelet (basis: scaling function dan mother wavelet)
Transformasi Fourier • Pada tahun 1822, Joseph Fourier, ahli matematika dari Prancis menemukan bahwa: setiap fungsi periodik (sinyal) dapat dibentuk dari penjumlahan gelombang-gelombang sinus/cosinus. •
Contoh : Sinyal kotal merupakan penjumlahan dari fungsi-fungsi sinus berikut (lihat gambar pada halaman berikut) f(x) = sin(x) + sin(3x)/3 + sin(5x)/5 + sin(7x)/7 + sin(9x)/9 … 13
Hasil dalam transformasi fourier
Fungsi kotak sebagai penjumlahan fungsi-fungsi sinus Cobakan juga program matlab berikut untuk melihat sampai batas n berapa fungsi yang dihasilkan sudah berbentuk fungsi kotak. function kotak(n) t = 0:pi/200:8*pi; kot = sin(t); for i = 3 : 2: n kot = kot + (sin(i*t))/i; end plot(kot) 14
(a)
(c)
(b)
(d)
Gambar a) n = 1, b) n =3, c) n = 7, d) n = 99
15
FT - Motivasi • Jika semua sinyal periodik dapat dinyatakan dalam penjumlahan fungsifungsi sinus-cosinus, pertanyaan berikutnya yang muncul adalah: – Jika saya memiliki sebuah sinyal sembarang, bagaimana saya tahu fungsi-fungsi cos – sin apa yang membentuknya ?
• Atau dengan kata lain – Berapakah frekuensi yang dominan di sinyal tersebut ?
• Pertanyaan di atas dapat dijawab dengan menghitung nilai F(u) dari sinyal tersebut. Dari nilai F(u) kemudian dapat diperoleh kembali sinyal awal dengan menghitung f(x), menggunakan rumus:
16
Rumus FT – 1 dimensi • Rumus FT kontinu 1 dimensi ∞
F (u ) = ∫ f ( x) exp[−2 jπux]dx −∞ ∞
f ( x) = ∫ F (u ) exp[2 jπux]du −∞
Euler's formula: exp[−2 jπux] = cos 2πux − j sin 2πux
• Rumus FT diskret 1 dimensi 1 N −1 F (u ) = ∑x =0 f ( x) exp[ −2 jπux / N ] N 1 N −1 f ( x) = ∑x =0 F (u ) exp[ 2 jπux / N ] N Contoh berikut diambil dari Polikar (http://engineering.rowan.edu/~polikar/WAVELETS/W Ttutorial.html) Misalkan kita memiliki sinyal x(t) dengan rumus sbb: x(t) = cos(2*pi*5*t) + cos(2*pi*10*t) + cos(2*pi*20*t) + cos(2*pi*50*t) Sinyal ini memiliki empat komponen frekuensi yaitu 5,10,20,50
17
Contoh FT 1 dimensi Contoh berikut diambil dari Polikar (http://engineering.rowan.edu/~polikar/WAVELETS/ WTtutorial.html)
Misalkan kita memiliki sinyal x(t) dengan rumus sbb: x(t) = cos(2*pi*5*t) + cos(2*pi*10*t) + cos(2*pi*20*t) + cos(2*pi*50*t) Sinyal ini memiliki empat komponen frekuensi yaitu 5,10,20,50
18
Contoh sinyal 1 Dimensi x(t) Gambar sinyal satu dimensi dengan rumus x(t)= cos(2*pi*5*t) + cos(2*pi*10*t) + cos(2*pi*20*t) + cos(2*pi*50*t) (Sumber: Polikar)
19
FT dari sinyal tersebut FT dari sinyal tersebut. Terlihat bahwa FT dapat menangkap frekuensifrekuensi yang dominan dalam sinyal tersebut, yaitu 5,10, 20, 50 (nilai maksimum F(u) berada pada angka 5,10, 20, 50)
20
Contoh Penghitungan FT 1 dimensi (Gonzalez hlm 9092) 1 N −1 1 N −1 f ( x ) exp[ − 2 j π ux / N ] = f ( x)(cos(2π ux / N ) − j sin(2π ux / N ))] ∑ ∑ x= 0 x= 0 N N contoh: f (0) = 2, f (1) = 3, f (2) = 4, f (3) = 4 1 N −1 F (0) = ∑ x = 0 f ( x)(cos(2π 0 x / N ) − j sin(2π 0 x / N ))] N 1 = [ f (0) + f (1) + f (2) + f (3)] = 3.25 4 1 3 F (1) = ∑ x = 0 f ( x)(cos(2π x / 4) − j sin(2π x / 4))] 4 1 = [2(1 − 0) + 3(0 − j ) + 4(− 1 − 0) + 4(0 + j ) 4 1 1 = (2 − 3 j − 4 + 4 j ) = (− 2 + j ) = − 0.5 + 0.25 j 4 4 1 1 F (2) = − [1] = − 0.25 F (3) = − [2 + j ] = − 0.5 − 0.25 j 4 4 F (u ) =
21
Contoh Penghitungan FT • Hasil penghitungan FT biasanya mengandung bilangan real dan imajiner • Fourier Spectrum didapatkan dari magnitude kedua bilangan tersebut shg| F(u)| = [R 2(u) + I 2(u)]1/2 • Untuk contoh di halaman sebelumnya, Fourier Spectrumnya adalah sebagai berikut: • •
|F(0)| = 3.25 |F(1)| = [(-0.5)2+(0.25)2]1/2 = 0.5590 |F(2)| = 0.25 |F(3)| = [(0.5)2+(0.25)2]1/2 = 0.5590
22
Rumus FT – 2 dimensi • Rumus FT 2 dimensi
1 M −1 N −1 F T : F (u, v) = f ( x, y ) ex p −[ 2 jπ (u x/ M + vy / N )] ∑ ∑ M N x= 0 y= 0 In versF :Tf ( x, y ) =
M −1 N −1
∑ ∑ F (u, v) ex p 2[ jπ (u x/ M + vy/ N )] u = 0 v= 0
M = tin g g citra i (ju m lahb aris) N = leb arcitra (ju m lahk o lo m )
23
Contoh FT 2 Dimensi Sumber: http://www.icaen.uiowa.edu/~dip/LECTURE/LinTransforms .html
Untuk menampilkan nilai FT suatu citra, karena keterbatasan display, seringkali digunakan nilai D(u,v)= c log [1 + |F(u,v)|]
24
25