Bab III. ANALISA DAN DESAIN SISTEM
3.2 Perancangan Sistem
3.2.1 Perancangan Ekstraksi Fitur
Sebelum perancangan Ekstraksi fitur dengan menggunakan metode MUGRAT, terdapat fase sebelum ekstraksi fitur yang meliputi perancangan Hamming Window, perancangan FFT dan perancangan IFFT.
Gambar 3.2 menunjukkan blok diagram proses modul utama.
Gambar 3.2 Blok Diagram Modul Utama
3.2.1.1 Perancangan Hamming Window
Proses Hamming Window menggunakan persamaan 2.10. Variabel
i menunjukkan banyak data setiap window, yaitu 1024. Variabel j
menunjukkan jumlah window, yaitu sebanyak 40. Perancangan Modul Hamming Window dapat dilihat pada Gambar 3.3 (Lampiran L1).
3.2.1.2 Perancangan FFT
Perhitungan FFT meliputi perhitungan nilai amplitudo menggunakan persamaan 2.8, yang mencakup perhitungan nilai real amplitudo menggunakan persamaan 2.6, dan perhitungan imajiner dari
amplitudo yang diperoleh dengan menggunakan 2.7. Variabel i
menunjukkan jumlah window sebanyak 40. Variabel j menunjukkan
jumlah data yang terdapat pada masing-masing window sebanyak 1024.
merupakan nilai frekuensi bins, diperoleh dari 1024 / 2. Pembagian dengan nilai 2 ini dikarenakan dalam FFT nilai amplitudo dipisahkan menjadi 2, yaitu nilai real dan imajiner. Perancangan fase FFT dapat dilihat pada Gambar 3.4 (Lampiran L2).
3.2.1.3 Perancangan Modul IFFT
Modul IFFT dihitung dengan menggunakan persamaan 2.9. Seperti
dalam persamaan Modul FFT, variabel i menunjukkan jumlah window
sebanyak 40, variabel j menunjukkan jumlah data yang terdapat pada
masing-masing window sebanyak 1024, dan variabel k yang terdapat pada
fase FFT bernilai 512 merupakan nilai frekuensi bins, diperoleh dari 1024 /2. Rancangan modul IFFT dapat dilihat pada Gambar 3.5 (Lampiran L3).
3.2.1.4 Perancangan Modul Ekstraksi Fitur
Modul Ekstraksi Fitur berisi fase-fase penghitungan fitur yang berhubungan dengan permukaan spektral musik yaitu fase Spektral Centroid, fase Rolloff, fase Zero-crossing Rate, fase Flux dan fase Low Energy. Fase-fase perhitungan fitur yang berhubungan dengan bit / irama lagu yaitu Full Wave Rectification, fase Low Pass Filtering, fase Downsampling, serta fase Autocorrelation dan fase Feature Calculation. Gambar 3.6 menunjukkan rancangan Modul Ekstraksi Fitur.
Gambar 3.6 Perancangan Modul Ekstraksi Fitur
Penjelasan fase-fase dalam Modul Ekstraksi Fitur sebagai berikut :
a. Fase Spektral Centroid
Pada fase Spektral Centroid ini dihitung titik keseimbangan spektrum
menggunakan persamaan 2.13. Variabel i menunjukkan jumlah window,
sebanyak 40, variabel j menunjukkan nilai frekuensi bins sebesar 512. Nilai
Spektral Centroid yang dihasilkan kemudian dinormalisasi menggunakan persamaan 2.22 agar beda antara rentang -1 dan 1. Setelah itu dihitung nilai meanCentroid menggunakan persamaan 2.11, yang merupakan nilai rata-rata spektral centroid, dan nilai varCentroid menggunakan persamaan 2.12, yang merupakan standar deviasi spektral centroid. Rancangan fase Spectral Centroid dapat dilihat pada Gambar 3.7. (Lampiran L4).
b. Fase Rolloff
Perhitungan nilai rolloff menggunakan persamaan 2.14 dimana
variabel i menunjukkan jumlah window sebanyak 40, variabel j menunjukkan
frekuensi bins sebesar 512. Nilai rolloff dinormalisasi menggunakan persamaaan 2.22 antara rentang -1 dan 1. Setelah itu dihitung nilai meanRoll menggunakan persamaan 2.11 yang menggunakan rata-rata nilai rolloff, dan varRoll dengan persamaan 2.12 yang merupakan nilai standar deviasi rolloff. Rancangan fase Rolloff dapat dilihat pada gambar 3.8 (Lampiran L5).
c. Fase Zero-crossing Rate
Fase Zero-crossing Rate dihitung dengan menggunakan persamaan 2.16. Nilai zero-crossing rate yang diperoleh kemudian dinormalisasi menggunakan persamaan 2.22 antara range -1 dan 1, kemudian dihitung nilai meanZero dengan persamaan 2.11 yang merupakan rata-rata nilai zero-crossing rate, dan varZero dengan persamaan 2.12 yang merupakan standar deviasi nilai zero-crossing rate. Rancangan fase Zero-crossing Rate dapat dilihat pada Gambar 3.9 (Lampiran L6).
d. Fase Flux
Flux dihitung dengan menggunakan persamaan 2.16. Nilai Flux juga dinormalisasi menggunakan persamaan 2.22 supaya berada antara rentang -1 dan 1. Setelah itu dihitung nilai meanFlux yang merupakan rata-rata nilai Flux dengan persamaan 2.11, dan varFlux yang merupakan nilai standar deviasi
Flux dengan menggunakan persamaan 2.12. Rancangan fase Flux dapat dilihat pada Gambar 3.10 (Lampiran L7).
e. Fase Low Energy
Low Energy dihitung dengan persamaan 2.17, dengan variabel i yang
menunjukkan jumlah window sebanyak 40, dan variabel j menunjukkan
banyak data setiap window sebanyak 1024. Rancangan fase Low Energy dapat dilihat pada Gambar 3.11 (Lampiran L8).
f. Fase Full Wave Rectification
Full Wave Rectification dihitung dengan persamaan 2.18, dengan
variabel i yang menunjukkan jumlah window sebanyak 40, dan variabel j
menunjukkan banyak data setiap window sebanyak 1024. Rancangan fase Full Wave Rectification dapat dilihat pada Gambar 3.12 (Lampiran L9).
g. Fase Low Pass Filtering
Low Pass Filtering dihitung dengan persamaan 2.19, dengan variabel i
yang menunjukkan jumlah window sebanyak 40, dan variabel j menunjukkan
banyak data setiap window sebanyak 1024. Rancangan fase Low Pass Filtering dapat dilihat pada Gambar 3.13 (Lampiran L9).
h. Fase Downsampling
Fase Downsampling dihitung dengan persamaan 2.20, dengan variabel
i yang menunjukkan jumlah window sebanyak 40, dan variabel j
menunjukkan banyak data setiap window (1024) dibagi dengan nilai k (16),
yaitu sebesar 64. Rancangan fase Downsampling dapat dilihat pada Gambar 3.14 (Lampiran L10).
i. Fase Autocorrelation
Autocorrelation dihitung dengan menggunakan persamaan 2.21,
dengan variabel i yang menunjukkan jumlah window sebanyak 40, dan
variabel j menunjukkan nilai k autocorrelation, yaitu sebesar 48 pada
MUGRAT. Dari hasil perhitungan dapat dicari puncak tertinggi yang ditujukan pada penyimpanan waktu dimana sinyal mempunyai self-similarity yang paling kuat. Rancangan fase Autocorrelation dapat dilihat pada Gambar 3.15 (Lampiran L10).
Fase Autocorellation sendiri terdiri dari beberapa fase, antara lain :
1) Fase Pencarian Tiga Titik Tertinggi
Fase pencarian tiga titik tertinggi dimulai dengan mencari titik tertinggi pertama yang kemudian dilanjutkan dengan mencari titik terendah sebelah kiri dan kanan dari titik tertinggi pertama tersebut guna pencarian titik tertinggi kedua. Dengan diperolehnya titik-titik terendah tersebut, maka puncak tertinggi pertama dilompati (tidak diikutkan dalam pencarian). Demikian pula algoritma untuk mencari titik tertinggi ke tiga,
yaitu dengan mencari titik terendah kanan dan kiri dari puncak tertinggi kedua terlebih dahulu. Setelah itu baru dapat dilakukan pencarian puncak tertinggi ketiga dengan tidak mengikutkan puncak tertinggi pertama dan kedua. Setiap nilai yang diperoleh dari pencarian titik puncak tertinggi
ditampung dalam variabel BeatHistogram (c) dimana c merupakan
variabel yang nilainya dimulai dari 0 sampai 119 (ada 120 nilai Beat Histogram). Rancangan fase pencarian tiga titik tertinggi dapat dilihat pada Gambar 3.16 (Lampiran L11).
2) Fase Pencarian Titik Tertinggi Pertama
Fase pencarian Titik Tertinggi pertama dilakukan dengan mencari nilai maksimum dari hasil perhitungan autokorelasi (variabel temp4) yang kemudian ditampung dalam variabel temp1. Nilai tersebut kemudian
disimpan dalam variabel BeatHistogram(c). Variabel c ditambah dengan
nilai 1. Indeks titik tertinggi pertama disimpan dalam variabel a. Gambar 3.17 menunjukkan puncak tertinggi pertama.
Gambar 3.17 Puncak Tertinggi Pertama
Rancangan fase pencarian titik tertinggi pertama dapat dilihat pada Gambar 3.18 (Lampiran L12).
3) Fase Pencarian Titik Terendah Sebelah Kiri Titik Tertinggi Pertama
Titik Terendah di sebelah kiri titik tertinggi pertama dilakukan jika titik tertinggi pertama tidak terletak pada indeks 0 / tidak terletak pada bagian paling kiri gelombang tersebut. Titik terendah dicari dengan membandingkan nilai delta1 dan delta2, dimana delta2 adalah selisih
ketinggian gelombang pada indeks a (titik tertinggi pertama) dan pada
indeks j, dimana j = a-1 dan delta1 adalah selisih ketinggian gelombang
pada indeks a dengan indeks j-1. Gambar 3.19 mengilustrasikan hal
tersebut.
Titik tertinggi 1
Titik terendah sebelah kiri titik tertinggi 1
Titik terendah sebelah kanan titik tertinggi 1
Gambar 3.19 Pencarian Titik Terendah Sebelah Kiri Dengan Membandingkan Selisih Ketinggian Gelombang
Jika nilai delta1 lebih besar dari nilai delta2 maka pencarian ke kiri terus dilakukan. Pencarian dihentikan jika nilai delta1 sudah lebih kecil dari delta2 atau pencarian sudah mencapai batas gelombang paling kiri (indeks ke-0). Rancangan fase titik terendah sebelah kiri tertinggi pertama dapat dilihat pada Gambar 3.20 (Lampiran L13).
4) Fase Pencarian Titik Terendah Sebelah Kanan Titik Tertinggi
Pertama
Pencarian titik terendah disebelah kanan titik tertinggi pertama dilakukan jika titik tertinggi pertama tidak terletak pada indeks ke-47 (tidak terletak pada bagian paling kanan gelombang tersebut). Titik terendah dicari dengan membandingkan nilai delta1 and delta2, dimana
delta2 adalah selisih ketinggian gelombang pada indeks a (titik tertinggi
pertama) dan pada indeks j, dimana j = +1 dan delta1 selisih ketinggian
gelombang pada indeks a dengan indeks j+1. Gambar 3.21 ini
a j=a-1
delta1 delta2
mengilustrasikan fase pencarian titik terendah sebelah kanan titik tertinggi pertama.
Gambar 3.21 Pencarian Titik Terendah Sebelah Kanan Dengan Membandingkan Selisih Ketinggian Gelombang
Jika nilai delta1 lebih besar dari nilai delta2 maka pencarian ke kanan terus dilakukan. Pencarian dihentikan jika nilai delta1 sudah lebih kecil delta2 atau pencarian sudah mencapai batas gelombang paling kanan (indeks k3-47). Rancangan fase pencarian titik terendah sebelah kanan titik tertinggi pertama dapat dilihat pada Gambar 3.22 (Lampiran L14).
5) Fase Pencarian Titik Tertinggi Kedua
Titik tertinggi dicari dengan “melompati” puncak tertinggi pertama, yaitu dengan mencari nilai tertinggi pada bagian kiri dan kanan puncak tertinggi pertama seperti ditunjukkan oleh Gambar 3.23.
a
j=a+1
j+1
delta2
Gambar 3.23 Area Pencarian Titik Tertinggi Kedua
Pencarian dihentikan jika telah diperoleh nilai tertinggi kedua yang ditampung dalam variabel temp2, yang kemudian dalam variabel
BeatHistogram(c). Variabel c ditambah dengan nilai 1. Indeks tertinggi
kedua disimpan pada variabel b. Rancangan fase pencarian titik tertinggi
kedua dapat dilihat pada Gambar 3.24 (Lampiran L15).
6) Fase Pencarian Titik Terendah Sebelah Kiri Titik Tertinggi Kedua
Algoritma pencarian titik terendah sebelah kiri dari puncak tertinggi kedua pada dasarnya sama dengan pencarian titik terendah kiri pada puncak tertinggi pertama, yaitu dengan membandingkan nilai delta1 dengan delta2. Perbedaannya terletak pada tambahan kondisi penghentian pencarian yaitu jika pencarian sampai pada posisi lompat4, yaitu titik terendah sebelah kanan titik tertinggi pertama, seperti diiliustrasikan pada Gambar 3.25.
Gambar 3.25 Pencarian Titik Terendah Sebelah Kiri Puncak Tertinggi Kedua Mencapai Titik Terendah Kanan Puncak Tertinggi
Pertama
Rancangan fase pencarian titik terendah sebelah kiri tertinggi kedua dapat dilihat pada Gambar 3.26 (Lampiran L16).
7) Fase Pencarian Titik Terendah Sebelah Kanan Titik Tertinggi Kedua
Algoritma pencarian titik terendah sebelah kanan dari puncak tertinggi kedua pada dasarnya sama dengan pencarian titik terendah kanan pada puncak tertinggi pertama, yaitu dengan membandingkan nilai delta1 dengan delta2. Perbedaannya terletak pada tambahan kondisi penghentian pencarian yaitu jika pencarian sampai pada posisi lompat3, yaitu titik terendah sebelah kiri titik tertinggi pertama, seperti diiliustrasikan pada Gambar 3.27.
puncak tertinggi 1
titik tertinggi 2
Gambar 3.27 Pencarian Titik Terendah Sebelah Kanan Puncak Tertinggi Kedua Mencapai Titik Terendah Kiri Puncak Tertinggi Pertama
Rancangan fase pencarian titik terendah sebelah kanan tertinggi kedua dijelaskan pada Gambar 3.28 (Lampiran L17).
8) Fase Pencarian Titik Tertinggi Ketiga
Pencarian titik tertinggi dilakukan dari indeks ke-0 tanpa mengikutsertakan area puncak tertinggi pertama dan kedua. Pencarian dihentikan jika diperoleh titik tertinggi ketiga.
Rancangan fase pencarian tertinggi ketiga diilustrasikan oleh Gambar 3.29 (Lampiran L18).
9) Fase Normalisasi 120 Beat Histogram
Normalisasi terhadap 120 nilai Beat Histogram dilakukan supaya nilai Beat Histogram berada antara rentang -1 dan 1.
titik tertinggi 2
puncak tertinggi 1
Proses normalisasi ini diilustrasikan pada Gambar 3.30 (Lampiran L19).
j. Fase Feature Calculation
Fase Feature Calculation ini bertujuan untuk menghitung enam dimensi fitur yang mencakup amplitudo relatif (amplitudo dibagi jumlah amplitudo) dari puncak tertinggi pertama dan kedua dari Beat Histogram, rasio amplitudo dari puncak tertinggi kedua dibagi dengan ampiltudo puncak tertinggi pertama, periode puncak tertinggi pertama dan kedua dalam BPM (Beat Per Minute) yang mengindikasikan kecepatan lagu, serta jumlah nilai histogram yang mengindikasikan kekuatan bit lagu. Rancangan fase Feature Calculation diilustrasikan oleh Gambar 3.31, 3.32, 3.33, dan 3.34 (Lampiran L20-L23).