Anda di halaman 1dari 24

MODUL

MATA KULIAH WAVELET

Bab 1
Wavelet dan Sifat-sifatnya
Kata wavelet berasal dari bahasa Perancis ondelete yang memiliki arti gelombang kecil.
Istilah wavelet dalam pemodelan matematis mengandung arti fungsi dasar yang dapat melakukan
rekonstruksi sinyal seperti halnya fungsi sinus dan cosinus yang dapat merekonstruksi sinyal
dalam bentuk deret Fourier. Sebagai fungsi pembangun, wavelet mampu merekonstruksi sinyal
mulus dan tak mulus termasuk sinyal dengan lompatan, atau titik runcing (Hall dan Patil, 1995).
Rekonstruksi sinyal dengan deret Fourier tidak mampu mendekati dengan baik titik-titik dengan
sifat tak mulus tersebut (Ogden, 1997). Itulah sedikit keunggulan transformasi wavelet
dibandingkan dengan transformasi Fourier.
Istilah sinyal sering digunakan dalam ranah keteknikan yang secara matematis
mempunyai pengertian sama dengan fungsi dengan domin waktu. Realisasi fungsi dengan domin
waktu yang diamati secara diskrit dengan jeda waktu yang sama juga sering disebut runtun
waktu. Meskipun pembahasan difokuskan pada fungsi dengan domin waktu, namun pada
hakekatnya wavelet dapat digunakan dalam konteks fungsi secara umum.
Fungsi
xR
x1

Sinyal
y=f(x)R
y1=f(x1)

xn

Runtun waktu

tT

f(t)R

tT

t1

y1=f(t1)

t-n

yn=f(xn)

tn
t1<t2<<tn

ZtR
Zt-n

yn=f(tn)

t-1
t

Zt-1
Zt

t=1 satuan waktu


Penggunaan variable t sengaja dihindari pada penulisan statement atau kode program

karena variable ini telah digunakan sebagai nama fungsi tercadang yaitu transpose matriks.
Penggunaan variable x dan y sering digunakan dalam penulisan kode program

karena variable

tersebut sering dikaitkan dengan absis dan ordinat. Sebagai contoh xlim dan ylim masingmasing menyatakan batas selang absis dan ordinat plot, $x dan $y masing-masing menyatakan
nama variable default untuk komponen absis dan ordinat dari suatu data frame jika nama
komponen tersebut tidak didefinisikan.

Wavelet memiliki gender yaitu wavelet ibu dan wavelet ayah. Pada umumnya
digunakan sebagai simbol wavelet ibu dan digunakan sebagai simbol wavelet ayah. Jika tidak
menyebutkan gendernya maka kata wavelet menunjuk pada wavelet ibu. Wavelet ayah kadang
kala juga disebut sebagai fungsi skala. Sifat pada persamaan (1.1) harus dimiliki oleh setiap
pasangan wavelet (Daubhechies, 1992).

(t)dt 0 , dan (t)dt 1

(1.1)

Wavelet memiliki keturunan, yaitu bentuk translasi dan dilatasi dari wavelet ibu atau wavelet
ayah. Aturan dilatasi dan translasi wavelet dinyatakan dalam persamaan (1.2). Indek j
menyatakan besaran dilatasi dan indek k menyatakan besaran translasi. Wavelet ibu, ayah dan
keturunannya membentuk keluarga wavelet. Gambar 1.1 merupakan visualisasi wavelet Haar,
yang merupakan wavelet paling sederhana dan paling tua.

j,k ( t ) 2 2 (2 j t k ) dan j,k (t ) 2 2 (2 j t k) ; j,kZ


j

(1.2)

Keterangan Gambar
1, 0 t 0.5

(a) wavelet Haar (t)= 1, 0.5 t 1


0, t yang lain

(b) wavelet Haar -1,1(t)


(c) wavelet Haar 1,0(t)

Gambar 1.1. (a) Wavelet Haar, (b) dan (c) keturunan wavelet Haar
Adapun wavelet ayah Haar dirumuskan pada persamaan (1.3):
1 0 t 1
(t)=
0, t yanglain

(1.3)

Suatu keluarga wavelet dikatakan sebagai keluarga wavelet orthogonal jika memenuhi sifat-sifat
pada persamaan (1.4)

1, jika m n

j,m (t) j,n (t)dt 0, jika m n


j,k (t)m,n (t)dt 0

(1.4)

1, jika j m dan k n

j, k (t) m,n (t)dt 0, yanglain


Catatan Penting

Dalam banyak tulisan (misalnya Ogden, 1997) aturan dilatasi dan translasi wavelet pada
persamaan (1.2) dituliskan dengan aturan seperti pada persamaan (1.2a):
j

j,k ( t ) 2 2 (2 j t k ) dan j,k ( t ) 2 2 (2 j t k) ; j,kZ )

(1.2a)

Cobalah selidiki perbedaan yang timbul dari persamaan (1.2) dan (1.2a)
Komputasi dan Visualisasi
Komputasi dan visualisasi materi wavelet ini menggunakan perangkat lunak open source
serta dukungan modul wavelet. Program
pertama kali dibuat oleh Venable dan Smith
(1990) sedangkan modul wavelet dibuat oleh Aldrich (2009). Pada saat ini program
beserta
perangkat pendukung lainnya dikembangkan secara kontinu oleh R Core Develompent Team dan
dapat diunduh secara gratis dengan alamat http://CRAN.R-project.org.
Mengenal Tipe Wavelet
Sebagai bahan pendukung, buku ini juga dilengkapi file workspace
dengan nama
wave.RData yang berisi beberapa contoh wavelet. Beberapa tipe wavelet ( orthogonal wavelet)
yang telah dikenal antara lain:
Tipe Coiflet
: c6,c12, c18, c24 dan c30
Tipe Daublet
: haar, d2, d4, d6, d8, d10, d12, d14, d16, d18 dan d20
Type Symlet.
: s4, s6, s8, s10, s12, s14, s16, s18 dan s20
Tidak semua tipe wavelet tersedia dalam file wave.RData, mother wavelet tipe Coiflet (Coifman
wavelet) yang tersedia adalah c6 dan c12 dan untuk father waveletnya adalah c6f dan c12f.
Mother wavelet tipe Daublet (Daubechies wavelet) yang tersedia adalah d2, d4, d6, dan d8
untuk father waveletnya adalah d2f, d4f, d6f, dan d8f. Mother wavelet tipe Symlet yang tersedia
adalah s2, s4, s6, dan s8 untuk father waveletnya adalah s2f, s4f, s6f, dan s8f.
Untuk melihat visualisasi wavelet yang tersedia dalam lembar kerja wave.RData
digunakan perintah plot yang merupakan fungsi bawaan dari . Sebagai contoh akan dibuat
visualisasi dari wavelet d2 dan d2f. Selanjutnya Pembaca dapat mencoba sendiri untuk tipe
wavelet yang lain
plot(d2, type=l)
plot(d2f,type=l)

