Anda di halaman 1dari 31

Wavelets Transform

Syahroni Hidayat
Pengertian Wavelet
• Wavelet adalah gelombang kecil/singkat
• Wavelet merupakan fungsi matematik yang membagi-bagi data
menjadi beberapa komponen frekuensi yang berbeda-beda, kemudian
dilakukan analisis untuk masing-masing komponen menggunakan
resolusi yang sesuai dengan skalanya (Graps, 1995).
• Transformasi Wavelet : Transformasi linier yang mirip dengan
Transformasi Fourier , bedanya transformasi wavelet membolehkan
penempatan waktu dalam dalam komponen-komponen frekuensi yang
berbeda dari sinyal yang diberikan.
• Kelebihan lainnya: Transformasi Wavelet dapat mengolah seluruh
sinyal tanpa adanya kehilangan informasi (losses).
Peroses Transformasi Wavelet

• Secara garis besar ada 2 jenis


transformasi wavelet yaitu:
• Transformasi Wavelet Kontinyu
• Transformasi Wavelet Diskrit
Transformasi Wavelet Kontinyu

• Prinsip kerjanya adalah dengan konvolusi sinyal terhadap


jendela modulasi pada setiap waktu dengan skala yang telah
ditentukan
• Persamaannya:

• Inversnya
Transformasi Wavelet Diskrit

• Persamaan Transformasi Wavelet Diskrit


Approksimasi (A),
menerapkan LPF
Details (A),
menerapkan HPF

• Transformasi Wavelet Diskrit Inverse:


Transformasi Wavelet Diskrit

• Transformasi Wavelet Diskrit dibagi 2,


yaitu:
• Transformasi Wavelet Dyadic
• Transformasi Wavelet Packet
Transformasi Wavelet Dyadic
Transformasi Wavelet Dyadic
Transformasi Wavelet Packet
Transformasi Wavelet Packet
Family Wavelet

• Haar
• Daubechies (dbN)
• Symlet (SymN)
• Coiflet (CoifN)
• dsb
Implementasi Wavelet
Algoritma Haar

Untuk menghitung Haar transformasi dari sebuah array


sampel n:
1. Cari rata-rata setiap pasangan sampel. (n / 2 rata-rata)
2. Menemukan selisih masing-masing pasangan sampel itu
(n / 2 selisih)
3. Isi paruh pertama dari array dengan rata-rata.
4. Isi paruh kedua dari array dengan perbedaan.
5. Ulangi proses 1 - 4 untuk paruh pertama dari array.
6.(Panjang array harus merupakan dua pangkat)
Contoh
Terdapat Data sbb:
[7 1 6 6 3 -5 4 2]
Ke 8 elemen, Hitung
Rerata(Averages, A1)
[7 1 6 6 3 -5 4 2]
• (7 + 1) / 2 = 4

• (6 + 6) / 2 = 6

• (3 + -5) / 2 = -1

• (4 + 2) / 2 = 3
Contoh

Hitung Selisih (Differences, D1)


[7 1 6 6 3 -5 4 2]

• (7 - 1) / 2 = 3

• (6 - 6) / 2 = 0

• (3 - -5) / 2 = 4

• (4 - 2) / 2 = 1

Runtun Baru adalah


[4 6 -1 3 3 0 4 1 ]
A1 D1
Contoh
Runtun Baru
[4 6 -1 3 3 0 4 1 ]
4 terdepan, Rerata2 (A2), dan Selisih (D2)
[4 6 -1 3 3 0 4 1 ]

• (4 + 6) / 2 = 5

• (-1 + 3) / 2 = 1

• (4 - 6) / 2 = -1

• (-1 - 3) / 2 = -2

Runtun Baru
[5 1 -1 -2 3 0 4 1 ]
A2 D2 D1
Contoh
Runtun Baru
[5 1 -1 -2 3 0 4 1 ]
2 terdepan, Rerata2 (A3), dan Selisih (D3)
[5 1 -1 -2 3 0 4 1 ]

• (5 + 1) / 2 = 3

• (5 - 1) / 2 = 2

Runtun Baru
[3 2 -1 -2 3 0 4 1 ]
A3 D3 D2 D1
Hasil

Data
[7 1 6 6 3 -5 4 2]

Haar Transform
[3 2 -1 -2 3 0 4 1 ]
Matlab/Octave Code

x = [7 1 6 6 3 -5 4 2]

wx = haar_tr(x)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function haaa = haar_tr(x) function [A D] = haar01(f)


haaa = [];
ff = reshape(f,2,[]);
while (length(x)>1) D = [-diff(ff)/2];
[A D] = haar01(x); A = [sum(ff)/2];
haaa = [D haaa]
x = A; end;
end;
haaa = [A haaa]

end;
Matlab/Octave Code

function haar_transform01;
clc;
close all;
clear all;

x = [3 5 4 8 13 7 5 3]

wx = haar_tr(x)

end
Hasil

x= 3 5 4 8 13 7 5 3

wx = 6 -1 -1 3 -1 -2 3 1
Inverse Haar Transform
Haar Transform
[3 2 -1 -2 3 0 4 1 ]
A3 D3 D2 D1
Transformasi Balik

A3 D3

3 + 2 = 5
3 - 2 = 1
Runtun menjadi,
[5 1 -1 -2 3 0 4 1 ]
A2 D2 D1
Inverse Haar Transform
[5 1 -1 -2 3 0 4 1 ]
A2 D2 D1

A2 D2

5 + -1 = 4, 5 - -1 = 6
1 + -2 = -1, 1 - -2 = 3

[4 6 -1 3 3 0 4 1 ]
A1 D1
Inverse Haar Transform

[4 6 -1 3 3 0 4 1 ]
A1 D1

4 + 3 = 7, 4 - 3 = 1
6 + 0 = 6, 6 - 0 = 6
-1 + 4 = 3, -1 - 4 = -5
3 + 1 = 4, 3 - 1 = 2
[7 1 6 6 3 -5 4 2 ]
check -->[7 1 6 6 3 -5 4 2]
Matlab/Octave Code HT-Inverse
function ihaaa = ihaar_tr(x)
ihaaa = [];
i = 1;
n = 2^i;
function Abaru = ihaar01(A,D)
while (n<=length(x))
A = x(1:n/2); ff = [A ; D];
D = x(1+n/2:n); D = [-diff(ff)];
Abaru = ihaar01(A,D); A = [sum(ff)];
x(1:n) = Abaru; Abaru = reshape([A ; D],1,[]);
i = i+1;
n = 2^i; end
end;
ihaaa = x;

end
Matlab/Octave Code HT-Inverse

function ihaar_transform01;
clc;
close all;
clear all;

x = [3 2 -1 -2 3 0 4 1 ]

jawaban = [7 1 6 6 3 -5 4 2]

iwx = ihaar_tr(x)

end
Hasil

x= 3 2 -1 -2 3 0 4 1

jawaban = 7 1 6 6 3 -5 4 2

iwx = 7 1 6 6 3 -5 4 2
if (abs(wx(i))<0.02)
wx(i)=0;
if (abs(wx(i))<0.04)
wx(i)=0;
[y, Fs] = wavread('iwav02.wav');

wx = haar_tr(y)

for (i=1:length(wx))
if (abs(wx(i))<0.04)
wx(i)=0;
end;
end;

iwx = ihaar_tr(wx);

wavwrite(iwx,Fs,'iwavihaar.wav')
TERIMA KASIH

Anda mungkin juga menyukai