Anda di halaman 1dari 114

Universitas Sumatera Utara

Repositori Institusi USU http://repositori.usu.ac.id


Departemen Fisika Skripsi Sarjana

2018

Identifikasi Sinyal Suara Menggunakan


Metode Fast Fourier Transform (FFT)
Berbasis Matlab

Sibarani, Rut Airin Lamtiur

http://repositori.usu.ac.id/handle/123456789/3991
Downloaded from Repositori Institusi USU, Univsersitas Sumatera Utara
IDENTIFIKASI SINYAL SUARA MENGGUNAKAN METODE
FAST FOURIER TRANSFORM (FFT) BERBASIS MATLAB

SKRIPSI

RUT AIRIN LAMTIUR SIBARANI


130801020

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN

2018

UNIVERSITAS SUMATERA UTARA


IDENTIFIKASI SINYAL SUARA MENGGUNAKAN METODE
FAST FOURIER TRANSFORM (FFT) BERBASIS MATLAB

SKRIPSI

Diajukan untuk melengkapi tugas dan memenuhi syarat mencapai


gelar Sarjana Sains

RUT AIRI LAMTIUR SIBARANI


130801020

DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN

2018

UNIVERSITAS SUMATERA UTARA


LEMBAR PENGESAHAN

IDENTIFIKASI SINYAL SUARA MENGGUNAKAN METODE FAST


FOURIER TRANSFORM (FFT) BERBASIS MATLAB

OLEH:

RUT AIRIN LAMTIUR SIBARANI


NIM. 130801020

DISETUJUI OLEH:

Komisi Pembimbing

Pembimbing 2 Pembimbing 1

Lukman Hakim, S.Si, M.Si Tua Raja Simbolon, S.Si, M. Si


NIP.198108222015041001 NIP. 197211152000121001

Diketahui Oleh

Departemen Fisika FMIPA USU

Ketua,

Dr. Perdinan Sinuhaji, M.S


NIP. 195903101987031002

UNIVERSITAS SUMATERA UTARA


i

PERSETUJUAN

Judul : Identifikasi Sinyal Suara Menggunakan Metode


Fast Fourier Transform (FFT) Berbasis Matlab.
Kategori : Skripsi
Naman : Rut Airin Lamtiur Sibarani
Nomor Induk Mahasiswa : 130801020
Program Studi : Sarjana (S1) Fisika
Departemen : Fisika
Fakultas : Matematika dan Ilmu Pengetahuan Alam Universitas
Sumatera Utara

Disetujui di
Medan, Januari 2018

Komisi Pembimbing
Pembimbing 2 Pembimbing 1

Lukman Hakim, S.Si, M.Si Tua Raja Simbolon, S.Si, M.Si


NIP.198108222015041001 NIP.197211152000121001

Disetujui Oleh

Departemen Fisika FMIPA USU


Ketua

Dr. Perdinan Sinuhaji


NIP.19590301987031002

UNIVERSITAS SUMATERA UTARA


ii

PERNYATAAN

IDENTIFIKASI SUARA MANUSIA MENGGUNAKAN METODE FAST


FOURIER TRANSFORM (FFT) BERBASIS MATLAB

SKRIPSI

Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri. Kecuali beberapa
kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Januari 2018

RUT AIRIN LAMTIUR SIBARANI


130801020

UNIVERSITAS SUMATERA UTARA


iii

PENGHARGAAN

Puji dan syukur kehadirat Tuhan Yang Maha Esa atas segala anugerah dan
karunia-Nya, sehingga penulis dapat menyelesaikan skripsi yang berjudul
“IDENTIFIKASI SUARA MANUSIA MENGGUNAKAN METODE FAST
FOURIER TRANSFORM (FFT) BERBASIS MATLAB”. Skripsi ini disusun
sebagai syarat akademis dalam menyelesaikan studi program Sarjana (S1) Jurusan
Fisika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Sumatera
Utara.
Penulis menyadari bahwa selama proses hingga terselesaikannya penyusunan
skripsi ini banyak mendapatkan kontribusi dari berbagai pihak. Dengan segala
kerendahan hati, penulis ingin menyampaikan rasa terimakasih yang sebesar-
besarnya atas segala bantuan, dukungan serta saran yang telah diberikan. Oleh karena
itu dalam kesempatan ini penulis menyampaikan terimakasih kepada:
1. Tuhan Yang Maha Esa yang senantiasa memberikan saya kesehatan dan ide-ide
dalam penyelesaian skripsi ini.
2. Bapak Dr. Kerista Sebayang, MS selaku Dekan Fakultas Matematika dan Ilmu
Pengetahuan Alam Universitas Sumatera Utara.
3. Bapak Tua Raja Simbolon, S.Si, M.Si selaku dosen pembimbing yang dengan
sabar dan bijaksana memberikan bimbingan serta saran sehingga penulis dapat
menyelesaikan skripsi ini dengan baik.
4. Bapak Lukman Hakim, S.Si, M.Si selaku dosen wali yang telah banyak
membantu penulis selama menempuh pendidikan di Fakultas Matematika dan
Ilmu Pengetahuan Alam Universitas Sumatera Utara.
5. Segenap Dosen Fakukltas Matematika dan Ilmu Pengetahuan Alam yang telah
mendidik dan memberikan ilmu pengetahuan yang bermanfaat bagi penulis.
6. Ibu tercinta Timaria Nainggolan, abang, kakak dan kakak ipar saya tersayang
Nahot Sibarani, Romauli Sibarani dan Elvi Gawi Nainggolan yang senantiasa
memberikan penulis motivasi-motivasi untuk tetap semangat dalam mengerjakan
skripsi ini, Amang Rikson Silalahi dan Inang Gloria Sitepu yang telah banyak
membantu dan memberi dukungan penuh terhadap penulis, sehingga saya dapat

UNIVERSITAS SUMATERA UTARA


iv

menyelesaikan skripsi ini. Adik-adik tersayang Damai, Jesika, Putri Dan Ezra
yang sangat membantu dalam pengambilan sampel pada skripsi ini.
7. Sahabat-sahabat seperjuangan, Widya Nazri Afrida, Widya Arianti, Gibson
Hutagalung, J.S Maniur Purba, Gibson Hutagalung, Sherly Tambunan, Almizan
Ridho dan Berthianna Nurcresia yang telah banyak membantu penulis
memberikan ide-ide dan masukan kepada penulis, sehingga penulis mampu
menyelesaikan skripsi ini.
8. Seluruh pihak yang tidak dapat disebutkan satu per satu, terimakasih atas semua
bantuannya dalam penyelesaian skripsi ini.
Penulis menyadari bahwa dalam skripsi ini masih terdapat banyak kekurangan.
Oleh karena itu, penulis mohon maaf apabila terdapat banyak kekurangan dan
kesalahan. Akhir kata, penulis berharap semoga skripsi ini dapat memberikan
manfaat bagi penulis maupun orang lain yang membacanya. Amin.

Medan, Januari 2018


Penulis,

Rut Airin Lamtiur Sibarani


NIM 130801020

UNIVERSITAS SUMATERA UTARA


v

IDENTIFIKASI SUARA MANUSIA MENGGUNAKAN METODE FAST


FOURIER TRANSFORM (FFT) BERBASIS MATLAB

ABSTRAK

Suara manusia merupakan satu jenis gelombang yang sangat unik. Tiap manusia juga
memiliki jenis gelombang yang berbeda. Pada umumnya semakin besar frekuensi
dasar gelombang bunyi, maka semakin tinggi suara yang terdengar. Penulis
menggunakan microphone dalam sistem pengenalan suara yang berfungsi untuk
merekam suara dan Laptop beserta software Matlab untuk pengolahannya. Sistem ini
akan mencari nilai maksimum untuk setiap sampel suara pada sinyal FFT, kemudian
membuat suatu klasifikasi suara agar nantinya dapat teridentifikasi. Nilai maksimum
tersebut akan dianalisis untuk mengetahui suara yang dimainkan. Nilai maksimum
ini digunakan sebagai penentu teks suaranya dengan hasil yang ditampilkan berupa
plot hasil sinyal FFT, indeks nilai maksimum dan teks suara yang dikenali. Program
pengenalan sudah berhasil dibuat dan dapat menampilkan plot sinyal FFT, indeks
nilai maksimum dan teks hasil pengenalan suara . Pada program ini, parameter
pengenalan terbaik adalah 96 % dalam pengujian secara real time.
.

Kata kunci : Fast Fourier Transform(FFT), MATLAB, Pengolahan Sinyal Digital

UNIVERSITAS SUMATERA UTARA


vi

HUMAN VOICE IDENTIFICATION USING FAST FOURIER TRANSFORM


(FFT) METHOD BASED ON MATLAB

ABSTRACT

The human voice is a very unique type of wave. Each human also has a different
wave type. In general, the greater the basic frequency of sound waves, the higher the
sound is heard. The author uses a microphone in voice recognition system that serves
to record sounds and laptops along with Matlab software for processing. The system
will find the maximum value for each sound sample on the FFT signal, then create a
sound classification so that it can later be identified. The maximum value will be
analyzed to determine the sound played. This maximum value is used as the
determinant of the voice text with the result shown in the plot of the FFT signal
result, the maximum value index and the recognized voice text. The recognition
program has been successfully created and can display FFT signal plot, maximum
value index and speech recognition text. In this program, the best introduction
parameter is 96% in real time testing.

Keyword : Fast Fourier Transform (FFT), MATLAB, Digital Signal Processing


(DSP).

UNIVERSITAS SUMATERA UTARA


vii

DAFTAR ISI

PERSETUJUAN i
PERNYATAAN ii
PENGHARGAAN iii
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL xi
DAFTAR GAMBAR xiii
BAB I PENDAHULUAN 1
1.1. Latar Belakang 1
1.2. Rumusan Masalah 2
1.3. Batasan Masalah 2
1.4. Tujuan penelitian 3
1.5. Manfaat penelitian 3
1.6. Sistematika Penulisan 3

BAB 2 LANDASAN TEORI 4


2.1. Teori Sinyal 4
2.1.1 Sinyal Suara 4
2.1.2 Jenis Sinyal 5
2.2. Gelombang 6
2.2.1 Jenis Gelombang 7
2.3. Pengenalan Suara Digital 8
2.4. Pengenalan Pola 9
2.4.1 Pendekatan Pola Secara Statistik 10
2.4.2 Pendekatan Pola Secara Sintaktik 11
2.4.3 Template Matching 11
2.4.4 Neural Network 11
2.5. Sampling 12

UNIVERSITAS SUMATERA UTARA


viii

2.6. Mikrofon 13
2.7. Preprocessing 13
2.7.1 Normalisasi 14
2.7.2 Pemotongan Sinyal 14
2.7.3 Frame Blocking 14
2.7.4 Hamming Window 15
2.8. Ekstraksi Ciri 15
2.8.1 Transformasi Fourier 15
2.8.1.1 Transformasi Fourier Diskrit 16
2.8.1.2 Fast Fourier Transform (FFT) 18
2.9. Matlab 20
2.9. Guide Matlab 21

BAB 3 BAHAN DAN METODE PENELITIAN 23


3.1. Waktu dan Tempat 23
3.2. Alat/Bahan Penelitian 23
3.2.1 Suara Manusia 23
3.2.2 Mikrofon 24
3.3. Metode Penelitian 24
3.3.1 Proses Perekaman 27
3.3.1.1 Proses Pengenalan Suara 27
3.4. Look Up Table 29
3.5. Suara Uji 30
3.6. Perancangan Perangkat Lunak 30
3.6.1 Perancangan Tampilan Program GUI Matlab 30
3.6.2 Perancangan Sistem Software 32
3.6.3 Rekam 33
3.6.4 Normalisasi 34
3.6.5 Pemotongan Sinyal 34
3.6.6 Frame Blocking 36
3.6.7 Hamming Window 36
3.6.8 Ekstraksi Ciri FFT 37

UNIVERSITAS SUMATERA UTARA


ix

3.6.9 Penentuan Nilai Maksimum 38


3.6.10 Penentuan Teks Suara 39
3.6.11 Keluaran (Teks) 41
3.7. Analisa Performa 42

BAB 4 HASIL DAN PEMBAHASAN 43


4.1. Pengenalan Pola 43
4.2. Penjelasan Sintaks Program Pengenalan Suara 43
4.2.1 Pop Up Menu 44
4.2.2 Push Button, Axes dan Edit Text 45
4.2.2.1 Rekam 45
4.2.2.2 Normalisasi 46
4.2.2.3 Pemotongan Sinyal 48
4.2.2.4 Frame Blocking 50
4.2.2.5 Winwowing 51
4.2.2.6 Ekstraksi Ciri FFT 52
4.2.2.7 Pencarian Nilai Maksimum 54
4.2.2.8 Look Up Table 55
4.2.2.9 Penentuan Teks Suara 57
4.2.2.10 Reset 60
4.2.2.11 Selesai 60
4.3. Analisa Performa 60

BAB 5 KESIMPULAN DAN SARAN 62


5.1. Kesimpulan 62
5.2. Saran 63

DAFTAR PUSTAKA 64
LAMPIRAN
Lampiran 1 Listing Program Pengambilan Sampel Suara
Lampiran 2 Percobaan Menentukan Indeks Nilai Maksimum Pada Look Up Table
Untuk Masing-Masing Suara

UNIVERSITAS SUMATERA UTARA


x

Lampiran 3 Proses Menyeluruh Yang Digambarkan Dalam Bentuk Diagram


Lampiran 4 Listing Program Pengenalan Suara
Lampiran 5 Gambar Perancangan Alat Penelitian

UNIVERSITAS SUMATERA UTARA


xi

DAFTAR TABEL

Nomor Judul Halaman

Tabel

1 Contoh Pengenalan Pola 9

2 Keterangan Tampilan Utama Program GUI Matlab 31

3 Look up table Untuk Penentuan Suara Pada Frame 40


blocking 16

4 Look up table Untuk Penentuan Suara Pada Frame 40


blocking 32

5 Look up table Untuk Penentuan Suara Pada Frame 40


blocking 64

6 Look up table Untuk Penentuan Suara Pada Frame 40


blocking 128

7 Look up table Untuk Penentuan Suara Pada Frame 41


blocking 256

8 Look Up Table Untuk Frame blocking 16 55

9 Look Up Table Untuk Frame blocking 32 56

10 Look Up Table Untuk Frame blocking 64 56

11 Look Up Table Untuk Frame blocking 128 56

12 Look Up Table Untuk Frame blocking 256 56

13 Hasil Pengujian Suara Untuk Setiap Frame Blocking 61

UNIVERSITAS SUMATERA UTARA


xii

LAMPIRAN

1 Proses Pengambilan Nilai Indeks Maksimum Dengan 70


Look Up Table dengan Frame Blocking 16

2 Proses Penentuan Range untuk Look Up Table dengan 71


Frame Blocking 16

3 Proses Pengambilan Nilai Indeks Maksimum Dengan 73


Look Up Table dengan Frame Blocking 32

4 Proses Penentuan Range untuk Look Up Table dengan 73


Frame Blocking 32

5 Proses Pengambilan Nilai Indeks Maksimum Dengan 75


Look Up Table dengan Frame Blocking 64

6 Proses Penentuan Range untuk Look Up Table dengan 76


Frame Blocking 64

7 Proses Pengambilan Nilai Indeks Maksimum Dengan 78


Look Up Table dengan Frame Blocking 128

8 Proses Penentuan Range untuk Look Up Table dengan 78


Frame Blocking 128

9 Proses Pengambilan Nilai Indeks Maksimum Dengan 80


Look Up Table dengan Frame Blocking 256

10 Proses Penentuan Range untuk Look Up Table dengan 81


Frame Blocking 256

UNIVERSITAS SUMATERA UTARA


xiii

DAFTAR GAMBAR

Nomor Judul Halaman


Gambar

1 Sinyal Kontinyu Vs Sinyal Diskrit 5

2 Sinyal Analog (atas) Dan Sinyal Digital (bawah) 6

3 Gelombang Transversal 7

4 Gelombag Longitudinal 8

5 Contoh Dekomposisi Sinyal Domain Waktu Di FFT 19

3 Tampilan Program GUI Yang Disimpan. 24

10 Tampilan Figure Aplikasi Pengenalan Suara 25

11 Tampilan Aplikasi Pengenalan Suara 25

12 Hasil Pengenalan Suara 26

13 Diagram Alir Proses Pengenalan Suara 27

14 Diagram Alir Subproses Preprocessing 28

15 Diagram Alir Pencarian Nilai Maksimum Untuk Look up 30


table
16 Diagram Alir Proses Pengambilan Suara Uji 30

17 Tampilan Utama Aplikasi Pengenalan Suara 31

18 Diagram Alir Program Pengenalan Suara 32

19 Diagram Alir Proses Perekaman 33

20 Diagram Alir Normalisasi 34

21 Diagram Alir Pemotongan Sinyal 35

22 Diagram Alir Frame blocking 36

23 Diagram Alir Hamming Window 37

UNIVERSITAS SUMATERA UTARA


xiv

24 Diagram Alir Ekstraksi Ciri FFT 38

25 Diagram Alir Pencarian Nilai Maksimum 39

26 Diagram Alir Penentuan Teks Suara 39

27 Diagram Alir Proses Menampilkan Teks Keluaran 42

28 Sintaks Program Untuk Memilih Nilai Frame blocking 44

29 Sintaks Program Untuk Proses Merekam 45

30 Tampilan Plot Sinyal Perekaman 46

31 Sintaks Program Untuk Proses Normalisasi 47

32 Tampilan Plot Sinyal Normalisasi 47

32 Sintaks Program Untuk Pemotongan Sinyal I (Silence) 48

33 Tampilan Hasil Pemotongan Sinyal I (Silence) 49

34 Sintaks Program Untuk Pemotongan Sinyal II (Transisi) 49

35 Tampilan Hasil Pemotongan Sinyal II (Transisi) 50

36 Sintaks Program Untuk Frame blocking 50

37 Tampilan Hasil Frame blocking 51

38 Sintaks Program Untuk Windowing 51

39 Tampilan Hasil Hamming Window 52

40 Sintaks Program Untuk Ekstraksi Ciri FFT 52