Membandingkan wavelet dari type yang berbeda


par(mfrow=c(2,2))
plot(d6,type=l)
plot(s6, type=l)
plot(d8,type=l)
plot(s8, type=l)

Pembaca dapat mencoba dengan cara yang sama untuk membandingkan wavelet d4f dengan s4f,
d4 dengan s4, d6f dengan s6f dan d8f dengan d8f.
Support Wavelet
Support suatu fungsi adalah closure dari himpunan titik-titik domain yang memberikan
nilai fungsi tidak sama dengan nol. Pandang pemetaan f : tR y=f(t)R, maka Support(f)=

{t | f(t) 0} .Dalam file yang telah disediakan batas bawah dari support untuk setiap wavelet
adalah harga minimum absis, dan batas atasnya adalah nilai maksimum absis. Sebagai
kesepakatan batas bawah support wavelet akan dinotasikan dengan bbsjk dengan j dan k masingmasing indek dilatasi dan translasi. Dengan analogi yang sama batas atas support akan
dinotasikan dengan basjk.
Contoh1.1:
bbs00=min(d4$x) #batas bawah support(d4)
bas00=max(d4$x) #batas atas support(d4)

Jadi Support(d4)=[bbs00,bas00]
Pembaca dapat mencoba untuk wavelet yang lain dan mencatat support dari masing-masing
wavelet karena akan digunakan di kegiatan berikutnya
Translasi dan Dilatasi Wavelet
Dari persamaan (1.2) telah dirumuskan bentuk translasi dan dilatasi wavelet yaitu:
j, k ( t ) 2 j / 2 (2 j t k )
dan

j, k ( t ) 2 j / 2 (2 j t k )
Indeks dilatasi j akan berpengaruh terhadap perubahan support dan range (daerah hasil) secara
berkebalikan, artinya jika support menyempit maka range akan melebar. Indek translasi k
berpengaruh terhadap pergeseran posisi wavelet pada sumbu datar tanpa mengubah lebar
support. Pengarus perubahan support dan range akibat perubahan indek j dan k ini diperlukan
untuk memenuhi sifat wavelet pada persamaan (1.4). Dengan demikian untuk suatu indek dilatasi
j dan indek translasi k akan membawa perubahan support dan range dari wavelet dasar atau .
Wavelet dasar dapat dipandang sebagai bentuk dilatasi dan translasi dengan j=0 dan k=0:
a. Perubahan support pada wilayah absis

bbs00 bbsjk 2 j (bbs00 k )


bas 00 basjk 2 j (bas 00 k )
t 0,0 t j,k 2 j ( t 0,0 k )
b. Perubahan range support pada wilayah ordinat

0,0 (bbs00) j, k (bbsjk ) 2 j / 2 0,0 (bbs00)


0,0 (bas 00) j, k (bbsjk ) 2 j / 2 0,0 (bas 00)
0,0 ( t ) j, k ( t j, k ) 2 j / 2 0,0 ( t )
Proses yang sama berlaku untuk mother wavelet. Berikut kode program yang dapat digunakan
untuk melakukan translasi dan dilatasi wavelet
wave.jk<-function(wav=d2, j=1, k=1)
{
n<-length(wav$x)
bbs0<-min(wav$x)
bas0<-max(wav$x)
bbsjk<-(2^-j)*(bbs0+k)
basjk<-(2^-j)*(bas0+k)
xjk<-seq(bbsjk,basjk,length=n)
yjk<-(2^(j/2))*wav$y
return(list(x=xjk,y=yjk))
}
Contoh 1.2
>d421=wave.jk(d4,j=2,k=1)
>plot(d421, type=l, xlim=c(-1,2), ylim=c(-3,4))
>par(new=T)
>plot(d4, type=l, xlim=c(-1,2), ylim=c(-3,4))

Sifat Pergandaan Wavelet (Inner Product)


Dua vector f dan g dikatakan orthogonal dalam ruang L2(R) jika dipenuhi <f,g> =

f .g dt =0. Karena untuk setiap j,k berlaku j, k (t) j, k (t)dx 0 maka father wavelet
R

orthogonal dengan mother wavelet. Sifat yang lain adalah

j, k (t )dt 1 dan j, k (t )dt 1 .


2

Komputasi dari sifat ini dapat dilakukan dengan pendekatan berikut:


n

j, k (t ) j, k (t)dt j, k (t i ) j, k (t i )t
i 1

R
2
j, k (t )dt
R

2j, k (t i )t .
i 1

Contoh 1.3
>sum(d4$y*d4f$y*(d4$x[10]-d4$x[9]))
>sum(d4f$y^2*(d4$x[10]-d4$x[9]))

Pambaca dapat menyelidiki pertanyaan-pertanyaan terkait sifat pada persamaan (1.4) seperti:
- Apakah j,k dan j+1,k orthogonal? dicoba untuk beberapa wavelet yg berbeda
- apakah j,k dan j+1,k orthogonal? dicoba untuk beberapa wavelet yg berbeda

