Potong kiri 2 bts=floor0.25lengthx1;

Pada program perekaman suara, panjang sampel yang digunakan adalah 1,5 detik dengan frekuensi sampling sebesar 10kHz. Waktu sampelnya didapatkan dari panjang sampel dikalikan dengan frekuensi sampel. Untuk menyimpan nada yang direkam, perintah yang digunakan adalah wavrecord dan wavwrite, hasil plot perekaman tersebut ditampilkan pada kotak axes 1. Listing program untuk menampilkan plot spektrum : sample_length=1.5; sample_freq=10000; sample_time=sample_lengthsample_freq; x=wavrecordsample_time, sample_freq; wavwritex, sample_freq, s.wav ; axeshandles.axes1 plotx; xlabel Data Tercuplik ylabel Amplitudo b0=0.3; fb=handles.frame; Normalisasi x1=xmaxabsx; Pemotongan Awal 1. Potong kiri b1=findx1b0 | x1-b0; x11:b11=[];

2. Potong kiri 2 bts=floor0.25lengthx1;

x11:bts=[]; frame blocking x2=x11:fb; Normalisasi 2 x3=x2maxabsx2; Dalam program untuk menampilkan plot spektrum, proses pertama yang dilakukan adalah normalisasi awal untuk sinyal nada terekam yang ditampilkan pada kotak axes 1. Normalisasi dilakukan dengan cara membagi data masukan data sinyal nada terekam dengan nilai absolut data tersebut. Proses selanjutnya adalah pemotongan sinyal yang dilakukan sebanyak dua kali. Pemotongan yang pertama pada bagian silence atau bagian awal sinyal yang tidak termasuk sinyal nada dan pemotongan kedua pada bagian transisi. Tujuan dari proses pemotongan adalah untuk menghilangkan sinyal yang tidak termasuk sinyal nada belira dan untuk mengurangi cacat sinyal akibat derau ruangan yang ikut terekam. Pada pemotongan sinyal silence, data yang tingginya lebih besar dari 0,3 dan lebih kecil dari -0,3 diinisialisasikan sebagai b1. Data yang tidak memenuhi syarat b1 merupakan sinyal silence sehingga sinyal tersebut dihilangkan. Pada pemotongan sinyal transisi, ¼ bagian sinyal yang terdapat di bagian awal diinisialisasikan sebagai bts. Sinyal tersebut dihilangkan untuk mendapatkan sinyal yang benar-benar sinyal suara nada belira. Proses selanjutnya adalah frame blocking yang tujuannya untuk mengambil sebagian data sesuai panjang nilai frame blocking yang dipilih oleh user. Data yang diambil tersebut untuk mewakili seluruh data yang terekam. Sinyal hasil frame blocking kemudian melalui proses normalisasi akhir yang bertujuan untuk menyetarakan amplitudo hasil frame blocking . Proses normalisasi akhir sama dengan normalisasi awal yaitu membagi data Windowing Hamming h=hammingfb; x4=x3.h; Spektrum frekuensi px4=lengthx4; x4=[x4; zerosfs-px4,1]; Y1=dftxx4; Y2=Y1.conjY1; f=fs0:12fsfs; Sumbu mendatar pada spektrum spek=Y21:12sample_freq+1; Sumbu tegak pada spektrum spek1:100=0; Frek 0-20 Hz dinolkan axeshandles.axes2 barspek; masukan yaitu hasil frame blocking dengan nilai absolut data tersebut. Selanjutnya akan melalui proses windowing untuk menghilangkan diskontinuitas yang diakibatkan oleh proses frame blocking. Proses windowing ini menggunakan Hamming Window. Dalam prosesnya, hasil normalisasi akhir dikalikan dengan hamming. Setelah proses windowing, selanjutnya adalah perhitungan dengan DFT, perhitungan ini untuk membangkitkan spektrum yang kemudian akan dianalisis untuk mengetahui nada yang dimainkan oleh user . Listing program untuk menampilkan hasil teks nada keluaran : Pencarian maksimum lokal pspek=lengthspek; makslok=zeros1,pspek; for k=2:pspek-1 if spekkspekk-1 spekkspekk+1 makslok1,k=spekk; end end Sorting turun [smakslok,idx]=sortmakslok, descend ; urutmakslok_1sd5=smakslok1:5 urutfrek_1sd5=idx1:5 Perbandingan maksimum lokal urutan 2 dengan 1 permakslok=smakslok2smakslok1 Penentuan hasil if permakslok0.07 hasil=belira Frekuensi belira frekb=idx1-1 Penentuan keluaran text if frekb=776 frekb=796 nadaout= sol rendah ; elseif frekb=871 frekb=891 nadaout= la rendah ; elseif frekb=979 frekb=999 nadaout= si rendah ; elseif frekb=1038 frekb=1058 nadaout= do ; elseif frekb=1165 frekb=1185 nadaout= re ; elseif frekb=1310 frekb=1330 nadaout= mi ; elseif frekb=1391 frekb=1411 nadaout= fa ; elseif frekb=1561 frekb=1581 nadaout= sol ; elseif frekb=1752 frekb=1772 nadaout= la ; elseif frekb=1971 frekb=1991 nadaout= si ; elseif frekb=2044 frekb=2064 nadaout= do tinggi ; elseif frekb=2323 frekb=2343 nadaout= re tinggi ; elseif frekb=2594 frekb=2614 nadaout= mi tinggi ; elseif frekb=2767 frekb=2787 nadaout= fa tinggi ; elseif frekb=3070 frekb=3090 nadaout= sol tinggi ; elseif frekb=3535 frekb=3555 nadaout= la tinggi ; else nadaout= nada belira error ; end Dari spektrum tersebut, kemudian dicari nilai-nilai maksimum lokalnya. Nilai-nilai maksimum lokal yang didapatkan kemudian diurutkan ke bawah dengan perintah ‘descend’. Dari hasil sorting turun, nilai maksimum lokal urutan kedua dibagikan dengan nilai maksimum lokal urutan pertama. Hasil pembagian tersebut digunakan untuk mengetahui nada yang terekam termasuk suara nada belira atau bukan. Untuk mengetahui hal tersebut, maka ditentukan nilai 0,07 untuk dibandingkan dengan hasil pembagian maksimum lokalnya. Jika hasil pembagian lebih besar dari 0,07 maka nada tersebut bukan nada belira tetapi jika lebih kecil dari 0,07 maka nada tersebut termasuk nada belira. Nilai 0,07 tersebut didapatkan berdasarkan lampiran [L19]. Jika nada tersebut tidak termasuk na da belira maka keluarannya “ERROR” dan program akan berhenti, tetapi jika nada tersebut termasuk nada belira maka proses akan berlanjut untuk penentuan frekuensi dan penentuan keluaran teks. Proses penentuan keluaran teksnya dengan look up table. Proses penentuan range frekuensi pada look up table dapat dilihat pada lampiran [L5] dan hasilnya dapat dilihat pada tabel 3.2. Program untuk tombol “SELESAI” atau untuk mengakhiri pengenalan nada :

4.2. Hasil Pengujian Program Pengenalan Nada Terhadap Tingkat