41 Tampilan Hasil Ekstraksi Ciri FFT 53

42 Tampilan Hasil Pemotongan Setengah Sinyal FFT 54

43 Sintaks Program Untuk Pencarian Nilai maksimum 54

44 Tampilan Nilai Maksimum Yang Diperoleh 55

45 Sintaks Program Untuk Menampilkan Teks Suara 57

46 Sintaks Program Untuk Pushbutton RESET 60

47 Sintaks Program Untuk Pushbutton SELESAI 60

UNIVERSITAS SUMATERA UTARA


xv

LAMPIRAN

Nomor Judul Halaman


Gambar

1 Sintaks Program Pengambilan Suara Uji 67

2 Sintaks Program Mencari Nilai Range Untuk Setiap Look 68


Up Table

3 Sinyal Suara JESIKA_1 Pada Sinyal FFT Pada Frame 69


Blocking 16

4 Sinyal Suara JESIKA _2 Pada Sinyal FFT Pada Frame 69


Blocking 16
5 Sinyal Suara JESIKA _3 Pada Sinyal FFT Pada Frame 70
Blocking 16

6 Sinyal Suara PUTRI_1 Pada Sinyal FFT Pada Frame 71


Blocking 32

7 Sinyal Suara PUTRI _2 Pada Sinyal FFT Pada Frame 72


Blocking 32

8 Sinyal Suara PUTRI _3 Pada Sinyal FFT Pada Frame 72


Blocking 32

9 Sinyal Suara EZRA_1 Pada Sinyal FFT Pada Frame 74


Blocking 64

10 Sinyal Suara EZRA _2 Pada Sinyal FFT Pada Frame 74


Blocking 64

11 Sinyal Suara EZRA _3 Pada Sinyal FFT Pada Frame 75


Blocking 64

12 Sinyal Suara DAMAI_1 Pada Sinyal FFT Pada Frame 76


Blocking 128

13 Sinyal Suara DAMAI_2 Pada Sinyal FFT Pada Frame 77


Blocking 128

14 Sinyal Suara DAMAI_3 Pada Sinyal FFT Pada Frame 77


Blocking 128

UNIVERSITAS SUMATERA UTARA


xvi

15 Sinyal Suara DAMAI_1 Pada Sinyal FFT Pada Frame 79


Blocking 256

16 Sinyal Suara DAMAI_2 Pada Sinyal FFT Pada Frame 79


Blocking 256

17 Sinyal Suara DAMAI_3 Pada Sinyal FFT Pada Frame 80


Blocking 256

18 Proses Menyeluruh Dalam Bentuk Diagram 82

19 Sintaks Program Pengenalan Suara 86

20 Perancangan Alat Penelitian 94

UNIVERSITAS SUMATERA UTARA


1

BAB 1 PENDAHULUAN

1.1 Latar Belakang


Kemajuan teknologi dalam bidang Pengolahan Sinyal Digital (Digital Signal
Processing) telah membawa dampak positif dalam kehidupan manusia. Salah satu
disiplin ilmu dalam pengolahan sinyal digital yang memberikan dampak yang cukup
besar ialah bidang Pengolahan Suara Digital. (Hapsari, 2011)
Suara merupakan suatu hal yang unik dan memiliki range frekuensi tertentu dan
intensitas suara yang bisa dan tidak bisa didengar oleh manusia. Satuan untuk mengukur
intensitas suara tersebut adalah desibel (dB) diambil dari nama penemunya yaitu
Alexander Graham Bell yang dikenal sebagai penemu telepon, sedangkan satuan dari
frekuensi suara adalah Hertz, diambil dari nama seorang Fisikawan, Heinrich Rudolf
Hertz untuk menghargai jasa atas kontribusinya dalam bidang elektromagnetik. (Azhar,
2013)
Proses penting dalam Digital Signal Processing (DSP) adalah menganalisis suatu
sinyal input maupun output untuk mengetahui karakteristik sistem fisis tertentu. Proses
analisis dan sintesis dalam domain waktu memerlukan analisis cukup panjang dengan
melibatkan turunan dari fungsi, yang dapat menimbulkan ketidaktelitian hasil analisis.
Analisis dan sintesis sinyal akan lebih mudah dilakukan pada domain frekuensi, karena
besaran yang paling menentukan suatu sinyal adalah frekuensi. (Riyanto, 2009)
Dalam domain waktu, analisis sinyal belum dapat dilakukan. Analisis dapat
dilakukan jika sinyal berbentuk spektrum. Sehingga diperlukan transformasi sinyal dari
domain waktu menjadi sinyal domain frekuensi. Fungsi yang digunakan untuk melihat
spektrum getaran dari sinyal domain waktu adalah Fast Fourier Transform (FFT). FFT
mampu menunjukkan kandungan frekuensi yang terkandung di dalam sinyal dan
menunjukkan berapa banyak komponen frekuensi di dalam sinyal. (Syaifuddin, 2014)
Suara yang sudah tersimpan dapat diubah ke dalam berbagai format audio seperti
mp3, wav, flac, real audio, midi, dan sebagainya. Format penyimpanan suara yang

UNIVERSITAS SUMATERA UTARA


2

dipakai dalam penelitian ini yaitu format wav karena Matlab hanya bisa menyimpan
format suara dalam bentuk wav. (Azhar, 2013)
Tahap-tahap yang akan dilalui dalam proses pengenalan suara ini ialah tahap
perekaman, kemudian preprocessing yang terdiri dari normalisasi, pemotongan sinyal,
frame blocking, dan windowing. Kemudian mengekstraksi ciri FFT untuk mendapatkan
spektrum frekuensi yang kemudian akan dianalisis dengan mencari nilai-nilai
maksimumnya. Fast Fourier Transform adalah suatu algoritma untuk menghitung Discrete
Fourier Transform (DFT) dengan cepat dan efisien maka dari itu penulis menggunakan
metode FFT sebagai pengidentifikasi sinyal suara manusia. Dalam penelitian ini digunakan
lebih dari satu look up table untuk penentuan keluarannya, sehingga diharapkan sistem
pengenalan dapat mengenali secara akurat.
Berdasarkan latar belakang diatas, maka penulis mengangkat permasalahan
dengan judul “IDENTIFIKASI SINYAL SUARA MENGGUNAKAN METODE
FAST FOURIER TRANSFORM (FFT) BERBASIS MATLAB”

1.2 Rumusan Masalah


Berdasarkan latar belakang yang telah dikemukakan di atas, maka dapat dirumuskan
beberapa permasalahan yang akan diselesaikan, yaitu sebagai berikut:
1. Bagaimana metode FFT dalam proses mengidentifikasi sinyal suara ?
2. Bagaimana langkah-langkah mengidentifikasi sinyal suara menggunakan metode FFT
berbasis Matlab ?

1.3 Batasan Masalah


Mengingat keterbatasan waktu dan untuk menghindari topik yang tidak diperlukan,
maka penulis membatasi penelitian ini. Adapun permasalahan ini dibatasi pada:
1. Metode yang digunakan dalah Fast Fourier Transform.
2. Input yang diukur merupakan suara manusia.
3. Program yang dikembangkan berbasis Matlab.

UNIVERSITAS SUMATERA UTARA


3

1.4 Tujuan Penelitian


Adapun tujuan yang ingin dicapai dalam penelitian ini adalah:
1. Mengidentifikasi sinyal suara serta mengolah data suara pada sistem yang telah
dirancang sehingga sesuai dengan keinginan.
2. Merancang sebuah program bantu dalam mengidentifikasi sinyal suara berbasis
Matlab sehingga akan lebih mudah (efisien) dalam penggunaanya.

1.5 Manfaat Penelitian


Keberhasilan dalam penelitian ini akan memberikan berbagai manfaat, diantaranya:
1. Mengetahui efisiensi dari metode Fast Fourier Transform dalam menganalisis sinyal
suara.
2. Memberikan sumbangan ide dan sumber wawasan untuk perkembangan Ilmu
Pengetahuan dan Teknologi (IPTEK) di bidang Fisika.

1.6 Sistematika Penulisan


Sistematika penulisan pada masing masing Bab adalah sebagai berikut :
BAB I PENDAHULUAN
Bab ini mencakup latar belakang penelitian, batasan masalah, rumusan masalah,
tujuan penelitian, dan manfaat penelitian, serta sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Bab ini membahas landasan teori yang menjadi acuan untuk proses pengambilan data.
BAB III METODE PENELITIAN
Bab ini membahas tentang peralatan dan bahan penelitian, diagram alir penelitian dan
prosedur penelitian.
BAB IV HASIL DAN PEMBAHASAN
Bab ini membahas tentang data hasil penelitian dan analisa data yang diperoleh dari
penelitian.
BAB V KESIMPULAN DAN SARAN
Bab ini berisikan tentang kesimpulan yang diperoleh dan memberikan saran untuk
penelitian selanjutnya.

UNIVERSITAS SUMATERA UTARA


4

BAB 2 LANDASAN TEORI

2.1 Teori Sinyal


Sinyal adalah suatu isyarat untuk melanjutkan atau meneruskan suatu kegiatan. Biasanya
isyarat ini berbentuk tanda-tanda, lampu-lampu, suara-suara, dan lain-lain. Menurut ITU
(International Telecommunication Union), sinyal adalah suatu gejala fisika dimana satu
atau lebih dari karakteristiknya melambangkan informasi.
Sinyal ini biasanya berupa sinyal elektrik. Sinyal ini bisa merupakan besaran
elektrik murni (tegangan, arus, dan lain-lain), tetapi pada umumnya adalah besaran fisik
lain yang dijadikan elektrik dengan bantuan sensor. Contoh sinyal elektrik adalah sinyal
suara yang berasal dari radio, sinyal citra yang berasal dari kamera fotografi, dan sinyal
video yang berasal dari kamera video. Berbagai contoh sinyal dalam kehidupan sehari-
hari yaitu arus atau tegangan dalam rangkaian elektrik, suara dan suhu. Representasi
sinyal berdasarkan dimensinya dibagi menjadi Dimensi-1 (contoh : sinyal audio),
Dimensi-2 (contoh : citra), Dimensi-3 (contoh : video). (Kurniawan, 2009)

2.1.1 Sinyal Suara


Audio diartikan sebagai suara atau reproduksi suara. Gelombang suara adalah
gelombang yang dihasilkan dari sebuah benda yang bergetar. Satu-satunya tempat
dimana suara tak dapat merambat adalah ruangan hampa udara. Gelombang suara ini
memiliki lembah dan bukit, satu buah lembah dan bukit akan menghasilkan satu siklus
atau periode. Siklus ini berlangsung berulang-ulang, yang membawa pada konsep
frekuensi. Jelasnya, frekuensi adalah jumlah dari siklus yang terjadi dalam satu detik.
Telinga manusia dapat mendengar bunyi antara 20 Hz hingga 20 KHz (20.000
Hz) sesuai dengan batasan sinyal suara. Karena pada dasarnya sinyal suara adalah sinyal
yang dapat diterima oleh telinga manusia. Angka 20 Hz sebagai frekuensi suara terendah
yang dapat didengar, sedangkan 20 KHz merupakan frekuensi tertinggi yang dapat
didengar.

UNIVERSITAS SUMATERA UTARA


5

Pemanfaatan sinyal audio memberikan lapangan kerja bidang produksi sinyal


audio meliputi, perekaman, manipulasi sinyal dan reproduksi gelombang suara. Untuk
memahami audio harus memiliki pemahaman mengenai gelombang suara. (Sipasulta,
2014)

2.1.2 Jenis Sinyal


a. Sinyal Waktu Kontiniu Dan Sinyal Waktu Diskrit
Sinyal waktu kontiniu yaitu sinyal yang terdefinisi untuk setiap nilai pada sumbu waktu
t, dimana t adalah bilangan riil. Sedangkan sinyal waktu diskrit adalah sinyal yang
terdefinisi hanya pada nilai waktu diskrit n, dimana n adalah bilangan bulat.

Gambar 2.1 Sinyal Kontiniu Vs Sinyal Diskrit

b. Sinyal Analog Dan Sinyal Digital


Sinyal dikatakan analog apabila amplitudo dari data atau sinyal tersebut terus menerus
ada dalam rentang waktu tertentu (kontiniu) dan memiliki variasi nilai amplitudo tak
terbatas. Misalnya, data yang berasal dari suara (voice) tergolong sebagai data analog..
Sinyal dikatakan digital apabila amplitudo dari data atau sinyal tersebut tidak kontiniu
dan memiliki variasi nilai amplitudo yang terbatas (diskrit) serta mempunyai besaran 0
dan 1. (Kurniawan, 2009)

UNIVERSITAS SUMATERA UTARA


6

Gambar 2.2 Sinyal Analog (atas) Dan Sinyal Digital (bawah)

2.2 Gelombang
Gelombang adalah gejala dari perambatan usikan (gangguan) di dalam suatu medium.
Pada peristiwa rambatan tersebut tidak disertai dengan perpindahan tempat yang
permanen dari materi – materi medium. Rambatan dari usikan (gangguan) itu
merupakan rambatan energi.
Kemajuan ilmu pengetahuan dan teknologi turut mendorong terciptanya alat
pengirim dan penerima informasi yang mempunyai cara kerja dengan mengirim atau
menerima gelombang. Tanpa disadari setiap makhluk hidup di bumi ini hidup dalam
lautan gelombang. Sinar matahari, sinar kosmis yang setiap saat menghujani bumi, suara
bising di jalan, sampai gelombang radio dari seluruh pemancar di seluruh dunia,
berkelebatan tak henti – hentinya di sekitar makhluk hidup di bumi ini. Sayangnya
hanya sedikit gelombang yang dapat terlihat oleh mata manusia secara langsung, seperti
gelombang laut, gelombang diam pada senar gitar.
Gelombang dapat dikelompokkan menjadi 2 bagian :
a. Gelombang Elektromagnetik
Gelombang elektromagetik adalah gelombang yang dalam perambatanya tidak
memerlukan medium. Yang termasuk gelombang elektromagnetik di antaranya: cahaya,
gelombang radio, gelombang tv, gelombang radar, sinar infra merah, sinar ultraviolet,
sinar X dan sinar gamma.

UNIVERSITAS SUMATERA UTARA


7

b. Gelombang Mekanik
Gelombang Mekanik adalah gelombang yang dalam perambatanya memerlukan
medium. Yang termasuk gelombang mekanik adalah : gelombang bunyi, gelombang
pada tali, gelombang permukaan air.

2.2.1 Jenis Gelombang


Gelombang menurut arah getarnya dibagi dalam dua bagian, yaitu:
a. Gelombang Tranversal
Gelombang transversal adalah gelombang yang arah getarnya tegak lurus arah
perambatannya. Sehingga bentuk dari gelombang tranversal terdapat bukit dan lembah
gelombang. Contoh: gelombang pada tali dan gelombang permukaan air.

Gambar 2.3 Gelombang Transversal

b. Gelombang Longitudinal
Gelombang longitudinal adalah gelombang yang arah getarnya berimpit atau
searah dengan arah rambat gelombang. Suatu gelombang longitudinal tidak menyatakan
suatu deretan bukit atau lembah gelombang. tetapi suatu deretan rapatan dan
renggangan. Rapatan dan renggangan gelombang longitudinal dapat dilihat pada sebuah
kawat spiral yang dibentangkan mendatar. Contoh: gelombang pada pegas dan gelombang
bunyi. (Harahap, 2010)

UNIVERSITAS SUMATERA UTARA


8

Gambar 2.4 Gelombang Longitudinal

2.3 Pengenalan Suara Digital


