Perancangan Program Mikrokontroler Perancangan Sistem Hardware
telah direkam kemudian ditampilkan pada “Plot Hasil Perekaman”. Program untuk menampilkan sinyal hasil perekaman adalah sebagai berikut :
Perintah handles berfungsi untuk mengatur masukan atau keluaran program. Ucapan yang telah terekam diinisialisasi dengan “x” kemudian diplot pada axes.1. Setelah
perekaman sub proses selanjutnya adalah pengambilan variabel nilai batas potong, nilai sigma, dan segment averaging serta pemilihan user. Variabel nilai tersebut digunakan saat
pemotongan sinyal, windowing dan ekstraksi ciri sedangkan pemilihan user digunakan untuk memilih user yg menjalankan program. Program dalam subproses pengambilan
variabel nilai dan pemilihan user adalah sebagai berikut:
variasi nilai yang sudah dipilih pada pop up menu kemudian dipanggil untuk diproses pada proses pemotongan sinyal, windowing dan ekstraksi ciri. Hasil ucapan yang
terekam kemudian memasuki proses normalisasi. Pembuatan program untuk normalisasi sesuai dengan blok diagram pada gambar 3.5. Program dalam proses normalisasi adalah
sebagai berikut :
Hasil norlmalisasi kemudian diinisialisasikan sebagai “x1”. Proses selanjutnya adalah proses pemotongan sinyal. Pembuatan program untuk pemotongan sinyal mengikuti
diagram blok yang ada pada gambar 3.6 Pada proses ini sinyal mulai dipotong ketika mendapatkan nilai yang sudah dipilih pada pop up menu. Hasil pemotongan sinyal
kemudian diinisialisasikan sebagai “x2”. Berikut adalah program dari proses pemotongan sinyal.
axeshandles.axes1 plotx;
b0=handles.pot; sig=handles.xsigma;
sampling=handles.sampling; suser=handles.xuser;
Normalisasi x1=xmaxx;
Potong kiri b1=findx1b0 | x1-b0;
x11:b11=[]; x2=fliplrx1;
b2=findx2b0 | x2-b0;
Proses selanjutnya adalah windowing. Pembuatan program windowing mengacu pada diagram blok yang telah dibuat pada gambar 3.7. Pada proses ini terdapat nilai yang
di variasikan yaitu standar deviasi. Standar deviasi diambil dari variasi standar deviasi yang diinginkan user pada pop up menu. Hasil dari proses windowing kemudian
diinisialisasikan sebagai “x0”. Berikut adalah program dari proses windowing :
Proses selanjutnya adalah zerro padding. Pembuatan program zerro padding mengacu pada diagram blok yang telah dibuat pada gambar 3.8. Proses ini bertujuan untuk
menambahkan angka nol. Hasil dari zerro padding kemudian diinisialisasikan sebagai “x1”. Berikut adalah program dari proses zerro padding :
Proses selanjutnya adalah ekstraksi ciri. Pembuatan program ekstraksi ciri mengacu pada diagram blok yang telah dibuat pada gambar 3.9. Pada proses ini terdapat
variabel nilai yang divariasikan yaitu segment averaging. Segment averaging diambil dari pop up menu yang telah dipilih user.
Hasil dari proses ekstraksi ciri ini kemudian diinisialisasikan sebagai “x”. Hasil ekstraksi ciri ini akan diplot pada “Plot Hasil Ekstraksi
Ciri”. Berikut adalah program dari ekstraksi ciri :
Proses selanjutnya adalah pemanggilan database. Database disesuaikan dengan variasi nilai yang dipilih user pada pop up menu. Program pemanggilan database dapat
dilihat pada lampiran L10.Pemanggilan disesuaikan dengan variasi yang dipilih user. h=gausswinlengthx2,sig;
x0=x2.h;
usig=2048; x0usig=0;
x1=x01:sampling:usig;
x0=absdctx1; x1=abslogx0;
x=x1:; axeshandles.axes2
plot x; x21:b21=[];
x2=fliplrx2;
Pembuatan program pemanggilan database menggunakan logika if dan else. Penggunaan logika ini bertujuan agar database yang di panggil sesuai dengan variasi nilai yang dipilih
user. Setelah proses pemanggilan database, proses selanjutnya adalah pembandingan antara nilai hasil ekstraksi ciri dari perekaman secara real time dengan database.
Pembandingan dilakukan dengan mencari nilai korelasi menggunakan metode korelasi. Berikut adalah program untuk membandingkan pembandingan hasil ektraksi ciri
perekaman secara real time dengan database.
Pada program pembandingan ini, program korelasi dipanggil yang masih dalam 1 folder. Pembuatan program korelasi mengacu pada bolk diagram pada gambar 3.10.
Program yang dipanggil adalah program yang berisi rumusan penghitungan nilai korelasi. Berikut adalah program untuk menghitung nilai korelasi.
Pada program penghitungan nilai korelasi digunakan dua variabel yaitu ‘x’ dan ‘z’. ‘x’ adalah hasil penghitungan ekstraksi ciri secara real time dan ‘z’ adalah database. Hasil
penghitungan korelasi kemudian dilanjutkan pada program ‘REKAM’. Setelah mendapatkan nilai korelasi proses selanjutnya adalah mencari nilai maksimum. Berikut
program untuk mencari nilai maksimum dari penghitungan korelasi.
Pencarian nilai maksimum dari penghitungan korelasi menggunakan fucntion “findmax”. Setelah mendapatkan nilai korelasi maksimum proses selanjutnya adalah
for n=1:40 korelasixn=korelasix,z:,n;
end
function k=korelasix,z mx=meanx;
my=meanz;
k1=x-mx.z-my; k2=sumk1;
k3=sumx-mx.2; k4=sumz-my.2;
k5=sqrtk3.k4; k=k2k5;
korelasimax=findmaxkorelasix==korelasix; maxkorelasix=maxkorelasix
thresholding. Tujuan dari metode ini adalah agar pengenalan yang tidak sesuai dengan database akan dikenali secara “ERROR’. Terdapat beberapa syarat pada thresholding yaitu
nilai minimum dan kelas. Penggunaan kedua syarat itu menggunakan logika if else, jika salah satu tidak terpenuhi maka program akan lanjut ke proses else. Pada metode
Thresholding ini sekaligus sebagai penentuan keluaran dan pengiriman serial. Program Thresholding sekaligus penentuan keluaran dan pengiriman serial dapat dilihat pada
lampiran L20. Pada proses pengiriman serial menggunakan BaudRate sebesar 9600 dan COM PORT yang digunakan untuk mengirim serial adalah COM PORT 3. Pada
pengiriman serial menggunakan function “fopen” untuk membuka komunikasi serial dengan mikrokontroler, function “fprintf” untuk mengirimkan character ke mikrokontroler
dan fuction “fclose” untuk menutup komunikasi serial dengan mikrokontroler.