Bab 2
Transformasi Fourier
Transformasi Fourier telah dibahas secara detil pada matakuliah kalkulus, namun untuk
mengingatkan kembali akan dibahas secara singkat tentang transformasi Fourier. Teorema pada
transformasi Fourier menyatakan bahwa, setiap fungsi f di dalam ruang Hilbert L 2[a,b] dengan
[a,b]R dapat dinyatakan dalam jumlahan tak hingga
suku-suku dari fungsi cosines dan sines yang terdilatasi.
Untuk menyederhanakan pembahasan tanpa mengurangi
makna secara keseluruhan, fungsi yang akan
ditransformasikan dibatasi pada domain [-, ]. Adapun
fungsi dengan domain [a,b] dapat dibawa ke domain [-,]
terlebih dulu dengan rumus persamaan (2.1) sebelum dilakukan transformasi Fourier
2(b x )
t
(2.1)
ba
Ekspansi dari fungsi f L2[-,] dalam deret Fourier dituliskan seperti pada persamaan (2.2)

a0
f (t )
(a j cos( jt ) b j sin( jt ))
2 j1

(2.2)

dengan

1
1
a j f , cos( j) f ( t ) cos( jt )dt , j 0,1,2,...

1
1
b j f , sin( j) f ( t ) sin( jt )dt, j 1,2,...

Persamaan (2.2) berlaku dalam pengertian ruang L2 seperti dituliskan pada persamaan (2.3). Hal
ini sesuai dengan fakta bahwa cos(jt) dan sin(jt) dengan j=0,1,2, membangun basis untuk
ruang L2[-, ], sehingga setiap f L2[-, ] dapat dinyatakan sebagai kombinasi linier dari basis
tersebut seperti pada persamaan (2.2).
2