Pengenalan suara merupakan salah satu upaya agar suara dapat dikenali atau
diidentifikasi sehingga dapat dimanfaatkan. Pengenalan suara dapat dibedakan ke dalam
tiga bentuk pendekatan, yaitu pendekatan akustik-fonetik (the acoustic-phonetic
approach), pendekatan kecerdasan buatan (the artificialintelligence approach), dan
pendekatan pengenalan pola (the pattern recognition approach). (Hapsari, 2011)
Beberapa macam bidang yang menggunakan pendekatan kecerdasan buatan antara
lain sistem pakar, permainan komputer (games), logika fuzzy, jaringan syaraf tiruan dan
robotika. Kecerdasan buatan membentuk cabang yang sangat penting pada ilmu
komputer. Termasuk contohnya adalah pengendalian, perencanaan dan penjadwalan,
kemampuan untuk menjawab diagnosa dan pertanyaan pelanggan, serta pengenalan
tulisan tangan, suara dan wajah. Hal-hal seperti itu telah menjadi disiplin ilmu tersendiri,
yang memusatkan perhatian pada penyediaan solusi masalah kehidupan yang nyata.
(https://id.wikipedia.org/wiki/Kecerdasan_buatan)
Pada pengolahan suara digital, terdapat Bit depth dan sampling rate sebagai
penentu kualitas sebuah suara digital. Semakin tinggi nilai bit depth dan sampling rate,
maka semakin baik kualitas suara yang dihasilkan. Bit depth adalah nilai resolusi suara
atau jumlah tingkatan level suara. Sampel rate merupakan nilai signal audio yang
diambil dalam satu detik. (Fetra, 2015)

UNIVERSITAS SUMATERA UTARA


9

2.4 Pengenalan Pola


Pengenalan pola (pattern recognition) sesungguhnya telah lama ada dan telah mengalami
perkembangan terus-menerus dimulai dari pengenalan pola tradisional kemudian
menjadi pengenalan pola modern. Pada mulanya pengenalan pola berbasis pada
kemampuan alat indera manusia, dimana manusia mampu mengingat suatu informasi
pola secara menyeluruh hanya berdasarkan sebagian informasi pola yang tersimpan di
dalam ingatannya. Misalnya sebuah lagu pendek yang dibunyikan dapat membuat
manusia mengingat sebuah lagu secara keseluruhan.
Inti dari pengenalan pola adalah proses pengenalan suatu objek dengan
menggunakan berbagai metode dimana dalam proses pengenalannya memiliki tingkat
akurasi yang tinggi. Memiliki tingkat akurasi yang tinggi mengandung pengertian bahwa
suatu objek yang secara manual (oleh manusia) tidak dapat dikenali tetapi bila
menggunakan salah satu metode pengenalan yang diaplikasikan pada komputer masih
dapat dikenali. (Melantika, 2010).
Pola adalah ensitas yang terdefinisi dan dapat diidentifikasi melalui ciri-cirinya.
Ciri-ciri tersebut digunakan untuk membedakan suatu pola dengan pola lainnya. Ciri
yang bagus adalah cirri yang memiliki daya pembeda yang tinggi, sehingga
pengelompokan pola berdasarkan ciri yang dimiliki dapat dilakukan dengan keakuratan
yang tinggi.
Tabel 2.1 Contoh Pengenalan Pola
Pola Ciri
Huruf Tinggi, Tebal, Titik Sudut, Lengkungan Garis, dll

Suara Amplitudo, Frekuensi, Nada, Intonasi, Warna, dll.

Tanda Tangan Panjang, Kerumitan, Tekanan, dll

Sidik Jari Lengkungan, Jumlah Garis, dll.

UNIVERSITAS SUMATERA UTARA


10

Pengenalan pola bertujuan menentukan kelompok atau kategori pola berdasarkan


ciri-ciri yang dimiliki oleh tersebut. Dengan kata lain, pengenalan pola membedakan
suatu objek dengan objek lain. (Munir, 2004)
Berikut adalah beberapa pendekatan yang dilakukan dalam pengenalan pola :

2.4.1 Pendekatan Pola Secara Statistik


Pendekatan ini menggunakan teori-teori peluang dan statistic. Ciri-ciri yang dimiliki
oleh suatu pola ditentukan distribusi statistiknya. Pola yang berbeda memiliki distribusi
yang berbeda pula. Dengan menggunakan teori keputusan di dalam statistic, kita
menggunakan distribusi ciri untuk mengklasifikasikan pola.
Ada dua fase dalam pengenalan pola, yaitu fase pelatihan dan fase pengenalan.
Pada fase pelatihan, beberapa contoh objek yang dipelajari untuk menentukan ciri yang
akan digunakan dalam proses pengenalan serta prosedur klasifikasinya. Pada fase
pengenalan, objek diambil cirinya kemudian ditentukan kelas kelompoknya.
1. Preprocessing
Proses awal yang dilakukan untuk memperbaiki kualitas objek.
2. Feature Extraction
Proses mengambil ciri-ciri yang terdapat pada objek. Pada proses ini objek mungkin
perlu dideteksi keseluruhannya, lalu menghitung properti-properti objek yang
berkaitan sebagai ciri. Beberapa proses ekstraksi ciri mungkin perlu mengubah objek
masukan, melakukan penipisan pola, dan sebagainya.
3. Classification
Proses mengelompokkan objek ke dalam kelas yang sesuai.
4. Feature Selection
Proses memilih ciri pada suatu objek agar diperoleh ciri yang optimum, yaitu ciri
yang dapat digunakan untuk membedakan suatu objek dengan objek lainnya.
5. Learning
Proses belajar membuat aturan klasifikasi sehingga jumlah kelas yang tumpang tindih
dibuat sekecil mungkin.

UNIVERSITAS SUMATERA UTARA


11

Kumpulan ciri dari suatu pola dinyatakan sebagai vektor ciri dalam ruang multi
dimensi. Jadi, setiap pola dinyatakan sebagai sebuah titik dalam ruang multi dimensi.
Ruang multi dimensi dibagi menjadi sejumlah sub-ruang. Tiap sub-ruang dibentuk
berdasarkan pola-pola yang sudah dikenali kategori dan ciri-cirinya melalui fase
pelatihan.

2.4.2 Pendekatan Pola Secara Sintaktik


Pendekatan ini menggunakan teori bahasa formal. Ciri-ciri yang terdapat pada suatu pola
ditentukan primitif dan hubungan struktural antara primitif kemudian menyusun tata
bahasanya. Dari aturan produksi pada tata bahasa tersebut dapat ditentukan kelompok
pola. Pengenalan pola secara sintaktik lebih dekat ke strategi pengenalan pola yang
dilakukan manusia, namun secara praktek penerapannya relatif sulit dibandingkan
pengenalan pola secara statistik.
Pendekatan yang digunakan dalam membentuk tata bahasa untuk mengenali pola
adalah mengikuti kontur objek dengan sejumlah segmen garis terhubung satu sama lain,
lalu mengkodekan setiap garis tersebut, misalnya dengan kode rantai. Setiap segmen
garis merepresentasikan primitif pembentuk objek. (Indriani, 2015)

2.4.3 Template Matching


Salah satu pendekatan yang paling sederhana dan paling awal untuk pengenalan pola
adalah template matching atau pencocokan. Template matching adalah operasi generik
di pengenalan pola yang digunakan untuk menentukan kesamaan antara dua entitas
(sample, curve atau pixels) dari jenis yang sama. Pada template matching pola yang akan
diakui dicocokkan dan disimpan sementara yang kemudian memperhitungkan semua
cirinya adalah perubahan skala.

2.4.4 Neural Network


Neural network merupakan kategori ilmu soft computing dan mengadopsi dari
kemampuan otak manusia yang mampu memberikan stimulasi dan rangsangan,
melakukan proses, dan memberikan output. Output diperoleh dari varisasi stimulasi dan

UNIVERSITAS SUMATERA UTARA


12

proses yang terjadi di dalam otak. Misalnya, yang terjadi pada anak-anak, mereka
mampu belajar untuk melakukan pengenalan meskipun mereka tidak mengetahui
algoritma apa yang digunakan. (Jain, 2000)

2.5 Sampling
Sampling adalah proses pencuplikan gelombang suara yang akan menghasilkan sinyal
diskrit. Dalam proses sampling ada yang disebut laju pencuplikan (sampling rate).
Sampling rate menandakan berapa banyak pencuplikan gelombang analog dalam selang
waktu 1 detik. Sampling rate dinyatakan dalam satuan Hertz (Hz). Pada proses
sampling, sebaiknya sampling rate memenuhi kriteria Nyquist. Kriteria Nyquist
menyatakan bahwa sampling rate harus lebih besar dari dua kali frekuensi tertinggi
sinyal analog.
Secara matematis dapat dituliskan :
𝑓𝑠 ≥2𝑓𝑚 (2.1)
Dengan 𝑓𝑠 adalah frekuensi sampling dan 𝑓𝑚 adalah frekuensi tertinggi sinyal suara
analog. Yang dimana dapat dilihat bahwa frekuensi sampling harus lebih besar dua kali
dari frekuensi sampling harus lebih besar dua kali dari frekuensi tertinggi sinyal analog
tersebut. (Sklar, 1988)
Contoh penentuan nilai frekuensi sampling : misalnya frekuensi tertinggi dari
sinyal analog adalah 50 Hz, maka frekuensi sampling haruslah dua kalinya dari sinyal
suara, yaitu 100 Hz. Apabila frekuensi sampling 100 Hz maka sinyal suara harus
mempunyai frekuensi maksimum 50 Hz.
Terdapat sebuah teknik yang memungkinkan sinyal analog diubah dan diproses
menjadi bit-bit digital. Teknik tersebut yaitu teknik sampling. Apabila sinyal analog
menjadi sinyal digital maka sinyal ini jauh lebih baik, dan juga noise yang dapat
diproses dengan mudah. Digital Signal Processing merupakan perkembangan dari
teknik sampling yang memungkinkan untuk membentuk sampel – sampel berupa suara.
Pada tahap ini terjadi suatu pengambilan sampel dari bentuk sinyal analog.
Pengambilan dilakukan pada bagian – bagian sinyal analog dengan pembagian sampel,
karena sampel yang diambil akan lebih menggambarkan sinyal yang asli. Frekuensi

UNIVERSITAS SUMATERA UTARA


13

sinyal sampling ini paling sedikit adalah 2 kali frekuensi sinyal yang akan mengalami
sampling (sinyal analog). Hal tersebut merupakan batas minimum dari frekuensi sampel
agar nantinya cuplikan yang diambil menunjukkan bentukan sinyal yang asli (analog).
Lebih besar frekuensi sampling tentunya lebih baik, karena cuplikan akan lebih
menggambarkan sinyal yang asli. (Safaat, 2016)

2.6 Mikrofon
Mikrofon adalah suatu komponen elektronika yang dapat mengubah atau
mengkonversikan energi akustik (gelombang suara) ke energi listrik (sinyal audio).
Fungsi dari mikrofon adalah sebagai komponen atau alat pengubah satu bentuk energi ke
bentuk energi lainya. Setiap jenis Mikrofon memiliki cara yang berbeda dalam
mengubah (konversi) bentuk energinya, tetapi semua jenis mikrofon memiliki
persamaan yaitu memiliki suatu bagian utama yang disebut dengan diafragma. Mikrofon
merupakan komponen penting dalam perangkat elektronik seperti alat bantu
pendengaran, perekam suara, penyiaran radio maupun alat komunikasi lainnya seperti
handpnone, telepon, interkom, walkie talkie serta home entertainment seperti karaoke.
(Fingkirani, 2014)
Pada perancangan ini mikrofon digunakan sebagai alat perekaman suara untuk
mendapatkan suara terekam agar kemudian dapat diproses untuk melalui tahap
selanjutnya sehingga mendapatkan keluaran teks yang sesuai dengan suara yang
dimainkan. Dalam proses perekaman, mikrofon dihubungkan langsung dengan kartu
suara yang ada di laptop.

2.7 Preprocessing
Preprocessing adalah proses-proses awal yang dilakukan sebelum proses
membangkitkan spectrum. Tujuan dari Preprocessing ini adalah untuk menyetarakan
sinyal suara masukan agar lebih mudah diproses untuk pengenalan suara. Proses
Preprocessing memiliki beberapa tahapan yang harus dilewati, yaitu normalisasi,
pemotongan sinyal, frame blocking, windowing, ekstraksi cirri FFT, pencarian nilai
maksimum dan teks suara.

UNIVERSITAS SUMATERA UTARA


14

2.7.1 Normalisasi
Normalisasi merupakan suatu cara untuk mengatasi jarak antara sumber suara dengan
mikrofon. Pada proses perekaman atau pengambilan suara ini perlu adanya normalisasi
supaya amplitude suara saat dimainkan dapat menjadi maksimal. Proses normalisasi
awal dilakukan dengan cara membagi tiap nilai data masukan yaitu suara terekam
dengan nilai absolute maksimal dari data masukan tersebut.
Perhitungan nilai normalisasi dirumuskan dengan persamaan sebagai berikut :
𝑋 𝑖𝑛
𝑋𝑛𝑜𝑟𝑚 = (2.2)
max ⁡
(𝑎𝑏𝑠 (𝑋 𝑖𝑛 ))

Dengan 𝑋𝑛𝑜𝑟𝑚 adalah hasil data sinyal normalisasi, 𝑋𝑖𝑛 adalah data masukan dari
sampling.

2.7.2 Pemotongan Sinyal


Proses ini memiliki tujuan untuk memotong beberapa bagian sinyal suara. Proses
pemotongan ini dilakukan setelah proses normalisasi. Dalam proses pemotongan, bagian
yang dipotong adalah bagian yang awal dari sinyal. Tujuan pemotongan sinyal suara
adalah untuk menghilangkan bagian yang tidak termasuk bagian dari sinyal dan
mengurangi cacat sinyal akibat derau ruangan yang ikut terekam. Pada proses
pemotongan sinyal ini melewati 2 (dua) kali tahap pemotongan sinyal. Tahap
pemotongan sinyal yang pertama yaitu memotong pada bagian silence atau bagian awal
sinyal yang tidak termasuk sinyal suara yang sebenarnya. Tahap pemotongan sinyal
yang kedua yaitu adalah memotong pada bagian transisi sinyal suara dengan
menghilangkan ¼ bagian dari sinyal.

2.7.3 Frame blocking


Frame blocking merupakan pembagian sinyal suara menjadi beberapa frame dan satu
frame terdiri dari beberapa data sampel. Dalam proses pengambilan sampel tersebut
bergantung dengan waktu tiap detik suara dan berapa besar frekuensi sampling. Fungsi
frame blocking yaitu untuk memilih data yang akan diproses dalam sistem pengenalan

UNIVERSITAS SUMATERA UTARA


15

sehingga dapat mempercepat proses perhitungan pada Fast Fourier Transform. Jumlah
data pada setiap frame memiliki 2N data sampel. (Saputra, 2017)

2.7.4 Hamming Windowing


Sinyal suara yang dipotong-potong menjadi beberapa frame akan dapat menyebabkan
kesalahan data pada proses Fourier Transform. Windowing diperlukan untuk
mengurangi efek diskontinuitas dari potongan-potongan sinyal dengan cara melewatkan
sinyal yang mempunyai frekuensi sembarang dikonvolusikan dengan fungsi window
tertentu sehingga dapat mereduksi sinyal-sinyal yang tergolong rusak sebelum dilakukan
proses transformasi. Hamming window mempunyai side lobe yang paling kecil dan
main lobe yang paling besar, sehingga hasil dari pada windowing akan menjadi lebih
halus dalam menghilangkan efek dari diskontinuitas. (Setyawan, 2014)
Persamaan Hamming Window adalah :
2𝜋𝑛
𝑤 𝑛 = 0,54 − (0,46 cos )) 0≤𝑛 ≤𝑁−1 (2.3)
𝑁−1

Dengan N adalah jumlah data dari sinyal dan n adalah waktu diskrit ke- [0,1,2, …,N-1]

2.8 Ekstraksi Ciri


Ekstraksi cirri merupakan proses untuk mendapatkan sederetan besaran pada bagian
sinyal masukkan untuk menetapkan pola pembelajaran atau pola uji. Dalam proses
pengenalan diperlukan pencuplikan yang lebih dari satu oleh sebab itu pencuplikan yang
telah dilakukan dapat dibentuk pola ujinya dengan tahapan ekstraksi ciri ini. Ekstraksi
ciri mempunyai berbagai macam tipe seperti : ekstraksi cirri secara Discrete Cosine
Transform (DCT) dan ekstraksi ciri Fast Fourier Transform (FFT). Ekstraksi-ekstraksi
ciri tersebut bertujuan untuk mendapatkan pola uji dari hasil pencuplikan yang sudah
ada.

2.8.1 Transformasi Fourier


Proses penting dalam pemrosesan sinyal digital adalah menganalisis suatu sinyal input
maupun output untuk mengetahui karakteristik sistem fisis tertentu dari sinyal. Proses

UNIVERSITAS SUMATERA UTARA


16

analisis dan sintesis dalam domain waktu memerlukan analisis cukup panjang dengan
melibatkan turunan dari fungsi, yang dapat menimbulkan ketidaktelitian hasil analisis.
Analisis dan sintesis sinyal akan lebih mudah dilakukan pada domain frekuensi. Salah
satu teknik untuk menganalisis sinyal adalah mentransformasikan (alih bentuk) sinyal
yang semula analog menjadi diskrit dalam domain waktu, dan kemudian diubah ke
dalam domain frekuensi. Transformasi Fourier adalah suatu model transformasi yang
memindahkan sinyal domain spasial atau sinyal domain waktu menjadi sinyal domain
frekuensi. (Meris, 2015)

2.8.1.1 Transformasi Fourier Diskrit


DFT (Discrete Fourier Tranform) merupakan prosedur matematika yang digunakan
untuk menentukan harmonik atau frekuensi yang merupakan isi dari urutan sinyal
diskrit. Urutan sinyal diskrit adalah urutan nilai yang diperoleh dari sampling periodik
sinyal kontinu dalam domain waktu. DFT berasal dari fungsi Transformasi Fourier X(f)
yang didefinisikan:
∞ 𝑥(𝑡) 𝑒 −𝑗 2𝜋𝑓𝑡 𝑑𝑡
𝑋 𝑓 = −∞ (2.4)
Dimana :
X(f) = urutan ke-f komponen output (X(0), X(1), … , X(N-1))
f = indeks output dalam domain frekuensi (0,1, … , N-1)
x(t) = urutan ke-t sampel input (x(0), x(1), … , x(N-1))
t = indeks sampel input dalam domain waktu (0,1, … , N-1)
j = bilangan imajiner ( −1 )
𝜋 = derajat (180°)
e = basis logaritma natural (2.7182818284…)

Dalam bidang pemrosesan sinyal kontinu, Persamaan 2.4 digunakan untuk mengubah
fungsi domain waktu kontinu x(t) menjadi fungsi domain frekuensi kontinu X(f). Fungsi
X(f) memungkinkan untuk menentukan kandungan isi frekuensi dari beberapa sinyal
dan menjadikan beragam analisis sinyal dan pengolahan yang dipakai di bidang teknik

UNIVERSITAS SUMATERA UTARA


17

dan fisika. DFT didefenisikan sebagai urutan sinyal diskrit domain frekuensi X(m),
dimana:
𝑁−1 −𝑗 2𝜋𝑛𝑚/𝑁
𝑋 𝑚 = 𝑛=0 𝑥(𝑛) 𝑒 (2.5)

Dimana :
N = jumlah sampel input
X(m) = urutan ke-m komponen output DFT (X(0), X(1), … , X(N-1))
m = indeks output DFT dalam domain frekuensi (0,1, … , N-1)
x(n) = urutan ke-n sampel input (x(0), x(1), … , x(N-1))
n = indeks sampel input dalam domain waktu (0,1, … , N-1)
j = bilangan imajiner ( −1 )
𝜋 = derajat (180°)
e = basis logaritma natural (2.7182818284…)

Persamaan 2.5 kemudian dihubungkan dengan rumus Euler 𝑒 −𝑗𝜃 = cos (𝜃) – j sin(𝜃),
sehingga setara dengan :
𝑁−1 2𝜋𝑛𝑚 2𝜋𝑛𝑚
𝑋 𝑚 = 𝑛=0 𝑥(𝑛) [cos – j sin ] (2.6)
𝑁 𝑁

Dimana :
N = jumlah sampel input
X(m) = urutan ke-m komponen output DFT (X(0), X(1), … , X(N-1))
m = indeks output DFT dalam domain frekuensi (0,1, … , N-1)
x(n) = urutan ke-n sampel input (x(0), x(1), … , x(N-1))
n = indeks sampel input dalam domain waktu (0,1, … , N-1)
j = bilangan imajiner ( −1 )
𝜋 = derajat (180°)

