PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
TUGAS AKHIR
PENGENALAN NADA BARUNG PELOG MENGGUNAKAN WINDOWING KOEFISIEN DFT DAN JARAK SQUARED CHORD Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro
Oleh : MAULANA AKBAR TOBING NIM : 105114022
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2015 i
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
FINAL PROJECT
BARUNG PELOG VOICE RECORDNITION USING WINDOWING KOEFISIEN DFT AND SQUARED CHORD DISTANCE Presented As Partial Fulfillment Of The Requirement To Obtain The Sarjana Teknik Degree In Electrical Engineering Study Program
MAULANA AKBAR TOBING NIM : 105114022
ELECTRICAL ENGINEERING STUDY PROGRAM SCIENCE AND TECHNOLOGY FACULTY SANATA DHARMA UNIVERSITY YOGYAKARTA 2015 ii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
iv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
v
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP
MOTTO
Berimajinatif Berkreatif
Persembahan Karya ini ku persembahakan untuk Allah SWT yang selalu setia bersamaku, Keluargaku bapak ibu adek dan nenek yang selalu ada untuk selalu member ikan doa dan motivasi yang terbaik, Keluarga baruku pacar dan mantan yang tak bosan memberikan motivasi Teman- teman seperjuangan Teknik Elektro 2010 yang selalu membantu saat mendapatkan kesulitan, Dan semua yang mendoakan dan mendukung karya ini.
vi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
vii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
INTISARI Seni musik merupakan suatu seni hiburan yang sudah melekat di masyarakat. Salah satu seni musik yang masih tetap lestari sampai sekarang adalah seni musik tradisional jawa. Seni musik tradisional jawa berupa kerawitan atau gamelan. Alat gamelan yang paling khas dan menonjol bunyinya adalah saron barung. Tidak banyak orang yang bisa memainkan alat tersebut atau tidak hafal dengan nada nadanya. Oleh karena itu diperlukan sistem untuk mengenali nada alat musik gamelan tersebut. Alat gamelan yang digunakan untuk sistem pengenalan nada ini yaitu saron jenis Barung pelog. Sistem pengenalan ini membutuhkan Barung Pelog sebagai masukan nada, microphone, untuk merekam nada dari Barung Pelog dan laptop untuk memproses. Sistem pengenalan nada ini melalui beberapa proses meliputi merekam, memanggilnya kembali pada input nada, normalisasi, pemotongan sinyal, frame blocking, windowing, ekstraksi ciri, fungsi jarak, dan penentuan nada. Sistem pengenalan nada menggunakan ekstraksi ciri DFT, windowing hamming, fungsi jarak Squared Chord. Tampilan program meliputi hasil nada yang di input, ekstraksi ciri DFT, Windowing Koefisien serta tampilan hasil pengenalan (teks). Parameter optimal untuk tingkat pengenalan nada secara 100% dengan menggunakan nilai semua DFT, dan windowing koefisien 50%. Sistem pengenalan nada hanya mengenali nada 1(siji), 2(loro), 3(telu), 4 (papat), 5 (limo), 6 (enem), dan 7 (pitu). Kata kunci : Barung Pelog, DFT, Windowing Hamming, fungsi jarak Squared Chord, Windowing koefisien, dan pengenalan nada.
viii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
ABSTRACT Musical arts is a entertainment already fused in the community. One of the music are still used until now is the traditional music java. Musical arts javanese traditional is kerawitan or gamelan. Instrument gamelan have a characteristic sound is plain of saron barung. Not many people who can play this instrument or not has with the tone of voice. Because of that is required system to recognize tone a musical instrument the gamelan. Instrument gamelan applied to a system the introduction of tone is plain of sharon kind of barung pelog Knowing system need Barung Pelog to input tune, microphone to record tunes from Barung pelog and laptop to processing. This knowing tune system through some process there are recording, normalization, signal cutting, frame blocking, windowing, feature ectraction DFT, range function , tune fixed. Knowing system use extract feature DFT, windowing Hamming, range function and Squaredchord. Feature program include product of input tune, spektrum extraction feature DFT, and feature output knowing (text). Parameter optimum to increase tune knowing on 100% with use of all DFT and windowing coefficient 50%. Knowing tune ststem just recognize 1(siji), 2(loro), 3(telu), 4(papat), 5(limo), 6(enam) and 7(pitu)’. Key word : Barung pelog, Discrete Fourier Transform (DFT), Windowing Hamming , range function Squaredchord, Windowing Coefficient, and tune recognized.
ix
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
KATA PENGANTAR Puji dan Syukur kepada Allah SWT karena telah memberikan Berkah-Nya sehingga penulis dapat menyelesaikan laporan tugas akhir dengan baik, dan dapat memperoleh gelar sarjana. Dalam penulisan tugas akhir ini, penulis menyadari bahwa tidak lepas dari seluruh bantuan dan bimbingan dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis mengucapkan banyak terimakasih kepada: 1. Allah SWT atas berkah dan anugerah-Nya kepada penulis 2. Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma. 3. Petrus Setyo Prabowo, S.T., M.T., selaku Ketua Program Studi Teknik Elekro Universitas Sanata Dharma 4. Dr. Linggo Sumarno, selaku dosen pembimbing yang dengan tenang dan penuh kesabaran untuk membimbing dalam menyelesaikan penulisan Tugas Akhir ini. 5. Dr. Iswanjono, Wiwien Widyastuti, S.T., M.T., selaku dosen penguji yang telah memberikan bimbingan, saran, dan merevisi Tugas Akhir ini. 6. Orang tua bapak dan ibu, H.Sugiyanto dan H.Wahyu Hidayah, atas semua perhatian, dukungan dan doanya kepada penulis. 7. Adik dan nenek, Saqina Eva Maulina dan H.Marsinatun yang selalu memberikan doa dan mendoakan. 8. Roisyah Sofaningrum dan Farida Afif yang memberi motivasi semangat dan doa. 9. Blasius Air Dahsyat Pamungkas, Rendi Pradhana, Yohanes Robby Setiawan, Rake Selferian, Widi Eko Wardoyo, Ignasius Agung Nugroho, Vitrali Demastok yang memberi masukan, dan membantu dalam penulisan Tugas Akhir ini. 10. Segenap staff secretariat, dan laboran Teknik Elektro yang telah memberikan dukungan secara tidak langung dalam kelancaran tulisan tugas Akhir ini. 11. Teman- teman Teknik Elektro 2010 yang telah memberikan semangat pada saat menempuh pendidikan di Universitas Sanata Dharma. 12. Semua Pihak yang tidak bisa disebutkan satu persatu yang telah banyak mendukung, dan memberikan banyak bantuan dalam menyelesaikan Tugas Akhir ini. x
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
xi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR ISI HALAMAN JUDUL ......................................................................................................... i HALAMAN PERSETUJUAN ........................................................................................iii HALAMAN PENGESAHAN ......................................................................................... iv PERNYATAAN KEASLIAN KARYA ........................................................................... v HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ................................................ vi LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ....................................................... vii INTISARI ...................................................................................................................... viii ABSTRACT .................................................................................................................... ix KATA PENGANTAR ...................................................................................................... x DAFTAR ISI .................................................................................................................. xii DAFTAR GAMBAR ..................................................................................................... xvi DAFTAR TABEL ........................................................................................................ xvii BAB I PENDAHULUAN ................................................................................................. 1 1.1
Latar Belakang ....................................................................................................... 1
1.2
Tujuan dan Manfaat Penelitian ............................................................................... 2
1.3
Batasan Masalah..................................................................................................... 2
1.4
Metodologi Penelitian ............................................................................................ 3
BAB II DASAR TEORI ................................................................................................... 4 2.1
Alat Musik Barung Pelog ....................................................................................... 4
2.2
Frekuensi Dasar ...................................................................................................... 5
2.3
Sampling ................................................................................................................ 5
2.4
Frame Blocking ...................................................................................................... 6
2.5
Hamming Windowing ............................................................................................ 6 xii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.6
Discrate Fourier Transform (DFT)......................................................................... 7
2.7
Fungsi Jarak Squared Chord .................................................................................. 8
2.8
Metode Template Matching .................................................................................... 8
2.9.
Sound Card ............................................................................................................ 9
2.10. Mikrofon ................................................................................................................ 9 2.11. Matlab .................................................................................................................. 10 BAB III PERANCANGAN ............................................................................................ 12 3.1.
Sistem Pengenalan Nada Alat Musik Barung Pelog .............................................. 12 3.1.1 Input Nada ................................................................................................ 12 3.1.2 Normalisasi............................................................................................... 13 3.1.3 Frame Blocking ........................................................................................ 13 3.1.4 Windowing ................................................................................................ 13 3.1.5 Discrete Fourier Transform (DFT) ........................................................... 13 3.1.6 Windowing Koefisien ................................................................................ 13 3.1.7 Fungsi Jarak .............................................................................................. 14 3.1.8 Penentuan Nada ........................................................................................ 14 3.1.9 Hasil Tampilan Pengenalan ....................................................................... 14
3.2
Perancangan Nada Referensi ................................................................................ 14
3.3
Perancangan Program Pada GUI Matlab ............................................................... 15
3.4
Perancangan Diagram Blok .................................................................................. 17 3.4.1 Proses Perekaman ..................................................................................... 17 3.4.2 Proses Pengenalan Nada Barung Pelog ..................................................... 17 3.4.3 Proses Normalisasi .................................................................................... 19 3.4.4 Pemotongan Sinyal ................................................................................... 20 3.4.5 Proses Frame Blocking ............................................................................ 21 3.4.6 Proses Hamming Windowing ..................................................................... 22 3.4.7 Proses Discrete Fourier Transform (DFT) ................................................ 23 xiii
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.4.8 Proses Windowing Koefisien DFT ............................................................. 24 3.4.9 Proses Fungsi Jarak Squared Chord .......................................................... 25 3.5
Perancangan Subsistem Program .......................................................................... 26 3.5.1 Subsistem Sampling .................................................................................. 27 3.5.2 Subsistem Pengenalan Nada ...................................................................... 27
BAB IV HASIL DAN PEMBAHASAN ...................................................................................... 28 4.1.
Pengujian Program Pengenalan Nada Barung Pelog menggunakan Windowing Koefisien DFT dan Jarak Squared Chord .............................................................. 28 4.1.1 Pengenalan Nada ..................................................................................... 30
4.2.
Hasil Pengujian Program Pengenalan Nada Terhadap Terhadap Tingkat Pengenalan Nada Barung Pelog ............................................................................ 37 4.2.1 Pengujian untuk Menentukan Batasan Nilai Jarak yang Optimal ............... 37 4.2.2 Pengujian Pengaturan Pengenalan Nada .................................................... 38 4.2.2 Pengujian dengan Masukan Nada Gamelan Peking ................................... 40
BAB V KESIMPULAN DAN SARAN ........................................................................................ 42 5.1
Kesimpulan .......................................................................................................... 42
5.2
Saran .................................................................................................................... 42
DAFTAR PUSTAKA........................................................................................................................ 43 LAMPIRAN LAMPIRAN Percobaan Mencari Spektrum Frekuensi ...................................................L 1 LAMPIRAN Percobaan Mencari Durasi Perekaman ......................................................L 4 LAMPIRAN Program Utama .........................................................................................L 7 LAMPIRAN Program Windowing Hamming ............................................................... L 16 LAMPIRAN Program DFT .......................................................................................... L 16 LAMPIRAN Program Fungsi Squared Chord .............................................................. L 17 LAMPIRAN Program Pembuatan DATA BASE ......................................................... L 17 LAMPIRAN Tabel Nilai Jarak Optimal .......................................................................L 19 xiv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN Tabel Tingkat Pengenalan .......................................................................L 19
DAFTAR GAMBAR Gambar 2.1
Barung Pelog dan Alat Tabuh ......................................................................
Gambar 2.2
Frame Blocking ...........................................................................................
Gambar 2.4
Sound Card ..................................................................................................
Gambar 2.5
Tampilan awal Matlab ..................................................................................
Gambar 3.1
Diagram blok Pengenalan Nada Barung Pelog ..............................................
Gambar 3.2
Diagram Blok Proses Pengenalan Nada Referensi .........................................
Gambar 3.3
Tampilan Utama Program .............................................................................
Gambar 3.4
Diagram Alir Proses rekam ...........................................................................
Gambar 3.5
Diagram Blok Keseluruhan ...........................................................................
Gambar 3.6
Diagram Alir Proses Normalisasi ..................................................................
Gambar 3.7
Diagram Alir Proses Pemotongan Sinyal .......................................................
Gambar 3.8
Diagram Alir Proses Frame Blocking ............................................................
Gambar 3.9
Diagram Alir Proses Windowing Hamming ...................................................
Gambar 3.10 Diagram Alir Proses DFT ............................................................................. Gambar 3.11 Diagram Alir Proses Windowing Koefisien .................................................... Gambar 3.12 Diagram Alir Proses Fungsi Jarak Squared Chord......................................... Gambar 3.13 Diagram Alir Proses Penentuan Nada............................................................ Gambar 4.1
Ikon Matlab 7.0.4 ..........................................................................................
Gambar 4.2
Tampilan Matlab...........................................................................................
Gambar 4.3
Tampilan Program Pengenalan Nada Barung Pelog.......................................
Gambar 4.4
Tampilan Hasil Pengenalan ..........................................................................
Gambar 4.5
Grafik Tingkat Pengenalan ............................................................................
Gambar 4.6
Gamelan peking ............................................................................................
xv
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR TABEL Tabel 2.1
Frekuensi Dasar Gamelan Jenis Pelog ...........................................................
Tabel 3.1
Keterangan Tampilan Progrm .......................................................................
Tabel 4.1
Jarak Minimum pada Percobaan....................................................................
Tabel 4.2
Hasil Pengenalan DFT ..................................................................................
Tabel 4.3
Hasil Pengujian nada gamelan peking ...........................................................
xvi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB I PENDAHULUAN 1.1.
Latar Belakang Seni musik merupakan suatu seni hiburan yang sudah melekat di masyarakat dari
jaman kerajaan dahulu sampai jaman sekarang. Salah satu seni musik yang masih tetap lestari sampai sekarang adalah seni musik tradisional jawa. Seni musik tradisional jawa berupa kerawitan atau gamelan. Dari sekian banyak alat kerawitan atau gamelan terdapat jenis alat yaitu saron. Saron tersebut terbagi menjadi tiga bagian yaitu saron demung, saron barung, saron panerus. Dalam penulisan ini penulis mengambil alat saron barung. Barung sendiri dibedakan menjadi dua lagi yaitu barung slendro dan barung pelog. Slendro memiliki lima nada per oktaf, yaitu 6-1-2-3-5-6-1 dengan rentang nada yang sangat kecil. Sedangkan pelog memiliki tujuh nada per oktaf, yaitu 1-2-3-4-5-6-7 dengan rentang nada yang besar. Tidak banyak orang yang bisa memainkan alat-alat gamelan tersebut. Terkadang mereka tidak mengetahui nada yang sedang mereka mainkan atau tidak hafal dengan nada gamelan. Diperlukan sebuah sistem yang dapat membantu untuk mengenali nada-nada dari alat musik yang dimainkan. Sistem ini dapat juga membantu seorang pelaras saat melakukan penyetelan nada alat musik gamelan. Sistem ini juga dapat berfungsi sebagai pengenalan nada kepada anak kecil. Anak kecil perlu untuk mengenal tentang musik sejak dini karena merangsang perkembangan otak. Pengenalan musik tradisional dari dini dapat pula menjaga kelestarian budaya yang dimiliki Indonesia. Untuk itu penulis merancang dan membuat program komputer yang dapat melakukan pengenalan nada alat musik dengan membandingkan frekuensi dasar gelombang bunyi alat musik menggunakan metode squared chord. Kemudian mencocokkan frekuensi dasar tersebut dengan frekuensi dasar nada dari nada referensi atau yang di sebut database . Dengan demikian jenis nada alat musik dapat diketahui secara pasti untuk melakukan pengenalan nada musik tersebut. Penulis membuat rancangan program yang berfungsi untuk mengenali nada pada gamelan khususnya barung pelog. Pemrograman sistem ini menggunakan software Matlab dan program interface user menggunakan GUI Matlab. 1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2
Sebelumnya sudah ada yang melakukan penelitian pengenalan nada. Penelitian yang sudah pernah dilakukan adalah “Pengenalan Nada gamelan kenong secara real time Menggunakan Fungsi Jarak Chebyshev” yang dilakukan oleh Yogi isworo walasakti[1]. Peneliti memilih metode ini untuk mengembangkan tentang pengenalan nada alat musik gamelan dan metode ekstraksi ciri yang berbeda.
1.2.
Tujuan dan Manfaat Penelitian Tujuan dari penulisan tugas akhir ini adalah menghasilkan sistem pengenalan nada
suara pada alat musik barung pelog. Manfaat dari penelitian ini sebagai alat bantu bagi masyarakat yang membuat alat musik barung pelog supaya mengetahui nada 1(siji), 2(loro), 3(telu), 4(papat), 5(limo), 6(enem) dan7(pitu).
1.3.
Batasan Masalah Sistem pengenalan nada suara pada barung terdiri dari hardware dan software
(komputer). Hardware berfungsi untuk memasukkan nada suara yang dimainkan pada barung, sedangkan software pada komputer berfungsi untuk mengatur semua proses pengenalan nada suara yang dimainkan pada barung. Pada perancangan sistem ini, penulis fokus pada pembuatan software komputer untuk memproses pengenalan nada suara, sedangkan untuk hardware berupa microphone yang sudah tersedia di pasaran. Penulis menetapkan beberapa batasan masalah yang dianggap perlu pada perancangan ini, yaitu sebagai berikut: a.
Menggunakan alat musik gamelan jawa jenis barung pelog.
b.
Nada gamelan yang dikenali 1(sij) ,2( loro), 3(telu), 4(papat), 5(limo), 6(enem), dan 7(pitu)
c.
Menggunakan perangkat lunak komputasi (Matlab) dalam pembuatan program.
d.
Menggunakan ekstraksi ciri Discreate fourrier Transform (DFT) fungsi jarak squared chord.
e.
Hasil pengenalan tidak real time.
f.
Selain nada barung pelog akan dikenali secara salah.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI 3
1.4.
Metodologi Penelitian Penulisan skripsi ini menggunakan metode :
a.
Pengumpulan bahan–bahan referensi berupa buku–buku dan jurnal–jurnal.
b.
Perancangan subsistem software. Tahap ini bertujuan untuk mencari bentuk model yang optimal dari sistem yang akan dibuat dengan mempertimbangkan dari berbagai faktor–faktor permasalahan dan kebutuhan yang telah ditentukan.
c.
Pembuatan subsistem software. sistem akan bekerja apabila user memberikan interupsi melalui PC dengan media push button yang sudah disediakan dalam software. Kemudian sistem akan mengolah interupsi ini dan setelah selesai maka komputer akan mengolah data dan menyajikannya berupa sebuah informasi/teks.
d.
Analisa data dilakukan dengan memeriksa keakuratan data terhadap hasil proses pengenalan nada, dengan cara membandingkan antara data di komputer dengan lapangan dan perancangan. Penyimpulan hasil percobaan dapat dilakukan dengan menghitung jarak yang terjadi.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB II DASAR TEORI
2.1.
Alat Musik Barung pelog Barung pelog merupakan satu set instrumen jenis saron yang ada pada gamelan
jawa. Saron barung merupakan bagian ricikan gamelan berbentuk bilah dengan ukuran yang lebih kecil dari pada saron demung dan lebih besar dari pada saron peking. [2] Saron berukuran sedang dan oktaf tinggi. Seperti demung, Saron barung memainkan balungan dalam wilayah yang terbatas. Pada teknik tabuhan imbal imbalan, dua saron barung memainkan lagu jalin menjalin yang bertempo cepat. Dalam satu set gamelan biasanya punya 4 saron barung, dan semuanya memiliki dua pelaras yaitu pelog dan slendro. Dalam pelog memiliki 7 nada peroktafnya yaitu 1-23-4-5-6-7 ,sedangkan untuk nada slendro meliliki 5 nada peroktafnya yaitu 6-1-2-3-5-6-1. Tabuh saron biasanya terbuat dari kayu, dengan bentuk seperti palu
Gambar 2.1 Barung pelog dan alat tabuh
4
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
5
Saron barung pelog merupakan instrumen penting pada gamelan. Menabuh Saron biasa sesuai nada, nada yang imbal, atau menabuh bergantian antara saron 1 dan saron 2 barung. Penabuhan tergantung pada komando dari kendang dan jenis gendhingnya
2.2.
Frekuensi Dasar Barung Pelog Kebanyakan nada merupakan nada yang kompleks yaitu terdiri atas satu atau lebih
frekuensi didalamnya. Frekuensi paling dasar dalam sebuah nada disebut sebagai Fundamental frequency atau frekuensi dasar. Frekuensi dasar ini merupakan komponen paling penting di karenakan frekuensi inilah yang menentukan pitch dari keseluruhan nada. Picth merupakan tinggi atau rendahnya sebuah suara atau nada yang berhubungan langsung dengan frekuensi dari gelombang suara[3]. Nada khususnya memiliki frekuensi – frekuensi tambahan didalamnya yang merupakan kelipatan dari frekuensi dasarnya. Frekuensi – frekuensi tersebut dinamakan dengan harmonics, keberadaanya dapat menentukan kualitas dari nada tersebut. Dari peneliti sebelumnya sudah ada peneliti yang melakukan penelitian tentang frekuensi dasar gamelan balungan jenis barung, demung dan peking jenis pelog. Pada tabel 2.1 menunjukkan data frekuensi dasar yang di hasilkan oleh peneliti sebelumnya[4]. Table 2.1 Frekuensi Dasar Gamelan Jenis pelog Nada
1
2
3
4
5
6
7
Demung
309
331
353
419
441
485
529
Barung
617
661
705
837
903
969
1079
Peking
1233
1321
1453
1695
1871
2003
2201
2.3.
Sampling Sampling
merupakan proses
pencuplikan
gelombang
suara
yang
akan
menghasilkan gelombang diskret. Dalam proses pencuplikan, ada yang disebut dengan laju pencuplikan (samplingrate). Sampling rate menandakan berapa banyak pencuplikan gelombang analog dalam satu detik.Satuan dari sampling rate ialah Hertz (Hz).Secara teori Nyquist-Shamon yang menyebutkan bahwa untuk mencegah hilangnya informasi dalam sebuah konversi sinyal kontinu ke diskrit, pencuplikan minimal harus dua kali lebih besar
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
6
dari sinyal asli [5].Kriteria Nyquist perlu diperhatikan dalam melakukan pencuplikan.Lebih jelasnya kriteria Nyquist menyatakan sebuah sinyal harus memiliki pencuplikan rate yang lebih besar dari 2𝑓𝑚 dengan 𝑓𝑚 adalah frekuensi paling tinggi yang muncul di sebuah sinyal.
2.4.
Frame Blocking Frame blocking merupakan pembagian sinyal suara menjadi beberapa frame dan
satu frame terdiri dari beberapa data sampel[6]. Pengambilan sampel tersebut tergantung dari tiap detik suara akan disampel dan berapa besar frekuensi sampling-nya. Gambar 2.2 menunjukkan contoh dari frame blocking dimana keseluruhan frame dibagi menjadi 5 M frame. Setiap M memiliki jumlah data yaitu 2𝑁 data, dengan N adalah Bilangan bulat 2N data
Gambar 2.2. Frame Blocking Fungsi frame blocking yaitu untuk memilih data yang akan diproses dalam sistem pengenalan. Frame Blocking juga dapat mempercepat proses perhitungan pada DFT (Descrete Fourier Transform) dengan jumlah data pada setiap frame memiliki 2𝑁 data sampel yang diambil dari keseluruhan data sampel.
2.5.
Hamming Window Windowing digunakan untuk menghilangkan efek diskontinuitas yang diakibatkan
oleh proses Frame Blocking [7]. Dari beberapa macam jenis windowing, proses pengenalan ini menggunakan jenis Hamming window. Menggunakan Hamming window karena
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
7
Hamming window mempunyai sidelobe yang paling kecil dan mainlobe yang paling besar sehingga Hamming window akan lebih halus dalam menghilangkan efek diskontunitas. Persamaan Hamming window adalah : 𝑘
w [k+1] = 0.54 – 0.46 cos (2𝜋 𝑛−1 ),
k = 0, …, n – 1
(2.1) dengan w[k+1] adalah windowing, dan n merupakan jumlah data dari sinyal. Hamming window adalah sebuah vektor yang mempunyai jumlah elemen sebanyak N. Besarnya N akan disesuaikan dengan banyaknya elemen pada frame sehingga banyaknya elemen pada Hamming window akan sama dengan banyaknya elemen pada frame. Variabel N ini mengacu pada sub bab 2.3 tentang data sampel yang ada pada proses frame blocking yang berupa bilangan bulat (1,2,3,…).
2.6.
Discrete Fourier Transform (DFT) Discrete Fourier Transform (DFT) adalah Algoritma yang digunakan untuk
mengubah sampel data dari domain waktu ke domain frekuensi . DFT menstabilkan hubungan antara sampel – sample signal domain waktu dan merepresentasikannya ke domain frekuensi [8] . Untuk melakukan analisis frekuensi dari sinyal waktu diskrit X(k) maka perlu mendapatkan representasi domain frekuensi dari sinyal yang biasanya dinyatakan dalam domain waktu. DFT digunakan untuk melakukan analisa frekuensi dari sinyal waktu diskrit. DFT dihitung menggunakan persamaan : 𝑁
X(k) =
x(j)𝜔𝑁
𝑗 −1 (𝑘−1)
𝑗 =1
Dengan: 𝜔𝑁 = 𝑒 (−2𝜋𝑖 )/𝑁 Keterangan :
(2.2) j= indeks dalam domain waktu k = indeks dalam domain frekuensi
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.7.
8
Fungsi Jarak Squared Chord Fungsi jarak squared chord adalah
untuk membandingkan antara database
dengan data hasil masukkan. Pembandingan data ini yang akan digunakan untuk mengidentifikasi masukkan yang nantinya akan menghasilkan keluaran akhir dari sistem program. Fungsi jarak squared chord merupakan proses yang digunakan untuk penentuan keluaran sebelum keluaran akhir benar-benar dihasilkan. Rumus untuk Fungsi jarak squared chord adalah sebagai berikut [9]
𝑛
𝑑𝑠𝑞𝑐 =
𝑖=1
𝑃𝑖 − 𝑄𝑖 ² (2.3)
𝑃𝑖 dan 𝑄𝑖 merupakan nilai perbandingan dan nilai kemiripan antara data masukan dengan data yang sudah ada (database) dan 𝑛 adalah banyak data.
2.8.
Metode Template Matching Metode
Template
Matcing
merupakan
metode
yang
sederhana
untuk
mencocokkan masing-masing data suara dari sebuah matriks dengan matriks lainnya. Semakin besar simpangan dari matriks pembandingnya, maka tingkat kemiripan semakin rendah. Metode ini metode yang mudah diimplementasikan dan mempunyai persentasi keberhasilan pencocokan karakter yang sangat tinggi[10]. Cara kerja metode template matching adalah melakukan pengenalan pada karakter yang ingin dikenali dan membandingkan antara input suara dengan nada referensi yang disimpan. Pada Sistem pengenalan nada barung pelog ini termasuk menggunakan metode template matching karena di subsistem pengenalan nada tersebut terdapat pembandingan data. Subsistem tersebut diantaranya subsistem sampling dan subsistem pengenalan nada.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
2.9.
9
Sound Card Sond card merupakan sebuah periperal pada komputer sebagai I/O suara yang
memberikan kemampuan pada komputer untuk menghasilkan suara yang dapat didengar oleh pengguna baik melalui speaker atau headphone. Pada dasarnya setiap kartu suara memiliki: a. Digital Signal Processor (DSP) yang akan menangani semua jenis komputasi. b. Digital to Analog Converter (DAC) sebagai keluaran suara ke speaker. c. Analog to Digital Converter (ADC) sebagai masukan suara. d. Read Only Memory (ROM) atau Flash sebagai penyimpanan data. e. Musical Instrument Digital Interface (MIDI) untuk menyambungkan beberapa peralatan musik eksternal. f. Jack untuk menyambungkan kartu suara dengan speaker pada jalur line out atau microphone pada jalur line in. Beberapa kartu suara sudah terpasang secara pabrikan (on board) pada motherboard komputer, tetapi bisa juga ditambahkan untuk keperluan yang lebih lanjut pada slot PCI motherboard[11].
Gambar 2.4 Sound Card
2.10.
Mikrofon (Microphone) Mikrofon digunakan pada beberapa alat seperti telepon, alat perekam, alat bantu
dengar, pengudaraan radio, televisi, dan sebagainya [12]. Fungsi mikrofon pada dasarnya ialah untuk input suara manusia lalu mengubahnya menjadi getaran listrik sinyal analog untuk selanjutnya diperkuat dan diolah sesuai dengan kebutuhan. Tahap selanjutnya setelah menjadi sinyal analog ialah dengan menggunakan power amplifier dari suara yang berintensitas rendah menjadi lebih keras lalu terakhir diumpan ke-speaker. Dalam memilih mikrofon harus diperhatikan dengan seksama. Ketelitian dalam memilih mikrofon diperlukan agar dapat memaksimalkan performa dari mikrofon yang
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
10
nantinya akan dipakai.Karakteristik yang harus diperhatikan ketika akan memilih sebuah mikrofon adalah: 1.
Prinsip cara kerja mikrofon dari jenis mikrofon itu sendiri.
2.
Daerah respon frekuensi suara yang mampu dicuplik oleh mikrofon.
3.
Sudut atau arah pencuplikan mikrofon.
4.
Output sinyal listrik yang dihasilkan mikrofon.
5.
Bentuk fisik mikrofon.
Untuk mendapatkan hasil yang maksimal dalam penggunaan mikrofon, maka pemilihan mikrofon harus disesuaikan dengan kebutuhan dalam hal ini yaitu sumber suara yang ingin dicuplik, misalnya suara manusia, alat musik, suara kendaraan, atau yang lainnya dengan sistem tata suara yang digunakan seperti sistem suara untuk pertunjukkan musik, alat perekaman, dan sebagainya. Hal itu dikarenakan tiap kebutuhan memerlukan hasil output yang berbeda-beda meskipun tetap memakai satu jenis masukkan yaitu mikrofon.
2.11.
Matlab Matlab merupakan bahasa pemrograman yang hadir dengan fungsi dan karakteristik
yang berbeda dengan bahasa pemrograman lain. Matlab merupakan bahasa pemrograman level tinggi yang dikhususkan untuk kebutuhan komputasi teknis, visualisasi dan pemrogaman. Matlab dikembangkan oleh Mathworks, yang pada awalnya dibuat untuk mengakses data matrik pada proyek LINPACK dan EISPACK. Software ini memiliki ratusan fungsi yang dapat digunakan sebagai problem solver mulai dari simple masalahmasalah yang kompleks dai berbagai disiplin ilmu [13]. Pada Lingkungan kerja Matlab, ada beberapa bagian Window yang dipakai, yaitu :
1. Current Directory Current Directory menampilkan isi dari direktori kerja saat menggunakan Matlab. Direktori ini dapat diganti sesusai dengan tempat direktori kerja yang diinginkan. 2. Command History Window ini berfungsi untuk menyimpan perintah apa saja yang sebelumnya dilakukan oleh pengguna Matlab.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
11
3. Command Window Command Window adalah window utama dari Matlab. Di sini adalah tempat untuk, menjalankan fungsi, mendeklarasikan variabel, menjalankan proses, serta melihat isi variabel. 4. Workspace Workspace berfungsi untuk menampilkan seluruh variabel yang sedang aktif pada saat pemakaian Matlab. Apabila variabel berupa data matriks berukuran besar, maka user dapat melihat isi dari seluruh data dengan melakukan double click pada variabel tersebut. Matlab secara otomatis akan menampilakn window “array editor” yang berisikan data pada setiap variabel yang dipilih user. Gambar 2.4 menunjukan tampilan dari software Matlab yang digunakan dalam perancangan program pengenalan nada.
Gambar 2.5 Tampilan window Matlab
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB III PERANCANGAN 3.1.
Sistem Pengenalan Nada Alat Musik Barung Pelog
.
Blok sistem pengenalan nada alat musik Barung pelog di tunjukkan pada gambar
3.1.
Input Nada
Normalisasi
Keluaran Text
Penentuan Nada
Pemotongan sinyal
Fungsi Jarak
Frame Blocking
Windowing Koefisien
Windowing Hamming
DFT
DataBase
Gambar 3.1 Diagram Blok Pengenalan Nada Barung Pelog Sistem pengenalan nada alat musik barung pelog menggunakan sebuah software yang berfungsi untuk user interface. Software yang dibuat menggunakan program Matlab. Software bertujuan untuk memudahkan user saat melakuan pengenalan nada. Software ini berperan sebagai pusat proses pengenalan nada, seperti merekam suara nada barung pelog dan mengenali suara nada yang terekam. Perekaman suara dilakukan komputer melalui mikrofon dan jalur line in pada sondcard. Pada proses pengenalan nada barung pelog, data berupa input nada yang berupa wave di normalisasi, kemudian di olah melalui proses windowing untuk analisa sinyal menggunakan DFT (Discrete Fourier transform) kemudian di windowing koefisien dan yang terahir penyelesaian dengan fungsi jarak squared chord dalam sistem pengenalan nada barung pelog.
3.1.1 Input Nada Input nada merupakan Hasil dari sampling nada barung yang direkam berupa wav.
12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
13
3.1.2 Normalisasi Proses ini bertujuan untuk menyetarakan amplitudo maksimum baik nada terekam dengan nada referensi, sehingga efek dari kuat lemahnya suara yang dikeluarkan nada barung tidak terlalu mempengaruhi proses pengenalan. Untuk
menyetarakan skala
amplitudo
puncak
maka
proses
normalisasi
menggunakan rumus :
𝑋𝑛𝑜𝑟𝑚 𝑛 =
𝑋𝑖𝑛 (𝑛) max𝑋𝑖𝑛 (3.1)
3.1.3
Frame Blocking
Proses ini memilih data dari data nada terekam, sehingga data yang dipilih dapat mewakili semua data pada nada terekam. Frame bloking bertujuan untuk mengurangi jumlah data sinyal yang akan di proses. Besarnya data nada terekam yang dipilih sesuai dengan nilai frame blocking yang sudah ditentukan pada program. 3.1.4 Windowing Windowing merupakan perkalian antar elemen yang berfungsi untuk mengurangi efek diskontinuitas dari sinyal digital hasil rekaman. Dalam perancangan ini penulis menggunakan window Hamming. 3.1.5 Discrete Fourier Transform (DFT) Discrete Fourier Transform berfungsi untuk mengkonversi domain waktu ke domain frekuensi. Domain frekuensi digunakan untuk melihat ciri dari suatu nada. 3.1.6 Windowing Koefisien Untuk sistem pengenalan nada barung pelog ini menggunakan windowing koefisien DFT. Sebagian sinyal diambil dari koefisien DFT yang dapat digunakan sebagai ekstraksi ciri. Untuk pengambilan sebagian sinyal dapat diambil dari koefisien DFT ke-1 hingga nilai ke-n (nilai maksimal), dengan n adalah panjang DFT. Dalam proses pengenalan nada barung pelog ini dievaluasi sejumlah n dari panjang DFT, yaitu 16, 32, 64, 128 titik. Dari panjang setiap n DFT akan dipilih sejumlah c koefisien dengan rumus :
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
14
c= pxn (3.2) Dengan : p = 10%, 20%, 30%, 40%, dan 50%, n = panjang DFT
3.1.7 Fungsi Jarak Proses ini membandingkan nada yang di input. Hasil dari perbandingan adalah jarak yang kemudian akan digunakan dalam proses selanjutnya. Pada proses pengenalan, yang diambil adalah jarak yang terdekat dengan nada terekam. Dalam proses ini penulis menggunakan fungsi jarak Squared Chord. 3.1.8 Penentuan Nada Proses ini bertujuan mengenali nada yang di input dari jarak minimum di peroleh setelah proses fungsi jarak. 3.1.9 Hasil Tampilan Pengenalan Hasil pengenalan adalah subproses terakhir dari proses pengenalan nada. Pada proses ini, hasil pengenalan nada diperoleh setelah proses kemudian ditampilkan dalam komputer dalam GUI Matlab bentuk text.
3.2.
Perancangan Nada Referensi Untuk merancang suatu pengenaan nada maka dibutuhkan nada acuan atau sering
juga disebut nada refrensi. Nada refrensi harus memiliki ciri yang sudah diketahui oleh sistem terlebih dahulu. Nada refrensi diperlukan untuk menjadi data base. Fungsi database untuk perbandingan nada yang akan dikenali. Pada sistem pengenalan nada barung pelog ini menggambil 10 nada sebagai nada uji dan 10 sebagai database. Pengambilan nada untuk nada refrensi melalui proses sampling, frame blocking, normalisasi, windowing ,DFT dan windowing koefisien. Untuk mendapatkan nada refrensi maka dilakukan perhitungan : 𝑁𝑎𝑑𝑎 𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑠𝑖 =
𝑛𝑎𝑑𝑎 𝑠𝑎𝑚𝑝𝑒𝑙1 + 𝑛𝑎𝑑𝑎 𝑠𝑎𝑚𝑝𝑒𝑙2 + ⋯ + 𝑛𝑎𝑑𝑎 𝑠𝑎𝑚𝑝𝑒𝑙10 10
(3.2)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
15
Nada referensi yang telah di dapat akan disimpan dalam fungsi yang ada dalam sistem pegenalan nada barung pelog. Nada refrensi yang disimpan dalam sistem pengenalan nada barung pelog ini berfungsi jika sewaktu - waktu dibutuhkan dapat langsung dipanggil dalam proses fungsi jarak yang ada dalam sistem. Alur proses pengenalan nada referensi terlihat pada gambar 3.2.
Sampling
Frame Blocking
Normalisasi
Windowing
DFT
Windowing koefisien
Gambar 3.2 Diagram Proses Pengambilan Nada Referensi
3.3.
Tampilan Program Pada GUI Matlab Tampilan program sebagai interface dengan user.Program tersebut berfungsi
mempermudah user dalam mengoperasikan pengenalan nada barung pelog. Program tersebut menampilkan plotting hasil perekaman hasil dari DFT dan plot windowing koefisien. Pada program ini juga memberikan pilihan nilai DFT dan nilai pada windowing yang akan digunakan untuk pengenalan nada. Tampilan program dibuat menggunakan software Matlab. Penjelasan lebih lanjut tentang tampilan program terdapat pada tabel 3.5. Gambar 3.3.
Gambar 3.3 Tampilan Utama Program
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Tabel 3.1 Keterangan Tampilan Program Nama Bagian
Keterangan
Tombol Pengenalan
Digunakan untuk memulai proses pengenalan
Nada
Tombol Input Data
Digunakan untuk mengambil nada barung pelog yang berupa wav
Variasi Windowing koefisien
Untuk variasi windowing Koefisien DFT menggunakan 10%, 20%, 30%, 40%,dan 50% Untuk memilih nilai DFT yang akan
Variasi DFT
digunakan pada proses pengenalan nada, pilihan nilainya adalah 16, 32, 64,128,256
Plot Windowing koefisien Tombol Exit
Tampilan grafik windowing koefisien setelah DFT Digunakan untuk mengakhiri dan keluar aplikasi.
Plot Hasil Rekaman
Tampilan grafik suara hasil perekaman yang di input
Plot Hasil DFT
Tampilan data berupa grafik data hasil DFT
16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.4.
17
Perancangan Diagram Blok
3.4.1 Proses Perekaman Mulai
Delay
Sampling Nada
Selesai
Gambar 3.4 Diagram Alir Proses program rekam Gambar 3.4 memperlihatkan alir program saat melakukan proses rekam. Pada proses perekaman ada proses delay. Proses delay digunakan untuk memberikan jeda waktu sebelum melakukan perekaman. Pada proses perekaman ini menggunakan frekuensi sampling yang telah ditentukan yang sesuai dengan karakteristik nada barung pelog . Hasil yang didapat dari proses rekam yaitu sampling nada yang berupa wave. Perekaman nada barung dari nada 1,2,3,4,5,6 dan 7 dilakukan sebanyak 20 kali pada setiap nada, 10 data rekaman berupa wav untuk data base dan 10 data rekaman untuk pengujian. Hasil proses rekam tersebut kemudian ditampilkan dalam bentuk plot grafik sesuai dengan alir program.
3.4.2 Proses Pengenalan Nada Barung Pelog
Ketika pengguna akan memulai program pengenalan nada barung pelog, pengguna dihadapkan tampilan yang sederhana dari interface Matlab. Masukkan nada uji yang berupa data wav ke input data, variasi nilai DFT dan variasi windowing koefisien pada list box, setelah user selesai memilih nilai variasi yang diinginkan kemudian pada plot hasil perekaman tertampil. proses selanjutnya
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
18
adalah penekanan tombol pengenalan nada yang tersedia pada tampilan awal. Sistem akan mengenali nada secara tidak real time pada nada barung pelog. Setelah dilakukan pengenalan maka kemudian tergambar grafik pada hasil pengenalan DFT dan plot windowing koefisien kemudian berbentuk keluaran text pada hasil pengenalan nada Dalam gambar 3.5 akan menjabarkan mengenai alur proses utama dalam program.
Mulai Windowing Koefisien
Input nada Normalisasi
Fungsi Jarak
Pemotongan Sinyal
Penentuan Nada
n
Frame Blocking Windowing Hamming
Keluaran Text Selesai
DFT
Gambar 3.5. Diagram Alir Proses Block Keseluruhan
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.4.3
19
Proses Normalisasi
Mulai
Hasil input nada
Normalisasi y=y/max(y);
Hasil Normalisasi
Selesai
Gambar 3.6 Diagram Alir Proses Normalisasi
Pada proses normalisasi seperti gambar 3.6 di atas proses tersebut harus mempunyai nilai maksimum. Normalisasi tersebut berfungsi untuk mengkonversi data maksimum dalam deretan hasil frame blocking menjadi bernilai 1. Dalam pengkonversian menjadi data maksimum menggunakan perintah xmax=max(abs(xframe)). Setelah mencari nilai maksimum, kemudian dilakukan proses normalisasi dengan cara membagi data dengan nilai maksimum yang berisikan perintah xnorm=xframe/xmax. Diperoleh keluaran
hasil normalisasi berupa matriks masukan.
yang digunakan untuk proses selanjutnya sebagai
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
20
3.4.4 Pemotongan Sinyal
Mulai
Masukan hasil normalisasi
Menentuka variabel batas potong [0,2] ( dilihat pada hasil dan lampiran secara visual )
Hasil pemotongan
Selesai
Gambar 3.7 Diagram Alir Proses Pemotongan sinyal
Proses setelah normalisasi yaitu proses pemotongan sinyal. Pemotongan sinyal berguna untuk memotong kekosongan pada sinyal nada atau data nada yang terdapat pada awal dan akhir sinyal.Proses pemotongan sinyal ditentukan oleh variabel batas potong. Dengan cara visual (pada lampiran 2) maka penulis dapat menggunakan |0,2| sebagai batas potong, untuk menghilangkan kekosongan pada sinyal nada Barung pelog. Pemotongan sinyal yang dilakukan adalah masukan yang berupa sinyal nada Barung pelog akan dipotong pada sisi kiri, dan akan menghasilkan sinyal nada Barung pelog dan akan menghasilkan keluaran data nada Barung pelog dan akhir data nada Barung pelog Proses pemotongan sinyal ini bergantung nilai batas potong yang terdapat pada
m-
file. Proses pemotongan sinyal bagian awal akan dipotong bagian awalnya, sehingga memperoleh data nada Barung pelog dan data akhir.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.4.5
21
Proses Frame Blocking
Mulai
Masukan Nada pemotongan sinyal Tidak
Tidak
Fr=16
Fr=32
Tidak
Fr=64
Tidak
Fr=128
Fr=256
ya ya
Ambil data sesuai Frame
ya
ya
Keluaran hasil frame blocking
Selesai
Gambar 3.8 Diagram Alir Proses Frame Blocking
Dari gambar ditampilkan pada Gambar 3.8. Proses frame Frame blocking bertujuan untuk mengurangi jumlah data sinyal yang akan di proses. Jumlah data yang diambil dalam proses ini sesuai dengan variasi DFT yang dipilih user sehingga data yang dipilih dapat mewakili semua data yang di ambil pada nada input. Pada proses ini, sample diambil dari data nada terekam. Nada terekam diperoleh dari data sampling. Langkah pertama yaitu dengan pemotongan sinyal untuk bagian kiri . yang didapat di tentukan besar data yang akan di ambil untuk proses pengenalan nada selanjutnya.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.4.6
22
Proses Hamming Windowing
Mulai
Hasil Frame blocking
𝑘
w [k+1] = 0,54 – 0,46 cos(2𝜋 𝑛 −1)
Perkalian antara data masukkan dengan hasil windowing hamming
Hasil Windowing
Selesai
Gambar 3.9 Diagram Alir Proses Hamming windowing Untuk gambar proses windowing hamming tertera diatas pada gambar 3.9. Pada proses Hamming window ini melakukan perhitungan dengan persamaan (2.1). w[k+1] 𝑤1 merupakan hasil dari perhitungan persamaan yang berupa matrik 𝑤2 ⋮ 𝑤𝑛
kemudian hasilnya
𝑤1. 𝑚1 dikalikan dengan nilai matrik masukan 𝑤2.⋮𝑚2 . Hasil dari proses windowing ini berupa 𝑤𝑛. 𝑚𝑛 ℎ1 matriks ℎ2 yang selanjutnya menjadi masukan proses DFT. ⋮ ℎ𝑛
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.4.7
23
Proses Discrete Fourier Transform (DFT)
Mulai
Hasil windowing
𝑁
X(k) =
x(j)𝜔𝑁
𝑗 −1 (𝑘−1)
𝑗 =1
Mencari Nilai Absolut
Hasil DFT
Selesai
Gambar 3.10 Diagram Alir Proses DFT Dari hasil windowing hamming kemudian ditransformasikan menggunakan Discrete Fourier Transform (DFT) .Proses ini mengkonversi data nada suara dalam domain waktu menjadi domain frekuensi pada persamaan pada 2.2 di atas dengan fungsi 𝑓 𝑘 adalah masukan dari hasil windowing. Nilai dari DFT yang diperoleh kemudian dicari nilai absolutnya. Pada proses ini diperoleh keluaran hasil ekstraksi ciri berupa 𝑑1 matriks 𝑑2 . Diagram alir dari proses DFT diperlihatkan pada Gambar 3.9. ⋮ 𝑑𝑛
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.4.8
24
Proses Windowing Koefisien DFT
Mulai
Hasil DFT
c= pxn
Hasil DFT
Selesai
Gambar 3.11 Diagram Alir Proses Windowing koefisien DFT
Setelah Proses Discrete Fourier Transform (DFT) diproses menghasilkan panjang nilai koefisien, Dari panjang nilai nilai koefisien DFT kemudian akan dipilih dengan windowing koefisien dengan rumus 3.2 diatas, dengan c sebagai hasil windowing koefisien, p adalah nilai persen koefisien dan n adalah panjang DFT.Pilihan variasi windowing koefisien tergantung user memberi masukan. Variasi windowing koefisien berupa pilihan dari 10%,20%,30%,40% dan 50%. kemudian komputer menjalankan proses plotting hasil konversi tersebut. Proses windowing koefisien diperlihatkan pada Gambar 3.9.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.4.9
25
Proses Fungsi Jarak Squared Chord
Mulai
Hasil windowing koefisien DFT
𝑛
𝑑𝑠𝑞𝑐 =
𝑃𝑖 − 𝑄𝑖 ² 𝑖=1
Hasil perhitungan jarak
Selesai
Gambar 3.12 Diagram Alir Proses fungsi jarak Squared chord Setelah didapat hasil dari windowing koefisien kemudian proses selanjutnya yaitu perhitungan
jarak
menggunakan
fungsi
jarak
Squared
Chord.
Gambar
3.12
memperlihatkan diagram alir proses fungsi jarak Squared Chord. Pada proses ini
menghitung jarak antara rerata hasil (data base)
dengan data hasil
ekstraksi ciri. Penghitungan proses ini menggunakan persamaan 2.3 diatas dengan 𝑃𝑖 dan
𝑄𝑖 merupakan nilai perbandingan dan nilai kemiripan antara data masukan dengan data yang sudah ada (database) dan 𝑛 adalah banyak data. Hasil penghitungan jarak ini adalah nilai angka hasil perbandingan yang bukan matrix dan sebagai penentu hasil pengenalan nada. Perbandingan menghasilkan nilai jarak dan data – data tersebut dicari nilai terkecilnya. Pencarian nilai terkecil di hasilkan dengan jarak minimal pada data base. Hasil penghitungan jarak ini adalah sebagai penentu hasil pengenalan nada. Gambar 3.13 memperlihatkan diagram alir penentuan nada hasil pengenalan. Nada hasil pengenalan ditampilkan dalam tampilan program dalam bentuk teks. Jika sudah mencapai pada proses tersebut maka proses pengenalan nada barung pelog sudah selesai. User dapat keluar dari
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
26
program pengenalan nada tersebut dengan menekan tombol “Exit”. User juga dapat mengulang kembali pengenalan nada barung pelog yang lain dengan pilihan input nada sesuai pilihan user . Jika user hendak mengulang maka user memulai nada lain yang ingin dikenali kemudian menekan tombol “Pengenalan Nada”.
Mulai
Hasil jarak
Keluaran = jarak minimal ( perbandingan jarak nilai yang terkecil ) Dikenali
Text
Selesai
Gambar 3.13 Diagram Alir Proses Penentuan Nada
3.5.
Perancangan Subsistem Program Sistem pengenalan
nada barung pelog mempunyai dua subsistem penting
dalamnya. yaitu subsistem sampling dan subsistem pengenalan nada. Perancangan subsistem tersebut terdapat variabel dari nilai variasi-variasi yang telah di tentukan yaitu variasi DFT dan windowing koefisien, sehingga pengenalan dapat berhasil dan dengan waktu proses yang optimal. Pengujian awal untuk mencari variabel tersebut sangat diperlukan karena dalam program tersebut memiliki fungsi–fungsi menunjang subsistem dari sistem program pengenalan nada.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
3.5.1
27
Subsistem Sampling Dalam subsistem ini terdapat dua variabel terikat berupa frekuensi sampling dan
durasi perekaman. Setelah melakukan pengujian awal, dapat disimpulkan: a. Secara teori nada dasar frekuensi samplingnya 2158Hz secara praktek di dapat 1110Hz. Sehingga Penggunaan frekuensi 2200Hz sudah memenuhi kriteria nyquist.(lihat lampiran L3) b. Durasi perekaman yang digunakan adalah 1.5 detik.(lihat lampiran L4)
3.5.2
Subsistem Pengenalan Nada Subsistem ini terdiri dari tiga proses, menggunakan variabel tetap yaitu proses
fungsi jarak dan menggunakan variabel bebas yaitu variasi DFT dan variasi windowing koefisien. Variabel yang akan di evaluasi untuk membangun sistem nada yang optimal adalah kedua variabel bebas tersebut. a.
Windowing yang digunakan adalah Hamming window. .
b.
Frame blocking mengambil sampel data dari data suara terekam (data yang diperoleh dalam proses sampling). Nilai variasi frame blocking sama dengan nilai variasi dari DFT yaitu 16, 32, 64, 128, 256.
c.
Windowing Koefisien DFT mengevaluasi proses variasi nilai jumlah koefisien DFT. Nilai variasi koefisien adalah 10%, 20%, 30%, 40%, dan 50%.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB IV HASIL DAN PEMBAHASAN Pengujian program perlu dilakukan untuk mengetahui kinerja program bekerja dengan baik dan sesuai dengan perancangan. hasil pengujian berupa data-data yang dapat memperlihatkan bahwa program yang telah dirancang dapat berjalan dengan baik. Analisa terhadap proses proses kerja dapat digunakan untuk menarik kesimpulan dari apa yang disajikan dalam tugas akhir ini.
4.1
Pengujian Program Pengenalan Nada Barung Pelog Menggunakan Windowing Koefisien DFT dan Jarak Squared Chord Perancangan program menggunakan software Matlab 7.0.4. Pada pengujian
program menggunakan laptop dengan spesifikasi: Prosesor
: Intel® Core™ 2 Duo processor CPU @ 2.1 GHz
RAM
: 2.00 GB
Tipe sistem
: Sistem operasi 32 bit
Proses pengenalan nada Barung Pelog dapat dilakukan dengan menjalankan langkahlangkah di bawah ini: 1. Mengklik dua kali ikon Matlab pada layar desktop dengan gambar ikon seperti Gambar 4.1.
Gambar 4.1 Ikon Matlab 7.0.4
2. Setelah melakukan langkah 1, akan tampil tampilan utama software Matlab seperti Gambar 4.2.
28
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
29
Gambar 4.2 Tampilan Matlab 3. Mengetikan perintah gui2 pada Comand window untuk memunculkan tampilan program pengenalan nada. Setelah itu akan muncul tampilan program pengenalan nada seperti pada Gambar 4.3.
Gambar 4.3 Tampilan Program Pengenalan Nada Barung Pelog 4. User memilih input data yang akan di kenali kemudian nilai variasi DFT dan variasi windowing koefisien yang akan digunakan terlebih dahulu sebelum melakukan pengenalan nada. Nilai variasi DFT yang disediakan adalah 16, 32, 64, 128, dan 256. Nilai variasi windowing koefisien yang disediakan adalah 10%,20%,30%,40% dan 50%.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
30
5. Apabila langkah 4 sudah dilakukan, user dapat memulai pengenalan nada dengan menekan tombol “Pengenalan Nada”. Hasil pengenalan nada barung pelog terlihat seperti pada gambar 4.4.
Gambar 4.4 Tampilan Hasil Pengenalan 6. User dapat mengulang kembali pengenalan nada yang berbeda dengan mengulang kembali langkah 4. 7. User dapat mengakhiri pengenalan nada dengan menekan tombol “exit”.
4.1.1 Pengenalan Nada Pengenalan nada dapat dilakukan dengan melakukan berbagai langkah-langkah seperti yang telah dijelaskan di atas. Tampilan program pengenalan nada dapat dilihat pada Gambar 4.3. Pada tampilan pengenalan nada terdapat 2 pop up menu, 2 axes, 3 push button, dan 1 static text. User dapat memulai pengenalan nada dengan melakukan pengaturan terlebih dahulu pada program pengenalan nada. Pengaturan yang perlu dilakukan adalah dengan memilih input nada yang akan di kenali, memilih nilai variasi DFT dan nilai variasi windowing koefisien yang terdapat pada pop up menu. Setelah itu menentukan nilai variasi yang akan digunakan, user dapat memulai pengenalan nada dengan menekan tombol tekan ”pengenalan nada”. Hasil pengenalan yang ditampilkan adalah plot input data perekaman, plot DFT, dan nada yang berhasil dikenali. User dapat mengulang pengenalan nada dengan input nada yang berbeda, nilai variasi DFT yang
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
berbeda dan nilai variasi windowing koefisien yang berbeda. Untuk
31
mengakhiri
pengenalan dengan menekan tombol “exit” seperti yang telah dijelaskan di atas. a. Pop Up Menu Pada program pengenalan nada Barung pelog ini menggunakan tiga pop up menu variasi DFT, dan variasi windowing koefisien,. Untuk pop up menu 1 akan menampilakan input nada yaitu siji, loro, telu, papat, limo, enem, dan pitu dengan lima macam setiap nadanya. pop up menu 2 digunakan untuk variasi DFT yang bernilai 16, 32, 64, 128, dan 256. Pop up menu 3 akan menampilkan windowing koefisien yang bernilai 10, 20, 30, 40, dan 50. Berikut merupakan contoh program dalam penggunakan pop up menu %mengambil data (load) nada=handles.nada; if (nada==1) [y,fs]=wavread('ji_a.wav'); elseif (nada==2) [y,fs]=wavread('ji_b.wav'); elseif (nada==3) [y,fs]=wavread('ji_c.wav'); elseif (nada==4) [y,fs]=wavread('ji_d.wav'); elseif (nada==5) [y,fs]=wavread('ji_e.wav'); elseif (nada==6) [y,fs]=wavread('ro_a.wav'); elseif (nada==7) [y,fs]=wavread('ro_b.wav'); elseif (nada==8) [y,fs]=wavread('ro_c.wav'); elseif (nada==9) [y,fs]=wavread('ro_d.wav'); elseif (nada==10) [y,fs]=wavread('ro_e.wav'); elseif (nada==11) [y,fs]=wavread('lu_a.wav'); elseif (nada==12) [y,fs]=wavread('lu_b.wav'); elseif (nada==13) [y,fs]=wavread('lu_c.wav'); elseif (nada==14) [y,fs]=wavread('lu_d.wav'); elseif (nada==15) [y,fs]=wavread('lu_e.wav'); elseif (nada==16) [y,fs]=wavread('pa_a.wav'); elseif (nada==17) [y,fs]=wavread('pa_b.wav'); elseif (nada==18) [y,fs]=wavread('pa_c.wav'); elseif (nada==19)
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
32
[y,fs]=wavread('pa_d.wav'); elseif (nada==20) [y,fs]=wavread('pa_e.wav'); elseif (nada==21) [y,fs]=wavread('mo_a.wav'); elseif (nada==22) [y,fs]=wavread('mo_b.wav'); elseif (nada==23) [y,fs]=wavread('mo_c.wav'); elseif (nada==24) [y,fs]=wavread('mo_d.wav'); elseif (nada==25) [y,fs]=wavread('mo_e.wav'); elseif (nada==26) [y,fs]=wavread('ne_a.wav'); elseif (nada==27) [y,fs]=wavread('ne_b.wav'); elseif (nada==28) [y,fs]=wavread('ne_c.wav'); elseif (nada==29) [y,fs]=wavread('ne_d.wav'); elseif (nada==30) [y,fs]=wavread('ne_e.wav'); elseif (nada==31) [y,fs]=wavread('tu_a.wav'); elseif (nada==32) [y,fs]=wavread('tu_b.wav'); elseif (nada==33) [y,fs]=wavread('tu_c.wav'); elseif (nada==34) [y,fs]=wavread('tu_d.wav'); elseif (nada==35) [y,fs]=wavread('tu_e.wav'); end axes(handles.axes1); plot (y) sound(10*y);
Pada program diatas merupakan program pengambilan nada atau nada yang sudah di rekam pada barung pelog dengan nada 1 sampai dengan 35 nada yang akan di kenali contoh if (nada==33) [y,fs]=wavread(„tu_c.wav‟) maka program akan mengambil nada dengan nama tu_c.wav pada directory. indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 frame=16; case 2 frame=32; case 3 frame=64; case 4 frame=128; case 5 frame=256;
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
33
end handles.vardft=frame; guidata(hObject,handles);
Pada program di atas, nilai DFT diinisialisai menggunakan nama ndft yang dibagi dalam 5 kondisi sesuai dengan banyaknya variasi. Inisialisasi
ndft tersebut diproses
menggunakan perintah handles. Perintah ini digunakan untuk data atau nilai DFT yang telah diinisialisasi sebagai masukan apabila dilakukan callback. Pada pop up menu variasi windowing koefisien menjalankan program sebagai berikut: indeks=get(handles.popupmenu3,'Value'); switch indeks case 1 wk=10; case 2 wk=20; case 3 wk=30; case 4 wk=40; case 5 wk=50; end handles.koefisien=wk; guidata(hObject,handles);
Proses yang dilalui oleh pop up menu pada variasi windowing koefisien sama dengan proses pada pop up menu variasi DFT. Nilai windowing diinisialisasikan dengan wk. b. Tombol “Pengenalan Nada” Tombol “pengenalan nada” adalah tombol yang berfungsi untuk melakukan pengenalan nada Barung pelog. User dapat melakukan pengenalan nada Barung pelog dengan menekan tombol tersebut. Tombol “pengenalan nada” memulai pengenalan nada dengan menjalankan beberapa subproses. Subproses yang dijalankan dimulai dari input nada, normalisasi, frame blocking, windowing hamming, ekstraksi ciri DFT,windowing koefisien, penghitungan jarak Squaredchord, dan penentuan hasil pengenalan nada. Program yang digunakan untuk perekaman nada sebagai berikut:
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
34
%mengambil data (load) nada=handles.nada; if (nada==1) [y,fs]=wavread('ji_a.wav'); elseif (nada==2) [y,fs]=wavread('ji_b.wav'); end axes(handles.axes1); plot (y) sound(10*y);
Nada yang telah input tersebut diplot pada tampilan program pengenalan menggunakan perintah plot. Nada terekam diplot pada axes yang telah tersedia di dalam tampilan program pengenalan. kemudian ditambah kan program sound(10*y); untuk membunyikan nada input yang di ambil. Setelah proses perekaman, program akan memproses hasil rekaman tersebut sehingga dapat di kenali. Ada pun proses- proses yang harus di lakukan dengan cara, yaitu pemotongan sinyal. Nada yang sudah direkam tersebut akan dipotong dengan batas potong sebesar |0.2| pada sisi kiri sinyal. Setelah proses pemotongan itu selesai maka langkah selanjutnya memilih data yang dinamakan frame blocking, langkah selanjutnya yaitu windowing, pada pengenalan nada barung pelog ini menggunkan windowing hamming. Setelah selesai windowing hamming, dilakukan proses ekstraksi ciri DFT dan windowing koefisien. berikut ini merupakan proses pengolahan pemotongan sinyal hingga program windowing koefisien : % Normalisasi % y=y/max(y); %pemotongan sinyal b0=0.2; b1=find(y>b0 | y<-b0); y(1:b1(1))=[]; %frame blocking frame=handles.vardft; frame; for p=1:frame; f(p)=y(p+frame); end %windowing hamming w=hamming(frame); for p=1:frame; wo(p)=f(p)*w(p); %wo(p)==> windowing hamming (p) end %ekstraksi ciri DFT g=abs(dftwo(wo)); axes(handles.axes5);
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
35
plot (g); %dftwo function g=dftwo(wo) %hitung panjang wo n=length(wo); %hitung dft g=zeros(1,n) for k=1:n for m=1:n w=exp(-1i*2*pi*(k-1)*(m-1)/n); a=wo(m)*w; g(k)=g(k)+a; end end
%windowing koefisien wk=handles.koefisien; h=frame; c=(wk/100)*h; s=floor(c); ya=g(1:s); ya=ya(:); axes(handles.axes6); plot (ya);
Dari hasil windowing koefisien yang di inisialisasikan dengan “ya”, maka akan diplot pada axes2 yang menggambarkan hasil akhir dari sinyal windowing koefisien. Proses selanjutnya setelah penggambaran sinyal nada barung pelog adalah proses pemanggilan database yang telah disesuaikan dengan 2 variasi masukan yaitu variasi DFT, dan variasi windowing koefisien yang telah dipilih oleh user sebelumnya. Program database menggunakan logika if else agar database mempunyai kesamaan dengan nilai variasi yang telah dipilih sebelumnya oleh user. Program di bawah merupakan contoh dari program pemanggilan database. %data base if (frame==16)&(wk==10) load xciri1610 elseif (frame==16)&(wk==20) load xciri1620 elseif (frame==16) & (wk==30) load xciri1630 elseif (frame==16) & (wk==40) load xciri1640 elseif (frame==16) & (wk==50) load xciri1650
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
36
Program di atas untuk memanggil database yang akan dibandingkan dengan nada yang telah terekam dengan menggunakan perintah jarak. Database yang dipanggil sesuai dengan masukan variasi DFT, variasi windowing koefisien yang telah dipilih oleh user sebelumnya. Setelah proses pemanggilan database, proses selanjutnya adalah membandingkan database dengan data masukkan dari user yang telah dimasukkan pada input nada. Perbandingan data - data tersebut memakai metode jarak Squaredchord. Program perhitungan jarak sebagai berikut: function js=jaraksquaredchord(p,q); a1=(sqrt(p)); a2=(sqrt(q)); a3=(a1-a2); js=sum(a3.^2); %perhitungan jarak for n=1:7 jaraklist(n)=jaraksquaredchord(ya,z(:,n)); end
%cari nilai minimal jmin=find(min(jaraklist)==jaraklist); %deskripsi string nadalist={'1 (siji)','2 (loro)','3 (telu)','4 (papat)','5(limo)','6 (enem)','7 (pitu)'}; %penentuan keluaran yy=nadalist(jmin) set(handles.text10,'String',yy);
Program di atas melakukan penghitungan jarak nada input yang sudah direkam dengan database dari ke tujuh nada barung pelog dalam berbagai variasi. Perintah jarak berfungsi untuk menjalankan
fungsi jarak squaredchord. Nilai jarak minimal yang
diperoleh digunakan untuk menentukan nada barung pelog yang berhasil dikenali. Pada program di atas juga untuk tidak mengenali (mengenali secara salah) nada yang akan dikenali. Untuk tidak mengenali nada selain nada Barung pelog, dengan cara membandingkan jarak minimal yang telah diperoleh saat pengenalan dengan batasan maksimal dari ketujuh nada barung pelog. Nada yang telah dikenali ditampilkan pada tampilan program pengenalan dalam bentuk teks.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
37
c. Tombol “exit” Tombol “exit” atau keluar digunakan apabila user ingin mengakhiri program pengenalan nada. Perintah program tombol “exit” sebagai berikut: delete(figure(tobing_progrm_meh_fixe));
Kesimpulan dari pengujian program pengenalan barung pelog adalah tombol yang terdapat pada tampilan program dapat berjalan dengan baik dan alur program telah sesuai dengan perancangan. Sistem pengenalan nada juga sudah dapat berjalan dengan baik. sesuai dengan yang di inginkan.
4.2
Hasil Pengujian Program Pengenalan Nada Terhadap Tingkat Pengenalan Nada Barung Pelog
4.2.1 Pengujian untuk Menentukan batasan Nilai Jarak yang Optimal Pada pengujian ini dilakukan untuk menentukan batasan nilai jarak yang optimal. Parameter yang digunakan untuk menentukan batas nilai ini menggunakan windowing koefisien 50%, dan panjang DFT 256 yang mempunyai tingkat pengenalan yang baik. Pengujian ini menggunakan 5 kali percobaan setiap nadanya dan dari 5 percobaaan setiap nada tersebut akan mendapatkan nilai minimal. Setelah mendapatkan nilai minimal dari 5 kali percobaan setiap nada tersebut, nilai yang paling minimal dari ke tujuh nada tersebut yang akan di kenali. Tabel 4.1 Jarak Minimum pada percobaan Percobaan Ke1 (siji) 1 3.3283 2 171.1315
2 (loro) 3 (telu) 194.9283 192.4405 6.6167 155.5431
Nada 4 (papat) 5 (limo) 6 (enem) 205.9538 199.4625 212.5251 191.4181 186.5284 193.9752
7 (pitu) 204.679 192.0757
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
38
Tabel 4.1 memperlihatkan dua percobaan, untuk selengkapnya dari 35 percobaan dapat di lihat pada lampiran (L18). Dari tabel tersebut menunjukkan nilai minimum pada percobaan 1 terdapat pada nada 1 (siji) jadi yang di kenali adalah nada 1(siji), pada percobaan 2 nilai minimum terdapat pada nada 2 (loro) jadi yang dikenali adalah nada 2 (loro).
4.2.2 Pengujian Pengaturan Pengenalan Nada pengujian untuk melihat seberapa besar tingkat pengenalan yang terjadi setiap penentuan nada pada DFT dan windowing koefisien. Langkah – langkah pengujian yang akan digunakan sebagai berikut: 1. Proses pengambilan nada input yang sudah direkam 5 kali setiap nada 2. Mengenali setiap nada yang di input menggunakan kombinasi nilai variasi yang berbeda-beda dengan nilai: a. DFT : 16,32,64,128,256 b. Windowing koefisien : 10%,20%,30%,40%,50% 3. Menentukan kombinasi nilai variasi pengenalan yang menghasilkan tingkat pengenalan terbaik. Pengujian dilakukan pada variasi yang maksimal yaitu DFT 256 dan windowing koefisien 50%, di harapkan memperoleh hasil yang baik dan sesuai yang di inginkan. Tabel 4.2 menunjukkan hasil pengujian : Tabel 4.2 Hasil Pengenalan DFT:256 dan Windowing Koefisien:50% Percobaan Ke1 (siji) 1 O 2 O 3 O 4 O 5 O 6 O 7 O 8 O 9 O 10 O 11 O
2 (loro) O O O O O O O O O O O
3 (telu) O O O O O O O O O O O
Nada 4 (papat) O O O O O O O O O O O
5 (limo) O O O O O O O O O O O
6 (enem) O O O O O O O O O O O
7 (pitu) O O O O O O O O O O O
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O
O O O O O O O O O O O O O O O O O O O O O O O O
39
O O O O O O O O O O O O O O O O O O O O O O O O
Keterangan : O = dikenali benar X = dikenali salah Pada tabel 4.2 dapat di lihat dari 35 kali percobaan dengan 5 kali percobaan pada setiap nada tidak terdapat nada yang di kenali secara salah. Proses pengenalan nada barung pelog pada setiap pengujian memiliki tingkat presentase proses pengenalan, perhitungan persamaan (4.1)
dilakukan
untuk mendapatkan persentase pengenalan keseluruhan nada yang di ujikan setiap sample nada.
Jumlah Pengenalan(%) =
𝑗𝑢𝑚𝑙𝑎 ℎ 𝑛𝑎𝑑𝑎 𝑦𝑎𝑛𝑔 𝑑𝑖 𝑘𝑒𝑛𝑎𝑙𝑖 𝑗𝑢𝑚𝑙𝑎 ℎ 𝑠𝑎𝑚𝑝𝑙 𝑒 𝑛𝑎𝑑𝑎
x100%
(4.1)
Dari perhitungan persamaan di atas dapat di ketahui tingkat pengenalan nada pada pengaruh variasi DFT dan windowing koefisien. Hasil presentase tingkat pengenalan nada secara keseluruhan terlihat pada gambar grafik 4.1.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
40
Grafik Tingkat Pengenalan Tingkat pengenalan (%)
120 100
80
DFT 16
60
DFT 32
40
DFT 64
20
DFT 128 DFT 256
0 10%
20%
30%
40%
50%
Windowing koefisien
Gambar grafik 4.5 Dari gambar grafik 4.1 diatas bisa di lihat bahwa pengaruh variasi windowing koefisien terhadap tingkat pengenalan nada sangat berarti dengan semakin besar windowing koefisien maka hasil pengenalan semakin baik.
4.2.3 Pengujian Dengan Nada Masukan Gamelan Peking Pada pengujian ini bertujuan untuk mengetahui tingkat pengenalan sistem dalam mengetahui nada. Sistem diharapkan tidak dapat mengenali nada alat musik lain selain nada Barung Pelog. Untuk pengujian program pengenalan ini digunakan gamelan peking sebagai masukan nadanya. Ada pula langkah- langkah untuk melakukan percobaaan sebagai berikut: 1. Menyiapkan gamelan Peking yang akan digunakan 2. Nada yang akan digunakan satu nada yaitu nada 1(siji) karena satu nada sudah cukup untuk mengetahui tingkat pengenalan nada tersebut. 3. Menggunakan semua variasi DFT 16,32,64,128,256, dan semua variasi windowing koefisien 10%,20%,30%,40% dan 50% untuk mengetahui tingkat semua variasi pengenalan 4. Melihat hasil keluaran nada, apakah pengujian tersebut dapat mengenali benar atau mengenali nada yang salah.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
41
Setelah melakukan langkah- langkah diatas, hasil yang diperoleh sebagai berikut: Tabel 4.3 Hasil pengujian dengan gamelan Peking
DFT 16 32 64 128 256
Windowing koefisien 20% 30% 40% 5 5 7 5 5 7 5 5 7 5 5 7 5 5 7
10% 5 5 5 5 5
50% 7 7 7 7 7
Dari keterangan table diatas Pada pengujian program penegenalan nada barung pelog dengan masukan nada gamelan peking yaitu nada 1(siji) menghasilkan hasil nada 5(limo) dan 7(pitu) atau dikenali dengan salah. Dikarenakan nada. karakter suara dari gamelan peking sudah berbeda.
Gambar 4.6 Gamelan Peking
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
BAB V KESIMPULAN DAN SARAN 5.1
Kesimpulan Dari percobaan dan pengujian sistem pengenalan nada barung pelog disimpulkan
sebagai berikut : 1. Implementasi dari sistem pengenalan nada barung pelog sudah bisa bekerja dengan baik dan sesuai dengan perancangan. Program pengenalan nada barung pelog sudah mampu untuk mengenali nada-nada dasar dari barung pelog yaitu 1(siji), 2(loro), 3(telu), (papat), 5(limo), 6(enem), 7(pitu). 2. Parameter pengenalan nada nilai windowing koefisien mempengaruhi tingkat pengenalan nada. Semakin besar nilai DFT tingkat pengenalan nada secara umum semakin baik. Semakin besar nilai windowing koefisien maka tingkat pengenalan nada semakin tinggi atau baik. 3. Parameter optimal untuk tingkat pengenalan mencapai 100% pada nilai semua DFT, dan windowing koefisien 50% yang dipilih.
5.2
Saran Saran untuk pengembangan sistem pengenalan nada barung pelog adalah sebagai
berikut : Pengembangan sistem yang mampu untuk mengenali segala jenis alat musik tradisional, atau alat musik modern tidak hanya satu alat musik.
42
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
DAFTAR PUSTAKA [1]
Isworo Yogi W., 2014,“Pengenalan Nada gamelan kenong secara real time Menggunakan Fungsi Jarak Chebyshev” , Universitas Sanata Dharma, Yogyakarta.
[2]
-------, 2006, ki-demang.com: Situs Sutresna Jawa, http://www.ki-demang.com/index.php/gambar-gamelan/602-11-saron
diakses
pada
tanggal 17 Januari 2015. [3]
Kim Jinho, 2013, “automatic pitch detection and shifting of musical tones in real time”, boston,
[4]
Ghea Ardy Prayogo W, 2010 “Pergeseran Frekuensi Dasar Sinyal Gamelan Menggunakan Phase vocoder” ITS, Surabaya.
[5]
Suwandi, 2011, Perancangan Program Aplikasi Absensi Pada Binus Learning Communtiy SAC dengan menggunakan Hidden Markov Model, Program Ganda Teknik Informatikadan Matematika, Bina Nusantara Jakarta,
[6]
Eka Kartikasari, Y., 2006, Pembuatan Software Pembuka Program aplikasi Komputer Berbasis Pengenalan Sinyal Suara, PENS-ITS, Surabaya.
[7]
http://www.realkarachi.com/downloads/books/how-stuff-works/how-sound-cardswork%28www.realkarachi.com%29.pdf diakses pada tanggal 20 Januari 2015.
[8]
Putra Prabowo
Hadi S.,
“Penggolongan Suara Berdasarkan Usia
Dengan
Menggunakan Metode K-Means” Politeknik Elektronika Negeri Surabaya Institut Teknologi Sepuluh Nopember Kampus ITS, Surabaya [9]
Cha, Sung-Hyuk, 2007, Comprehensive Survey on Distance/Similarity Measures between Probability Density Function, Internasional Journal of Mathematical Models and Methods in Applied Sciences,
[10]
http://yudistira.lecture.ub.ac.id/files/2014/04/KLASIFIKASI-HURUF-KATAKANADENGAN-METODE-TEMPLATE-MATCHING-CORRELATION.pdf diakses pada tanggal 11 Februari 2015.
[11]
http://www.realkarachi.com/downloads/books/how-stuff-works/how-sound-cardswork%28www.realkarachi.com%29.pdf diakses pada tanggal 20 Januari 2015.
43
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
[12]
http://www.geniusnet.com/wSite/ct?xItem=16664&ctNode=145 diakses pada tanggal 20 Januari 2015.
[13]
Niamaulidia, 2009 Pembuatan Pengenalan Sinyal Wicara Menggunakan Matlab.
44
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
LAMPIRAN
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
PERCOBAAN MENCARI SPEKTRUM FREKUENSI DARI NADA ALAT MUSIK BARUNG PELOG DENGAN MATLAB V.7 Tujuan: 1. Mengetahui frekuensi tertinggi pada nada barung pelog. 2. Mengetahui frekuensi sampling. Variabel: 1. Frekuensi sampling yang digunakan 40000Hz, 2. Durasi perekaman yang digunakan sebesar 2 detik. Listing Program fs = 40000;%%fsampling 40000Hz y = wavrecord (2*fs,fs,'double');%% 2 detik wavwrite(y,fs,'sample2s2250Hz1.wav'); [y,fs]=wavread('sample2s2250Hz1.wav'); Y=fft(y,fs); Spek= Y.* conj(Y); f = fs*(0:(1/2*fs))/fs; plot(f,Spek(1:(1/2*fs+1)));grid;%output
Hasil Plotting Fs 40000 Nada 1 ( Ji )
Nada 2 ( Ro )
Amplitudo
Amplitudo Frekuensi Frekuensi
Frekuensi
L1
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI Nada 3 ( Lu )
Nada 4 ( Pat )
Amplitudo
Amplitudo Frekuensi
Frekuensi
Nada 5 ( Mo )
Nada 6 ( Nem )
Amplitudo
Amplitudo Frekuensi Nada7 ( Pi )
Amplitudo Frekuensi
Frekuensi
L2
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L3
Kesimpulan 1. Tidak terdapat harmonisa karena menggunakan frekuensi tinggi yaitu 40000Hz. 2. Frekuensi ( f ) pada nada 7 ( pi ) tinggi sebesar 1055Hz, dengan demikian berdasarkan kriteria nyquist bila di gunakan frekuensi pencuplikan maka 2200Hz. Dengan demikian maka frekuensi 2200Hz digunakan untuk mencari durasi perekaman.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L4
PERCOBAAN MENCARI DURASI PEREKAMAN UNTUK SISTEM PENGENALAN NADA BARUNG PELOG DENGAN MATLAB V.7 Tujuan: 1. Mendapatkan durasi perekaman yang tepat untuk perekaman. 2. Mengetahui pengaruh durasi perekaman pada data sinyal yang terekam. Variabel: 1. Frekuensi sampling yang digunakan 2200Hz. 2. Durasi perekaman yang digunakan sebesar 1 detik, 1,5 detik, 2 detik, 2,5 detik dan 3 detik. Listing Program clc fs = 2200;%%fsampling 2200Hz %y = wavrecord (fs,fs,'double');%% 1 detik %wavwrite(y,fs,'sample1s2200Hzji.wav'); %[y,fs]=wavread('sample1s2200Hzji.wav'); %y = wavrecord (1.5*fs,fs,'double');%% 1,5 detik %wavwrite(y,fs,'sample1s2200Hzji.wav'); %[y,fs]=wavread('sample1s2200Hzji.wav'); %y = wavrecord (2*fs,fs,'double');%% 2 detik %wavwrite(y,fs,'sample2s2200Hzji.wav'); %[y,fs]=wavread('sample2s2200Hzji.wav'); %y = wavrecord (2.5*fs,fs,'double');%% 2,5 detik %wavwrite(y,fs,'sample2s2200Hzji.wav'); %[y,fs]=wavread('sample2s2200Hzji.wav'); y = wavrecord (3*fs,fs,'double');%% 3 detik wavwrite(y,fs,' sample3s2200Hzji.wav'); [y,fs]=wavread('sample3s2200Hzji.wav'); plot(y);grid;%output
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L5
Hasil Ploting
1 Detik
1,5 Detik -3
-3
6
x 10
x 10
5 4
4
3 2
Amplitudo
Amplitudo
0
-2
2 1 0 -1
-4
-2 -6
-8
-3
0
500
1000
1500
2000
-4
2500
0
500
1000
1500
Sampel Sampel ke ke
2500
3000
3500
Sampel ke
2 Detik
2,5 Detik -3
-3
4
2000
x 10
6
3
x 10
4
2
Amplitudo
Amplitudo
1 0
2
0
-2
-1
-4
-2
-6
-3 -4
0
500
1000
1500
2000
2500
Sampel ke
3000
3500
4000
4500
-8
0
1000
2000
3000
4000
Sampel ke
5000
6000
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L6
3 Detik -3
3
x 10
2
Amplitudo
1
0
-1
-2
-3
0
1000
2000
3000
4000
5000
6000
7000
Sampel ke
Kesimpulan Untuk durasi perekaman dilihat dari 5 percobaan diatas dengan maksimal waktu 3 detik maka untuk durasi perekaman menggunakan 2 detik sudah memenuhi untuk durasi perekaman, dikarenakan untuk durasi waktu yang lebih dari 2 detik hasil plot sinyal tidak baik.
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L7
LISTING PROGRAM Program Utama function varargout = tobing_progrm_meh_fixe(varargin) % TOBING_PROGRM_MEH_FIXE M-file for tobing_progrm_meh_fixe.fig % TOBING_PROGRM_MEH_FIXE, by itself, creates a new TOBING_PROGRM_MEH_FIXE or raises the existing % singleton*. % % H = TOBING_PROGRM_MEH_FIXE returns the handle to a new TOBING_PROGRM_MEH_FIXE or the handle to % the existing singleton*. % % TOBING_PROGRM_MEH_FIXE('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in TOBING_PROGRM_MEH_FIXE.M with the given input arguments. % % TOBING_PROGRM_MEH_FIXE('Property','Value',...) creates a new TOBING_PROGRM_MEH_FIXE or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before tobing_progrm_meh_fixe_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to tobing_progrm_meh_fixe_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help tobing_progrm_meh_fixe % Last Modified by GUIDE v2.5 15-Sep-2015 17:14:47 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @tobing_progrm_meh_fixe_OpeningFcn, ... 'gui_OutputFcn', @tobing_progrm_meh_fixe_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI % --- Executes just before tobing_progrm_meh_fixe is made visible. function tobing_progrm_meh_fixe_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to tobing_progrm_meh_fixe (see VARARGIN) % Choose default command line output for tobing_progrm_meh_fixe handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes tobing_progrm_meh_fixe wait for user response (see UIRESUME) % uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line. function varargout = tobing_progrm_meh_fixe_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;
% --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1 indeks=get(handles.popupmenu1,'Value'); %manggil nada switch indeks case 1 nada=1; case 2 nada=2; case 3 nada=3; case 4 nada=4; case 5 nada=5; case 6 nada=6; case 7 nada=7; case 8
L8
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI nada=8; case 9 nada=9; case 10 nada=10; case 11 nada=11; case 12 nada=12; case 13 nada=13; case 14 nada=14; case 15 nada=15; case 16 nada=16; case 17 nada=17; case 18 nada=18; case 19 nada=19; case 20 nada=20; case 21 nada=21; case 22 nada=22; case 23 nada=23; case 24 nada=24; case 25 nada=25; case 26 nada=26; case 27 nada=27; case 28 nada=28; case 29 nada=29; case 30 nada=30; case 31 nada=31; case 32 nada=32; case 33 nada=33; case 34 nada=34; case 35 nada=35; end
L9
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI handles.nada=nada; guidata(hObject,handles);
% --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
%mengambil data (load) nada=handles.nada; if (nada==1) [y,fs]=wavread('ji_a.wav'); elseif (nada==2) [y,fs]=wavread('ji_b.wav'); elseif (nada==3) [y,fs]=wavread('ji_c.wav'); elseif (nada==4) [y,fs]=wavread('ji_d.wav'); elseif (nada==5) [y,fs]=wavread('ji_e.wav'); elseif (nada==6) [y,fs]=wavread('ro_a.wav'); elseif (nada==7) [y,fs]=wavread('ro_b.wav'); elseif (nada==8) [y,fs]=wavread('ro_c.wav'); elseif (nada==9) [y,fs]=wavread('ro_d.wav'); elseif (nada==10) [y,fs]=wavread('ro_e.wav'); elseif (nada==11) [y,fs]=wavread('lu_a.wav'); elseif (nada==12) [y,fs]=wavread('lu_b.wav'); elseif (nada==13) [y,fs]=wavread('lu_c.wav'); elseif (nada==14)
L10
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI [y,fs]=wavread('lu_d.wav'); elseif (nada==15) [y,fs]=wavread('lu_e.wav'); elseif (nada==16) [y,fs]=wavread('pa_a.wav'); elseif (nada==17) [y,fs]=wavread('pa_b.wav'); elseif (nada==18) [y,fs]=wavread('pa_c.wav'); elseif (nada==19) [y,fs]=wavread('pa_d.wav'); elseif (nada==20) [y,fs]=wavread('pa_e.wav'); elseif (nada==21) [y,fs]=wavread('mo_a.wav'); elseif (nada==22) [y,fs]=wavread('mo_b.wav'); elseif (nada==23) [y,fs]=wavread('mo_c.wav'); elseif (nada==24) [y,fs]=wavread('mo_d.wav'); elseif (nada==25) [y,fs]=wavread('mo_e.wav'); elseif (nada==26) [y,fs]=wavread('ne_a.wav'); elseif (nada==27) [y,fs]=wavread('ne_b.wav'); elseif (nada==28) [y,fs]=wavread('ne_c.wav'); elseif (nada==29) [y,fs]=wavread('ne_d.wav'); elseif (nada==30) [y,fs]=wavread('ne_e.wav'); elseif (nada==31) [y,fs]=wavread('tu_a.wav'); elseif (nada==32) [y,fs]=wavread('tu_b.wav'); elseif (nada==33) [y,fs]=wavread('tu_c.wav'); elseif (nada==34) [y,fs]=wavread('tu_d.wav'); elseif (nada==35) [y,fs]=wavread('tu_e.wav'); end axes(handles.axes1); plot (y) sound(10*y); % Normalisasi % y=y/max(y); %pemotongan sinyal b0=0.2; b1=find(y>b0 | y<-b0); y(1:b1(1))=[];
L11
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI %axes(handles.axes2); %plot (y)
%frame blocking frame=handles.vardft; frame; for p=1:frame; f(p)=y(p); end %axes(handles.axes3); %plot (f); %windowing hamming w=hamming(frame); for p=1:frame; wo(p)=f(p)*w(p); %wo(p)==> windowing hamming (p) end %axes(handles.axes4); %plot (wo); %ekstraksi ciri DFT g=abs(dftwo(wo)); axes(handles.axes5); bar(g); %windowing koefisien wk=handles.koefisien; h=frame; c=(wk/100)*h; s=floor(c); ya=g(1:s); ya=ya(:); axes(handles.axes6); bar (ya); %data base if (frame==16)&(wk==10) load xciri1610 elseif (frame==16)&(wk==20) load xciri1620 elseif (frame==16) & (wk==30) load xciri1630 elseif (frame==16) & (wk==40) load xciri1640 elseif (frame==16) & (wk==50) load xciri1650
elseif (frame==32) & (wk==10) load xciri3210
L12
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI elseif (frame==32) & (wk==20) load xciri3220 elseif (frame==32) & (wk==30) load xciri3230 elseif (frame==32) & (wk==40) load xciri3240 elseif (frame==32) & (wk==50) load xciri3250
elseif (frame==64) & (wk==10) load xciri6410 elseif (frame==64) & (wk==20) load xciri6420 elseif (frame==64) & (wk==30) load xciri6430 elseif (frame==64) & (wk==40) load xciri6440 elseif (frame==64) & (wk==50) load xciri6450
elseif (frame==128) & (wk==10) load xciri12810 elseif (frame==128) & (wk==20) load xciri12820 elseif (frame==128) & (wk==30) load xciri12830 elseif (frame==128) & (wk==40) load xciri12840 elseif (frame==128) & (wk==50) load xciri12850
elseif (frame==256) & (wk==10) load xciri25610 elseif (frame==256) & (wk==20) load xciri25620 elseif (frame==256) & (wk==30)
L13
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI load xciri25630 elseif (frame==256) & (wk==40) load xciri25640 elseif (frame==256) & (wk==50) load xciri25650 end %perhitungan jarak for n=1:7 jaraklist(n)=jaraksquaredchord(ya,z(:,n)); end jaraklist %cari nilai minimal jmin=find(min(jaraklist)==jaraklist);
%deskripsi string nadalist={'1 (siji)','2 (loro)','3 (telu)','4 (papat)','5(limo)','6 (enem)','7 (pitu)'}; %penentuan keluaran yy=nadalist(jmin) %end set(handles.text10,'String',yy);
% --- Executes on selection change in popupmenu2. function popupmenu2_Callback(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu2 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu2 indeks=get(handles.popupmenu2,'Value'); switch indeks case 1 frame=16; case 2 frame=32; case 3 frame=64; case 4 frame=128; case 5 frame=256; end handles.vardft=frame; guidata(hObject,handles);
L14
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
% --- Executes during object creation, after setting all properties. function popupmenu2_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end
% --- Executes on selection change in popupmenu3. function popupmenu3_Callback(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu3 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu3 indeks=get(handles.popupmenu3,'Value'); switch indeks case 1 wk=10; case 2 wk=20; case 3 wk=30; case 4 wk=40; case 5 wk=50; end handles.koefisien=wk; guidata(hObject,handles);
% --- Executes during object creation, after setting all properties. function popupmenu3_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
L15
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI set(hObject,'BackgroundColor','white'); end
% --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) delete(figure(tobing_progrm_meh_fixe));
% --- Executes on key press over popupmenu1 with no controls selected. function popupmenu1_KeyPressFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
% --- If Enable == 'on', executes on mouse press in 5 pixel border. % --- Otherwise, executes on mouse press in 5 pixel border or over popupmenu1. function popupmenu1_ButtonDownFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)
Program Windowing Hamming function w=hammingx(N) n=[0:N-1]'; w=0.54-0.46*cos((2*pi*n)/(N-1));
Program DFT function g=dftwo(wo) %hitung panjang wo n=length(wo); %hitung dft g=zeros(1,n); for k=1:n for m=1:n w=exp(-1i*2*pi*(k-1)*(m-1)/n); a=wo(m)*w; g(k)=g(k)+a; end end
L16
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
Program Fungsi Jarak Squared Chord function js=jaraksquaredchord(p,q); a1=(sqrt(p)); a2=(sqrt(q)); a3=(a1-a2); js=sum(a3.^2);
Program Membuat Data Base function dbxciriok frame=256 %panjang frame blocking wk=50 z1=zciri('ji_',frame,wk); z2=zciri('ro_',frame,wk); z3=zciri('lu_',frame,wk); z4=zciri('pa_',frame,wk); z5=zciri('mo_',frame,wk); z6=zciri('ne_',frame,wk); z7=zciri('tu_',frame,wk); z=[z1 z2 z3 z4 z5 z6 z7] save xciri25650 z %============================================= % INTERNAL FUNCTION %============================================= function z=zciri (nada,frame,wk) x1=wavread ([nada '1.wav']);y1=xcirixy (x1,frame,wk); x2=wavread ([nada '2.wav']);y2=xcirixy (x2,frame,wk); x3=wavread ([nada '3.wav']);y3=xcirixy (x3,frame,wk); x4=wavread ([nada '4.wav']);y4=xcirixy (x4,frame,wk); x5=wavread ([nada '5.wav']);y5=xcirixy (x5,frame,wk); x6=wavread ([nada '6.wav']);y6=xcirixy (x6,frame,wk); x7=wavread ([nada '7.wav']);y7=xcirixy (x7,frame,wk); x8=wavread ([nada '8.wav']);y8=xcirixy (x8,frame,wk); x9=wavread ([nada '9.wav']);y9=xcirixy (x9,frame,wk); x10=wavread ([nada '10.wav']);y10=xcirixy (x10,frame,wk); z=[(y1+y2+y3+y4+y5+y6+y7+y8+y9+y10)/10]; %=============================================
L17
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L18
Tabel Nilai Jarak Optimal Tabel di bawah ini digunakan untuk menentukan jarak minimum dari setiap nada. pengujian dilakukan dengan menggunakan panjang DFT 256, dan windowing koefisien 50%. Pengujian dilakukan sebanyak 5 kali di setiap nadanya. Percobaan Ke1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
1 (siji) 3,3283 3,0336 2,3545 3,5131 3,7424 171,1315 189,6227 187,4177 180,044 174,175 203,6358 202,3926 201,4283 193,6922 191,7292 209,805 201,8863 213,7956 207,3468 207,2718 192,2712 179,0979 190,4382 174,7752 180,6751 206,8789 212,8341 209,5598 202,516 192,7203 178,8283 163,0537 157,9808 157,4362 160,9331
2 (loro) 194,9283 198,4893 201,29 194,8326 200,4524 6,6167 3,4663 1,9954 5,097 7,9904 190,8636 188,0466 195,0422 186,1806 190,1831 215,5147 207,2575 218,4685 213,2783 212,2116 199,1486 181,0648 192,1241 177,4582 180,2736 209,4439 213,6419 208,2344 210,3563 198,5197 183,4742 174,6528 167,9098 168,5261 163,8309
3 (telu) 192,4405 197,5899 205,5751 195,8741 204,1529 155,5431 180,6133 178,7692 176,607 142,7103 10,6374 10,0177 9,0272 6,8899 7,3175 200,8403 190,9411 202,7494 197,8525 197,7741 185,4459 166,3668 181,1704 162,3222 171,6554 197,4618 200,1792 191,2848 194,2061 181,5679 167,6196 155,3227 152,4818 152,2891 149,73
Nada 4 (papat) 205,9538 213,3069 219,5278 210,1173 217,7186 191,4181 209,8031 211,1685 201,9387 193,6378 219,2555 206,0076 208,3772 201,562 195,745 3,6873 4,3153 2,738 2,5976 2,2755 174,2214 164,1145 177,4229 164,8834 167,9855 199,6907 204,1804 201,7025 195,0684 188,0609 172,9519 163,3058 159,6471 156,5916 153,0953
5 (limo) 199,4625 206,166 209,4328 206,1402 212,156 186,5284 203,1482 205,0126 199,2252 190,5675 206,145 200,8182 198,3645 196,8057 191,9772 191,1733 180,0938 190,9829 189,7997 190,0018 8,7194 8,8959 11,3221 10,5684 10,1665 184,6833 191,8487 185,9957 178,457 177,3114 156,3626 151,0154 147,9928 148,7238 147,6617
6 (enem) 212,5251 219,0017 224,9389 216,8315 223,2687 193,9752 213,2425 214,6891 207,0282 198,9445 228,5357 216,7753 215,6439 212,0542 205,4144 211,9649 196,0103 206,3473 209,5347 207,1222 177,3043 162,7119 177,9125 162,3333 169,148 5,298 5,1067 4,7766 6,0588 7,0481 167,5302 157,614 157,3198 150,408 154,1232
7 (pitu) 204,679 211,6375 218,7589 210,1845 219,9862 192,0757 210,2371 213,3094 204,1901 198,0968 225,7863 216,3338 214,8518 211,6781 205,5779 204,2262 188,761 199,3675 202,5428 201,7566 190,2218 168,4751 187,1188 169,4423 173,6785 204,0632 198,3408 194,5556 194,9987 192,8215 10,6113 11,1111 14,2752 19,4478 13,5405
PLAGIAT PLAGIATMERUPAKAN MERUPAKANTINDAKAN TINDAKANTIDAK TIDAKTERPUJI TERPUJI
L19
Nilai minimum pada setiap nada yang telah didapatkan digunakan sebagai nilai untuk pengenalan nada tersebut dengan perintah pencarian nilai terkecil pada program. Nilai jarak ini bias berubah menurut variasi yang digunakan. Pada penentuan nilai ini digunakan nilai maksimal pada variasi DFT dan windowing koefisien dikarenakan pada nilai tersebut dapat mendeteksi secara baik dan maksimal.
Tabel Tingkat Pengenalan Tabel dibawah ini menunjukkan tabel pengujian nada secara keseluruhan. Data tabel tersebut di peroleh dengan menjalankan program yang telah dibuat. Hasil pengujian pengenalan nada pada berbagai variasi panjang DFT dan variasi windowing koefisien. Hasil yang di tampilkan : tingkat pengenalan dalam (%) Windowing koefisien 10% 20% 30% 40% 50%
16 14,28571 17,14286 45,71429 77,14286 100
32 17,14286 20 45,71429 74,28571 100
DFT 64 17,14286 22,85714 48,57143 80 100
128 20 25,71429 54,28571 85,71429 100
256 25,71429 28,57143 54,28571 85,71429 100