0 (a cos( jt ) b sin( jt ) dt 0

f
(
t
)

j
j

j1

(2.3)

Mungkin saja nilai fungsi f tidak sama dengan nilai deretnya di beberapa titik, misalnya di titiktitik diskontinuitas. Ekspansi fungsi f dengan transformasi Fourier pada persamaan (2.2)
menghasilkan bentuk deret tak hingga, namun fungsi f dapat didekati dengan baik menggunakan
jumlahan terbatas sampai dengan indek J tertentu seperti dituliskan pada persamaan (2.4).
J
a
fJ ( t ) 0 (a j cos( jt ) b j sin( jt ))
2 j1

(2.4)

Visualisasi dan Komputasi


Perhitungan fungsi secara numeric (empiric) dengan bantuan computer sangat diperlukan
untuk mempelajari sifat fungsi dalam bentuk visualisasi grafis. Untuk keperluan komputasi
biasanya persamaan (2.4) dihitung secara numeric dengan langkah sebagai berikut,
(1). Membuat partisi domin [-, ] menjadi n sub-interval dengan lebar sama yaitu sebesar t.
Himpunan titik-titik tengah sub-interval adalah {t1, t2,, tn }

(2). Menghitung penduga dari koefisien deret Fourier untuk i=1,2, , J


a 0

1 n
f (t k ) t ,
k 1

a i

1 n
f (t k ) cos(it k ) x ,
k 1

1 n
b i f ( t k ) sin(it k ) x
k 1

J
1
(3). Menghitung fJ ( t k ) a 0 (a i Cos(it k ) biSin (it k )) , k=1,2,,n
2
i 1

(4). Membuat plot grafik dari pasangan t k , fJ ( t k ) , k=1,2, , n yang merupakan visualisasi
pendekatan dari persamaan (5) pada level J
Contoh 2.1:
Diberikan fungsi dengan definisi sebagai berikut
t untuk t / 2

f ( t ) / 2 untuk / 2 t / 2
t untuk
/2 t

Akan dibuat pendekatan dan visualisasinya untuk fungsi tersebut dalam bentuk deret Fourier
pada level J=1,2, dan 3.
fourplot <- function()
{
x <- seq( - pi, pi, length = 3000) # definisi domain
# Hitung nilai Cosinus dan sinusnya
c1 <- cos(x)
c2 <- cos(2 * x)
c3 <- cos(3 * x)
s1 <- sin(x)
s2 <- sin(2 * x)
s3 <- sin(3 * x)
delta.x <- (2 * pi)/3000
# definisikan fungsi yang akan didekati sesuai domainnya
#Jadi baris berikut dapat diganti dengan fungsi yng dikehendaki
fx <- sapply(x, pilih.fungsi)
# Hitung koefisien deret Fourier

# integral didekati dengan jumlah numerik


a0 <- (sum(fx) * delta.x)/pi
a1 <- (sum(fx * c1) * delta.x)/pi
a2 <- (sum(fx * c2) * delta.x)/pi
a3 <- (sum(fx * c3) * delta.x)/pi
b1 <- (sum(fx * s1) * delta.x)/pi
b2 <- (sum(fx * s2) * delta.x)/pi
b3 <- (sum(fx * s3) * delta.x)/pi
# aktifkan device grafik, siapkan 4 lokasi
win.graph()
par(mfrow = c(2, 2))
# gambarkan fungsi asli
plot(x, fx, type = "l")
title(main = "Fungsi Asli", xlab = "Harga x", ylab = "Harga f(x)",
axes = F)
# fungsi pendekatan dg j=1
plot(x, a0/2 + a1 * c1+b1*s1, type = "l")
title(main = "Fs pendekatan Fourier j=1")
# fungsi pendekatan dg j=2
plot(x, a0/2 + a1 * c1 + a2 * c2+ b1*s1+ b2*s2, type = "l")
title(main = "Fs pendekatan Fourier j=2")
# fungsi pendekatan dg j=3
plot(x, a0/2 + a1 * c1 + a2 * c2 + a3 * c3+ b1*s1+ b2*s2+b3*s3, type =
"l")
title(main = "Fs pendekatan Fourier j=3")
}

Sub program memilih fungsi sesuai area yang ditentukan


pilih.fungsi <- function(x)
{
if(x < - pi || x > pi)
return(0)
else if(x >= - pi && x <= - pi/2)
return(pi + x)
else if(x > - pi/2 && x <= pi/2)
return(pi/2)
else return(pi - x)
}

Bab 3
Transformasi Wavelet
Telah disampaikan pada bagian sebelumnya bahwa setiap fL2[a,b] dapat dinyatakan
dalam jumlahan suku-suku tak hingga dari fungsi cosines dan sines yang terdilatasi. Dalam
kalimat yang lebih matematis dapat dikatakan bahwa setiap fL2[a,b] dapat dinyatakan sebagai
kombinasi linier dari suatu basis dalam L2[a,b]. Dalam hal ini fungsi sines dan cosines
membangun basis untuk ruang L2[a,b].
Keberadaan fungsi pembangkit basis dalam ruang L2 tidaklah tunggal. Seperti halnya
fungsi sine dan cosine yang dapat membangun basis pada ruang L2[a,b], fungsi wavelet dapat
membangun basis untuk ruang L2(R). Sebagai akibatnya setiap fL2(R) dapat dinyatakan
sebagai kombinasi linier suatu basis yang dibangun oleh wavelet seperti dituliskan pada
persamaan (3.1).

f (t)

c J, k J, k (t ) d j, k j, k (t )

k Z

(3.1)

j J k Z

c J, k f , J, k f ( t )J, k ( t )dt

dengan

d j, k f , j, k f ( t ) j, k ( t )dt
Persamaan (3.1) dapat dinyatakan sebagai jumlahan komponen skala S dan komponen
detil D seperti pada persamaan (3.2)

f (t)

c J, k J, k (t ) d J 1, k J 1, k (t) d J 2, k J 2, k (t) ... d1, k 1, k (t)

k Z

kZ

SJ + DJ-1 + DJ-2 + + D1

kZ

kZ

(3.2)

Lebih lanjut dari persamaan (3.2) akan diperoleh


SJVJ
SJ+DJ-1=SJ-1VJ-1=VJWJ-1
SJ+DJ-1+DJ-2=SJ-2VJ-2=VJWJ-1WJ-2

SJ + DJ-1 + DJ-2 + + D1=S1V1= VJWJ-1WJ-2 W1


Koleksi dari SJ, SJ-1, , S1 membentuk himpunan pendekatan multiresolusi (Multiresolution
Approximations=MRA). Ruang multiresolusi yang terbentuk dituliskan sebagai
VJVJ-1VJ-2L2(R)
Komputasi dan Visualisasi
Perangkat modul wavelet tidak secara otomatis tersedia pada saat instalasi
. Modul
wavelet merupakan perangkat add in yang harus diinstalasikan tersendiri sesudah instalasi
selesai. Modul wavelet yang digunakan pada buku ini adalah wavelet-0.2-5 yang disusun oleh
Aldrich (2009). Sumber program dan petunjuk penggunaannya dapat diunduh di

http://www.ealdrich.com/wavelets/ atau melalui situs CRAN. Berikut ini contoh membangun


MRA untuk fungsi seperti pada contoh 2.1
x=seq(-pi,pi,length=128)
gambar1=function (x)
{
if (x< -pi/2)
y=x+pi
else if (x<pi/2)
y=pi/2
else
y=pi-x
return(y)
}
y=sapply(x,gambar1)
plot(x,y, type='l')
mra.y=mra(y,n.level=4,filter='haar')
plot(x, y,type='l', xlab='',ylab='',xlim=c(-pi,pi), ylim=c(0,pi/2))
par(new=T)
plot(x, mra.y@S$S4,type='l', xlab='',ylab='',xlim=c(-pi,pi), ylim=c(0,pi/2),col=2)
win.graph()
plot(x, y,type='l', xlab='',ylab='',xlim=c(-pi,pi), ylim=c(0,pi/2))
par(new=T)
plot(x, mra.y@S$S3,type='l', xlab='',ylab='',xlim=c(-pi,pi), ylim=c(0,pi/2),col=3)
win.graph()
plot(x, y,type='l', xlab='',ylab='',xlim=c(-pi,pi), ylim=c(0,pi/2))
par(new=T)
plot(x, mra.y@S$S2,type='l', xlab='',ylab='',xlim=c(-pi,pi), ylim=c(0,pi/2),col=4)
win.graph()
plot(x, y,type='l', xlab='',ylab='',xlim=c(-pi,pi), ylim=c(0,pi/2))
par(new=T)
plot(x, mra.y@S$S1,type='l', xlab='',ylab='',xlim=c(-pi,pi), ylim=c(0,pi/2),col=5)

Pembaca dapat lebih memahami MRA dengan memvisualisasikan dan membandingkan hasilhasil berikut
a. Membandingkan y1= mra.y@S$S4+mra.y@D$D4 dengan mra.y@S$S3

b. Membandingkan y2= mra.y@S$S4+ mra.y@D$D4+ mra.y@D$D3 dengan


mra.y@S$S2
c. Perbedaan hasil dari akibat pemilihan wavelet merupakan hal lain yang menarik untuk
dipelajari
d. Perbedaan hasil pendekatan dengan deret Fourier dan dengan MRA

Bab 4

Transformasi Wavelet Diskrit (DWT)


Transformasi wavelet yang telah dibahas pada bagian sebelumnya sebenarnya merupakan
transformasi wavelet kontinu (CWT). Koefisien-koefisien wavelet pada persamaan (3.1)
diperoleh melalui proses integrasi, oleh karenanya nilai wavelet harus terdefinisi pada setiap
xR. Ada bentuk lain dari transformasi wavelet yang disebut transformasi wavelet diskrit
(DWT). Hal ini dapat dilakukan meskipun nilai-nilai wavelet hanya terdefinisi pada sejumlah
titik berhingga saja. Vektor yang berisi nilai-nilai wavelet tersebut disebut filter wavelet. Karena
ada dua jenis wavelet yang membangun persamaan (3.1) maka pada DWT juga terdapat dua
filter pembangun DWT yaitu filter wavelet (ibu) yang biasa dinotasikan dengan h dan filter skala
(wavelet ayah) yang biasa dinotasikan dengan g.
Gambar 4.1 memperlihatkan 4 titik yang dipilih untuk membangun filter d4 yang berasal
dari wavelet Daubechies. Titik-titik absis dipilih
dengan jarak interval yang sama sedemikian hingga
memberikan titik-titik ordinat sebagai nilai filter
yang memenuhi sifat-sifat yang dipersyaratkan
yaitu:
1. Panjang filter adalah genap
2.

L 1

L 1

i0

i0

h i2 1 dan

gi2 1 dengan L panjang filter

L 1

3.

h igi 0

i0

4. Antara h dan g memiliki hubungan seperti tertulis pada persamaan (4.1)


gl =(-1)l +1hL-1-l

(4.1)

Sifat 2 dan 3 memiliki analogi dengan sifat wavelet seperti tertulis pada persamaan (1.4).
Misalkan diberikan filter wavelet h=(h0, h1, , hL-1) dan f=(f1, f2, , fn) merupakan
realisasi fungsi f pada n titik t1, t2, , tn dengan jeda interval t=1 satuan waktu. Dalam hal ini
disyaratkan n=2J untuk suatu bilangan bulat positif J. Secara matematis DWT dapat dituliskan
seperti pada persamaan (4.2)
w=Wf
dengan w=hasil DWT dan W= matriks transformasi berukuran nxn

(4.2)

Transformasi wavelet diskrit akan memetakan vector f=( f1, f2, , fn) ke vector koefisien w=(w1,
w2, , wJ) dengan w memuat koefisien wavelet dj,k, dan koefisien skala cJ,k j=1,2, , J yang
merupakan nilai pendekatan dari koefisien pada persamaan (3.1).
Membangun Matriks Transformasi
Matriks transformasi W dibentuk dengan translasi dan dilatasi filter h dan g yang
diberikan dengan tetap mempertahankan sifat-sifat filter pada setiap operasi translasi dan dilatasi.
Secara umum matriks transformasi W berbentuk seperti di bawah ini:

Koefisien wavelet pada level j=1 yaitu w1 dihasilkan dari operasi n/2 baris pertama, koefisien
wavelet pada level j=2 yaitu w2 dihasilkan dari operasi n/4 baris berikutnya, dan sterusnya
sehingga baris ke n-1 akan menghasilkan koefisien wavelet transformasi pada level j=J dan baris
ke-n akan menghasilkan koefisien skala.
Agar lebih mudah untuk difahami berikut ini diberikan contoh matriks filter yang dibentuk
dari filter Haar untuk n=8. Dengan memperhatikan Gambar 1.1 dan hasil perhitungan dilatasi
untuk j=1 untuk wavelet Haar akan diperoleh h= 1 , 1 dan g= 1 , 1 .
2
2
2 2

1
2

0
0
W= 1

2
0
1
2 2
1
2 2

1
2

1
2

1
2

1
2

1
2

12

1
2

1
2

12
1
2 2
1
2 2

12
1
2 2
1
2 2

1
2
1

1
2 2
1
2 2

1
2 2
1
2 2

1
2 2
1
2 2

1
2

2 2
1
2 2

0
1
2
0

1
2
1
2 2
1
2 2

Baris pertama diperoleh dari filter h dengan urutan masuk dibalik. Baris ke-2 merupakan bentuk
pergeseran 2 langkah ke kanan dari baris sebelumnya. Demikian seterusnya sehingga baris ken/2=4 adalah bentuk pergeseran dua langkah dari baris ke-3. Baris-baris pada level 2 merupakan

bentuk dilatasi dari filter pada level 1 yang diperoleh melalui operasi konvolusi antara filter skala
g dengan up-sampled dari h yang dinotasikan dengan hup. Bentuk up-sampled dari h diperoleh
dengan menyisipkan 0 di antara dua nilai filter yang tidak sama dengan 0. Sebagai contoh Up-

1
1
1
1
,
sampled dari h=
adalah
yaitu menyisipkan 0 di antara nilai filter yang
,0,

2
2
2
2
tidak 0.
Operasi konvolusi antara fungsi F dan G yang merupakan fungsi-fungsi kontinu
dirumuskan pada persamaan (4.3).
(F*G)(u)= F(u v)G ( v)dv

(4.3)

Jika F dan G merupakan fungsi dengan domin diskrit maka persamaan (4.3) akan menjadi
persamaan (4.4)
i

(F*G)(i)= F(i k )G (k )

(4.4)

k0

Dengan demikian hasil konvolusi hup dan g dapat dicari sebagai berikut
h (02) h up[0].g[0]

1 1
1
.

2 2 2

1
1 1
1

2
2 2 2
1 1
1
1
1
h up[2].g[0] h up[1].g[1] h up[0].g[2]
.
0.

.0
2
2 2
2
2
1
1
h up[3].g[0] h up[2].g[1] h up[1].g[2] h up[0].g[3] 0 0 0
2
2

h1( 2) h up[1].g[0] h up[0].g[1] 0.

h (22)

h 3( 2)

h i( 2) 0, i 3

Jadi diperoleh h(2)= 1 , 1 , 1 , 1 . Dengan cara yang sama pembaca akan mendapatkan filter
2 2

skala untuk j=2 yaitu g(2)= 1 , 1 , 1 , 1 . Karena ukuran sampel n=8=23 maka level tertinggi
2 2 2 2

adalah J=3 seperti dapat dilihat pada matrik transformasi W di atas.


Komputasi dan Visualisasi
Paket Wavelet telah menyediakan fungsi yang dapat digunakan untuk menghitung
koefisien wavelet melalui DWT. Aturan penulisannya adalah sebagai berikut:
dwt(X, filter="la8", n.levels, boundary="periodic", fast=TRUE)

Keterangan: X

= Data dalam kelas runtun waktu univariat atau multivariate. Realisasi


fungsi dengan domin waktu yang diamati dalam jeda waktu t yang sama
dapat dipandang sebagai runtun waktu.

filter = Jenis filter yang dapat dipilih yaitu type Daubechies terdiri atas
haar,d4,d6,d8, d10,d12,d14, d16,d18,d20, type least
asymmetric terdiri dari la8,la10,la12, la14,la14,la16,
la18,la20, type best localized terdiri dari bl14,bl16,bl20, dan
type Coiflet terdiri dari c6,c12,c18,c24,c30.
n.levels= Tingkat atau level DWT
Keterangan lebih lanjut dapat dibaca di buku petunjuk dalam Aldrich (2009)
Contoh 4.1:
x=seq(-pi,pi,length=128)
y=2*sin(2*x)-cos(3*x)
plot(x,y, type='l')
y.dwt=dwt(y,n.level=4)
y.dwt
plot(y.dwt@W$W1,type='h')
plot(y.dwt@W$W2,type='h')
plot(y.dwt@W$W3,type='h')
plot(y.dwt@W$W4,type='h')
plot(y.dwt@V$V4,type='h')
Penggunaan DWT untuk Proses De-noising
Usaha untuk mengurangi atau bahkan menghilangkan gangguan random pada data (data
de-noising process) kadang merupakan keputusan yang tepat untuk diambil sebelum melakukan
analisis data. DWT dapat dimanfaatkan untuk melakukan proses denoising dengan cara
mengabaikan koefisien-koefisien wavelet yang cukup kecil. Proses ini disebut wavelet shrinkage
atau wavelet thresholding. Ada banyak cara menentukan ambang batas (threshold) koefisien
wavelet. Ulasan tersebut antara lain dapat dibahas dalam Ogden (1997) yang mengusulkan
universal threshold sebesar

2 log( n )

dengan n ukuran sampel, yang berarti jika

w j, k 2 log( n ) maka koefisien tersebut diabaikan atau dianggap 0. Disamping itu juga
dibahas hasil dari Donoho dan Johnston (1994) yang memberikan threshold minimax untuk
berbagai ukuran sampel n seperti pada Tabel 4.1.

Berikut ini diberikan contoh penulisan statemen R dengan menggunakan modul tambahan
wavelet.
x=seq(-pi,pi,length=128)
y=2*sin(2*x)-cos(3*x)
y.nois=y+rnorm(128)

y.dwt=dwt(y.nois, ,4)
y.dwt@W$W1[abs(y.dwt@W$W1)<1.669]=0
y.dwt@W$W2[abs(y.dwt@W$W2)<1.669]=0
y.dwt@W$W3[abs(y.dwt@W$W3)<1.669]=0
y.dwt@W$W4[abs(y.dwt@W$W4)<1.669]=0
plot(y,type='l',ylim=c(-4,4.5))
par(new=t)
plot(idwt(y.dwt),type='l',ylim=c(-4,4.5),col=2)
par(new=t)
plot(y.nois,type='l',ylim=c(-4,4.5),col=3)

Tabel 4.1. Minimax Thershold untuk berbagai ukuran sampel n


n
64
128
256
512

1.474
1.669
1.860
2.047

n
1024
2048
4096
8192

2.232
2.414
2.594
2.773

n
16384
32768

2.952
3.131

Bab 5
Maximal Overlap Discreete Wavelet Transform
Jika ukuran sampel sebarang yang tidak dapat dinyatakan dalam bentuk 2J, dengan J
bilangan bulat positif, pemfilteran dengan DWT seperti pada persamaan (4.2) tidak dapat
dilakukan. Sebagai alternative koefisien wj,k dan cJ,k dapat dihitung dengan Maximal Overlap
Discrete Wavelet Transform (MODWT). Meskipun pembahasan difokuskan pada analisis data
runtun waktu namun pada hakekatnya MODWT juga dapat digunakan dalam konteks fungsi
secara umum. Beberapa istilah yang memeiliki maksud sama dengan MODWT adalah Stationary
wavelet transform, Redundant wavelet transform, Algorithme trous, Quasi-continuous wavelet
transform, Translation invariant wavelet transform, Shift invariant wavelet transform, Cycle
spinning, dan Undecimated wavelet transform (UWT)
Filter untuk MODWT diperoleh dari filter DWT dengan rumusan yang akan dijelaskan
~
~ ~ ~
berikut ini. Misalkan h=[h0, h1, , hL-1] adalah filter DWT dan h [h 0 , h1, h L 1 ] adalah filter
~
MODWT maka filter MODWT diperoleh dengan rumus h h / 2 . Hal yang sama berlaku
untuk filter skala g dan ~
g . Setelah mengetahui hubungan antara filter DWT dan filter MODWT
selanjutnya untuk menyingkat penulisan symbol filter MODWT dituliskan sebagai h dan g
seperti pada filter DWT. Dari hubungan antara filter DWT dan filter MODWT diperoleh sifatsifat filter MODWT sebagai berikut
1. Panjang filter adalah genap
L 1

2.

h i2

i0

1
dan
2

L 1

gi2 2

dengan L panjang filter

i0

L 1

3.

h igi 0

i0

4. Antara h dan g memiliki hubungan


gl =(-1)l +1hL-1-l

Didefinisikan h dan g berturut-turut adalah filter rekonstruksi untuk komponen detil dan
komponen skala. Elemen filter h adalah elemen dari h dengan urutan waktu terbalik, demikian
pula analogi untuk g. Skenario dari MODWT pada tingkat j=1 dapat dijelaskan menggunakan
Gambar 5.1. Koefisien wavelet w1,k dihasilkan dari konvolusi antara runtun waktu Z dan h.
Komponen detil pertama D1 dihasilkan dari konvolusi antara w1,k dan h. Koefisien skala c1,k
diperoleh dari konvolusi antara Z dan g. Komponen skala tingkat pertama diperoleh dari
konvolusi antara c1,k and g. Lebih lanjut Z =S1+D1 akan sama dengan Z terhadap pemfilteran
berbasis wavelet.

Gambar 5.1. Algorithma MODWT pada tingkat j=1


Koefisien pada tingkat yang lebih tinggi dari MODWT dapat diperoleh dengan memecah
koefisien skala cj,k menjadi cj+1,k and wj+1,k. Proses MODWT pada tingkat j=2 dapat dijelaskan
dengan Gambar 5.2. Lebih lanjut Z =S2+D2 +D1 akan sama dngan Z terhadap pemfilteran
berbasis wavelet.

Gambar 5.2. Algorithma MODWT pada tingkat j=2


Banyaknya koefisien wavelet pada setiap tingkat MODWT selalu sama, hal ini berbeda dengan
metode DWT yang selalu terjadi penurunan (decimated) pada setiap kenaikan tingkatan. Sifat ini
menyebabkan MODWT memiliki keunggulan untuk melakukan pemodelan data runtun waktu.
Lebih lanjut tulisan ini hanya membahas penggunaan MODWT untuk pemodelan data runtun
waktu.
PEMODELAN RUNTUN WAKTU BERBASIS WAVELET
Model yang terbentuk pada hakekatnya akan digunakan sebagai alat pridiksi ke depan.
Prediksi runtun waktu Z satu langkah ke depan yaitu pada waktu t+1 dimodelkan secara linier
berdasarkan koefisien wavelet hasil dekomposisi realisasi Z di waktu-waktu sebelumnya.
Gambar 5.3 memperlihatkan runtun data yang berperan dalam pembentukan koefisien detil dan
koefisien skala pada waktu t. Murtagh (2004) mengusulkan koefisien detil dan koefisien skala
hasil transformasi MODWT yang dianggap penting untuk melakukan prediksi pada waktu t+1
akan berbentuk w j,t 2 j ( k 1) dan c J,t 2J ( k 1) . Prediksi satu langkah ke depan dinyatakan dalam
persamaan (5.1).
J Aj

A J 1

j1 k 1

k 1

Z
t 1 a j, k w j, t 2 j ( k 1)

a J 1, k cJ, t 2 (k 1)
J

(5.1)

Tingkat dekomposisi tertinggi dinyatakan dengan J, dan Aj terkait dengan banyaknya koefisien
yang terpilih pada tingkat dekomposisi. Gambar 5.4 memperlihatkan koefisien yang terpilih
untuk membangun model prediksi untuk J=4 dan Aj=2 dengan j=1,2,3,4. Dalam hal ini
persamaan (5.1) akan menjadi persamaan (5.2a) dan jika diambil Aj=1 akan menjadi persamaan
(5.2b).

Gambar 5.3. Data untuk menghitung koefisien terakhir pada tiap tingkatan

Z t 1 a 1,1w1, t a 1,2 w1, t 2 a 2,1w 2, t a 2,2 w 2, t 4


a 3,1w 3, t a 3,2 w 3, t 8 a 4,1w 4, t a 4, 2 w 4, t 16

(5.2a)

a 5,1c 4, t a 5,2c 4, t 16

1,1w1, t a 2,1w 2, t a 3,1w 3, t a 4,1w 4, t a 5,1c4, t


Z
t 1 a

(5.2b)

Gambar 5. 4. Koefisien wavelet dan skala yang terpilih untuk prediksi pada J=4 dan Aj=2
Persamaan (5.1), (5.2a) dan (5.2b) masing-masing merupakan bentuk linier yang dapat
diselesaikan dengan metide sederhana seperti metode kuadrat terkecil.
Contoh 5.1
Penerapan metoda akan dilakukan pada data harga minyak sawit bulanan sejak Agustus
1981 sampai dengan Agustus 2011 yang tercatat pada perdagangan minyak kelapa sawit yang
tercatat di Malaysia Palm Oil Futures. Plot runtun waktu data asli dapat dilihat pada Gambar 5.5.

Gambar 5.5. Plot data harga minyak kelapa sawit dalam USD per ton
Data harga minyak sawit bulanan dari Agustus 1981 sampai dengan Agustus 2011 yang tercatat
di pust perdagangan minyak sawit Malaysia
http://www.indexmundi.com/commodities/?commodity=palm-oil&months=120
438.80
408.22
346.25
723.07
489.21
294.19
162.79
282.62
333.03
331.37
220.64
239.65
279.31
333.85
323.94
319.80
590.02
553.62
449.59
471.65
628.88
484.72
312.00
208.46
312.62
376.00
377.20
501.61
370.09
382.82
434.48
748.43
1083.48
529.40
727.60
935.22
1047.51

420.62
347.90
356.99
698.28
481.77
299.14
171.06
247.08
348.73
329.72
230.56
274.35
266.92
315.67
305.76
326.41
541.27
549.55
468.69
445.03
643.72
428.77
301.79
215.31
259.56
369.21
382.12
520.57
346.63
375.97
416.94
764.47
1086.83
557.21
742.00
1059.01

423.93
327.24
325.59
694.97
491.69
322.28
224.77
254.52
409.88
323.11
223.95
285.92
285.10
315.67
294.19
358.64
546.23
539.94
448.41
444.55
583.24
439.74
277.58
199.18
232.09
391.51
390.44
516.34
347.57
368.90
422.32
729.56
1096.39
693.21
754.32
1171.22

413.18
314.02
351.21
785.87
537.14
282.62
250.39
276.83
427.23
335.50
236.34
288.40
299.14
323.32
299.14
403.27
567.71
482.30
466.77
460.63
583.59
398.46
294.39
191.79
281.51
369.40
382.83
481.14
374.83
377.92
476.74
745.18
1026.25
772.39
793.90
1238.57

399.13
293.36
461.94
647.04
539.62
233.86
242.13
291.71
371.86
308.23
220.64
279.31
310.71
326.41
294.19
419.79
511.39
483.42
480.96
490.54
589.90
330.79
318.14
185.07
295.47
372.80
361.94
408.98
375.84
390.63
528.24
824.07
791.77
690.82
798.53
1248.55

414.84
299.14
533.01
479.29
504.08
200.81
289.23
304.10
353.68
273.53
232.21
287.58
316.50
341.29
290.88
419.79
491.14
462.98
522.67
493.09
626.84
279.58
283.17
210.90
310.30
409.97
374.87
386.63
370.16
383.36
550.78
877.34
667.04
601.95
775.57
1142.23

436.32
310.71
554.49
464.42
459.46
199.98
272.70
356.99
356.16
255.35
224.77
263.61
315.67
331.37
275.18
472.52
521.99
494.92
532.26
498.67
613.46
308.27
272.23
208.96
296.77
433.56
449.02
393.71
369.64
386.41
553.75
883.45
486.40
686.79
764.91
1123.79

418.97
307.41
546.23
504.91
402.44
196.67
258.65
401.61
345.42
266.92
230.56
262.78
327.24
338.81
297.70
507.39
563.41
503.07
508.01
548.63
616.53
342.40
266.54
194.01
302.45
431.32
484.63
401.64
369.60
394.52
566.39
987.02
433.10
636.42
774.50
1143.44

Listing program menghitung koefisien model sesuai persamaan (5.2a)


function (x,w='haar',j=4)
{
n=length(x)

420.62
303.28
574.32
508.21
333.85
200.81
280.14
333.03
339.64
265.26
240.47
257.00
333.03
351.21
337.57
510.69
540.41
446.58
509.47
595.77
579.74
326.07
257.15
209.17
311.15
421.52
478.47
381.61
360.30
386.18
645.41
1109.50
440.38
636.56
865.23
1075.91

422.27
311.54
723.07
509.04
301.62
182.63
281.79
314.85
316.50
248.74
234.69
281.79
323.94
337.16
334.68
584.24
524.82
418.14
508.57
599.87
560.56
315.97
239.79
279.63
337.82
390.13
467.69
386.67
369.98
404.02
740.63
1146.86
522.15
674.33
884.89
1033.57

x.modwt=modwt(x,w,j)
d1=x.modwt@W$W1
d2=x.modwt@W$W2
d3=x.modwt@W$W3
d4=x.modwt@W$W4
v4=x.modwt@V$V4
x1<-x2<-x3<-x4<-x5<-x6<-x7<-x8<-x9<-x10<-NULL
for (i in 1:(n-17)){
x1<-c(x1,d1[i+16])
x2<-c(x2,d1[i+14])
x3<-c(x3,d2[i+16])
x4<-c(x4,d2[i+12])
x5<-c(x5,d3[i+16])
x6<-c(x6,d3[i+8])
x7<-c(x7,d4[i+16])
x8<-c(x8,d4[i])
x9<-c(x9,v4[i+16])
x10<-c(x10,v4[i])
}
y=x[18:n]
lm.y=lm(y~-1+x1+x2+x3+x4+x5+x6+x7+x8+x9+x10)
koef<-lm.y$coeff
pred<-c(rep(0,17), lm.y$fitted)
ts.plot(x,xlim=c(0,360), ylim=c(100,1400), xlab="", ylab="", type= 'l')
par(new=T)
ts.plot(pred, xlim=c(0,360), xlab="Agustus 1981-Agustus 2011",ylab="USD per ton",
ylim=c(100,1400), col=2, lty=4)
return(lm.y)
}

Hasil perhitungan 10 koefisien model dan uji signifikansinya


Coefficients:
Estimate
x1
2.12292
x2
0.48177
x3
0.43896
x4 -0.28862
x5
1.13309
x6
0.06020
x7
0.98497
x8 -0.07034
x9
0.98242
x10 0.02057
--Signif. codes:

Std. Error t value


0.14523
14.618
0.16955
2.841
0.11642
3.771
0.11102
-2.600
0.09145
12.390
0.07513
0.801
0.06103
16.138
0.03521
-1.998
0.01710
57.467
0.01707
1.205

Pr(>|t|)
< 2e-16
0.004767
0.000193
0.009741
< 2e-16
0.423531
< 2e-16
0.046581
< 2e-16
0.229045

***
**
***
**
***
***
*
***

0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Hasil perhitungan ulang 8 koefisien model dan uji signifikansinya


Coefficients:
Estimate
x1 2.131698

Std. Error t value Pr(>|t|)


0.144943
14.707
< 2e-16 ***

x2 0.481498
x3 0.451432
x4 -0.315922
x5 1.113464
x7 0.992704
x8 -0.096869
x9 1.002473
--Signif. codes:

0.169409
0.114954
0.101207
0.086037
0.040738
0.027511
0.004211

2.842
3.927
-3.122
12.942
24.368
-3.521
238.048

0.004754
0.000104
0.001955
< 2e-16
< 2e-16
0.000489
< 2e-16

**
***
**
***
***
***
***

0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Gambar 5.6. Plot hasil prediksi 8 koefisien (garis merah) dan data asli (garis hitam)
Dari perhitungan 10 koefisien terlihat koefisien model a 3, 2 dan a 5, 2 tidak signifikan
sehingga perhitungan diulang dengan hanya menggunakan koefisien yang signifikan dan
diperoleh model prediksi sesuai persamaan (5.2a) adalah seperti pada persamaan (5.3)

z n 1 2.132w1, n 0.481w1, n 2 0.451w 2, n 0.316w 2, n 4


1.113w 3, n 0.993w 4, n 0.097 w 4, n 16

(5.3)

1.002c 4, n

DAFTAR PUSTAKA
[ 1] Aldrich, E., A package of Functions for Computing Wavelet Filters, Wavelet Transforms
and Multiresolution Analyses, http://www.ealdrich.com/wavelets/, 2009
[ 2]. Daubhechies, I., Ten Lecture on Wavelets, SIAM, Philadelphia, 1992.
[ 3]. Hall, P. and Patil, P., On Wavelet Methods for Estimating Smooth Function. Bernoulli,
Vol. 1 (1995) , pp. 41-58.
[ 4]. Jawerth, B. and Sweldens, W., An Overview of Wavelet Based Multiresolution Analyses,
SIAM Review, Vol. 36 (1994), pp. 377-412.
[ 5]. Murtagh, F., Starck, J.L., and Renaud, O., On Neuro Wavelet Modeling, Decision Support
System, Vol. 37 (2004), pp. 475-484.

[ 6]. Ogden, R.Todd, Essential Wavelets for Statistical Applications and Data Analysis,
Birkhuser: Berlin, 1997.
[ 7]. Percival, D. B. and Walden, A. T., Wavelet Methods for Time Series Analysis Cambridge
University, 2000.