Nilai N merupakan parameter penting karena menentukan berapa banyak sampel


masukan yang diperlukan, hasil domain frekuensi dan jumlah waktu proses yang

UNIVERSITAS SUMATERA UTARA


18

diperlukan untuk menghitung N-titik DFT. Diperlukan N-perkalian kompleks dan N-1
sebagai tambahan. Kemudian, setiap perkalian membutuhkan N-perkalian riil, sehingga
untuk menghitung seluruh nilai N (X(0), X(1), …, X(N-1)) memerlukan N2 perkalian.
Hal ini menyebabkan perhitungan DFT memakan waktu yang lama jika jumlah sampel
yang akan diproses dalam jumlah besar.

2.8.1.2 Fast Fourier Transform (FFT)


Meskipun DFT memainkan peranan yang penting sebagai prosedur matematis untuk
menentukan isi frekuensi dari urutan domain waktu, namun sangat tidak efisien. Jumlah
titik dalam DFT meningkat menjadi ratusan atau ribuan, sehingga jumlah- jumlah yang
dihitung menjadi tidak dapat ditentukan.
Sebuah DFT 8-titik, harus melakukan N2 atau 64 perkalian kompleks. Sedangkan
FFT melakukan (N/2) log2 N yang memberikan penurunan yang signifikan dari N2
perkalian kompleks. Ketika N = 512 maka DFT memerlukan 200 kali perkalian
kompleks dari yang diperlukan oleh FFT.
Dalam proses dekomposisi diperlukan tahapan Log2 N. Sebagai contoh, sinyal 16
titik (24) memerlukan 4 tahapan, sinyal 512 titik (29) membutuhkan 9 tahap, sinyal
4096 titik (212) membutuhkan 12 tahapan. Dalam Gambar 2.6, sinyal 16 titik terurai
melalui empat tahap yang terpisah. Tahap pertama memisahkan sinyal 16 titik menjadi
dua sinyal masing-masing terdiri dari 8 titik. Tahap kedua menguraikan data menjadi
empat sinyal terdiri dari 4 titik. Pola ini berlanjut sampai sinyal N terdiri dari satu titik.
Dekomposisi digunakan setiap kali sinyal dipecah menjadi dua, yaitu sinyal dipisahkan
menjadi sampel genap dan sample ganjil.

UNIVERSITAS SUMATERA UTARA


19

Gambar 2.5 Contoh Dekomposisi Sinyal Domain Waktu Di FFT

Algoritma FFT memecah sampel menjadi dua bagian yaitu bagian genap dan bagian
ganjil. Persamaan 2.5 dibagi menjadi bagian ganjil dan bagian genap sebagai berikut:
(𝑁/2)−1 (𝑁/2)−1
𝑋 𝑚 = 𝑛=0 𝑥[2𝑛] 𝑒 −𝑗 2𝜋(2𝑛𝑚)/𝑁 + 𝑒 −𝑗 2𝜋𝑚/𝑁 𝑛=0 𝑥[2𝑛 + 1] . 𝑒 −𝑗 2𝜋(2𝑛𝑚)/𝑁 (2.7)
Dimana:
N = jumlah sampel input
X(m) = urutan ke-m komponen output FFT (X(0), X(1), … , X(N-1))
m = indeks output FFT dalam domain frekuensi (0,1, … , N-1)
x(2n) = urutan ke-n sampel input genap (x(0), x(2), … , x(N-2))
x(2+1) = urutan ke-n sampel input ganjil (x(1), x(3), … , x(N-1))
n = indeks sampel input dalam domain waktu (0,1, … , N/2-1)
j = konstanta bilangan imajiner ( −1 )
𝜋 = derajat (180°)
e = basis logaritma natural (2.7182818284…)
Setelah melakukan transformasi FFT, suara asli yang diperoleh dari hasil
perekaman akan diubah ke dalam bentuk pola suara yang merupakan hasil ekstraksi ciri
suara. Data suara yang telah diubah mempunyai bentuk 1 dimensi, keluaran hasil
ekstraksi ciri mempunyai dimensi yang sama dengan masukan suara asli yaitu 1 dimensi.
(Susilawati, 2009)

UNIVERSITAS SUMATERA UTARA


20

2.9 Matlab
Matlab adalah sebuah bahasa high-performance untuk komputasi teknis. Matlab
merupakan singkatan dari Matrix Laboratory. Matlab mengintegrasikan perhitungan,
visualisasi, dan pemrograman dalam suatu lingkungan yang mudah digunakan dimana
permasalahan dan solusi dinyatakan dalam notasi secara matematis yang dikenal umum.
Matlab memvisualisasi data dalam berbagai cara, melakukan aljabar matriks,
bekerja dengan polinomial dan fungsi integrasi. Matlab dapat diperlakukan sebagai
sebuah bahasa pemrograman yang akrab pengguna, yang memungkinkan untuk
menangani kalkulasi matematis dalam suatu cara yang mudah. Penggunaan Matlab
meliputi bidang-bidang :
 Matematika dan komputasi
 Pengembangan algoritma
 Pengumpulan data
 Pemodelan, simulasi, dan prototype
 Analisis data, eksplorasi, dan visualisasi
 Rancang-bangun grafis
 Pengembangan aplikasi, termasuk membangun Graphical User Interface (GUI)
Matlab merupakan suatu sistem interaktif yang memiliki elemen data dalam suatu
array sehingga tidak lagi bermasalah dengan dimensi. Hal ini memungkinkan
memecahkan banyak masalah teknis yang terkait dengan komputasi, khususnya yang
berhubungan dengan matrix dan formulasi vector, yang mana masalah tersebut
merupakan momok apabila kita harus menyelesaikannya dengan menggunakan bahasa
level rendah seperti Pascall, C dan Basic. Dalam lingkungan perguruan tinggi teknik,
matlab merupakan perangkat standard untuk memperkenalkan dan mengembangkan
penyajian materi matematika, rekayasa dan keilmuan. Di industri, Matlab merupakan
perangkat pilihan untuk penelitian dan produktifitas yang tinggi analisanya.
Fitur-fitur Matlab sudah banyak dikembangkan, dan lebih kita kenal dengan nama
toolbox. Sangat penting bagi seorang pengguna Matlab, toolbox mana yang mendukung
untuk learn dan apply teknologi yang sedang dipelajari. Toolbox-toolbox ini merupakan
kumpulan dari fungsi-fungsi Matlab (M-Files) yang telah dikembangkan ke suatu

UNIVERSITAS SUMATERA UTARA


21

lingkungan kerja Matlab untuk memecahkan masalah dalam kelas particular. Area-area
yang sudah bisa dipecahkan dengan toolbox saat ini meliputi pengolahan sinyal, sistem
control, neural networks, fuzzy logic, wavelets, dan lain-lain.
Beberapa bagian penting yang terdapat pada antar muka MATLAB adalah sebagai
berikut:
a. Command Window atau jendela perintah adalah jendela yang dipakai untuk
memberikan perintah secara manual.
b. Workspace berisi daftar variabel yang diciptakan oleh pemakai dan masih ada dalam
memori.
c. Command History mencantumkan perintah-perintah yang pernah diberikan oleh
pemakai.
d. Current Directory menyatakan direktori kerja.
Terdapat dua metode yang digunakan untuk menulis program dalam Matlab. Kedua
metode itu adalah metode langsung dan tidak langsung. Untuk menulis program Matlab
secara langsung maka program itu ditulis langsung di Command Window. Untuk
menulis program Matlab secara tidak langsung maka program itu dapat ditulis sebagai
M-File. (Gunawan, 2011)

2.10 Guide Matlab


GUIDE atau GUI builder merupakan sebuah Graphical User Interface (GUI) yang
dibangun dengan obyek grafik seperti tombol (button), kotak teks, slider, menu dan lain-
lain. Aplikasi yang menggunakan GUI umumnya lebih mudah dipelajari dan digunakan
karena orang yang menjalankannya tidak perlu mengetahui perintah yang ada dan
bagaimana kerjanya.
GUIDE Matlab mempunyai kelebihan tersendiri dibandingkan dengan bahasa
pemrogram lainnya, diantaranya:
1) GUIDE Matlab banyak digunakan dan cocok untuk aplikasi - aplikasi berorientasi
sains, sehingga banyak peneliti dan mahasiswa menggunakan GUIDE Matlab
untuk menyelesaikan riset atau tugas akhirnya.

UNIVERSITAS SUMATERA UTARA


22

2) GUIDE Matlab mempunyai fungsi built - in yang siap digunakan dan pemakai
tidak perlu repot membuatnya sendiri.
3) Ukuran file, baik FIG - file maupun M-file, yang dihasilkan relatif kecil.
4) Kemampuan grafisnya cukup andal dan tidak kalah dibandingkan dengan bahasa
pemrograman lainnya. ( Teuinsuska, 2009)

UNIVERSITAS SUMATERA UTARA


23

BAB 3 BAHAN DAN METODE PENELITIAN

3.1 Waktu dan Tempat


Penelitian dilakukan pada bulan April sampai Juni 2017 di Perpustakan
Universitas Sumatera Utara dan di rumah penulis.

3.2 Alat/Bahan Penelitian


Pada Alat/bahan penelitian ini yang ditulis adalah alat atau bahan utama yang
mendukung penelitian saja, misalnya : bahan yang digunakan adalah suara manusia yang
diambil dari 5 sampel yaitu suara dari Rut, Damai, Jesika, Putri dan Ezra. Pada alatnya
sendiri peneliti menggunakan Laptop Intel®Core™i3 dan software MATLAB R2010a
untuk membuat program. Software MATLAB ini berfungsi sebagai user interface dalam
proses pengenalan. User interface yang dibuat dari hasil pengolahan perangkat lunak
pada laptop ini mempunyai fungsi sebagai pengaturan utama dalam proses pengenalan
suara, seperti pada saat perekaman suara dan proses pengenalan suara yang telah
terekam. Sebuah microphone yang digunakan sebagai alat bantu proses perekaman suara
untuk mendapatkan suara yang diinginkan. Dan sebuah metode yang diambil sebagai
pengidentifikasi suara manusia, yaitu metode Fast Fourier Transform (FFT). Proses
perekemanan suara ini diambil secara real time.

3.2.1 Suara Manusia


Suara manusia adalah suatu sinyal percakapan yang dihasilkan oleh manusia ketika
melakukan percakapan. Sinyal percakapan dari suara manusia dihasilkan oleh kombinasi
komplek dari tekanan udara yang melewati pita suara dan vocal tract yaitu mulut, lidah,
gigi dan langit-langit mulut. Untuk lebih rinci lagi suara manusia ketika berbicara
merupakan hasil dari kerja sama antara paru-paru, glottis dan articulation tract. Sinyal
suara terdiri dari serangkaian suara yang masing-masing menyimpan sepotong
informasi. Suara manusia dapat dibedakan menjadi dua tipe berdasarkan cara
menghasilkannya yaitu voiced dan unvoiced. Voiced sounds merupakan suara yang

UNIVERSITAS SUMATERA UTARA


24

dihasilkan dari getaran pita suara, sedangkan unvoiced sounds dihasilkan dari gesekan
antara udara dengan vocal tract. ( Suwandi, 2011 )

3.2.2 Mikrofon
Mikrofon berfungsi untuk menangkap suara kemudian menyalurkannya pada laptop
kemudian diproses untuk pengenalan suara. Mikrofon dapat mengubah suara menjadi
getaran listrik sinyal analog untuk selanjutnya diperkuat dan diolah sesuai dengan
kebutuhan. Agar lebih efektif, mikrofon yang digunakan haruslah sesuai dengan
kebutuhan dan seimbang antara sumber suara manusia yang ingin dicuplik. Jarak yang
digunakan antara mulut dengan mikrofon adalah ± 15 cm.

3.3 Metode Penelitian


1. Buka software Matlab.
2. Ketik perintah “guide” pada Command Window. Lalu tekan enter.
3. Pilih “Open Existing GUI”. Lalu pilih folder program yang telah dirancang.

Gambar 3.1 Tampilan Program GUI Yang Disimpan.

UNIVERSITAS SUMATERA UTARA


25

4. Klik Open maka akan tampil aplikasi pengenalan suara seperti Gambar 3.2

Gambar 3.2 Tampilan Figure Aplikasi Pengenalan Suara

5. Kemudian pilih Run Figure. Maka akan tampil aplikasi pengenalan suara.

Gambar 3.3 Tampilan Aplikasi Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


26

6. Pilih nilai frame blocking yang akan digunakan dalam proses pengenalan
suara. Setelah memilih nilai frame blocking, tekan tombol “REKAM” untuk
memulai program pengenalan suara dan diikuti dengan memainkan salah satu
suara. Gambar 3.4 memperlihatkan hasil pengenalan suara.

Gambar 3.4 Hasil Pengenalan Suara

7. Dapat dilihat plot perekaman pada kotak Axes1 dan plot FFT pada kotak
Axes2, indeks nilai maksimum pada kotak Edit Text 2, serta teks hasil
pengenalan suara pada kotak Edit Text 1.
8. User dapat mengulangi kembali proses proses pengenalan suara dengan
menekan tombol “REKAM” dan memilih nilai frame blocking yang berbeda.
Untuk membersihkan jendela plot FFT, indeks nilai maksimum, dan teks
suara dengan menekan tombol “RESET”.
9. Program pengenalan dapat diakhiri dengan menekan tombol “SELESAI”
untuk keluar dari tampilan utama program pengenalan suara.
10. Selesai.

UNIVERSITAS SUMATERA UTARA


27

3.3.1 Proses Perekaman


Proses perekaman adalah proses masuknya sinyal digital dari suara manusia yang
terekam. Saat proses perekaman berlangsung sinyal analog dikonversi menjadi sinyal
digital dengan frekuensi pencuplikan yang telah ditentukan dalam durasi yang telah
ditentukan pula. Hasil sinyal digital kemudian disimpan dan digambarkan pada plot.
Data suara yang telah terekam kemudian dapat diproses untuk dikenali lewat proses
pengenalan.

3.3.1.1 Proses Pengenalan Suara


Proses pengenalan suara adalah proses dimana suara yang terekam dikenali suaranya.
Dalam hal ini suara yang terekam secara real time dapat dikenali dengan hasil akhir
keluaran berupa tulisan. Pada proses pengenalan suara ini terdapat beberapa subproses
yaitu preprocessing ( Normalisasi, Pemotongan Sinyal, Frame blocking, Hamming
Window ), ektraksi cirri FFT, Penentuan Nilai Maksimum dan Hasil Pengenalan.
Proses pengenalan dapat dilihat pada Gambar 3.1 dan subproses preprocessing
dapat dilihat pada Gambar 3.2.

Mulai Suara Rekam Preprocessing

Ekstraksi Ciri FFT

Penentuan Teks Pencarian Nilai


Selesai Teks
Suara Maksimum

Gambar 3.1 Diagram Alir Proses Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


28

Hasil
Normalisasi Pemotongan Sinyal
Perekaman

Hasil Windowing Frame blocking


Preprocessing

Gambar 3.2 Diagram Alir Subproses Preprocessing

Setiap subproses dalam proses pengenalan suara ini memiliki fungsi masing-masing,
yaitu :
1. Suara Manusia
Hasil dari sampling suara yang direkam dengan menggunakan mikrofon akan
diproses ke tahap selanjutnya.
2. Normalisasi
Data yang telah melalui proses perekaman selanjutnya dinormalisasi. Pada tahap ini
semua suara yang sudah terekam akan dinormalisasi. Tujuan dari normalisasi ini agar
amplitudo pada saat data suara dimainkan bisa maksimal.
3. Pemotongan Sinyal
Fungsi proses pemotongan sinyal adalah untuk menghilangkan efek noise atau suara
lain yang ikut terekam saat proses perekaman.
4. Frame blocking
Proses ini berfungsi untuk memilih data dari suara terekam, sehingga data yang
dipilih dapat mewakili semua data pada suara yang terekam.
5. Windowing
Setelah frame blocking data suara akan mengalami proses windowing. Windowing
berfungsi untuk menghilangkan efek diskontinuitas yang disebabkan oleh frame
blocking.

UNIVERSITAS SUMATERA UTARA


29

6. Fast Fourier Transform


Proses Fast Fourier Transform merupakan proses ekstraksi ciri suatu data suara
maupun gambar. Evaluasi FFT yang digunakan berdasarkan frame blocking yang
digunakan. Setelah menentukan besar frame blocking, kemudian frame blocking
tersebut ditentukan basis data koefisiennya.
7. Penentuan Nilai Maksimum
Proses ini bertujuan untuk mencari nilai-nilai maksimum pada sinyal FFT yang akan
dijadikan sebagai penentuan keluaran hasil pengenalan suara.
8. Penentuan Teks Suara
Penentuan teks suara adalah subproses terakhir dari proses pengenalan suara.
Penentuan hasil pengenalan suara ditentukan berdasarkan nilai-nilai maksimum yang
didapat pada sinyal FFT.
9. Hasil Pengenalan Suara
Hasil akhir dari proses pengenalan suara adalah suara terkenali. Hasil akhir
ditampilkan dalam bentuk visual GUI Matlab yang telah dirancang.

3.4 Look up table


Dalam proses perancangan sistem pengenalan suara ini digunakan sebuah Look up table
sebagai penentuan keluaran dalam proses pengenalan suara dengan mencari indeks nilai
maksimum pada sinyal FFT. Penulis menggunakan 10 sampel per suara dengan suara
yang dikenali yaitu Rut, Damai, Jesika, Putri dan Ezra. Kemudian menentukan nilai rata-
ratanya. Nilai rata-rata tersebut yang digunakan sebagai nilai tengah atau penentu range
pada look up table. Proses pengambilan suara dilakukan melalui tahap perekaman.
Setelah proses perekaman maka akan melalui preprocessing yang terdiri dari proses
normalisasi, pemotongan sinyal, frame blocking dan hamming windowing. Setelah itu
akan melalui proses ekstraksi ciri FFT dan pencarian nilai indeks maksimum pada sinyal
FFT. Prosesnya ditunjukkan pada Gambar 3.3.

