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.
                