UNIVERSITAS SUMATERA UTARA


30

Masukan Perekaman Preprocessing


Suara.wav

Keluaran Nilai Pencarian Nilai


Ekstraksi FFT
Maksimum Maksimum

Gambar 3.3 Diagram Alir Pencarian Nilai Maksimum Untuk Look up table

3.5 Suara Uji


Suara uji merupakan suara yang dijadikan acuan untuk menginput data pada program
dari hasil terbaik suara untuk setiap nilai frame blocking. Secara garis besar fungsi dari
suara uji ialah untuk menjalankan program pengenalan suara manusia secara offline atau
belum real time. Sehingga hasil penentuan nilai frame blocking dari pengenalan suara
uji dapat menghasilkan tingkat pengenalan suara yang akurat.
Penulis mengambil 10 sampel suara untuk setiap suara (Rut, Damai, Jesika,
Putri, Ezra) yang akan digunakan untuk pengujian. Setiap sampel suara yang diambil
dalam proses perekaman, akan melalui proses sampling terlebih dahulu sebelum masuk
ke tahap berikutnya. Gambar 3.4 merupakan proses pengambilan sampel suara yang
dilakukan dengan proses sampling.

Masukan Suara Sampling Keluaran (wav)

Gambar 3.4 Diagram Alir Proses Pengambilan Suara Uji

3.6 Perancangan Perangkat Lunak


3.6.1 Perancangan Tampilan Program GUI Matlab
Perancangan dalam pembuatan perangkat lunak menggunakan program Matlab. Hal ini
juga berlaku dalam tampilan antarmuka yang juga dibuat dengan program Matlab.
Antarmuka dalam Matlab disebut dengan Graphical User Interface (GUI).

UNIVERSITAS SUMATERA UTARA


31

IDENTIFIKASI SUARA MANUSIA MENGGUNAKAN METODE


FAST FOURIER TRANSFORM (FFT) BERBASIS MATLAB

Nilai Frame Plot Perekaman Plot FFT

REKAM Hasil Suara Indeks FFT Maks Ke-

RESET SELESAI

Gambar 3.5 Tampilan Utama Aplikasi Pengenalan Suara

Tampilan program ini dibuat supaya user dapat dengan mudah menjalankan
program yang dibuat dan memahami hasil dari pengenalan suara. Berikut adalah
keterangan tampilan utama program pada Table 3.1.

Tabel 3.1 Keterangan Tampilan Utama Program GUI Matlab


Nama Bagian Keterangan
Tombol Rekam Digunakan untuk menjalankan aplikasi
Tombol Reset Digunakan untuk mengubah sistem
kedalam kondisi awal
Tombol Selesai Digunakan untuk mengakhiri aplikasi
Nilai Frame Untuk memilih nilai frame blocking dan
FFT yang digunakan pada proses
pengenalan suara, yaitu 16, 32, 64, 128 dan
256 titik
Plot Perekaman Tampilan grafik suara hasil perekaman

UNIVERSITAS SUMATERA UTARA


32

Plot FFT Tampilan grafik suara hasil ekstraksi FFT


Indeks FFT Maksimum Ke- Indeks nilai maksimum pada FFT
Hasil Tampilan Suara Untuk menampilkan suara yang didapat
setelah proses pengenalan

3.6.2 Perancangan Sistem Software


Sistem pengenalan suara ini akan bekerja pada saat user menjalankan program. Sebelum
menjalankan program, user harus memilih variasi frame blocking yang ingin digunakan.
Saat user menekan tombol “REKAM”, secara otomatis sistem akan merekam suara. Jika
suara telah terekam, maka proses akan berlanjut untuk mengenali suara tersebut.
Program keseluruhan yang digunakan dalam sistem pengenalan suara ini terdiri
dari beberapa subprogram. Dimulai dari proses perekaman, normalisasi, pemotongan
sinyal, frame blocking, windowing, ekstraksi ciri FFT, penentuan nilai maksimum dan
hasil akhir yang menghasilkan tampilan suara yang diharapkan.
Gambar 3.6 menunjukkan diagram alir dari keseluruhan sistem pengenalan suara
manusia ini.
Mulai
Hamming Window

Masukan
Suara.wav FFT

Pencarian Nilai
Rekam
Maksimum

Normalisasi Penentuan Teks


Suara

Pemotongan Sinyal
Keluaran
Teks Suara
Frame blocking
Selesai
Gambar 3.5 Diagram Alir Program Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


33

3.6.3 Rekam
Pada proses perekaman ini akan melalui proses pertama yaitu sampling yang bertujuan
untuk merekam suara manusia dengan frekuensi sampling yang telah ditentukan yaitu
4800 Hz. Nilai frekuensi sampling tersebut ditentukan berdasarkan criteria Nyquist pada
persamaan 2.1 berikut :
𝑓𝑠 ≥ 2𝑓𝑚
𝑓𝑠 ≥ 2 × 84
𝑓𝑠 ≥ 168
Lama waktu penangkapan ucapan ditentukan sebesar 1,5 detik. Waktu tersebut
ditentukan agar suara yang dihasilkan dapat terekam secara utuh. Penentuan lama waktu
berdasarkan hasil percobaan yang disertakan dalam lampiran (Lampiran 1). Semua
sampel suara yang diambil akan melalui proses sampling lebih dahulu sebelum masuk
ke tahap selanjutnya. Sampling suara dilakukan dengan menentukan panjang durasi
perekaman, frekuensi sampling dan jumlah sampel terlebih dahulu. Kemudian merekam
suara masukan dengan perintah waverecord. Menyimpan hasil rekaman dengan perintah
wavwrite. Lalu menampilkan sinyal hasil rekaman dengan perintah plot. Hasil keluaran
dari proses perekaman ini adalah dalam format wav. Diagram dapat dilihat seperti pada
Gambar 3.6.

Mulai

Pilih Nilai Sampling


Frame blocking

Tidak Keluaran Hasil


Start Rekam

Ya

Tekan Tombol Selesai


“REKAM”

Gambar 3.6 Diagram Alir Proses Perekaman

UNIVERSITAS SUMATERA UTARA


34

3.6.4 Normalisasi
Proses normalisasi ini dilakukan setelah keluaran proses rekam berupa wav. Pada proses
normalisasi, sinyal suara harus mempunyai nilai maksimum. Setelah pencarian nilai
maksimum maka tahap selanjutnya adalah membagi data dengan nilai absolut maksimal
suara yang terekam. Tujuan adanya normalisasi ini adalah untuk menyetarakan
amplitudo suara yang terekam menjadi maksimum, agar efek kuat atau lemahnya suara
yang terekam tidak mempengaruhi proses pengenalan suara. Gambar 3.7 menunjukkan
proses dari normalisasi.

Mulai

Masukan :
Suara Terekam

Mencari Nilai Maksimal


Dari Data Suara

Membagi Data Dengan


Nilai Absolut Maksimal
Suara Terekam

Keluaran : Hasil
Normalisasi

Selesai

Gambar 3.7 Diagram Alir Normalisasi

3.6.5 Pemotongan Sinyal


Proses pemotongan sinyal adalah proses pemotongan sinyal awal yang tidak digunakan
yang terletak pada sisi kiri atau bagian awal dari sinyal, yaitu daerah bagian silence dan

UNIVERSITAS SUMATERA UTARA


35

daerah bagian transisi. Tujuan dari pemotongan daerah bagian silence adalah untuk
menghilangkan bagian yang tidak termasuk dari bagian sinyal suara, dan tujuan
pemotongan pada daerah bagian transisi adalah untuk mendapatkan sinyal yang
merupakan sinyal suara manusia. Proses pemotongan daerah bagian transisi dilakukan
dengan menghilangkan ¼ bagian dari sinyal yang terdapat di bagian awal (bagian
transisi) setelah pemotongan bagian silence. Pemotongan sinyal dilakukan dengan
menentukan nilai batas potong yaitu 0,3. Lalu mencari bagian sinyal yang lebih besar
dari 0,3 dan lebih kecil dari -0,3. Sinyal yang dicari tersebut diinisialisasi sebagai b0.
Sinyal yang tidak termasuk b0 akan dihilangkan, sinyal yang dihilangkan ini dinamakan
sinyal silence. Kemudian pemotongan sinyal transisi dilakukan dengan mengalikan
jumlah data sinyal dengan 0,2. Pemotongan sinyal transisi diinisialisasi sebagai bts. Dan
menghilangkan data sinyal mulai dari indeks 1 sampai dengan indeks bts. Gambar 3.8
akan menjelaskan proses pemotongan sinyal.
. Mulai

Masukan : Hasil
Normalisasi

Pemotongan Bagian Silence


Mencari Sinyal > 0,3 dan <(-0,3)

Pemotongan Bagian Transisi


Mengalikan Jumlah Data Dengan
0,25

Keluaran : Hasil
Pemotongan

Selesai
Gambar 3.7 Diagram Alir Pemotongan Sinyal

UNIVERSITAS SUMATERA UTARA


36

3.6.6 Frame blocking


Frame blocking adalah proses selanjutnya setelah melalui proses dari pemotongan
sinyal. Nilai dari frame blocking bertujuan untuk mengurangi jumlah data sinyal yang
akan diproses. Frame blocking berfungsi untuk memilih data dari keseluruhan data yang
terekam dari hasil pemotongan sinyal. Proses pertama yang dilakukan dalam frame
blocking adalah menentukan nilai titik tengah dari data sampling. Jumlah data yang
diambil dalam proses ini sesuai dengan variasi yang dipilih user. Dari titik tengah data
yang diperoleh, ditentukan besarnya data yang akan diambil untuk proses selanjutnya.
Nilai dari frame blocking yang digunakan dalam penelitian ini adalah 16, 32,64,128 dan
256. Gambar 3.8 memperlihatkan proses dari frame blocking.

Mulai

Pilih Nilai Frame


blocking Pada GUI

Mengambil Data Dari


Nilai Frame

Keluaran : Hasil
Frame blocking

Selesai

Gambar 3.8 Diagram Alir Frame blocking

3.6.7 Hamming Window

Windowing memiliki fungsi untuk menghilangkan efek diskontinuitas yang diakibatkan


oleh proses sebelumnya, yaitu frame blocking ketika sinyal ditransformasikan ke domain

UNIVERSITAS SUMATERA UTARA


37

frekuensi. Dalam penelitian ini menggunakan hamming window dimana penggunaan


windowing ini membuat hasil akan lebih halus dalam menghilangkan efek dari
diskontinuitas. Dalam proses ini, hasil dari frame blocking akan dikalikan dengan
hamming window sehingga akan didapatkan hasil untuk proses windowing dari
persamaan 2.3. Hal ini dilakukan untuk mendapatkan hasil yang maksimal pada proses
FFT, sehingga sampel yang telah dibagi menjadi beberapa frame perlu dijadikan suara
kontiniu. Berikut adalah diagram dari proses hamming window yang ditunjukkan pada
Gambar 3.9.
Mulai

Masukan : Hasil
Frame blocking

Perkalian Elemen Antara


Masukan Data Dengan Hamming
Window

Keluaran : Hasil
Hamming Window

Selesai
Gambar 3.9 Diagram Alir Hamming Window

3.6.8 Ekstraksi Ciri FFT


Proses selanjutnya adalah ektraksi ciri FFT. Proses ini dimulai dengan mencari nilai
komputasi FFT yang dilanjutkan dengan mencari nilai absolute dari hasil komputasi
FFT tersebut. Proses dilanjutkan dengan mencari nilai absolute dari nilai log hasil
perhitungan matematis FFT. Hasil – hasil komputasi tersebut kemudian dipotong
sebanyak setengah dari ukuran sinyal yang telah ditentukan, kemudian dari hasil
pemotongan tersebut dipilih bagian yang akan diproses. Proses terakhir dalam ekstraksi
ciri adalah pengubahan dimensi dari sinyal.

UNIVERSITAS SUMATERA UTARA


38

Pencarian nilai mutlak pada tiap perhitungan ditujukan agar nilai yang didapat
merupakan bilangan real sehingga proses perhitungan dapat dilanjutkan.
Gambar 3.10 merupakan diagram proses ekstraksi ciri FFT.
Mulai

Masukan : Hasil
Hamming Window

Menghitung Nilai FFT Dan


Nilai Absolutnya

Ambil Setengah Sinyal


Bagian Kiri

Keluaran : Hasil
Normalisasi

Selesai
Gambar 3.10 Diagram Alir Ekstraksi Ciri FFT

3.6.9 Penentuan Nilai Maksimum


Proses pencarian nilai maksimum bertujuan untuk mencari nilai-nilai maksimum setelah
mendapatkan sinyal FFT. Proses ini bertujuan untuk menganalisis dari hasil proses FFT
sebelumnya. Nilai-nilai maksimum tersebut yang akan dijadikan sebagai penentuan
keluaran dari sistem pengenalan dengan menggunakan look up table. Selanjutnya akan
diperoleh suara yang dimainkan.
Untuk mencari nilai-nilai maksimum pada sinyal FFT, terlebih dahulu mencari
panjang data sinyal. Lalu mencari nilai-nilai absolute FFT. Kemudian mencari nilai-nilai
tertinggi pada sinyal FFT sebagai indeks nilai maksimumnya. Dan hasilnya ditampilkan
dengan perintah bar. Proses penentuan nilai maksimum dapat dilihat pada Gambar 3.11.

UNIVERSITAS SUMATERA UTARA


39

Mulai

Masukan : Hasil
Ekstraksi Ciri FFT

Mencari Nilai Tertinggi


Pada Sinyal FFT

Keluaran : Nilai
Maksimum

Selesai
Gambar 3.11 Diagram Alir Pencarian Nilai Maksimum

3.6.10 Penentuan Teks Suara


Ya
Mulai Masukan : Nilai Maksimum RL≤i≤RH RUT

Tidak
Ya
DL≤i≤DH DAMAI

Tidak
Ya
JL≤i≤JH JESIKA

Tidak
Ya
PL≤i≤PH PUTRI

Tidak
Keluaran : Teks Suara Ya
Selesai EL≤i≤EH EZRA
Pada GUI

ERROR

Gambar 3.12 Diagram Alir Pencarian Nilai Maksimum

UNIVERSITAS SUMATERA UTARA


40

Setelah mengetahui nilai maksimumnya, maka hasil keluaran pengenalan berupa teks
suara. Penentuan keluaran menggunakan look up table. Gambar 3.3 memperlihatkan
proses pencarian nilai maksimum pada look up table. Table berikut memperlihatkan
proses perancangan penentuan range nilai maksimum setiap frame blocking.

Tabel 3.2 Look up table Untuk Penentuan Suara Pada Frame blocking 16

No Suara Nilai Maksimum


1 RUT RL26 ≤nilaimaks≤ RH16
2 DAMAI DL26 ≤nilaimaks≤ DH16
3 JESIKA JL26 ≤nilaimaks≤ JH16
4 PUTRI PL26 ≤nilaimaks≤ PH16
5 EZRA EL26 ≤nilaimaks≤ EH16

Tabel 3.3 Look up table Untuk Penentuan Suara Pada Frame blocking 32

No Suara Nilai Maksimum


1 RUT RL32 ≤nilaimaks≤ RH32
2 DAMAI DL32 ≤nilaimaks≤ DH32
3 JESIKA JL32 ≤nilaimaks≤ JH32
4 PUTRI PL32 ≤nilaimaks≤ PH32
5 EZRA EL32 ≤nilaimaks≤ EH32

Tabel 3.4 Look up table Untuk Penentuan Suara Pada Frame blocking 64

No Suara Nilai Maksimum


1 RUT RL64 ≤nilaimaks≤ RH64
2 DAMAI DL64 ≤nilaimaks≤ DH64
3 JESIKA JL64 ≤nilaimaks≤ JH64
4 PUTRI PL64 ≤nilaimaks≤ PH64
5 EZRA EL64 ≤nilaimaks≤ EH64

Tabel 3.5 Look up table Untuk Penentuan Suara Pada Frame blocking 128

No Suara Nilai Maksimum


1 RUT RL228 ≤nilaimaks≤ RH128
2 DAMAI DL228 ≤nilaimaks≤ DH128
3 JESIKA JL228 ≤nilaimaks≤ JH128
4 PUTRI PL228 ≤nilaimaks≤ PH128
5 EZRA EL228 ≤nilaimaks≤ EH128

UNIVERSITAS SUMATERA UTARA


41

Tabel 3.6 Look up table Untuk Penentuan Suara Pada Frame blocking 256

No Suara Nilai Maksimum


1 RUT RL256 ≤nilaimaks≤ RH256
2 DAMAI DL256 ≤nilaimaks≤ DH256
3 JESIKA JL256 ≤nilaimaks≤ JH256
4 PUTRI PL256 ≤nilaimaks≤ PH256
5 EZRA EL256 ≤nilaimaks≤ EH256

Untuk menentukan nilai maksimum dari look up table maka harus menentukan
nilai range dari setiap suara. Misalkan dilakukan percobaan untuk suara “RUT” dengan
3 kali percobaan pada frame 256, percobaan pertama memperoleh nilai maksimum 54
pada sinyal FFT, selanjutnya percobaan kedua memperoleh nilai maksimum 52 pada
sinyal FFT, dan percobaan yang ketiga memperoleh nilai maksimum 56 pada sinyal
FFT. Maka, range nilai maksimum untuk suara “RUT” pada frame 256 adalah 52
sebagai RL dan nilai maksimum 56 sebagai RH. Apabila nilai yang dihasilkan tidak
berada pada range tersebut, maka keluaran pada GUI berupa “ERROR” yang akan
ditampilkan dalam bentuk teks. Proses penentuan range nilai maksimum look up table
dapat dilihat pada (Lampiran 2).

3.6.11 Keluaran (Teks)


Proses selanjutnya adalah menampilkan keluaran dari proses pengenalan suara dalam
bentuk teks suara sesuai dengan suara yang dimainkan. Menampilkan teks keluaran
suara menggunakan callback yang terdapat pada GUI Matlab, dengan inisialisasi
suaraout untuk hasil pengenalan suara Rut, Damai, Jesika, Putri, dan Ezra. Proses
penentuan keluarannya menggunakan look up table. Setelah hasil yang diperoleh
ternyata adalah bukan suara yang terinisialisasi maka keluarannya berupa “ERROR”.
Kemudian jika hasil yang diperoleh merupakan suara yang terinisialisasi maka akan
ditampilkan dalam bentuk teks pada GUI Matlab. Proses keluaran teks suara dapat
dilihat pada Gambar 3.12.

UNIVERSITAS SUMATERA UTARA


42

.
Mulai

Masukan : Nilai
Maksimum

Tidak
Hasilout =
Hasilout = Error
Suaraout

Ya

Suaraout = RUT, JESIKA,


DAMAI, PUTRI, EZRA

Keluaran : Teks
Suara

Selesai

Gambar 3.13 Diagram Alir Proses Menampilkan Teks Keluaran

3.7 Analisa Performa


Analisa performa bertujuan untuk mengetahui sistem yang telah dirancang bekerja
secara baik atau tidak akibat dari pengubahan panjang FFT dan frame blocking.
Perancangan analisa performa ini menggunakan 10 kali percobaan untuk setiap suara
Rut, Damai, Jesika, Putrid an Ezra dalam pengujian sistem pengenalan. Kemudian untuk
mengetahui tingkat pengenalan dari sistem menggunakan rumurs seperti berikut :
𝑉
𝑇𝑖𝑛𝑔𝑘𝑎𝑡 𝑃𝑒𝑛𝑔𝑒𝑛𝑎𝑙𝑎𝑛 = 𝐵𝑎𝑛𝑦𝑎𝑘𝑛𝑦𝑎 × 100% (3.1)
𝑃𝑒𝑟𝑐𝑜𝑏𝑎𝑎𝑛

Dengan 𝑉 adalah jumlah suara yang dikenali dengan benar.

UNIVERSITAS SUMATERA UTARA


43

BAB 4 HASIL DAN PEMBAHASAN

4.1 Pengenalan Pola


Pengenalan pola (pattern recognition) dapat diartikan sebagai proses klasifikasi dari
objek atau pola menjadi beberapa kategori atau kelas dan bertujuan untuk pengambilan
keputusan. Pola adalah bentuk atau model yang dapat dipakai untuk membuat atau untuk
menghasilkan suatu atau bagian dari sesuatu, khususnya jika sesuatu yang ditimbulkan
mempunyai sejenis pola dasar yang dapat ditunjukkan atau terlihat, yang mana dapat
dikatakan mempertunjukan pola. Deteksi pola dasar disebut pengenalan pola. Untuk
dapat mengenali suara dan pemilik suara (speaker), diperlukan suatu pengenalan pola
yang dapat mengenal dan mencocokan pola yang diinput dan pola yang telah disimpan
di dalam database. Pengenalan pola digunakan untuk mengenali objek kompleks dari
bentuk sifat objek yang akan dikenali ciri-ciri dari objeknya. Pengenalan pola secara
formal dapat dideskripsikan sebagai sebuah proses yang menerima pola atau sinyal
berdasarkan hasil pengukuran. (Munir, 2014).
Penelitian pengenalan suara ini memakai pendekatan pengenalan pola. Dimana
untuk menjalankan program pengenalan suara, terlebih dahulu dianalisis sampel suara
yang akan digunakan sehingga hasil analisis akan dijadikan acuan atau pola dasar yang
dapat mengenali suara. Proses menganalisis sampel dan pengolahan ciri – ciri yang
dimiliki oleh pola sampel tersebut dilakukan di Matlab.

4.2 Penjelasan Sintaks Program Pengenalan Suara


Untuk menjalankan program pengenalan suara, user terlebih dahulu memilih nilai frame
blocking. Setelah memilih nilai frame blocking, user dapat menjalankan program
pengenalan suara dengan menekan tombol “REKAM”. Pada saat menekan tombol
“REKAM” maka program secara otomatis merekam suara. Proses perekaman ini
menghasilkan keluaran berupa plot FFT dan indeks nilai maksimum. Kemudian program
akan menampilkan keluaran berupa teks sesuai suara yang dikenali. Untuk mengulang
program pengenalan suara, user dapat menekan tombol “REKAM” dan untuk

UNIVERSITAS SUMATERA UTARA


44

membersihkan jendela plot FFT, indeks nilai maksimum, dan teks suara, user dapat
menekan tombol “RESET”. Tombol “SELESAI” digunakan untuk keluar dari tampilan
utama program pengenalan suara. Pada tampilan utama GUI pengenalan suara terdapat 1
pop up menu, 3 push button, 1 axes dan 2 Edit Text.

4.2.1 Pop Up Menu


Program pengenalan dapat berjalan dengan baik setelah pengguna memilih variasi nilai
yang diinginkan. Variasi tersebut terdapat pada pop up menu 1 yang diberi inisialisasi
nama “frame blocking’ untuk memilih variasi nilai frame blocking yaitu 16, 32, 64, 128
dan 256. Gambar 4.1 memperlihatkan listing program untuk variasi nilai frame blocking.
indeks=get(handles.popupmenu1, 'Value');
switch indeks
case 1
frameb=16;
case 2
frameb=32;
case 3
frameb=64;
case 4
frameb=128;
case 5
frameb=256;
end
handles.frame=frameb;
guidata(hObject,handles);

Gambar 4.1 Sintaks Program Untuk Memilih Nilai Frame blocking

Pada program dalam pemilihan nilai variasi frame blocking, nilai frame blocking
di inisialisasi dengan nama “frameb”. Inisialisasi tersebut dipakai untuk menginisialisasi
nilai dalam pop up menu yang dipakai dalam program selanjutnya. Inisialisasi “frameb”
diubah menjadi “frame” dengan diikuti kata “handles”, hal ini untuk membuat agar nilai
frame blocking yang telah dipilih dapat dikenali sebagai bahasa program untuk langkah
selanjutnya. Tiap program dalam pop up menu mempunyai dua jenis kata inisialisasi,
seperti “frameb” dan “frame” untuk pemilihan variasi nilai frame blocking. Hal ini
dikarenakan untuk membedakan susunan proses pengolahan nilai dalam program agar
lebih jelas. Proses akhir inisialisasi dalam pop up menu terdapat pada bahasa program

UNIVERSITAS SUMATERA UTARA


45

“handles”. Setelah melalui proses program “handles”, nilai-nilai variasi dapat digunakan
untuk program selanjutnya. Untuk proses pemanggilan nilai yang akan diubah menjadi
nilai untuk bahasa program digunakan pilihan callback.

4.2.2 Push Button, Axes dan Edit Text


Dalam program pengenalan suara ini menggunakan 3 buah push button, masing –
masing untuk merekam, mereset, dan mengakhiri program pengenalan suara, yaitu
tombol “REKAM”, “RESET”, dan “SELESAI”. Saat user menekan tombol push button
1 atau tombol “REKAM” maka program akan berjalan otomatis, yaitu mulai dari proses
perekaman suara, kemudian menampilkan plot FFT pada kotak axes1, menampilkan
indeks nilai maksimum pada Edit Text 2, dan menampilkan teks hasil pengenalan suara
pada Edit Text 1. Saat user menekan tombol push button 2 atau tombol “RESET” maka
program secara otomatis akan mereset atau menghapus semua data dari hasil
sebelumnya, dan membuat tampilan GUI MATLAB menjadi seperti semula sebelum
program dijalankan. Kemudian jika user menekan tombol push button 3 atau tombol
“SELESAI” maka program pengenalan suara akan berhenti dan menutup program.

4.2.2.1 Rekam
Pada proses perekaman ini akan melalui proses pertama yaitu sampling yang bertujuan
untuk merekam suara manusia. Semua sampel suara yang diambil akan melalui proses
sampling lebih dahulu sebelum masuk ke tahap selanjutnya. Hasil keluaran dari proses
perekaman ini adalah dalam format wav. Berikut listing program untuk proses
perekaman suara beserta tampilan hasil perekaman.
sample_length=1.5;
sample_freq=4800;
sample_time=(sample_length*sample_freq);
x=wavrecord(sample_time, sample_freq);
wavwrite(x, sample_freq, 's.wav');
figure(1)
xlabel('Data Tercuplik')
ylabel('Amplitudo')
axes(handles.axes1)
plot(x);

Gambar 4.2 Sintaks Program Untuk Proses Merekam

UNIVERSITAS SUMATERA UTARA


46

Program perekaman suara memakai frekuensi sampling 4800 Hz yang


diinisialisasi sebagai sample_freq dan durasi 1,5 detik yang diinisialisasi dengan
sample_length. Program sample_time berfungsi untuk menampilkan gambar perekaman
sebesar 7200 Hz. Perintah program wavrecord untuk merekam suara dan wavwrite untuk
menyimpan suara yang telah direkam dengan nama “s.wav”.
Ucapan suara yang telah selesai direkam, diinisialisasi dengan “x”. Inisialisasi
“x” ini yang diplotkan dalam figure 1 dan ditampilkan dalam kotak axes1 (Plot
Perekaman). Sumbu x diberi nama “Data Tercuplik” dan sumbu y diberi nama
“Amplitudo”. Berikut ini merupakan hasil plot sinyal perekaman.

Gambar 4.3 Tampilan Plot Sinyal Perekaman

4.2.2.2 Normalisasi
Proses normalisasi ini dilakukan setelah keluaran proses rekam wav. Pada proses
normalisasi, sinyal suara harus mempunyai nilai maksimum. Dalam program untuk
menampilkan plot sinyal FFT, proses pertama yang dilakukan adalah proses normalisasi
untuk sinyal suara terekam. Berikut listing program untuk proses normalisasi sinyal
suara beserta tampilan normalisasinya.

UNIVERSITAS SUMATERA UTARA


47

% Batas Potong
b0=0.3;
frame=128;% nilai frame blocking
16,32,64,128 dan 256

%Normalisasi
y1=x/max(x);
figure(2)
plot(y1)

Gambar 4.4 Sintaks Program Untuk Proses Normalisasi

Batas potong diinisialisasi sebagai b0. Nilai b0 diinput terlebih dahulu agar dapat
digunakan dalam program selanjutnya. Dari proses perekaman hingga proses keluaran
menggunakan frame blocking 128. y1 adalah hasil normalisasi, x adalah sinyal suara
terekam dan max(x) adalah nilai maksimum dari sinyal suara terekam. Normalisasi
dilakukan dengan membagi data masukan (data sinyal suara terekam) dengan nilai
maksimum data tersebut. y1 diplotkan dalam figure 2. Berikut ini merupakan hasil plot
sinyal hasil normalisasi.

Gambar 4.5 Tampilan Plot Sinyal Normalisasi

UNIVERSITAS SUMATERA UTARA


48

4.2.2.3 Pemotongan Sinyal


Proses selanjutnya adalah pemotongan sinyal yang dilakukan sebanyak dua kali untuk
sinyal dari hasil normalisasi. Pemotongan yang pertama dilakukan pada bagian silence
atau bagian sinyal yang tidak termasuk sinyal suara manusia. Pemotongan yang kedua
dilakukan pada bagian transisi. Berikut listing program untuk proses pemotongan sinyal
suara beserta tampilan hasil pemotongan sinyal.

% Pemotongan Sinyal
% 1. Potong
b1=find(y1>b0 | y1<-b0);
y1(1:b1(1))=[];
figure(3)
plot(y1)

Gambar 4.6 Sintaks Program Untuk Pemotongan Sinyal I (Silence)

b1 adalah sinyal bagian silence. Pada pemotongan sinyal bagian silence, data
yang tingginya lebih besar dari 0,3 dan lebih kecil dari (-0,3) diinisialisasikan sebagai
b0. Data yang tidak memenuhi syarat dari b0 merupakan bagian sinyal silence sehingga
sinyal tersebut dihilangkan ([ ]). y1 diplotkan dalam figure 3. Berikut ini merupakan
hasil plot sinyal bagian silence.

UNIVERSITAS SUMATERA UTARA


49

Gambar 4.7 Tampilan Hasil Pemotongan Sinyal I (Silence)

Berikut adalah listing program pemotongan sinyal bagian transisi.

% 2. Potong 2
bts=floor(0.25*length(y1));
y1(1:bts)=[];
figure(4)
plot(y1)

Gambar 4.8 Sintaks Program Untuk Pemotongan Sinyal II (Transisi)

Selanjutnya pemotongan bagian transisi dilakukan dengan menghilangkan ¼


bagian sinyal yang terdapat pada bagian awal yang diinisialisasikan sebagai bts pada
program. Sinyal tersebut dihilangkan dengan tujuan untuk memperoleh sinyal suara
yang benar – benar sinyal suara manusia. y1 diplotkan dalam figure 4. Berikut ini
merupakan hasil plot sinyal bagian transisi.

UNIVERSITAS SUMATERA UTARA


50

Gambar 4.9 Tampilan Hasil Pemotongan Sinyal II (Transisi)

4.2.2.4 Frame blocking


Proses selanjutnya adalah frame blocking yang bertujuan untuk mengambil sebagian
data sesuai dengan panjang nilai frame blocking yang dipilih oleh user. Nilai dari frame
blocking yang digunakan adalah 16, 32,64,128 dan 256. Data yang diambil tersebut
mewakili seluruh data suara yang terekam. Berikut listing program untuk proses frame
blocking beserta tampilan hasil frame blocking.

% Frame blocking
y2=y1(1:frame);
figure(5)
plot(y2)

Gambar 4.10 Sintaks Program Untuk Frame blocking

y2 adalah hasil frame blocking. Proses pertama yang dilakukan dalam frame
blocking adalah menentukan nilai titik tengah dari data hasil pemotongan sinyal (y1).
Kemudian ditentukan besarnya data yang akan diambil untuk proses selanjutnya. Dalam
proses ini, data yang diambil mulai dari sinyal paling kiri dan akan diambil sepanjang
nilai frame yang telah dipilih sehingga memudahkan dalam proses perhitungan dan
analisa sinyal. y2 diplotkan dalam figure 5. Berikut ini merupakan hasil frame blocking.

UNIVERSITAS SUMATERA UTARA


51

Gambar 4.11 Tampilan Hasil Frame blocking

4.2.2.5 Windowing
Windowing memiliki fungsi untuk menghilangkan efek diskontinuitas yang diakibatkan
oleh proses sebelumnya, yaitu frame blocking ketika sinyal ditransformasikan ke domain
frekuensi. Sehingga sampel yang telah dibagi menjadi beberapa frame perlu dijadikan suara
kontiniu. Proses windowing ini menggunakan hamming window. Berikut listing program
untuk proses windowing beserta tampilan hasil windowing.

% Windowing
h=hamming(frame);
y3=y2.*h;
figure(6)
plot(y3)

Gambar 4.12 Sintaks Program Untuk Windowing

y3 adalah hasil hamming window. Dalam prosesnya, hasil perhitungan dari


proses frame blocking akan dikalikan dengan hamming. y3 diplotkan dalam figure 6.
Berikut ini merupakan hasil hamming window.

UNIVERSITAS SUMATERA UTARA


52

Gambar 4.13 Tampilan Hasil Hamming Window

4.2.2.6 Ekstraksi Ciri FFT (Fast Fourier Transform)


Proses selanjutnya adalah ektraksi ciri FFT. Ekstraksi ciri FFT ini merupakan proses
untuk mendapatkan sederetan besaran pada bagian sinyal terekam untuk menetapkan
pola pembelajaran atau pola uji. Perhitungan FFT bertujuan untuk mencari nilai absolute
yang kemudian akan dianalisis untuk mengetahui suara yang dimainkan oleh user.
Berikut listing program untuk proses ekstraksi ciri FFT beserta tampilan hasil ekstraksi
ciri FFT.
%Ekstraksi Ciri FFT
y4=abs(fft(y3));
figure(7)
plot(y4)
y5=y4(1:frame/2);
axes(handles.axes2)
figure(8)
plot(y5);
bar(y5);

Gambar 4.14 Sintaks Program Untuk Ekstraksi Ciri FFT

UNIVERSITAS SUMATERA UTARA


53

Proses ini dimulai dengan mencari nilai komputasi FFT yang diinisialisasi
sebagai fft dan dilanjutkan dengan mencari nilai absolute dari hasil komputasi FFT
tersebut yang diinisialisasi sebagai abs. y4 adalah hasil ekstraksi ciri FFT. y4 diplotkan
dalam figure 7. Berikut ini merupakan hasil ekstraksi ciri FFT.

Gambar 4.15 Tampilan Hasil Ekstraksi Ciri FFT

Hasil – hasil komputasi tersebut kemudian dipotong sebanyak setengah dari


ukuran sinyal yang telah ditentukan. Proses pemotongan ini diinisialisasi sebagai y5,
kemudian dari hasil pemotongan tersebut dipilih bagian yang akan diproses. Proses
terakhir dalam ekstraksi ciri adalah pengubahan dimensi dari sinyal yang diinisialisasi
sebagai bar dan ditampilkan dalam figure 8 dan yang akan diplotkan dalam axes2.
Dimana axes2 ini adalah plot FFT dalam GUI Matlab. Berikut ini merupakan hasil
pemotongan setengah sinyal FFT.

UNIVERSITAS SUMATERA UTARA


54

Gambar 4.16 Tampilan Hasil Pemotongan Setengah Sinyal FFT

4.2.2.7 Pencarian Nilai Maksimum


Proses pencarian nilai maksimum bertujuan untuk mencari nilai-nilai maksimum setelah
mendapatkan sinyal FFT. Nilai-nilai maksimum tersebut yang akan dijadikan sebagai
penentuan keluaran dari sistem pengenalan dengan menggunakan look up table. Berikut
listing program untuk mencari nilai maksimum beserta tampilan hasil pencarian nilai
maksimum.

% Pencarian indeks nilai maksimum


imax=find(y5==max(y5));
set(handles.edit2,'string',imax);

Gambar 4.17 Sintaks Program Untuk Pencarian Nilai maksimum

Nilai-nilai maksimum diinisialisasi dengan imax. Nilai maksimum yang didapat


akan ditampilkan dalam edit2. Dimana edit2 merupakan tampilan Indeks FFT Maks Ke-
dalam GUI Matlab.

UNIVERSITAS SUMATERA UTARA


55

Gambar 4.18 Tampilan Nilai Maksimum Yang Diperoleh

4.2.2.8 Look Up Table


Dalam sistem pengenalan suara ini digunakan 5 buah look up table untuk setiap nilai
frame blocking sesuai dengan perancangan look up table pada BAB III yang berfungsi
sebagai penentuan keluaran. Nilai yang digunakan untuk look up table diperoleh dari
hasil pengambilan data pengujian sebanyak 10 kali setiap suara dengan mencari nilai
maksimum pada sinyal FFT. Berikut merupakan look up table pada setiap nilai frame
blocking.

Tabel 4.1 Look Up Table Untuk Frame blocking 16


No Suara Nilai Maksimum
1 Rut 1≤nilaimaks≤2
2 Damai 3≤nilaimaks≤4
3 Jesika 5≤nilaimaks≤6
4 Putri 7≤nilaimaks≤8
5 Ezra 9≤nilaimaks≤10

UNIVERSITAS SUMATERA UTARA


56

Tabel 4.2 Look Up Table Untuk Frame blocking 32


No Suara Nilai Maksimum
1 Rut 4≤nilaimaks≤5
2 Damai 6≤nilaimaks≤7
3 Jesika 8≤nilaimaks≤9
4 Putri 10≤nilaimaks≤11
5 Ezra 12≤nilaimaks≤13

Tabel 4.3 Look Up Table Untuk Frame blocking 64


No Suara Nilai Maksimum
1 Rut 8≤nilaimaks≤9
2 Damai 10≤nilaimaks≤11
3 Jesika 12≤nilaimaks≤13
4 Putri 14≤nilaimaks≤15
5 Ezra 16≤nilaimaks≤17

Tabel 4.4 Look Up Table Untuk Frame blocking 128


No Suara Nilai Maksimum
1 Rut 26≤nilaimaks≤28
2 Damai 29≤nilaimaks≤31
3 Jesika 32≤nilaimaks≤34
4 Putri 37≤nilaimaks≤39
5 Ezra 41≤nilaimaks≤43

Tabel 4.5 Look Up Table Untuk Frame blocking 256


No Suara Nilai Maksimum
1 Rut 52≤nilaimaks≤56
2 Damai 57≤nilaimaks≤64
3 Jesika 65≤nilaimaks≤70

UNIVERSITAS SUMATERA UTARA


57

4 Putri 75≤nilaimaks≤80
5 Ezra 81≤nilaimaks≤85

Tabel 4.1 sampai 4.5 memperlihatkan look up table yang digunakan untuk setiap
nilai frame blocking. Pada look up table nilai range low dan range high mengalami
perubahan nilai range, agar tidak terlihat nilai maksimum yang sama dan harus sesuai
dengan penulisan program yang benar. Perubahan nilai range menggunakan nilai selisih
terkecil dari setiap suara, nilai selisih terkecil digunakan untuk menentukan range low
dan range high.

4.2.2.9 Penentuan Teks Suara


Setelah mengetahui nilai maksimumnya, maka diperoleh hasil keluaran pengenalan
berupa teks suara. Penentuan keluaran menggunakan look up table. Berikut merupakan
listing program untuk menampilkan hasil keluaran teks suara.

% Pencarian nada yang sesuai menggunakan LUT


if frame==16
suaraout=lut16(imax,handles);
elseif frame==32
suaraout=lut32(imax,handles);
elseif frame==64
suaraout=lut64(imax,handles);
elseif frame==128
suaraout=lut128(imax,handles);
elseif frame==256
suaraout=lut256(imax,handles);
end

function suaraout=lut16(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 16 titik
if imax>=1 && imax<=2
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=3 && imax<=4
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=5 && imax<=6
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)

Gambar 4.19 Sintaks Program Untuk Menampilkan Teks Suara

UNIVERSITAS SUMATERA UTARA


58

elseif imax>=7 && imax<=8


suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)
elseif imax>=9 && imax<=10
suaraout={'EZRA'};
set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
end

function suaraout=lut32(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 32 titik
if imax>=4 && imax<=5
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=6 && imax<=7
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=8 && imax<=9
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)
elseif imax>=10 && imax<=11
suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)
elseif imax>=12 && imax<=13
suaraout={'EZRA'};
set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
end

function suaraout=lut64(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 64 titik
if imax>=8 && imax<=9
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=10 && imax<=11
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=12 && imax<=13
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)
elseif imax>=14 && imax<=15
suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)
elseif imax>=16 && imax<=17
suaraout={'EZRA'};

Gambar 4.19 (lanjutan) Sintaks Program Untuk Menampilkan Teks Suara

UNIVERSITAS SUMATERA UTARA


59

set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
end

function suaraout=lut128(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 128 titik
if imax>=26 && imax<=28
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=29 && imax<=31
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=32 && imax<=34
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)
elseif imax>=37 && imax<=39
suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)
elseif imax>=41 && imax<=43
suaraout={'EZRA'};
set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
end

function suaraout=lut256(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 256 titik
if imax>=52 && imax<=56
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=57 && imax<=64
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=65 && imax<=70
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)
elseif imax>=75 && imax<=80
suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)
elseif imax>=81 && imax<=85
suaraout={'EZRA'};
set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
end

Gambar 4.19 (lanjutan) Sintaks Program Untuk Menampilkan Teks Suara

UNIVERSITAS SUMATERA UTARA


60

Setelah mendapatkan nilai maksimumnya maka nilai tersebut akan dicocokkan


dengan nilai pada look up table untuk nilai frame blocking yang dipilih oleh user. Dalam
proses pengenalan digunakan inisialisasi suaraout untuk mengetahui suara yang
dimainkan oleh user berada pada range indeks nilai maksimum ke berapa dari suara
tersebut, kemudian akan ditampilkan dalam bentuk teks suara. Apabila indeks nilai
maksimum tidak berada pada range dari setiap suara yang telah ditentukan maka
program akan menampilkan teks berupa error.

4.2.2.10 Reset
Pushbutton “RESET” digunakan untuk membersihkan axes dan edit pada tampilan GUI
menjadi kondisi awal sebelum program pengenalan suara dijalankan. Berikut merupakan
listing program untuk pushbutton “RESET” :

axes(handles.axes1);
plot(0);
axes(handles.axes2);
plot(0);
set(handles.edit1,'string',' ');
set(handles.edit2,'string',' ');
set(handles.popupmenu1,'Value',1);

Gambar 4.20 Sintaks Program Untuk Pushbutton “RESET”

4.2.2.11 Selesai
Pushbutton “SELESAI” digunakan untuk mengakhiri program pengenalan suara dan
keluar dari tampilan GUI. Berikut merupakan listing program untuk pushbutton
“SELESAI” :

close;

Gambar 4.21 Sintaks Program Untuk Pushbutton “SELESAI”

4.3 Analisa Performa


Pada pengujian ini, program pengenalan suara menggunakan seluruh nilai dari frame
blocking yaitu 16, 32, 64, 128 dan 256. Dalam pengujian ini dilakukan pengambilan data

UNIVERSITAS SUMATERA UTARA


61

sebanyak 10 kali untuk masing-masing suara tiap nilai frame blocking. Tujuan dari
pengujian ini adalah untuk mengetahui apakah program dapat bekerja dengan baik atau
tidak.

Tabel 4.6 Hasil Pengujian Suara Untuk Setiap Frame Bl;ocking


Frame Suara Error Persentase Pengenalan
blocking Rut Damai Jesika Putri Ezra (%) (%)
16 10 5 2 0 1 64 36
32 10 6 2 3 0 58 42
64 10 8 5 4 2 42 58
128 10 10 9 8 8 10 90
256 10 10 10 9 9 4 96

UNIVERSITAS SUMATERA UTARA


62

BAB 5 KESIMPULAN DAN SARAN

5.1 Kesimpulan
Berdasarkan pengujian yang telah dilakukan dalam sistem pengenalan suara manusia
menggunakan metode Fast Fourier Transform (FFT), maka diperoleh hasil sebagai
berikut.
1. Sistem pengenalan telah bekerja sesuai dengan perancangan dan dapat
menampilkan Plot Sinyal FFT, Indeks Nilai Maksimum dan Hasil Pengenalan
Suara pada GUI MATLAB untuk setiap suara yang teridentifikasi. Sistem
pengenalan juga dapat mengenali suara dengan benar sesuai dengan suara yang
dimainkan untuk nilai frame blocking 16, 32, 64, 128 dan 256. Dimana tingkat
pengenalan menjadi lebih baik jika nilai frame lebih tinggi, dan pada penelitian
ini menghasilkan tingkat pengenalan terbaik yaitu 96 % pada frame blocking
256. Namun tingkat pengenalan suara menjadi turun ketika nilai frame blocking
berada dibawah 128, yaitu 16, 32 dan 64. Penurunan tingkat pengenalan ini
dikarenakan nilai indeks maksimum setiap suara berada di range yang sama.
2. Telah dirancang sebuah program bantu untuk mengidentifikasi suara manusia
dimana dalam program tersebut terdapat beberapa subproses yang akan dilalui
hingga akhirnya didapatkan hasil pengenalan suara. Program dapat dilihat pada
Lampiran 4.

UNIVERSITAS SUMATERA UTARA


63

5.2 Saran
Pada sistem pengenalan suara menggunakan Metode Fast Fourier Transform (FFT)
berbasis Matlab ini tentunya masih jauh dari kesempurnaan. Oleh karena itu diharapkan
dapat membantu pengembangan sistem pengenalan suara ini agar semakin baik. Adapun
saran penulis kepada penulis berikutnya adalah sebagai berikut :
1. Menggunakan metode yang berbeda dalam sistem pengenalan sehingga dapat
dibandingkan hasil tingkat pengenalan suaranya.
2. Pengembangan penerapan sistem agar dapat mengenali suara tanpa harus merekam
masukan secara manual melainkan secara kontiniu.

UNIVERSITAS SUMATERA UTARA


64

DAFTAR PUSTAKA

Aminuddin, Jamrud. 2008. DASAR-DASAR FISIKA KOMPUTASI


MENGGUNAKAN MATLAB. Yogyakarta. Gava Media.
Azhar, Muhamad. 2013. IDENTIFIKASI SUARA DENGAN MATLAB SEBAGAI
APLIKASI JARINGAN SYARAF TIRUAN. Bandung. Universitas Komputer
Indonesia (UNIKOM).
Bhaskoro, Susetyo B. 2012. APLIKASI PENGENALAN GENDER MENGGUNAKAN
SUARA. Bandung. Universitas Widyatama.
Fetra, Niky. 2015. APLIKASI PENCARIAN CHORD DALAM MEMBANTU
PENCIPTAAN LAGU MENGGUNAKAN ALGORITMA FAST FOURIER
TRANSFORM (FFT) DAN METODE KLASIFIKASI K-NEAREST
NEIGHBOR (KNN). Riau. UIN Sultan Syarif Kasim.
Fingkirani, Eka. 2014. PENGERTIAN, SEJARAH, JENIS-JENIS DAN CARA KERJA
MIKROFON. http://ekafingkirani.blogspot.com/2014/11/pengertian-sejarah-
jenis-jenis-dan-cara.html diakses tanggal 28 Agustus 2017.
Gunawan, D. 2011. PENGOLAHAN SINYAL DIGITAL DENGAN
PEMROGRAMAN MATLAB. Jakarta. Graha Ilmu.
Hanggarsari, Prativi N. 2012. SIMULASI SISTEM PENGACAK SINYAL SUARA
SECARA REALTIME BERBASIS FAST FOURIER TRANSFORM (FFT).
Bandar Lampung. Universitas Lampung.
Hapsari, Jenny P. 2011. APLIKASI PENGENALAN SUARA DALAM
PENGAKSESAN SISTEM INFORMASI AKADEMIK. Semarang. Universitas
Diponegoro.
Hidayat, Risanuri. 2011. DFT MENJADI FFT. Yoyakarta. Univertsitas Gajah Mada.
Jain, A.K. 2000. STATISTICAL PATERN RECOGNITION. Page : 4-37
Indriani, Y. H. 2015. PENGENALAN NADA BELIRA MENGGUNAKAN ANALISIS
AMPLITUDO PADA RANAH FREKUENSI. Yogyakarta. Universitas Sanata
Dharma.

UNIVERSITAS SUMATERA UTARA


65

Irfandy, Mahmud. 2011. APLIKASI PENGENALAN UCAPAN DENGAN


JARINGAN SYARAF TIRUAN PROPAGASI BALIK UNTUK
PENGENDALIAN ROBOT BERGERAK. Semarang. Universitas Diponegoro.
Kurniawan, Irwan. PENGOLAHAN SINYAL. Politeknik Jambi.
Meris, Frederik. 2015. PENGENALAN NADA SAKSOFON ALTO
MENGGUNAKAN FFT DAN PENGKLASIFIKASIAN K-NN DENGAN
JARAK SIMETRIK PROBABILITAS 𝑋 2 . Yogyakarta. Universitas Sanata
Dharma.
Munir, Rinaldi. 2004. PENGOLAHAN CITRA DIGITAL DENGAN PENDEKATAN
ALGORITMIK. Bandung. Penerbit Informatika.
Riyanto , Sugeng. 2009. ALGORITMA FAST FOURIER TRANSFORM (FFT)
DECIMATION IN TIME (DIT) DENGAN RESOLUSI 1/10 HERTZ.
Yogyakarta. Universitas Negeri Yogyakarta.
Safaat, Trio. 2016. IMPLEMENTASI FAST FOURIER TRANSFORM PADA
PENGENALAN NADA PIANO BERBASIS ANDROID. Malang. Universitas
Islam Negeri.
Santosa, Budi. 2007. DATA MINING TERAPAN DENGAN MATLAB. Surabaya.
Graha Ilmu.
Santoso, Eko A. 2011. KLASTERING SUARA LAKI-LAKI DAN PEREMPUAN
MENGGUNAKAN ALGORITMA K-MEANS BERDASARKAN HASIL
EKSTRAKSI FFT (FAST FOURIER TRANSFORM). Malang. Universitas
Brawijaya.
Santoso, L. W . 2001. APLIKASI SPECTRUM ANALYZER UNTUK
MENGANALISA LOUDSPEAKER. Surabaya. Universitas Kristen Petra.
Setyawan, Y. R. 2014. PENGENALAN UCAPAN ANGKA SECARA REAL TIME
MENGGUNAKAN EKSTRAKSI CIRI FFT DAN FUNGSI SIMILARITAS
KOSINUS. Yogyakarta. Universitas Sanata Dharma.
Sipasulta, Reonaldo Y. 2014. SIMULASI SISTEM PENGACAK SINYAL DENGAN
METODE FFT (FAST FOURIER TRANSFORM). Manado. Universitas Sam
Ratulangi.

UNIVERSITAS SUMATERA UTARA


66

Sklar, B. 1988. DIGITAL COMMUNICATIONS FUNDAMENTAL AND


APLICATION. Ney Jersey. PTR Prentice Hall.
Supriansyah, 2013. PERANCANGAN SISTEM PENGENALAN NADA TUNGGAL
KEYBOARD (ORGEN) PADA PC BERBASIS MATLAB. Bandung. Unikom.
Susilawati, I. 2009. TRANSFORMASI FOURIER CEPAT. Yogyakarta. Universitas
Negeri Yogyakarta.
Syaiffudin, Arif. 2014. FAST FOURIER TRANSFORM (FFT) UNTUK ANALISIS
SINYAL SUARA DOPPLER ULTRASONIK. Semarang. Universitas
Diponegoro.
Teuinsuska. 2009. MODUL MATLAB PRAKTIKUM PENGOLAHAN SINYAL
DIGITAL. Surabaya. ITS.
Wahyudi, S. T. 2015. APLIKASI SPECTRUM ANALYZER UNTUK
MENGANALISA FREKUENSI SINYAL AUDIO MENGGUNAKAN
MATLAB. Pekanbaru. Unversitas Riau.

UNIVERSITAS SUMATERA UTARA


67

LAMPIRAN 1
LISTING PROGRAM PENGAMBILAN SAMPEL SUARA

sample_length=1.5;
sample_freq=4800;
sample_time=(sample_length*sample_freq);
x=wavrecord(sample_time, sample_freq);
wavwrite(x, sample_freq, 'Damai_1.wav);
plot(x);
xlabel('Data Tercuplik')
ylabel('Amplitudo')

Gambar L1.1 Sintaks Program Pengambilan Suara Uji

UNIVERSITAS SUMATERA UTARA


68

LAMPIRAN 2
PERCOBAAN UNTUK MENENTUKAN INDEKS NILAI MAKSIMUM PADA
LOOK UP TABLE UNTUK MASING-MASING SUARA

Variabel :
1. Frekuensi sampling yang digunakan sebesar 4800 Hz.
2. Durasi perekaman yang digunakan sebesar 1,5 detik.
3. Masing-masing suara direkam sebanyak 10 kali.
Berikut merupakan listing program untuk menentukan range pada look up table :
% Batas Potong
b0=0.3;

% Definisi variabel
frame=16;% nilai frame blocking
16,32,64,128 dan 256

% Sinyal masukan
x=wavread('Jes16a.wav');

%Normalisasi
y1=x/max(x);

% Pemotongan Sinyal
% 1. Potong
b1=find(y1>b0 | y1<-b0);
y1(1:b1(1))=[];

% 2. Potong 2
bts=floor(0.25*length(y0));
y1(1:bts)=[];

% Frame blocking
y2=y1(1:frame);

% Windowing
h=hamming(frame);
y3=y2.*h;

%Ekstraksi Ciri FFT


y4=abs(fft(y3));
y5=y4(1:frame/2);
figure(1)
plot(y5)
bar(y5);

Gambar L2.1 Sintaks Program Mencari Nilai Range Untuk Setiap Look Up Table

UNIVERSITAS SUMATERA UTARA


69

 Berikut merupakan contoh plot sinyal suara JESIKA pada sinyal FFT untuk
menentukan range pada look up table dengan frame blocking 16 :

Gambar L2.2 Sinyal Suara JESIKA_1 Pada Sinyal FFT Pada Frame Blocking 16

Gambar L2.3 Sinyal Suara JESIKA_2 Pada Sinyal FFT Pada Frame Blocking 16

UNIVERSITAS SUMATERA UTARA


70

Gambar L2.4 Sinyal Suara JESIKA_3 Pada Sinyal FFT Pada Frame Blocking 16

Gambar diatas merupakan contoh dari proses penentuan range untuk look up
table pada frame blocking 16 dilakukan sebanyak 10 kali pengambilan data pada
masing-masing suara. Tabel L2.1 memperlihatkan proses pengambilan nilai indeks
maksimum untuk nilai range pada look up table.

Tabel L2.1 Proses Pengambilan Nilai Indeks Maksimum Dengan Look Up Table dengan
Frame Blocking 16
Suara Pengambilan Rata-Rata
1 2 3 4 5 6 7 8 9 10
RUT 2 1 2 2 2 1 1 2 2 1 2
DAMAI 3 4 3 4 3 3 4 3 4 3 3
JESIKA 5 5 5 5 6 5 6 5 6 5 6
PUTRI 7 7 7 7 7 7 7 8 8 7 7
EZRA 10 10 10 9 10 9 10 9 10 10 10

UNIVERSITAS SUMATERA UTARA


71

Tabel L2.2 Proses Penentuan Range untuk Look Up Table dengan Frame Blocking 16
Suara Rata-Rata Selisih
RUT 2 1
DAMAI 3
DAMAI 3 3
JESIKA 6
JESIKA 6 1
PUTRI 7
PUTRI 7 3
EZRA 10

Dari hasil yang terdapat pada Tabel L2.2, maka diperoleh range untuk look up
table dengan frame blocking 16 adalah 1. Nilai range ini diperoleh dari selisih terkecil
dari setiap suara. Kemudian selisih terkecil tersebut digunakan sebagai range atas dan
range bawah.

 Berikut merupakan contoh plot sinyal suara PUTRI pada sinyal FFT untuk
menentukan range pada look up table dengan frame blocking 32 :

Gambar L2.5 Sinyal Suara PUTRI_1 Pada Sinyal FFT Pada Frame Blocking 32

UNIVERSITAS SUMATERA UTARA


72

Gambar L2.6 Sinyal Suara PUTRI_2 Pada Sinyal FFT Pada Frame Blocking 32

Gambar L2.7 Sinyal Suara PUTRI_3 Pada Sinyal FFT Pada Frame Blocking 32

Gambar diatas merupakan contoh dari proses penentuan range untuk look up
table pada frame blocking 32 dilakukan sebanyak 10 kali pengambilan data pada
masing-masing suara. Tabel L2.3 memperlihatkan proses pengambilan nilai indeks
maksimum untuk nilai range pada look up table.

UNIVERSITAS SUMATERA UTARA


73

Tabel L2.3 Proses Pengambilan Nilai Indeks Maksimum Dengan Look Up Table dengan
Frame Blocking 32
Suara Pengambilan Rata-Rata
1 2 3 4 5 6 7 8 9 10
RUT 5 4 5 5 5 4 4 4 4 5 5
DAMAI 6 6 7 7 7 6 7 7 7 7 7
JESIKA 8 8 8 8 9 8 9 8 9 9 8
PUTRI 10 10 10 11 10 10 10 11 10 10 10
EZRA 13 13 13 12 13 12 13 12 13 13 13

Tabel L2.4 Proses Penentuan Range untuk Look Up Table dengan Frame Blocking 32
Suara Rata-Rata Selisih
RUT 5 2
DAMAI 7
DAMAI 7 1
JESIKA 8
JESIKA 8 2
PUTRI 10
PUTRI 10 3
EZRA 13

Dari hasil yang terdapat pada Tabe L2.4, maka diperoleh range untuk look up
table dengan frame blocking 32 adalah 1. Nilai range ini diperoleh dari selisih terkecil
dari setiap suara. Kemudian selisih terkecil tersebut digunakan sebagai range atas dan
range bawah.

 Berikut merupakan contoh plot sinyal suara EZRA pada sinyal FFT untuk
menentukan range pada look up table dengan frame blocking 64 :

UNIVERSITAS SUMATERA UTARA


74

Gambar L2.8 Sinyal Suara EZRA_1 Pada Sinyal FFT Pada Frame Blocking 64

Gambar L2.9 Sinyal Suara EZRA_2 Pada Sinyal FFT Pada Frame Blocking 64

UNIVERSITAS SUMATERA UTARA


75

Gambar L2.10 Sinyal Suara EZRA_3 Pada Sinyal FFT Pada Frame Blocking 64

Gambar diatas merupakan contoh dari proses penentuan range untuk look up
table pada frame blocking 64 dilakukan sebanyak 10 kali pengambilan data pada
masing-masing suara. Tabel L2.5 memperlihatkan proses pengambilan nilai indeks
maksimum untuk nilai range pada look up table.

Tabel L2.5 Proses Pengambilan Nilai Indeks Maksimum Dengan Look Up Table dengan
Frame Blocking 64
Suara Pengambilan Rata-Rata
1 2 3 4 5 6 7 8 9 10
RUT 9 8 9 9 9 8 8 9 8 8 9
DAMAI 10 11 10 10 10 11 10 10 11 10 10
JESIKA 12 12 12 12 13 12 13 12 13 13 12
PUTRI 14 14 14 15 14 14 14 15 15 14 14
EZRA 16 17 16 17 16 17 17 17 16 17 17

UNIVERSITAS SUMATERA UTARA


76

Tabel L2.6 Proses Penentuan Range untuk Look Up Table dengan Frame Blocking 64
Suara Rata-Rata Selisih
RUT 9 1
DAMAI 10
DAMAI 10 2
JESIKA 12
JESIKA 12 2
PUTRI 14
PUTRI 14 3
EZRA 17

Dari hasil yang terdapat pada Tabe L2.4, maka diperoleh range untuk look up
table dengan frame blocking 64 adalah 1. Nilai range ini diperoleh dari selisih terkecil
dari setiap suara. Kemudian selisih terkecil tersebut digunakan sebagai range atas dan
range bawah.

 Berikut merupakan contoh plot sinyal suara DAMAI pada sinyal FFT untuk
menentukan range pada look up table dengan frame blocking 128 :

Gambar L2.11 Sinyal Suara DAMAI_1 Pada Sinyal FFT Pada Frame Blocking 128

UNIVERSITAS SUMATERA UTARA


77

Gambar L2.12 Sinyal Suara DAMAI_2 Pada Sinyal FFT Pada Frame Blocking 128

Gambar L2.13 Sinyal Suara DAMAI_3 Pada Sinyal FFT Pada Frame Blocking 128

Gambar diatas merupakan contoh dari proses penentuan range untuk look up
table pada frame blocking 128 dilakukan sebanyak 10 kali pengambilan data pada
masing-masing suara. Tabel L2.7 memperlihatkan proses pengambilan nilai indeks
maksimum untuk nilai range pada look up table.

UNIVERSITAS SUMATERA UTARA


78

Tabel L2.7 Proses Pengambilan Nilai Indeks Maksimum Dengan Look Up Table dengan
Frame Blocking 128
Suara Pengambilan Rata-Rata
1 2 3 4 5 6 7 8 9 10
RUT 28 28 26 28 26 26 26 28 28 26 27
DAMAI 29 29 31 29 31 29 29 29 31 31 30
JESIKA 33 33 34 34 33 33 34 34 33 33 33
PUTRI 38 39 39 39 38 38 39 38 38 38 38
EZRA 43 41 41 43 43 41 43 41 43 43 42

Tabel L2.8 Proses Penentuan Range untuk Look Up Table dengan Frame Blocking 64
Suara Rata-Rata Selisih
RUT 27 3
DAMAI 30
DAMAI 30 3
JESIKA 33
JESIKA 33 5
PUTRI 38
PUTRI 38 6
EZRA 42

Dari hasil yang terdapat pada Tabe L2.8, maka diperoleh range untuk look up
table dengan frame blocking 128 adalah 3. Nilai range ini diperoleh dari selisih terkecil
dari setiap suara. Kemudian selisih terkecil tersebut digunakan sebagai range atas dan
range bawah.

 Berikut merupakan contoh plot sinyal suara DAMAI pada sinyal FFT untuk
menentukan range pada look up table dengan frame blocking 256 :

UNIVERSITAS SUMATERA UTARA


79

Gambar L2.14 Sinyal Suara DAMAI_1 Pada Sinyal FFT Pada Frame Blocking 256

Gambar L2.15 Sinyal Suara DAMAI_2 Pada Sinyal FFT Pada Frame Blocking 256

UNIVERSITAS SUMATERA UTARA


80

Gambar L2.16 Sinyal Suara DAMAI_3 Pada Sinyal FFT Pada Frame Blocking 256

Gambar diatas merupakan contoh dari proses penentuan range untuk look up
table pada frame blocking 256 dilakukan sebanyak 10 kali pengambilan data pada
masing-masing suara. Tabel L2.9 memperlihatkan proses pengambilan nilai indeks
maksimum untuk nilai range pada look up table.

Tabel L2.9 Proses Pengambilan Nilai Indeks Maksimum Dengan Look Up Table dengan
Frame Blocking 256
Suara Pengambilan Rata-Rata
1 2 3 4 5 6 7 8 9 10
RUT 54 54 54 53 54 53 53 55 54 55 54
DAMAI 57 64 61 57 59 57 64 57 61 64 60
JESIKA 66 68 66 66 67 66 66 68 68 66 67
PUTRI 75 74 74 76 75 74 74 76 75 76 75
EZRA 81 80 79 81 80 81 81 80 79 81 80

UNIVERSITAS SUMATERA UTARA


81

Tabel L2.10 Proses Penentuan Range untuk Look Up Table dengan Frame Blocking 256
Suara Rata-Rata Selisih
RUT 54 6
DAMAI 60
DAMAI 60 7
JESIKA 67
JESIKA 67 8
PUTRI 75
PUTRI 75 5
EZRA 80

Dari hasil yang terdapat pada Tabe L2.10, maka diperoleh range untuk look up
table dengan frame blocking 256 adalah 5. Nilai range ini diperoleh dari selisih terkecil
dari setiap suara. Kemudian selisih terkecil tersebut digunakan sebagai range atas dan
range bawah.

UNIVERSITAS SUMATERA UTARA


82

LAMPIRAN 3
PROSES MENYELURUH YANG DICERMINKAN DALAM BENTUK DIAGRAM

 Contoh sinyal suara dengan nilai frame blocking 128

Mulai

Masukan
Suara.wav

Normalisasi
Gambar L3.1 Contoh Sinyal Suara Perekaman

Gambar L3.1 Diagram


Alir Pengenalan Suara

Gambar L3.2 Contoh Sinyal Normalisasi

UNIVERSITAS SUMATERA UTARA


83

Pemotongan Sinyal
Bagian Silence

Pemotongan Sinyal
Bagian Transisi Gambar L3.3 Contoh Pemotongan Sinyal Bagian Silence

Gambar L3.1 (lanjutan)


Diagram Alir Pengenalan Suara

Gambar L3.4 Contoh Pemotongan Sinyal Bagian Transisi

UNIVERSITAS SUMATERA UTARA


84

Frame Blocking

Gambar L3.5 Contoh Sinyal Saat Proses Frame Blocking

Hamming Window

Gambar L3.1 (lanjutan)


Diagram Alir Pengenalan Suara
Gambar L3.6 Contoh Sinyal Saat Proses Hamming Window
`

UNIVERSITAS SUMATERA UTARA


85

Keluaran Teks
Suara

Selesai

Gambar L3.1 (lanjutan)


Diagram Alir Pengenalan Suara
Gambar L3.7 Contoh Data Suara Pada Sinyal FFT

UNIVERSITAS SUMATERA UTARA


86

LAMPIRAN 4
LISTING PROGRAM PENGENALAN SUARA

function varargout = guirut(varargin)


% GUIRUT M-file for guirut.fig
% GUIRUT, by itself, creates a new GUIRUT or raises the
existing
% singleton*.
%
% H = GUIRUT returns the handle to a new GUIRUT or the handle
to
% the existing singleton*.
%
% GUIRUT('CALLBACK',hObject,eventData,handles,...) calls the
local
% function named CALLBACK in GUIRUT.M with the given input
arguments.
%
% GUIRUT('Property','Value',...) creates a new GUIRUT or
raises the
% existing singleton*. Starting from the left, property
value pairs are
% applied to the GUI before guirut_OpeningFcn gets called.
An
% unrecognized property name or invalid value makes property
application
% stop. All inputs are passed to guirut_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 guirut

% Last Modified by GUIDE v2.5 19-Oct-2017 16:50:15

% Begin initialization code - DO NOT EDIT

Gambar L4.1 Sintaks Program Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


87

gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @guirut_OpeningFcn, ...
'gui_OutputFcn', @guirut_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

% --- Executes just before guirut is made visible.


function guirut_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 guirut (see VARARGIN)

% Choose default command line output for guirut


handles.output = hObject;

% Update handles structure


guidata(hObject, handles);

% UIWAIT makes guirut wait for user response (see UIRESUME)


% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = guirut_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;

Gambar L4.1 (lanjutan) Sintaks Program Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


88

% --- 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)
sample_length=1.5;
sample_freq=4800;
sample_time=(sample_length*sample_freq);
x=wavrecord(sample_time, sample_freq);
wavwrite(x, sample_freq, 's.wav');
xlabel('Data Tercuplik')
ylabel('Amplitudo')
axes(handles.axes1)
plot(x);

% Batas Potong
b0=0.3;

%Normalisasi
y1=x/max(x);

% Pemotongan Sinyal
% 1. Potong
b1=find(y1>b0 | y1<-b0);
y1(1:b1(1))=[];

% 2. Potong 2
bts=floor(0.25*length(y1));
y1(1:bts)=[];

% Frame blocking
frame=handles.frame
y2=y1(1:frame);

% Windowing
h=hamming(frame);
y3=y2.*h;

%Ekstraksi Ciri FFT


Y4=abs(fft(y3));
Y5=y4(1:frame/2);
axes(handles.axes2)
plot(y5);
bar(y5);

% Pencarian indeks nilai maksimum


imax=find(y5==max(y5));
set(handles.edit2,'string',imax);

Gambar L4.1 (lanjutan) Sintaks Program Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


89

% Pencarian nada yang sesuai menggunakan LUT


if frame==16
suaraout=lut16(imax,handles);
elseif frame==32
suaraout=lut32(imax,handles);
elseif frame==64
suaraout=lut64(imax,handles);
elseif frame==128
suaraout=lut128(imax,handles);
elseif frame==256
suaraout=lut256(imax,handles);
end

function suaraout=lut16(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 16 titik
if imax>=1 && imax<=2
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=3 && imax<=4
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=5 && imax<=6
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)
elseif imax>=7 && imax<=8
suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)
elseif imax>=9 && imax<=10
suaraout={'EZRA'};
set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
end

function suaraout=lut32(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 32 titik
if imax>=4 && imax<=5
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=6 && imax<=7
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=8 && imax<=9
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)

Gambar L4.1 (lanjutan) Sintaks Program Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


90

elseif imax>=10 && imax<=11


suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)
elseif imax>=12 && imax<=13
suaraout={'EZRA'};
set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
end

function suaraout=lut64(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 64 titik
if imax>=6 && imax<=7
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=8 && imax<=9
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=10 && imax<=11
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)
elseif imax>=12 && imax<=13
suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)
elseif imax>=14 && imax<=15
suaraout={'EZRA'};
set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
end

function suaraout=lut128(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 128 titik
if imax>=26 && imax<=28
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=29 && imax<=31
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=32 && imax<=34
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)
elseif imax>=37 && imax<=39
suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)

Gambar L4.1 (lanjutan) Sintaks Program Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


91

elseif imax>=41 && imax<=43


suaraout={'EZRA'};
set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
end

function suaraout=lut256(imax,handles)
% Penentu keluaran text untuk LUT dengan
% frame blocking 256 titik
if imax>=52 && imax<=56
suaraout={'RUT'};
set(handles.edit1,'string',suaraout)
elseif imax>=57 && imax<=64
suaraout={'DAMAI'};
set(handles.edit1,'string',suaraout)
elseif imax>=65 && imax<=70
suaraout={'JESIKA'};
set(handles.edit1,'string',suaraout)
elseif imax>=75 && imax<=80
suaraout={'PUTRI'};
set(handles.edit1,'string',suaraout)
elseif imax>=81 && imax<=85
suaraout={'EZRA'};
set(handles.edit1,'string',suaraout)
else
suaraout={'ERROR'};
set(handles.edit1,'string',suaraout)
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)
axes(handles.axes1);
plot(0);
axes(handles.axes2);
plot(0);
set(handles.edit1,'string',' ');
set(handles.edit2,'string',' ');
set(handles.popupmenu1,'Value',1);

% --- Executes on button press in pushbutton3.


function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB

Gambar L4.1 (lanjutan) Sintaks Program Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


92

% handles structure with handles and user data (see GUIDATA)


close;

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit1 as text


% str2double(get(hObject,'String')) returns contents of
edit1 as a double

% --- Executes during object creation, after setting all


properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles empty - handles not created until after all
CreateFcns called

% Hint: edit 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

function edit2_Callback(hObject, eventdata, handles)


% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text


% str2double(get(hObject,'String')) returns contents of
edit2 as a double

% --- Executes during object creation, after setting all


properties.
function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles empty - handles not created until after all

Gambar L4.1 (lanjutan) Sintaks Program Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


93

CreateFcns called
% Hint: edit 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 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)
indeks=get(handles.popupmenu1, 'Value');
switch indeks
case 1
frameb=16;
case 2
frameb=32;
case 3
frameb=64;
case 4
frameb=128;
case 5
frameb=256;
end
handles.frame=frameb;
guidata(hObject,handles);
% Hints: contents = cellstr(get(hObject,'String')) returns
popupmenu1 contents as cell array
% contents{get(hObject,'Value')} returns selected item from
popupmenu1

% --- 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

Gambar L4.1 (lanjutan) Sintaks Program Pengenalan Suara

UNIVERSITAS SUMATERA UTARA


94

LAMPIRAN 5
GAMBAR PERANCANGAN ALAT PENELITIAN

UNIVERSITAS SUMATERA UTARA

Anda mungkin juga menyukai