PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SIMULASI CONVOLUTIONAL CODES DENGAN PENGAWASANDI VITERBI UNTUK PENGOLAHAN DATA UJI ELEKTROKARDIOGRAM
SKRIPSI Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Komputer (S.Kom.) Program Studi Teknik Informatika
Oleh: Nikolaus Januardi NIM : 085314042
JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2013
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
SIMULATION CONVOLUTIONAL CODES WITH VITERBI DECODER FOR PROCESSING ELECTROCARDIOGRAM TEST DATA
THESIS Presented as Partial Fullfilment of the Requirements To Obtain the Computer Bachelor Degree In Informatics Engineering
Oleh: Nikolaus Januardi NIM : 085314042
FACULTY OF SCIENCE AND TECHNOLOGY SANATA DHARMA UNIVERSITY YOGYAKARTA 2013
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSETUJUAN
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PENGESAHAN
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
PERNYATAAN KEASLIAN KARYA
Saya menyatakan bahwa skripsi yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta,
Februari 2013
Penulis
Nikolaus Januardi
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN MOTO
BERSYUKURLAH ATAS APA YANG TELAH TERJADI DAN YANG TELAH KAMU DAPAT. HARGAI SETIAP HAL YANG KAMU PUNYA DAN YANG KAMU DAPATKAN. KARENA TAK SEMUA ORANG SEBERUNTUNG DIRIMU. (ME)
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
HALAMAN PERSEMBAHAN
Skripsi ini saya persembahkan kepada Tuhan Yesus Kristus dan Bunda Maria yang selalu menjadi sandaran dan topangan saat menghadapi masalah, dan menyertaiku dalam menyelesaikan skripsi.
Untuk Ayah, Ibu , Ayah, kakak, dan adik saya atas dukungan dan doa kalian semua.
Untuk Pembimbing kedua saya, Linardi S.Kom., atas support dan dukungan dalam menyelesaikan skripsi.
Buat yang tercinta, Ilana Fedelia, atas support, dukungan dan doa dalam menyelesaikan skripsi.
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRAKSI Kesalahan data merupakan masalah pada sistem komunikasi. Kesalahan data tersebut dapat merusak data saat pengiriman. Bila data yang dikirimkan merupakan data penting, seperti data rekam medis Electroencephalogram (EEG) dan Electrocardiogram (ECG) atau Elektrokardiogram (EKG), maka kesalahan data yang terjadi saat mengirimkan data rekam medis tersebut akan sangat fatal terhadap pasien. Kesalahan data tersebut dapat terjadi karena terdapat gangguan pada saluran pengiriman seperti noise, interference, dan fading. Oleh karena itu kemampuan atau teknik untuk menyandikan (encode) data sebelum dikirimkan dan teknik untuk mengawasandikan (decode) data yang diterima sangat dibutuhkan. Pada tugas akhir ini dilakukan pengujian terhadap unjuk kerja convolutional codes dengan pengawasandi Viterbi menggunakan tiga aspek pengujian yaitu, pengujian jenis-jenis code rate, jenis-jenis data ECG, nilai SNR, dan panjang data ECG. Hasil dari pengujian tersebut diperoleh bahwa jenis-jenis code rate dan nilai SNR berpengaruh terhadap nilai BER. Semakin tinggi code rate yang digunakan, nilai BER akan semakin baik. Semakin besar nilai SNR, nilai BER akan semakin baik. Sedangkan panjang dan jenis-jenis data ECG berpengaruh terhadap nilai BER.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
ABSTRACT Error data is a problem in the communication system. Error data can corrupt data during transmission. If transmitted data are important data, such as medical records Electroencephalogram (EEG) and Electrocardiogram (ECG), then data errors that occur when sending medical records would be very fatal to the patient. Data errors can occur because there is a interference in the transmision channel like noise, interference, and fading. Therefore the ability or technique to encode data before it is transmitted and techniques to decode received data is needed. This final project is testing the performance of convolutional codes with Viterbi decoder using three aspects are tested, there are testing the types of code rate, the types of data ECG, SNR value, and length data ECG. The results of the tests have found that the types of code rate and SNR values affect the value of BER. The higher code rate is used, value of BER more better. The greater value of SNR, value of BER more better. While length and types of ECG data does not affect the value of BER.
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Nikolaus Januardi NIM
: 085314042
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
SIMULASI CONVOLUTIONAL CODES DENGAN PENGAWASANDI VITERBI UNTUK PENGOLAHAN DATA UJI ELEKTROKARDIOGRAM Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data, mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai penulis. Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta Pada tanggal :
Februari 2013
Yang menyatakan
( Nikolaus Januardi )
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
KATA PENGANTAR
Puji dan syukur kepada Tuhan Yesus Kristus atas bimbingan, kasih, dan perlindungan yang diberikan kepada penulis selama penyusunan skripsi yang berjudul
“SIMULASI
PENGAWASANDI
CONVOLUTIONAL
VITERBI
UNTUK
CODES
PENGOLAHAN
DENGAN DATA
UJI
ELEKTROKARDIOGRAM”. Skripsi ini disusun sebagai salah satu syarat untuk memperoleh gelar sarjana teknik di Program Studi Teknik Informatika Fakultas Sains dan Teknologi, Universitas Sanata Dharma Yogyakarta. Dalam penyusunan skripsi ini penulis mendapatkan banyak bantuan dari berbagai pihak. Oleh karena itu, pada kesempatan ini penulis ingin mengucapkan terima kasih yang sedalam - dalamnya kepada : 1. Ibu Paulina Heruningsih Prima Rosa, S.Si., M.Sc selaku Dekan Fakultas Sains dan Teknologi Universitas Sanata Dharma. 2. Ibu Ridowati Gunawan, S.Kom, M.T. selaku ketua jurusan Teknik Informatika Sanata Dharma. 3. Bapak Eko Hari Parmadi S.Si., M.Kom. selaku Dosen Pembimbing Akademik Teknik Informatika angkatan 2008. 4. Bapak Damar Widjaja S.T., M.T. selaku Dosen Pembimbing TA, terima kasih atas bimbingannya selama saya mengerjakan skripsi ini. 5. Bapak Henricus Agung Hernawan S.T., M.Kom. dan B. Herry Suharto, S.T., M.T.selaku Dosen Penguji Pendadaran skripsi saya, terima kasih atas masukkan dalam memperbaiki skripsi ini.
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6. Ayah, Ibu, kakak, adik, dan kekasih saya terima kasih atas dukungan, semangat dan kasih sayang yang diberikan sehingga saya dapat menyelesaikan tugas akhir ini. 7. Teman-teman TI angkatan 2008 saya, terima kasih atas dukungan selama saya mengerjakan skripsi. 8. Semua pihak yang tidak dapat penulis sebutkan satu persatu yang telah banyak membantu selama penulis menyelesaikan studi. Penulis menyadari bahwa dalam penyusunan skripsi ini masih banyak kekurangan. Oleh karena itu penulis mengharapkan kritik dan saran dari semua pihak. Penulis berharap semoga skripsi ini dapat bermanfaat dan memberikan sumbangan bagi Ilmu Pengetahuan.
Yogyakarta,
Februari 2013
Penulis
xii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR ISI
HALAMAN JUDUL INDONESIA ...............................................................
i
HALAMAN JUDUL INGGRIS ..................................................................... ii HALAMAN PERSETUJUAN ....................................................................... iii HALAMAN PENGESAHAN ........................................................................ iv PERNYATAAN KEASLIAN KARYA ......................................................... v HALAMAN MOTO ....................................................................................... vi HALAMAN PERSEMBAHAN ..................................................................... vii ABSTRAKSI .................................................................................................. viii ABTRACT .....................................................................................................
ix
LEMBAR PERNYATAAN PERSETUJUAN ............................................... x KATA PENGANTAR .................................................................................... xi DAFTAR ISI ..................................................................................................
xiii
DAFTAR GAMBAR .....................................................................................
xviii
DAFTAR TABEL ..........................................................................................
xxi
DAFTAR LAMPIRAN ..................................................................................
xxii
BAB I Pendahuluan ........................................................................................ 1 1.1 Latar belakang ....................................................................................
1
1.2 Rumusan masalah ............................................................................... 3 1.3 Tujuan penelitian ................................................................................ 3 1.4 Manfaat penelitian .............................................................................. 3 1.5 Batasan masalah .................................................................................
3
1.6 Metodologi penelitian ........................................................................
4
1.7 Sistematika penulisan ......................................................................... 5 BAB II Landasan Teori ..................................................................................
6
2.1 Electrocardiogram .............................................................................
6
2.1.1 Sinyal Electrocardiogram .........................................................
6
2.2 Kanal Transmisi .................................................................................
7
2.2.1 Kanal Additive White Gaussian Noise (AWGN) ......................
7
2.2.1.1 White Noise ...................................................................
8
xiii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2.2.1.1 Terdistribusi Gaussian ..................................................
8
2.3 Bit Error Rate ..................................................................................... 9 2.4 Kode Konvolusi .................................................................................. 10 2.4.1 Penyandi Konvolusi ..................................................................
10
2.5 Algoritma Viterbi ...............................................................................
11
2.5.1 Definisi Dasar ............................................................................ 11 2.5.2 Implementasi .............................................................................
12
2.5.3 Branch Metric Calculation ........................................................ 13 2.5.4 Path Metric Calculation ............................................................ 13 2.5.5 Traceback ..................................................................................
14
BAB III Perancangan Simulasi Kode Konvolusi ........................................... 17 3.1 Gambaran Umum Program ................................................................
17
3.2 Rancangan Model Sistem ................................................................... 18 3.2.1 Perancangan Penyandi Konvolusi (2, 1, 3) ...............................
19
3.2.2 Perancangan Penyandi Konvolusi (3, 1, 3) ...............................
19
3.2.3 Perancangan Penyandi Konvolusi (4, 1, 3) ...............................
20
3.2.4 Perancangan Pengawasandi Viterbi ..........................................
20
3.2.5 Perancangan Input Data ............................................................
22
3.2.6 Diagram Use Case ..................................................................... 24 3.2.7 Narasi Use Case ........................................................................
25
3.2.8 Diagram Konteks ......................................................................
27
3.2.8.1 Diagram Berjenjang ......................................................
28
3.2.8.2 Data Flow Diagram Level 0 ..........................................
29
3.2.8.3 Data Flow Diagram Level 1 Proses 1 ............................ 29 3.2.8.4 Data Flow Diagram Level 1 Proses 2 ............................ 30 3.3 Antarmuka Pengguna .........................................................................
31
3.3.1 Desain Antarmuka Pengguna ....................................................
31
3.3.2 Halaman Utama Program ..........................................................
31
3.3.3 Halaman Penyandian Data ........................................................
32
3.3.4 Halaman Pengawasandian Data ................................................
33
3.3.5 Halaman Hasil Penyandian Data ............................................... 34 xiv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3.3.6 Halaman Hasil Pengawsandian Data ......................................... 35 3.3.7 Halaman Grafik Bit Error Rate ................................................. 36 3.3.8 Halaman Simpan Data ............................................................... 37 BAB IV IMPLEMENTASI ............................................................................ 38 4.1 Implementasi Proses .......................................................................... 38 4.1.1 Implementasi Proses Pembacaan Data ECG .............................
38
4.1.2 Implementasi Penyandian Data ECG ........................................
39
4.1.2.1 Proses Pengubahan Data ECG Menjadi Data Biner ..........
39
4.1.2.2 Penyandian Data Dengan Kode Konvolusi Rate
........
39
4.1.2.3 Penyandian Data Dengan Kode Konvolusi Rate
........
41
4.1.2.4 Penyandian Data Dengan Kode Konvolusi Rate
........
43
4.1.3 Implementasi Pengiriman Data Sandi Menggunakan Kanal 44 AWGN ........................................................................................................... 4.1.4 Implementasi Pengawasandi Viterbi .........................................
46
4.1.4.1 Implementasi Pengawasandi Viterbi Rate
.................
46
4.1.4.2 Implementasi Pengawasandi Viterbi Rate
..................
47
4.1.4.3 Implementasi Pengawasandi Viterbi Rate
.................
49
4.1.5 Implementasi Penerjemah Data Biner Menjadi Data ECG .......
50
4.2 Implementasi Tampilan ..................................................................... 50 4.2.1 Tampilan Utama ........................................................................
50
4.2.2 Tampilan Proses Membaca ECG ..............................................
51
4.2.2.1 Tampilan Pilih File ECG ...................................................
52
4.2.2.2 Tampilan Hasil Pratinjau Data ECG .................................. 53 4.2.3 Tampilan Proses Penyandian ..................................................... 54 4.2.3.1 Tampilan Hasil Penyandian ............................................... 56 4.2.4 Tampilan Proses Pengiriman ..................................................... 56 4.2.4.1 Tampilan Pilih File Hasil Penyandian ............................... 57 4.2.4.2 Tampilan Hasil Pengiriman Data ....................................... 59 xv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
4.2.5 Tampilan Proses Pengawasandian Data ....................................
59
4.2.5.1 Tampilan Hasil Pengawasandian Data ..............................
60
4.2.6 Tampilan Grafik BER ...............................................................
61
4.2.6.1 Tampilan Pilih File Hasil Pengawasandian ....................... 62 4.2.6.2 Tampilan Hasil Pratinjau Grafik BER ............................... 64 4.2.7 Tampilan Grafik ECG ...............................................................
65
4.2.7.1 Tampilan Pilih File Hasil Pengawasandian ....................... 65 4.2.7.2 Tampilan Hasil Grafik ECG ..............................................
66
4.3 Pengujian Program ............................................................................
67
4.3.1 Pembacaan Data ECG ...............................................................
67
4.3.2 Penyandi Konvolusi ..................................................................
68
4.3.2.1 Penyandi Konvolusi Rate
..........................................
68
4.3.2.2 Penyandi Konvolusi Rate
...........................................
69
4.3.2.3 Penyandi Konvolusi Rate
...........................................
71
4.3.3 Kanal AWGN ............................................................................
72
4.3.4 Pengawasandi Viterbi ................................................................
72
4.3.4.1 Pengawasandi Viterbi Rate
........................................
73
4.3.4.2 Pengawasandi Viterbi Rate
.........................................
74
4.3.4.3 Pengawasandi Viterbi Rate
........................................
76
BAB V ANALISA HASIL ............................................................................
78
5.1 Hasil Pengujian .................................................................................
78
5.1.1 Hasil Pengujian Penyandi Konvolusi Code Rate 5.1.1.1 Grafik Rata-rata BER Code Rate
...............
80
................................ 80
5.1.3 Hasil Pengujian Penyandi Konvolusi Code Rate
xvi
78
................................ 79
5.1.2 Hasil Pengujian Penyandi Konvolusi Code Rate 5.1.2.1 Grafik Rata-rata BER Code Rate
..............
...............
81
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5.1.3.1 Grafik Rata-rata BER Code Rate
................................ 82
5.1.4 Hasil Pengujian 300 Data ECG .................................................
83
5.1.5 Hasil Pengujian 600 Data ECG .................................................
83
5.1.6 Hasil Pengujian Dengan Data ECG jenis 1 ...............................
84
5.1.7 Hasil Pengujian Dengan Data ECG jenis 2 ...............................
85
5.1.8 Hasil Pengujian Dengan Data ECG jenis 3 ...............................
86
5.1.9 Hasil Pengujian Penyandi Konvolusi Code Rate
...............
87
5.1.10 Hasil Pengujian Penyandi Konvolusi Code Rate
.............
88
5.1.11 Hasil Pengujian Penyandi Konvolusi Code Rate
.............
89
5.2 Analisa Hasil Pengujian ....................................................................
89
5.2.1 Analisa Pengujian Code rate .....................................................
90
5.2.2 Analisa Pengujian Panjang Data ECG ......................................
90
5.2.3 Analisa Pengujian Nilai SNR ....................................................
90
5.2.4 Analisa Pengujian Jenis-jenis ECG ...........................................
91
BAB VI KESIMPULAN DAN SARAN .......................................................
92
6.1 Kesimpulan .......................................................................................
92
6.2 Saran .................................................................................................. 92 DAFTAR PUSTAKA ....................................................................................
93
LAMPIRAN ………………………………………………………………...
96
xvii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR GAMBAR
Gambar 2.1 Bentuk Sinyal ECG .......................................................................
7
Gambar 2.2 Ilustrasi kanal AWGN ................................................................... 9 Gambar 2.3 Aliran data pengawasandi Viterbi .................................................
12
Gambar 2.4 Contoh grafik jalur survivor .......................................................... 15 Gambar 3.1 Diagram alir model program simulasi kode konvolusi .................
16
Gambar 3.2 Model sistem kode konvolusi ........................................................ 17 Gambar 3.3 Diagram blok penyandi konvolusi (2, 1, 3) ................................... 18 Gambar 3.4 Diagram blok penyandi konvolusi (3, 1, 3) ................................... 19 Gambar 3.5 Diagram blok penyandi konvolusi (4, 1, 3) ................................... 19 Gambar 3.6 Arsitektur pengawasandi Viterbi ................................................... 20 Gambar 3.7 Diagaram blok Branch Metric ......................................................
20
Gambar 3.8 Diagaram blok Add-Compare Select ............................................. 21 Gambar 3.9 Contoh ECG database ................................................................... 22 Gambar 3.10 Contoh data ECG yang telah dipotong ........................................ 23 Gambar 3.11 Diagram Use Case pengguna ......................................................
23
Gambar 3.12 Diagram konteks .........................................................................
26
Gambar 3.13 Diagram Berjenjang ....................................................................
27
Gambar 3.14 Data flow diagram level 0 ........................................................... 28 Gambar 3.15 Data flow diagram level 1 proses 1 ............................................
29
Gambar 3.16 Data flow diagram level 1 proses 2 ............................................
30
Gambar 3.17 Tampilan halaman utama program .............................................. 31 Gambar 3.18 Tampilan halaman penyandian data ...........................................
32
Gambar 3.19 Tampilan halaman pengawasandian data ...................................
33
Gambar 3.20 Tampilan halaman hasil penyandian data ...................................
34
Gambar 3.21 Tampilan halaman hasil pengawasandian data ...........................
35
Gambar 3.22 Tampilan halaman grafik bit error rate ......................................
36
Gambar 3.23 Tampilan halaman simpan data ................................................... 37 Gambar 4.1 Tampilan menu utama ................................................................... 51 xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.2 Tampilan utama program simulasi kode konvolusi ......................
52
Gambar 4.3 Tampilan pilih file ECG ................................................................
53
Gambar 4.4 Tampilan hasil tombol pratinjau data ECG ................................... 54 Gambar 4.5 Tampilan Proses Penyandian Data ................................................ 55 Gambar 4.6 Tampilan hasil tombol sandikan data ECG ................................... 56 Gambar 4.7 Tampilan proses pengiriman data menggunakan kanal AWGN ... 56 Gambar 4.8 Tampilan pilih file hasil penyandian .............................................
58
Gambar 4.9 Tampilan hasil tombol kirim data ECG ........................................
59
Gambar 4.10 Tampilan proses pengawasandian data .......................................
59
Gambar 4.11 Tampilan hasil tombol awasandikan data ECG ..........................
61
Gambar 4.12 Tampilan grafik BER ..................................................................
61
Gambar 4.13 Tampilan pilih file hasil pengawsandian ..................................... 63 Gambar 4.14 Tampilan hasil pratinjau grafik BER ..........................................
64
Gambar 4.15 Tampilan grafik ECG ..................................................................
65
Gambar 4.16 Tampilan pilih file hasil pengawasandian ...................................
66
Gambar 4.17 Tampilan hasil grafik ECG .........................................................
67
Gambar 4.18 Grafik hasil pembacaan data ECG ..............................................
67
Gambar 4.19 Rangkaian penyandi konvolusi (2,1,3) ........................................ 68 Gambar 4.20 Hasil perhitungan fungsi Encoder12.m ....................................... 69 Gambar 4.21 Rangkaian penyandi konvolusi (3,1,3) ........................................ 70 Gambar 4.22 Hasil perhitungan fungsi Encoder13.m ....................................... 70 Gambar 4.23 Rangkaian penyandi konvolusi (4,1,3) ........................................ 71 Gambar 4.23 Hasil perhitungan fungsi Encoder13.m ....................................... 72 Gambar 4.24 Trellis diagram untuk rate
...................................................
73
.........
74
Gambar 4.26 Hasil perhitungan fungsi Main12.m ............................................
74
Gambar 4.27 Trellis diagram untuk rate
75
Gambar 4.25 Hasil perhitungan manual pengawasandi Viterbi rate
................................................... .........
75
Gambar 4.29 Hasil perhitungan fungsi Main13.m ............................................
76
Gambar 4.28 Hasil perhitungan manual pengawasandi Viterbi rate
xix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.30 Trellis diagram untuk rate
...................................................
76
.........
77
Gambar 4.32 Hasil perhitungan fungsi Main13.m ............................................
77
Gambar 5.1 Grafik Rata-rata BER code rate
.............................................
79
Gambar 5.2 Grafik Rata-rata BER code rate
.............................................
81
Gambar 5.3 Grafik Rata-rata BER code rate
.............................................
82
Gambar 5.4 Grafik Rata-rata BER 300 data ECG ............................................
83
Gambar 5.5 Grafik Rata-rata BER 600 data ECG ............................................
83
Gambar 4.27 Hasil perhitungan manual pengawasandi Viterbi rate
Gambar 5.6 Bentuk grafik ECG 100.dat ........................................................... 84 Gambar 5.7 Grafik nilai BER untuk data ECG 100.dat .................................... 85 Gambar 5.8 Bentuk grafik ECG 103.dat ........................................................... 85 Gambar 5.9 Grafik nilai BER untuk data ECG 103.dat .................................... 86 Gambar 5.10 Bentuk grafik ECG 111.dat ......................................................... 86 Gambar 5.11 Grafik nilai BER untuk data ECG 111.dat .................................. 87 Gambar 5.12 Grafik nilai BER code rate
..................................................
87
Gambar 5.13 Grafik nilai BER code rate
..................................................
88
Gambar 5.14 Grafik nilai BER code rate
..................................................
89
xx
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR TABEL
Tabel 3.1 Skenario utama penyandian data ....................................................... 25 Tabel 3.2 Skenario utama pengawasandian data ............................................... 26 Tabel 4.1 Perhitungan penyandi konvolusi (2,1,3) secara manual ...................
69
Tabel 4.2 Perhitungan penyandi konvolusi (3,1,3) secara manual ...................
70
Tabel 4.3 Perhitungan penyandi konvolusi (4,1,3) secara manual ...................
71
Tabel 4.4 Hasil pengujian kanal AWGN ..........................................................
72
Tabel 4.5 Hasil penerjemahan jalur Viterbi rate
........................................ 74
Tabel 4.6 Hasil penerjemahan jalur Viterbi rate
........................................ 75
Tabel 4.7 Hasil penerjemahan jalur Viterbi rate
........................................ 77
xxi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR LAMPIRAN
Lampiran 1 Listing Rddata ..............................................................................
96
Lampiran 2 fungsi popupmenusnr ................................................................... 99 Lampiran 3 Hasil dari pembacaan 300 data ECG ...........................................
104
Lampiran 4 Hasil persamaan (4.1) ..................................................................
105
Lampiran 5 Hasil pengujian dengan 300 data ECG code rate
.................. 105
Lampiran 6 Hasil pengujian dengan 600 data ECG code rate
.................. 106
Lampiran 7 Hasil pengujian dengan 300 data ECG code rate
.................. 107
Lampiran 8 Hasil pengujian dengan 600 data ECG code rate
.................. 108
Lampiran 9 Hasil pengujian dengan 300 data ECG code rate
.................. 108
Lampiran 10 Hasil pengujian dengan 600 data ECG code rate
................ 109
Lampiran 11 Rata-rata BER data ECG 300 ..................................................... 110 Lampiran 12 Rata-rata BER data ECG 600 ..................................................... 111 Lampiran 13 Nilai BER data ECG 100.dat .....................................................
111
Lampiran 14 Nilai BER data ECG 103.dat .....................................................
112
Lampiran 15 Nilai BER data ECG 111.dat .....................................................
112
Lampiran 16 Nilai BER code rate
untuk semua jenis data ECG ...................
113
Lampiran 17 Nilai BER code rate
untuk semua jenis data ECG ...................
114
Lampiran 18 Nilai BER code rate
untuk semua jenis data ECG
114
xxii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB I PENDAHULUAN
1.1 Latar belakang Kesalahan data merupakan masalah pada sistem komunikasi [1]. Beberapa kesalahan data dapat dimaklumi karena tidak berpengaruh besar dalam merusak data yang dikirimkan, seperti kesalahan yang terjadi saat menelepon. Namun bila data yang dikirimkan merupakan data penting, seperti data rekam medis Electroencephalogram (EEG) dan Electrocardiogram (ECG) atau Elektrokardiogram
(EKG),
maka
kesalahan
data
yang
terjadi
saat
mengirimkan data rekam medis tersebut akan sangat fatal terhadap pasien [2]. EEG merupakan data yang dihasilkan dari perekaman aktifitas otak. Sedangkan ECG atau EKG adalah suatu sinyal yang dihasilkan oleh aktifitas listrik otot jantung. Kesalahan data tersebut dapat terjadi karena terdapat gangguan pada saluran pengiriman seperti
noise, interference,
dan
fading
yang akan
mengakibatkan penurunan performa pada proses pengiriman data [3]. Akibat dari gangguan tersebut, data yang dikirimkan akan rusak dan penerimaan data tersebut menjadi tidak benar. Oleh karena itu kemampuan atau teknik untuk mendeteksi dan mengkoreksi kesalahan sangat dibutuhkan saat mengirimkan dan menerima data. Teknik yang dipakai adalah menyandikan (encode) data tersebut sebelum dikirimkan dengan menggunakan metode penyandian tertentu. Kemudian penerima menggunakan teknik yang sama untuk mengawasandikan (decode) data yang telah disandikan. Salah satu teknik untuk mengkoreksi kesalahan data adalah binary convolutional codes [4]. Binary convolutional codes diperkenalkan oleh Elias pada tahun 1955. Binary convolutional codes adalah teknik koreksi kesalahan data yang terkenal dan telah digunakan pada beberapa aplikasi, seperti komunikasi wireless, (IMT-2000, GSM, IS-95), komunikasi terestrial digital dan satelit, sistem penyiaran dan komunikasi luar angkasa. Metode 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
pengawasandian yang terkenal dan sesuai untuk binary convolutional codes adalah Viterbi. Algoritma Viterbi diperkenalkan oleh Andrew James Viterbi pada tahun 1967. Penelitian terhadap convolutional codes dengan pengawasandi Viterbi pernah dilakukan untuk meneliti unjuk kerja dari sistem DS-SS (Direct Sequence Spread Spectrum) [5]. Data yang digunakan dalam penelitian ini adalah sinyal ECG. Sinyal ECG ditransmisikan dalam sistem telemedika wireless. Penelitian tersebut menggunakan penyandi konvolusi dengan code rate = 1/2 dan contraint = 9. Penelitian lainnya adalah menganalisa unjuk kerja dari convolutional codes terhadap sistem komunikasi Successive Interference Cancellation Multiuser Detection CDMA [6]. Metode modulasi yang digunakan adalah Quadrature Amplitude. Penelitian tersebut menggunakan penyandi konvolusi dengan code rate ½ dan pengawasandi yang digunakan adalah algoritma Viterbi. Penelitian lain yang terkait dengan convolutional codes adalah memvisualisasikan dan menganalisa unjuk kerja dari convolutional codes terhadap sistem komunikasi Multicarrier CDMA (MC-CDMA) [7]. Teknik modulasi yang digunakan adalah QPSK. Data disandikan menggunakan convolutional codes dengan rate 1/3 dan dikirimkan menggunakan pembangkitan pseudorandom code yaitu Gold code. Pengawasandi yang digunakan adalah Viterbi Dari penelitian-penelitian yang telah dilakukan sebelumnya, penelitian yang membandingkan nilai code rate terhadap unjuk kerja dari convolutional codes dengan pengawasandi Viterbi belum pernah diteliti. Sehingga pada tugas akhir ini, penulis ingin menganalisa unjuk kerja dari convolutional codes dengan menggunakan code rate 1/2, 1/3 dan 1/4. Proses analisa adalah mengukur nilai Bit Error Rate (BER). Proses analisa dilakukan dengan membuat simulasi dari convolutional codes dengan pengawasandi Viterbi menggunakan aplikasi Matlab. Proses perhitungan atau komputasi dan hasil dari perhitungan ditampilkan pada sebuah Graphical User Interface (GUI) di
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
dalam Matlab. Kemudian pengujian program dilakukan dengan menggunakan data-data rekam medis Electrocardiogram (ECG) sebagai data masukan. Hasil dari pengujian tersebut akan menjadi ukuran dari kinerja convolutional codes dengan pengawasandi Viterbi.
1.2 Rumusan masalah Berdasarkan permasalahan yang telah dijelaskan dalam latar belakang, rumusan masalah yang dapat diperoleh antara lain : 1. Bagaimana merancang dan mensimulasikan program convolutional codes dalam Matlab? 2. Bagaimana cara mendapatkan data ECG yang akan diolah dan dijadikan data masukan untuk program convolutional codes yang akan dibuat dalam tugas akhir ini? 3. Bagaimana proses pengujian dan analisa hasil dari program convolutional codes?
1.3 Tujuan penelitian Tujuan dari penelitian ini adalah tersedianya program simulasi dari convolutional codes yang diuji dengan data ECG.
1.4 Manfaat penelitian Hasil penelitian tugas akhir ini diharapkan dapat memberi manfaat sebagai berikut: 1. Menjadi media pendukung pembelajaran untuk mata kuliah Teknik Koreksi Kesalahan Data bagi mahasiswa dan dosen teknik informatika. 2. Menjadi referensi penelitian lanjutan teknik koreksi data mengenai error control
coding
terutama
menggunakan data ECG.
untuk
pengkajian
convolutional
codes
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
1.5 Batasan masalah Pada penelitian tugas akhir ini terdapat beberapa batasan masalah agar perancangan sistem ini dapat dilakukan dengan tepat, antara lain: 1. Pengujian dilakukan dengan cara simulasi pada aplikasi penyandian, pengiriman, dan pengawasandian pada Matlab 2. Code rate yang digunakan pada convolutional codes adalah 1/2, 1/3 dan 1/4 3. Kanal yang digunakan adalah Gaussian dengan Additive White Gaussian Noise (AWGN). 4. Modulator yang digunakan adalah QAM-16. 5. Nilai Signal Noise to Ratio (SNR) yang diuji mulai dari 1 sampai 21. 6. Program simulasi convolutional codes menggunakan single PC. 7. Data ECG berasal dari MIT-BIH Arryhtymia Database. 8. Pengujian program convolutional codes menggunakan data ECG dengan panjang data 300 dan 600 sampel titik data. 9. Perhitungan BER dilakukan dengan menggunakan rumus dasar BER.
1.6 Metodologi penelitian Metodologi dan langkah-langkah yang digunakan dalam pelaksanaan penelitian tugas akhir ini adalah sebagai berikut : 1. Studi literatur Mengumpukan dan mempelajari referensi yang berkaitan dan mendukung penelitian ini, seperti error control coding, tutorial convolutional codes , dan algoritma convolutional codes. 2. Perancangan Penulis menentukan besar ukuran dari convolutional codes , mencari data ECG yang akan digunakan, dan merancang program convolutional codes untuk pengujian. 3. Pengujian program Program akan diuji dengan memberi masukan data kecil atau berjumlah sedikit. Kemudian hasil simulasi dibandingkan dengan hasil perhitungan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5
secara teoritis. Program akan dianggap benar jika kedua hasil perhitungan bernilai sama. 4. Simulasi dan pengumpulan data Simulasi dan
perancangan program convolutional codes mengunakan
bahasa pemprograman Matlab. 5. Analisa data Pada tahap ini, penulis akan melakukan analisis dari hasil pengujian. Analisis akan dilakukan dengan melakukan pengamatan dan menghitung nilai BER, kemudian akan menyimpulkan unjuk kerja dari convolutional codes .
1.7 Sistematika penulisan Sistemmatika penulisan dalam tugas akhir ini adalah sebagai berikut : I.
PENDAHULUAN Bab ini berisi tentang latar belakang, rumusan masalah, tujuan penelitian, manfaat penelitian, batasan masalah, metodologi penelitian serta sistematika penulisan.
II.
LANDASAN TEORI Bab ini berisi tentang dasar teori yang mendukung pembuatan program
III.
PERANCANGAN SIMULASI CONVOLUTIONAL CODES Bab ini berisi percancangan yang dibutuhkan untuk memulai simulasi program convolutional codes .
IV.
IMPLEMENTASI Bab ini berisi tentang pelaksanaan simulasi convolutional codes dari rancangan yang telah dilakukan sebelumnya.
V.
ANALISA HASIL Bab ini berisi tentang hasil analisa data dari pengujian program convolutional codes.
VI.
KESIMPULAN DAN SARAN Bab ini berisi tentang kesimpulan dan saran setelah mengamati hasil penerapan program dan keterbatasan program.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB II LANDASAN TEORI
2.1. Electrocardiogram Electrocardiogram (ECG) atau Elektrokardiogram (EKG) adalah suatu sinyal yang dihasilkan oleh aktifitas listrik otot jantung [8]. EKG merupakan rekaman informasi kondisi jantung yang diambil dengan memasang elektroda pada badan. Rekaman EKG ini digunakan oleh dokter ahli untuk menentukan kodisi jantung dari pasien. Sinyal EKG direkam menggunakan perangkat elektrokardiograf.
2.1.1. Sinyal Electrocardiogram Sewaktu impuls jantung melewati jantung, arus listrik akan menyebar ke dalam jaringan di sekeliling jantung dan sebagian kecil dari arus tersebut akan menyebar ke permukaaan tubuh yang lain [8]. Bila pada permukaaan tubuh diletakkan elektroda-elektroda, maka potensial listrik yang muncul dapat direkam. Rekaman ini disebut elektrokardiogram (electrocardiogram signal) dan lebih dikenal dengan nama sinyal ECG. Menurut Mervin J. Goldman, sinyal ECG adalah grafik hasil catatan potensial listrik yang dihasilkan oleh denyut jantung. Gambar 2.1 menunjukkan bentuk sinyal ECG. Terdapat beberapa parameter pendukung dalam elektrokardiogram, antara lain: 1.
Gelombang P, terjadi akibat kontraksi otot pada serambi jantung (atrium), gelombang ini relatif kecil karena otot atrium yang relatif tipis.
2.
Gelombang QRS, terjadi akibat kontraksi otot pada bilik jantung (ventrikel) yang tebal sehingga gelombang QRS cukup tinggi. Gelombang Q merupakan perubahan bentuk atau arah gelombang (defleksi) ke bawah. Selanjutnya defleksi ke atas adalah gelombang R. Defleksi ke bawah setelah gelombang R disebut gelombang S.
6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
3.
Gelombang T, terjadi akibat kembalinya otot ventrikel ke keadaan listrik seperti semula (repolarisasi).
Gambar 2.1 Bentuk sinyal ECG [8].
2.2 Kanal Transmisi Kanal transmisi merupakan media yang memiliki sejumlah efek pada proses pentransmisian yaitu seperti atenuasi, distorsi, interferensi, dan noise [9]. Hal tersebut membuat keadaan tak tentu pada bit-bit data akan diterima dengan baik atau tidak di sisi receiver. Dalam tugas akhir ini kanal transmisi yang dipakai adalah Gaussian.
2.2.1
Additive White Gaussian Noise (AWGN)
Additive White Gaussian Noise (AWGN) memiliki noise yang berdistribusi normal dengan nilai rata-rata (mean) nol [9]. Noise ini bernilai acak dan bersifat menambahkan sinyal aslinya. Bentuk persamaan Probability Density Function (PDF) dari distribusi Gaussian adalah: 𝑝𝑝(𝑥𝑥) =
1
√2𝜋𝜋𝜋𝜋
𝑒𝑒 −(𝑥𝑥−𝑚𝑚 𝑥𝑥 )
2 /2𝜎𝜎 2
(2.1)
Noise merupakan hal yang bersifat khusus dan tidak dapat dihilangkan sepenuhnya. Di samping sumber dari resistor, banyak material lain yang merupakan sumber noise yang memiliki karakteristik statistik distribusi Gaussian dan memiliki kerapatan spektral yang membentang datar pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
hampir keseluruhan spektrum frekuensi. Sehingga noise ini memiliki karakteristik seperti cahaya putih dan selanjutnya dinamakan White Gaussian Noise. AWGN memiliki karakteristik yang dijelaskan pada sub bab selanjutnya.
2.2.1.1 White Noise Spektrum rapat daya noise dianggap memiliki harga yang sama untuk setiap frekuensi (dalam pita komunikasi yang digunakan), yang dapat dimodelkan pada persamaan matematis sebagai berikut [9]: 𝑆𝑆𝑤𝑤 (𝑓𝑓) =
𝑵𝑵𝟎𝟎
(2.2)
𝟐𝟐
dengan 𝑁𝑁0 adalah daya noise dan f adalah frekuensi. 2.2.1.2 Terdistribusi Gaussian Pola kemunculan noise dianggap terdistribusi Gaussian dengan nilai ratarata (mean) adalah nol dan varians tergantung rapat daya yang diperkirakan dari noise tersebut [9]. Penerima akan menterjemahkan sinyal informasi (bit) baseband dari sinyal carrier yang telah mengandung noise.
Penambahan noise tersebut
terjadi di dalam kanal (saluran) yang dapat berupa kabel tembaga atau lintasan melalui udara tanpa halangan (line of sight). Sumber noise yang kedua berasal dari rangkaian pada penerima itu sendiri. Dalam tugas akhir ini bentuk noise yang dipilih bersifat aditif (menambahkan) dengan pendekatan statistik yang memiliki distribusi Gaussian dan pada keseluruhan band frekuensi menunjukkan karakteristik yang sama sehingga memiliki sifat yang sama dengan warna putih yang spektrumnya membentang pada keseluruhan frekuensi warna. Gambar 2.2 menunjukkan ilustrasi dari sebuah kanal AWGN. Pada kanal AWGN, zero-mean white Gaussian noise ditambahkan pada sinyal transmisi s(t), sehingga sinyal yang diterima r(t) berbentuk sebagai berikut: 𝑟𝑟(𝑡𝑡) = 𝑠𝑠(𝑡𝑡) + 𝑛𝑛(𝑡𝑡)
(2.3)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
dengan n(t) adalah zero-mean white Gaussian noise dengan daya
Sinyal yang dikirimkan
s(t)
r(t)
𝑁𝑁0� 2.
Sinyal yang diterima
n(t) Noise Gambar 2.2 Ilustrasi kanal AWGN [9].
2.3 Bit Error Rate Perkembangan komunikasi digital modern mendorong dibutuhkannya pengukuran
kinerja
end-to-end
[10].
Pengukuran
kinerja
biasanya
menggunakan bit-error rate (BER) yang mengkuantifikasi keandalan sistem komunikasi dari bit yang masuk dan bit yang keluar. Nilai BER sangat diperngaruhi oleh noise yang berada pada lingkungan pengiriman data. BER memiliki konsep sederhana yang didefinisikan dalam persamaan berikut: 𝐵𝐵𝐵𝐵𝐵𝐵 = 𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇
𝐸𝐸𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟
𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁 𝑜𝑜𝑜𝑜 𝐵𝐵𝐵𝐵𝐵𝐵𝐵𝐵
(2.4)
Perhitungan nilai BER pada persamaan di atas melibatkan dua buah variabel yaitu jumlah error atau kesalahan dan total jumlah bit suatu data. Proses perhitungan dengan menggunakan persamaan (2.4) merupakan perkiraan nilai BER dan bukanlah perhitungan yang akurat. Setiap analisa yang mendalam dari proses yang mempengaruhi BER membutuhkan analisa matematis yang signifikan. Selain noise, kesalahan kuantifikasi juga berperan mengurangi kinerja dari BER, melalui rekonstruksi bentuk sebuah gelombang yang salah. Kesalahan ini terutama berupa fungsi dari ketepatan proses konversi digitalto-analog dan analog-to-digital dan terkait dengan jumlah bit yang digunakan pada titik-titik di rangkaian. Hal lain yang mempengaruhi kesalahan kuantisasi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
adalah tingkat akurasi proses modulasi atau demodulasi analog dan efek penyaringan pada sinyal serta noise bandwidth. BER juga dapat didefinisikan dalam istilah probability of error (POE). Persamaan dari POE dapat ditulis sebagai berikut: 1 𝐸𝐸 𝑃𝑃𝑃𝑃𝑃𝑃 = 2 (1 − 𝑒𝑒𝑒𝑒𝑒𝑒)� 𝑏𝑏�𝑁𝑁
(2.5)
0
dengan erf adalah fungsi error, 𝐸𝐸𝑏𝑏 adalah energi dalam satu bit, dan 𝑁𝑁0 daya
spektral noise dalam 1 Hz bandwidth.
Fungsi kesalahan berbeda untuk masing-masing metode modulasi. Hal yang lebih penting untuk dicatat bahwa POE sebanding dengan
𝐸𝐸𝑏𝑏
�𝑁𝑁 atau 0
merupakan bentuk dari signal-to noise ratio. Energi per bit, 𝐸𝐸𝑏𝑏 , dapat ditentukan dengan membagi daya pembawa dengan bit rate.
2.4 Kode Konvolusi Suatu kode konvolusi (n,k) dengan panjang constraint (K) mempunyai parameter-parameter sebagai berikut [11]: k
= banyaknya input port
n
= banyaknya output port/modulo-2 adder
K
= panjang constraint, banyaknya memori 𝑘𝑘
𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟 = 𝑅𝑅 = 𝑛𝑛 (𝑘𝑘 < 𝑛𝑛) atau 𝑅𝑅 < 1 2.4.1
(2.6)
Penyandian Konvolusi
Suatu kode konvolusi dengan rate R=k/n dan panjang constraint K dapat digambarkan oleh satu set urutan generator sebagai berikut [11]: (𝑗𝑗 )
𝑔𝑔𝑖𝑖
i = 1, 2, 3, ... , k
(𝑗𝑗 )
(𝑗𝑗 )
(𝑗𝑗 )
(𝑗𝑗 )
= �𝑔𝑔𝑖𝑖,0 , 𝑔𝑔𝑖𝑖,1 , … , 𝑔𝑔𝑖𝑖,𝑚𝑚 −1 , 𝑔𝑔𝑖𝑖,𝑚𝑚 �
(2.7)
j= 1, 2, 3, ... , n Constraint (K) juga dapat digambarkan sebagai polinomial berderet m sebagai berikut:
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
(𝑗𝑗 )
(𝑗𝑗 )
(𝑗𝑗 )
(𝑗𝑗 )
(𝑗𝑗 )
𝑔𝑔𝑖𝑖 (𝐷𝐷) = �𝑔𝑔𝑖𝑖,0 , 𝑔𝑔𝑖𝑖,1 𝐷𝐷, … , 𝑔𝑔𝑖𝑖,𝑚𝑚−1 𝐷𝐷𝑚𝑚 −1 , 𝑔𝑔𝑖𝑖,𝑚𝑚 𝐷𝐷𝑚𝑚 �
(2.8)
Urutan informasi dan output penyandi adalah; (𝑖𝑖)
(𝑖𝑖)
(𝑖𝑖)
𝑑𝑑(𝑖𝑖) = �𝑑𝑑0 , 𝑑𝑑1 , 𝑑𝑑2 , … . � (𝑖𝑖)
(𝑖𝑖)
(𝑖𝑖)
𝑐𝑐 (𝑖𝑖) = �𝑐𝑐0 , 𝑐𝑐1 , 𝑐𝑐2 , … . �
dapat dicari dengan mengkombinasikan konvolusi diskrit dari urutan (𝑗𝑗 )
informasi d(i) dengan urutan generator 𝑔𝑔𝑖𝑖 , seperti berikut:
𝑐𝑐 (𝑗𝑗 ) = ∑𝑘𝑘𝑖𝑖=1 𝑑𝑑(𝑖𝑖) ∗ 𝑔𝑔𝑗𝑗𝑖𝑖 dengan j = 1, 2, .... , n
(2.9)
Secara umum persamaan (2.10) dapat juga ditulis dalam persamaan penyandian sebagai berikut: (𝑗𝑗 )
𝑐𝑐𝜆𝜆
(𝑖𝑖)
𝑗𝑗
𝑘𝑘 = ∑𝑚𝑚 𝑙𝑙=0�∑𝑖𝑖=1 𝑑𝑑𝜆𝜆−1 𝑔𝑔𝑖𝑖,1 �
(2.10)
untuk semua 0 ≤ l ≤ λ dan 0 ≤ j ≤ n . Dalam bentuk matriks persamaan (2.11) dapat ditulis sebagai : c = d.G. Bila persamaan penyandian seperti di atas ditulis dalam bentuk polinomial, maka: 𝑐𝑐 (𝑗𝑗 ) = ∑𝑘𝑘𝑖𝑖=1 𝑑𝑑(𝑖𝑖) (𝐷𝐷)𝑔𝑔𝑗𝑗𝑖𝑖 (𝐷𝐷) dengan j = 1, 2, .... , n
(2.11)
2.5 Algoritma Viterbi 2.5.1
Definisi Dasar
Algoritma Viterbi merupakan salah satu algoritma yang digunakan dalam menghadapi masalah yang muncul pada kanal wireless [12]. Idealnya, algoritma Viterbi merekonstruksi ulang maximum-likelihood path dengan memberikan urutan masukan. Terdapat beberapa hal yang harus diperhatikan sebelum implementasi algoritma Viterbi: 1.
Soft decision decoder, pengawasandi menerima bit-bit dari saluran dengan beberapa jenis estimasi keandalan. Meningkatkan lebar soft decision yang hanya akan meningkatkan kinerja sedikit, sementara sangat meningkatkan
kesulitan
dari
komputasi.
Sebagai
contoh,
jika
pengawasandi menggunakan 3-bit soft decision, maka "000" adalah nol terkuat, "011" adalah nol paling lemah, "100" adalah salah satu paling
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
lemah dan "111" adalah satu terkuat. Biasanya soft decision decoder menggunakan Euclidean distance untuk mengukur jarak. 2.
Hard decision decoder, pengawasandi menerima bit-bit dari saluran tanpa estimasi keandalan. Biasanya hard decision decoder menggunakan Hamming distance untuk mengukur jarak.
3.
Branch metric, jarak antara pasangan bit masukan dan salah satu pasangan ideal (“00”, “01”, “10”, “11”).
4.
Path metric, penjumlahan metrik dari semua cabang pada path. Dengan ketentuan di atas, maximum-likelihood path adalah sebuah jalur
dengan jalur metrik minimal. Dengan demikian masalah pengawasandian setara dengan masalah mencari jalan semacam itu.
2.5.2
Implementasi
Gambar 2.8 menunjukkan aliran data pengawasandi Viterbi. Algoritma Viterbi terdiri dari tiga bagian utama berikut [12]: 1.
Branch metric calculation, perhitungan jarak antara pasangan masukan bit dan empat kemungkinan pasangan ideal ("00", "01", "10", "11").
2.
Path metric calculation, untuk setiap bagian penyandi, menghitung metrik untuk survivor path yang berakhir pada bagian ini (survivor path adalah sebuah jalur dengan metrik minimum).
3.
Traceback, Langkah ini diperlukan untuk implementasi hardware yang tidak menyimpan informasi lengkap tentang jalur survivor, tetapi hanya menyimpan satu bit decision setiap saat ketika satu jalur survivor terpilih dari dua.
Gambar 2.3 Aliran data pengawasandi Viterbi [12].
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
2.5.3
Branch Metric Calculation
Metode pada perhitungan branch metric untuk hard decision decoder dan soft decision decoder berbeda [12]. Perhitungan pada hard decision decoder menggunakan Hamming distance. Hamming distance akan mengitung jarak antar pasangan bit masukan dan pasangan bit ideal. Oleh karena itu, branch metric dapat mengambil nilai dari 0, 1, dan 2. Sehingga setiap pasangan bit masukan memiliki empat branch metric (satu untuk masing-masing nilai pasangan ideal). Perhitungan pada soft decision decoder menggunakan Euclidean distance. Misalkan x menjadi bit pertama yang diterima dalam pasangan, y adalah bit yang kedua, x 0 dan y 0 adalah nilai-nilai ideal. Maka branch metric adalah: M b = ( x − x0 ) 2 + ( y − y 0 ) 2
(2.12)
Ketika pengawasandi menghitung 4 branch metric untuk soft decision decoder, pengawasandi hanya perlu mengetahui perbedaan dari perhitungan metrik. Jadi, nilai branch metric tidak akan berubah jika pengawasandi mengurangi 1 nilai dari semua 4 branch metric, sehingga: M b = ( x 2 − 2 xx0 + x02 ) + ( y 2 − 2 yy 0 + y 02 );
(2.13)
atau M b* = M b − x 2 − y 2 = ( x 2 − 2 xx0 ) + ( y 2 − 2 yy 0 ).
(2.14)
M b* dapat dihitung tanpa perkalian di level perangkat keras. x02 dan y 02
dihitung terlebih dahulu dan perkalian x dengan x0 dan y dengan y 0 dapat dilakukan dengan sangat mudah dalam perangkat keras jika x0 dan y 0 adalah konstan.
2.5.4
Path Metric Calculation
Path metrics dihitung menggunakan prosedur yang disebut AddCompare-Select (ACS) [12]. Prosedur ini diulang untuk setiap bagian penyandi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
1.
Add, terdapat dua keadaan pada proses sebelumnya yang berubah ke keadaan sekarang dan terdapat pasangan bit keluaran yang terkait pada proses
perubahan
tersebut.
Path
metric
baru
dihitung
dengan
menambahkan path metric sebelumnya dan branch metric yang sesuai. 2.
Compare – select, dua jalur yang dihasilkan dari tahap add akan dibandingkan dan salah satu jalur akan dibuang. Ketentuan yang digunakan dalam pemilihan jalur yang akan dibuang adalah jalur yang memiliki nilai metrik yang paling besar. Karena terdapat 2k-1 bagian penyandi, maka terdapat 2k-1 jalur survivor
pada waktu tertentu. Perbedaan antara metric dua jalur survivor tidak dapat melebihi δLog ( K − 1) , dengan δ adalah sebuah perbedaan antara maksimum dan minimum dari branch metric yang memungkinkan.
2.5.5
Traceback
Ketika pengawasandi mengawasandikan sebuah aliran data yang berkelanjutan, pengawasandi diharapkan memiliki nilai latency yang terbatas [12]. Jalur-jalur di awal grafik menjadi milik dari jalur survivor. Bit yang telah diawasandikan sesuai dengan bagian ini dan dapat dikirim ke output. Pengawasandian dilakukan dengan langkah berikut: 1.
Menemukan jalur survivor untuk pasangan bit masukan N+D.
2.
Melakukan Traceback dari akhir jalur survivor apapun sampai ke awal.
3.
Mengirimkan N bit ke output.
4.
Menemukan jalur survivor untuk pasangan bit masukan N lainnya.
5.
Kembali ke langkah no 2. Dalam prosedur ini, D merupakan parameter penting yang disebut
decoding depth. Sebuah decoding depth harus cukup besar untuk kualitas pengawasandian, tidak kurang dari 5K. Peningkatan D mengurangi kemungkinan kesalahan pengawasandian, tetapi juga meningkatkan latency. Gambar 2.9 menujukkan grafik dari jalur survivor.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
Gambar 2.4 Contoh grafik jalur survivor. Lingkaran biru menunjukkan bagian penyandi. Hal ini menujukkan bahwa semua jalur survivor mempunyai awal yang umum (garis merah) dan hanya berbeda dibagian akhir [12].
Adapun N, menujukkan seberapa banyak bit yang di kirim ke output setelah masing-masing traceback. Sebagai contoh, jika N=1, nilai dari latency minimal, tetapi pengawasandi perlu melacak seluruh tree setiap melangkah. Komputasi ini tidak efektif. Dalam implementasi hardware, N biasanya sama dengan D.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB III PERANCANGAN SIMULASI KODE KONVOLUSI
3.1 Gambaran Umum Program Gambar 3.1 memperlihatkan diagram alir program simulasi kode konvolusi secara singkat dari awal hingga akhir program dijalankan. Mulai
Penyadian Konvolusi
Data ECG
kanal AWGN Selesai
Grafik ECG dan Probabilitas error
Pengawasandian Viterbi
Gambar 3.1 Diagram alir model program simulasi kode konvolusi.
Dari Gambar 3.1, alir program simulasi kode konvolusi dapat dijelaskan secara umum sebagai berikut, program mendapat masukan data berupa data ECG. Data ECG didapat dengan cara memotong ECG database dalam ukuran yang sesuai dengan ukuran masukan dari kode konvolusi. Kemudian data ECG yang telah dipotong, dikonversi ke dalam bentuk biner. Data ECG dalam bentuk biner masuk ke dalam proses penyandian konvolusi. Data ECG yang telah disandikan kemudian disimpan ke dalam Interleaving buffer. Selanjutnya, data ECG disandikan kembali penyadian konvolusi. Data ECG yang telah disandikan dua kali tersebut dikirimkan ke penerima melalui Additive White Gaussian Noise (AWGN). Pada proses pengiriman tersebut, data ECG mendapatkan error yang random dari kanal AWGN. Data ECG diterima pada penerima melalui De-interleaving buffer. Data ECG akan diurutkan kembali sesuai dengan urutan data sebelum masuk ke dalam proses Interleaving. Kemudian data ECG diawasandikan pada
16
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
pengawasandi Viterbi. Data ECG mengalami proses deteksi error, koreksi error, dan pengawasandian kembali pada pengawasandi Viterbi. Setelah proses pengawasandian selesai, proses penghitungan dan analisa probabilitas error dilakukan dan disajikan dalam bentuk grafik. Hasil data yang telah mengalami proses deteksi, koreksi, dan penerjemahan akan dikembalikan kembali ke dalam bentuk ECG. Hasil dari program simulasi ini adalah grafik BER.
3.2 Rancangan Model Sistem Program simulasi kode konvolusi ini merupakan hasil dari sebuah rancangan suatu model yang terdiri dari beberapa rangkaian sistem. Rancangan model sistem kode konvolusi diperlihatkan dalam Gambar 3.2. Sinyal ECG (Analog)
Analog to Digital Converter
Penyandi Konvolusi
Kanal AWGN
Sinyal ECG (Analog)
Digital to Analog Converter
Pengawasandi Viterbi
Gambar 3.2 Model sistem kode konvolusi. Gambar 3.2 menujukkan komponen-komponen yang menjadi dasar dari kode konvolusi. Komponen yang pertama adalah sinyal analog dari data ECG. Komponen kedua adalah konverter sinyal analog ke sinyal digital yang berfungsi mengkonversi sinyal analog ECG ke dalam bentuk digital. Komponen yang ketiga adalah penyandi konvolusi yang berfungsi menyandikan sinyal digital ECG. Komponen yang keempat adalah Interleaver yang berfungsi sebagai penyimpan sementara sinyal digital ECG yang telah disandikan. Komponen kelima adalah adalah kanal AWGN.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
Komponen keenam pada penerima adalah De-interleaver yang berfungsi sebagai penyimpanan sementara data digital yang telah diawasandikan. Komponen ketujuh adalah pengawasandi Viterbi yang berfungsi mendeteksi kesalahan, mengkoreksi kesalahan, dan mengawasandikan sinyal digital. Komponen kedelapan adalah konverter sinyal digital ke analog yang berfungsi mengkonversi sinyal digital ECG ke dalam bentuk analog. Setelah data ECG dikembalikan ke dalam bentuk analog, penghitungan dari Bit Error Rate (BER) dilakukan untuk mengetahui kinerja dari kode konvolusi.
3.2.1
Perancangan Penyandian Konvolusi (2, 1, 3)
Perancangan dari penyandi konvolusi (2, 1, 3s) menggunakan panjang constarint = 2, dengan 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 (𝑅𝑅) = 1�2 [13]. Generator polinomial yang dipakai adalah 𝑔𝑔1 = [101] dan 𝑔𝑔2 = [111]. Gambar 3.3 menunjukkan
rangkaian penyandi konvolusi (2, 1, 3). +
Input
Output
+
Gambar 3.3 Diagram blok penyandi konvolusi (2, 1, 3) [13].
3.2.2
Perancangan Penyandian Konvolusi (3, 1, 3)
Perancangan dari penyandi konvolusi (3, 1, 3) menggunakan panjang constarint = 3, dengan 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 (𝑅𝑅) = 1�3 [13]. Generator polinomial yang dipakai adalah 𝑔𝑔1 = [101], 𝑔𝑔2 = [111], dan 𝑔𝑔3 = [111]. Gambar 3.4 menunjukkan rangkaian penyandi konvolusi (3, 1, 3).
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
+
Output Input
+
+
Gambar 3.4 Diagram blok penyandi konvolusi (3, 1, 3) [13].
3.2.3
Perancangan Penyandian Konvolusi (4, 1, 3)
Perancangan dari penyandi konvolusi (4, 1, 3) menggunakan panjang constarint = 3, dengan 𝑅𝑅𝑅𝑅𝑅𝑅𝑅𝑅 (𝑅𝑅) = 1�4 [13]. Generator polinomial yang dipakai adalah 𝑔𝑔1 = [101], 𝑔𝑔2 = [111], 𝑔𝑔3 = [111], dan 𝑔𝑔4 = [111]. Gambar 3.5 menunjukkan rangkaian penyandi konvolusi (4, 1, 3). +
Input
Output
+
Gambar 3.5 Diagram blok penyandi konvolusi (4, 1, 3) [13].
3.2.4
Perancangan Pengawasandian Viterbi
Arsitektur dari pengawasandian Viterbi tergantung pada pengorganisasian memori dengan unit komputasi seperti perhitungan Branch Metric, perhitungan Path Metric (Add-Compare Select), dan terutama pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 20
mekanisme Traceback yang diadopsi dalam desain. Arsitektur pengawasandi Viterbi diimplementasikan menurut trellis diagram. Gambar 3.5 menunjukkan desain dari arsitektur pengawasandi Viterbi.
Gambar 3.6 Arsitektur pengawasandi Viterbi [12].
Gambar
3.5
menunjukkan
proses-proses
yang
dijalankan
dalam
mengawasandikan data ECG. Pertama data akan diproses pada Branch Metric. Branch Metric akan menghitung Hamming Distance antara urutan masukan yang diterima dan urutan hasil masukan yang diharapkan. Gambar 3.6 menunjukkan diagram blok dari Branch Metric.
Gambar 3.7 Diagaram blok Branch Metric [14].
Kedua data akan masuk ke dalam proses perhitungan Path Metric. Path Metric menggunakan metode Add-Compare Select (ACS). ACS digunakan secara berulang pada pengawasandi yang bertujuan untuk menghitung Branch Metric yang baru dan memperbaharui elemen-elemen memori dengan Branch Metric paling sedikit. Gambar 3.7 menunjukkan diagram blok dari Add-Compare Select.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
Gambar 3.8 Diagaram blok Add-Compare Select [14].
Ketiga data akan masuk ke dalam proses Traceback. Konsep Traceback yang dikembangkan dalam penelitian ini adalah sebagai berikut: 1.
Register Path Metric akan menghitung Path Metric di setiap state hingga data ke-n.
2.
Selanjutnya nilai Path Metric yang terdapat pada setiap state akan dibandingkan dan diambil nilai minimal.
3.
Nilai minimal ini selanjutnya akan dikirimkan ke blok kontrol beserta informasi nilai minimal yang dicapai pada state.
4.
Setelah seluruh isi register path storage terisi, pada register ke-n, bedasarkan informasi yang dikirim dari register Path Metric, blok kontrol akan mengirimkan informasi state yang memiliki nilai Path Metric minimal.
5.
State ini pada register ke-n akan menjadi titik awal Traceback.
6.
Jika bernilai path storage bernilai ‘0’, maka state sebelumnya berasal dari jalur state yang lebih tinggi, sedangkan jika bernilai ‘1’, maka state sebelumnya berasal dari jalur state yang lebih rendah.
7.
Setelah identifikasi state asal diperoleh, nilai kode informasi adalah nilai LSB dari konversi nilai state pada basis binernya.
3.2.5
Perancangan Input Data
Sumber data yang akan digunakan dalam pengujian program simulasi kode konvolusi adalah ECG database. ECG database diambil dari
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
Massachusetts Institute of Technology dan Boston's Beth Israel Hospital (MIT-BIH). ECG database terdiri dari beberapa file yaitu file dengan ekstensi hea, dat, dan atr. File ekstensi hea atau header dan ekstensi dat atau data merupakan file dasar dari ECG database. File-file tersebut berisi tentang data sinyal dari rekaman ECG. Sedangkan file dengan ekstensi atr atau atribut merupakan file biner yang berisi tentang lokasi dalam sinyal tersebut dan penjelasan mengenai kejadian di lokasi tersebut. Gambar 3.9 menunjukkan contoh dari ECG database. File ECG yang akan dalam pengujian ini sebelumnya harus dipotong dengan format 12 bit data yang sesuai sebagai masukan data untuk program simulasi kode konvolusi. Gambar 3.10 menunjukkan file ECG yang telah dipotong sesuai dengn format yang dibutuhkan.
Gambar 3.9 Contoh ECG database
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
Gambar 3.10 Contoh data ECG yang telah dipotong
3.2.6
Diagram Use Case
Gambar 3.11 menujukan use case pengguna terhadap program simulasi kode konvolusi. Terdapat dua use case yang dapat dilakukan pengguna taitu penyandian data ECG dan pengawasandian data ECG. Pada use case penyandian data ECG pengguna mampu melakukan penyandian data ECG menggunakan
metode
kode
konvolusi.
Kemudian
pada
use
case
pengawasandian data ECG pengguna mampu mengawasandikan data ECG yang telah disandikan sebelumnya dan mengembalikan data ECG ke bentuk awal.
Gambar 3.11 Diagram Use Case pengguna
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
3.2.7
Narasi Use Case
Use case pada gambar 3.8 menunjukkan langkah kerja yang dapat dilakukan pengguna terhadap program simulasi kode konvolusi. Langkah kerja tersebut meliputi aksi pengguna dan reaksi program terhadap reaksi pengguna yang dijelaskan dalam narasi use case. Nama Use Case
: Penyandian data ECG
Aktor
: Pengguna
Kondiai awal
: Pengguna
berada
pada
tampilan
utama
program simulasi kode konvolusi. Deskripsi
: Use case ini digunakan pengguna untuk memasukkan data ECG, data akan disandikan menggunakan metode kode konvolusi.
Table 3.1 merupakan skenario dari penyandian data. Tabel ini akan menjelaskan aksi pengguna terhadap program dan reaksi yang diberikan program kepada pengguna ketika menyandikan data ECG. Aksi Aktor 1. Pengguna
menekan
Reaksi Sistem tombol
Penyandian Data. 2. Sistem menampilkan halaman Penyandian Data ECG. 3. Pengguna mencari dan memilih file ECG database yang akan digunakan dan menekan tombol Pratinjau Data ECG. 4. Sistem
membaca
masukan
file
dan
menampilkan grafik visualisasi ECG hasil proses pembacaan. 5. Pengguna menekan tombol Sandikan Data ECG untuk melakukan proses penyandian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
data.
6. Sistem melakukan proses penyandian data menggunakan menampilkan
kode hasil
konvolusi
dan
penyandian
pada
halaman halaman Hasil Penyandian Data. 7. Pengguna menekan tombol Simpan untuk menyimpan hasil penyandian. 8. Sistem memproses hasil penyandian untuk dijadikan sebuah file Tabel 3.1 Skenario utama penyandian data
Nama Use Case
: Pengawasandian data ECG
Aktor
: Pengguna
Kondiai awal
: Pengguna
berada
pada
tampilan
utama
program simulasi kode konvolusi. Deskripsi
: Use case ini digunakan pengguna untuk mengawasandikan
data
hasil
penyandian
menggunakan metode kode konvolusi. Tabel 3.2 merupakan skenario dari pengawasandian data hasil penyandian. Tabel ini akan menjelaskan aksi pengguna terhadap program dan reaksi yang diberikan program kepada pengguna ketika mengawasandikan data sandi. Aksi Aktor 1. Pengguna
memilih
Reaksi Sistem tombol
Pengawasandian Data pada tampilan utama. 2. Sistem
menampilkan
Pengawasandian File ECG
halaman
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
3. Pengguna mencari dan memilih file data hasil penyandian dan menekan tombol Pratinjau Data. 4. Sistem membaca masukan file dan menampilkan grafik dari data sandi yang dibaca 5. Pengguna memilih Awasandikan Data mengawasandikan data.
tombol untuk 6. Sistem mengawasandikan masukan data.
7. Pengguna memilih Grafik BER
tombol
Lihat 8. Sistem menampilkan Grafik BER.
Tabel 3.2 Skenario utama pengawasandian data
3.2.8
Diagram konteks
Gambar 3.12 merupakan gambaran umum dari program simulasi kode konvolusi. Pada gambar tersebut dapat dijelaskan bahwa pengguna memberi masukan data terhadap program berupa data ECG. Kemudian program melakukan proses-proses seperti penyandian, deteksi dan koreksi kesalahan, pengawasandian, dan mengembalikan data menjadi data ECG seperti keadaan awal masukan. Data ECG Pengguna
Data ECG
Program Simulasi Concatenated Codes
Gambar 3.12 Diagram konteks
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
3.2.8.1
Diagram Berjenjang
Diagram berjenjang merupakan penjelasan proses-proses yang akan dilakukan oleh program simulasi kode konvolusi yang lebih mendetail dari diagaram konteks pada Gambar 3.12. Gambar 3.13 menunjukkan bahwa proses utama dar program simulasi kode konvolusi adalah penyandian data ECG dan pengawasandian data sandi. Proses penyandian data ECG memiliki beberapa proses yang mendukung diantaranya memotong ECG database, kemudian merubah data ECG ke dalam bentuk biner, dan data ECG dalam bentuk biner tersebut disandikan menggunakan metode kode konvolusi. Proses pengawasandian data sandi juga memiliki beberapa proses yang yang mendukung diantaranya mendeteksi kesalahan pada data sandi, kemudian mengkoreksi kesalahan tersebut, lalu menghitung nilai dari bit error rate dan mengembalikan data sandi ke bentuk awalnya yaitu data ECG. 0 Program Simulasi kode konvolusi 2
1 Penyandian data ECG
Pengawasandian data sandi 1.1 Memotong ECG database
2.1 Mendeteksi kesalahan data sandi 2.2
1.2 Mengubah data ECG ke bentuk biner 1.3 Menyandikan data ECG menggunakan kode konvolusi
Mengkoreksi kesalahan data sandi 2.3 Menghitung BER 2.4 Mengembalikan data sandi menjadi data ECG awal
Gambar 3.13 Diagram Berjenjang
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
3.2.8.2
Data Flow Diagram Level 0
Data Flow Diagram (DFD) merupakan penjelasan aliran data dari prosesproses yang berhubungan menggunakan bentuk-bentuk atau simbol. Gambar 3.14 menunjukkan aliran data yang terjadi dalam proses penyandian data ECG dan pengawasandian data sandi pada program simulasi kode konvolusi. Aliran data yang terjadi adalah program diberi masukan data berupa data ECG dari pengguna, kemudian data ECG akan disandikan oleh program menjadi data sandi.
Data sandi
kemudian
menjadi
masukan
data untuk
proses
pengawasandian oleh pengguna, kemudian program akan mengawasandikan data sandi menjadi bentuk data ECG kembali dan menampilkannya kepada pengguna. 1 Data ECG Data Sandi
Data Sandi Penyandian data ECG
Sandi
Data Sandi
Pengguna Data Sandi Data ECG
2 Pengawasandian data sandi
Data Awasandi Data ECG
ECG
Gambar 3.14 Data flow diagram level 0
3.2.8.3
Data Flow Diagram Level 1 Proses 1
DFD pada level 1 proses 1 menjelaskan detail aliran data dari proses penyandian data ECG. Gambar 3.15 menujukan aliran data pada proses penyandian data. Pengguna memberi masukan data berupa ECG database, kemudian program akan memotong ECG database dengan format yang telah ditentukan menjadi data ECG. Data ECG dikonversi menjadi bentuk biner menjadi data ECG biner, setelah itu data ECG biner akan disandikan oleh program menggunakan metode kode konvolusi menjadi data sandi. Kemudian data sandi ditampilkan kembali ke pengguna.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
ECG Database
1.1
1.2
Data ECG
Mengubah data ECG ke bentuk biner
Memotong ECG database Pengguna
Data ECG biner 1.3 Data Sandi
Menyandikan data ECG biner menggunakan kode konvolusi Data Sandi
Data Sandi
Sandi
Gambar 3.15 Data flow diagram level 1 proses 1
3.2.8.4
Data Flow Diagram Level 1 Proses 2
DFD pada level 1 proses 1 menjelaskan detail aliran data dari proses pengawasandian data sandi. Gambar 3.16 menujukan aliran data pada proses pengawasandian data sandi. Pengguna memberi masukan data berupa data sandi, kemudian program akan mendeteksi kesalahan pada data sandi tersebut menjadi data sandi dan error yang telah terdeteksi. Data sandi dan error kemudian akan diproses ke dalam pengkoreksian kesalahan data sandi. Data sandi yang telah dikoreksi akan masuk ke dalam penghitungan probabilitas bit error rate. Data sandi akan dikembalikan menjadi bentuk data ECG awal. Data ECG tersebut akan ditampilkan kepada pengguna.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
1.1
Data sandi
Mendeteksi kesalahan data sandi Pengguna
Data sandi dan error 1.2 Mengkoreksi kesalahan data sandi Data sandi 1.3
Data ECG
Menghitung BER Data sandi dan BER 1.3 Mengembalikan data sandi menjadi data ECG awal Data ECG Data ECG ECG
Gambar 3.16 Data flow diagram level 1 proses 2
3.3 Antarmuka Pengguna 3.3.1
Desain Antarmuka Pengguna
Antarmuka pengguna digunakan untuk mempermudah pengguna dalam menggunakan program. Pengguna dapat melakukan proses penyandian dan pengawasandian data ECG pada program simulasi kode konvolusi.
3.3.2
Halaman Utama Program
Gambar 3.17 menunjukkan halaman utama dari progam simulasi kode konvolusi. Pada halaman utama terdapat menu File, Bantuan, dan Tentang. Terdapat tombol penyandian data dan pengawasandian data yang dapat berganti ke halaman lainnya dan dapat memulai proses penyandian atau pengawasandian data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
Gambar 3.17 Tampilan halaman utama program.
3.3.3
Halaman Penyandian Data
Gambar 3.18 menunjukkan halaman penyandian data ketika tombol Penyandian Data pada halaman utama dipilih oleh pengguna. Pengguna akan memilih file-file database ECG seperti header (.hea), attribute (.atr), dan data (.dat). Kemudian terdapat tombol Pratinjau Data ECG yang berfungsi untuk menjalankan proses pembacaan data ECG. Terdapat tombol Kembali untuk kembali ke halaman utama program. Terdapat tombol Sandikan Data ECG yang berfungsi untuk menjalankan proses penyandian data menggunakan metode kode konvolusi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
Gambar 3.18 Tampilan halaman penyandian data
3.3.4
Halaman Pengawasandian Data
Gambar 3.19 menunjukkan halaman pengawasandian data ketika tombol Pengawasandian Data pada halaman utama dipilih oleh pengguna. Pengguna akan memilih file data sandi. Terdapat tombol Pratinjau Data yang berfungsi untuk menjalankan proses pembacaan data sandi. Terdapat tombol Kembali untuk kembali ke halaman utama program. Terdapat tombol Awasandikan Data ECG yang berfungsi untuk menjalankan proses pengawasandian data menggunakan metode kode konvolusi.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
Gambar 3.19 Tampilan halaman pengawasandian data
3.3.5
Halaman Hasil Penyandian Data
Gambar 3.20 menunjukkan halaman hasil penyandian data ketika tombol Sandikan Data ECG pada halaman penyandian data dipilih oleh pengguna. Pada halaman ini pengguna akan ditunjukan hasil dari penyandian data. Terdapat tombol Kembali untuk kembali ke halaman penyandian data. Terdapat tombol Simpan untuk ke halaman Simpan Data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
Gambar 3.20 Tampilan halaman hasil penyandian data
3.3.6
Halaman Hasil Pengawasandian Data
Gambar 3.21 menunjukkan halaman hasil pengawasandian data ketika tombol Awasandikan Data pada halaman pengawasandian data dipilih oleh pengguna. Pada halaman ini pengguna akan ditunjukan hasil dari pengawasandian data. Terdapat tombol Kembali untuk kembali ke halaman pengawasandian data. Terdapat tombol Lihat Grafik BER yang berfungsi untuk menampilkan grafik dari perhitungan BER pada halaman Grafik Bit Error Rate.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
Gambar 3.21 Tampilan halaman hasil pengawasandian data
3.3.7
Halaman Grafik Bit Error Rate
Gambar 3.22 menunjukkan halaman grafik bit error rate ketika tombol Lihat Grafik BER pada halaman hasil pengawasandian data dipilih oleh pengguna. Pada halaman ini pengguna akan ditunjukan grafik hasil dari perhitungan probabilitas bit error rate. Terdapat tombol Kembali untuk kembali ke halaman hasil pengawasandian data. Terdapat tombol Simpan untuk ke halaman Simpan Data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
Gambar 3.22 Tampilan halaman grafik bit error rate
3.3.8
Halaman Simpan Data
Gambar 3.22 menunjukkan halaman simpan data ketika tombol simpan pada halaman hasil pengawasandian data dan halaman hasil penyandian data dipilih oleh pengguna. Terdapat tombol Simpan yang berfungsi untuk menyimpan hasil penyandian data atau grafik dari bit error rate. Terdapat tombol Batal untuk membatalkan proses penyimpanan data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 37
Gambar 3.23 Tampilan halaman simpan data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB IV IMPLEMENTASI
Pada bagian ini, penulis akan memaparkan proses implementasi sistem pengujian yang telah dirancang ke dalam bahasa yang dapat dimengerti mesin. Spesifikasi perangkat lunak yang digunakan dalam melakukan implementasi sistem pengujian adalah sebagai berikut : 1. Sistem operasi : Windows 7 Ultimate Edition. 2. MATLAB Version 7.10.0.499 (R2010a).
4.1.
Implementasi Proses Subbab berikut akan menampilkan proses implementasi masing-masing
proses utama yang terdapat dalam sistem pengujian, antara lain proses pembacaan data ECG, penyandian data ECG, pengiriman data yang telah disandikan melalui kanal AWGN, dan pengawasandian data sandi yang diterima dari kanal.
4.1.1.
Implementasi Proses Pembacaan Data ECG Proses pembacaan data ECG merupakan proses yang akan mengolah data
mentah, yaitu data ECG menjadi data-data yang siap dipakai di dalam tahap penyandian data. Proses pembacaan data akan mengkonversi data ECG yang bertipe data unsigned integer menjadi data array bertipe integer. Proses pembacaan data akan menggunakan tiga file yaitu file “.dat”, file “.hea”, dan file .”atr”. Setelah data berhasil dibaca, data disimpan ke dalam file “.mat”. Kode program yang digunakan untuk membaca data ECG dapat dilihat pada lampiran 1. Data ECG yang digunakan untuk pengujian adalah data ECG yang diunduh dari MIT-BIH Arryhtymia Database. Data ECG akan dibaca dengan fungsi yang diunduh dari physionet.org. Fungsi pada program dinamakan Rddata.
38
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
Rddata akan menghasilkan data seperti pada Lampiran 1. Data pada tabel tersebut akan menjadi data penguji untuk proses penyandian.
4.1.2.
Implementasi Penyandian Data ECG Setelah data ECG dibaca dan disimpan, selanjutnya data akan disandikan
ke dalam sebuah Indeks. Pada bagian ini, data ECG hasil pembacaan akan melewati beberapa proses, yaitu proses pengubahan data ECG menjadi data biner dan proses penyandian data dengan kode konvolusi. Proses penyandian akan menggunakan tiga jenis rate, yaitu rate 1�2, 1�3, dan 1�4 yang performanya akan diuji dalam tugas akhir ini.
4.1.2.1. Proses Pengubahan Data ECG Menjadi Data Biner Listing program berikut merupakan kode program dengan nama fungsi Convertdec2bin. Data ECG yang telah dibaca nilainya akan dibulatkan terlebih dahulu. Kemudian data hasil pembulatan dikonversi menjadi data biner dengan ukuran 12 bit. Data hasil konversi tersebut kemudian diubah ke dalam bentuk baris agar dapat masuk ke dalam penyandi. function message=Convertdec2bin(data) data=int16(data); %proses pembulatan data convertmessage=dec2bin(data,12); %proses konversi decimal menjadi biner dengan ukuran 12 bit message=Ecgbaris(convertmessage);
%data
diubah
menjadi
bentuk
baris
4.1.2.2. Penyandian Data Dengan Kode Konvolusi Rate 𝟏𝟏�𝟐𝟐
Listing program berikut merupakan kode program pembangkit sandi
konvolusi rate 1�2. Penyandi konvolusi rate 1�2 menggunakan tiga register dan generator polinomial yang dipakai adalah adalah 𝑔𝑔1 = [101] dan 𝑔𝑔2 = [111] . Hasil dari penyandian berupa deretan data biner bertipe “double”.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
function [hasil1,hasil2]=Generator12(isiRegister1,isiRegister2,isiRegister3 ) r1=isiRegister1; r2=isiRegister2; r3=isiRegister3; u1=r1+r3; u2=r1+r2+r3; h1=mod(u1,2); h2=mod(u2,2); hasil1=h1; hasil2=h2;
Penyandi konvolusi dengan rate 𝟏𝟏�𝟐𝟐 digunakan untuk menyandikan data
ECG yang berbetuk data biner. Satu data biner akan disandikan menjadi empat
data, yang meliputi dua data sandi dan dua data paritas. Listing program berikut merupakan kode program fungsi penyandi konvolusi dengan rate 𝟏𝟏�𝟐𝟐.
function [hasil,jumlah]=Encoder12(message) m=message; mp=Paritas(m); R1=zeros; R2=zeros; R3=zeros; h=zeros; for i=1:size(mp,2) R3=R2; R2=R1; R1=mp(1,(size(mp,2)-i)+1); [h1,h2]=Generator12(R1,R2,R3); h(i,1)=h1; h(i,2)=h2; end ha=zeros; count=1; for i=1:size(h,1) ha(1,count)=h(i,1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
count=count+1; ha(1,count)=h(i,2); count=count+1; end jumlah=size(ha,2); hasil=ha(1,1:end-4); hasilpenyandian=hasil; savefile = 'hasilpenyandian12.mat'; save(savefile, 'hasilpenyandian');
4.1.2.3. Penyandian Data Dengan Kode Konvolusi Rate 𝟏𝟏�𝟑𝟑
Listing program berikut merupakan kode program pembangkit sandi
konvolusi rate 1�3. Penyandi konvolusi rate 1�3 menggunakan tiga register dan
generator polinomial yang dipakai adalah adalah 𝑔𝑔1 = [101], 𝑔𝑔2 = [111], dan 𝑔𝑔3 = [111]. Hasil dari penyandian berupa deretan data biner bertipe “double”. function
[hasil1,hasil2,hasil3]=Generator13(isiRegister1,isiRegister2,isiRe gister3) r1=isiRegister1; r2=isiRegister2; r3=isiRegister3; u1=r1+r3; u2=r1+r2+r3; u3=r1+r2+r3; h1=mod(u1,2); h2=mod(u2,2); h3=mod(u3,2); hasil1=h1; hasil2=h2; hasil3=h3;
Penyandi konvolusi dengan rate 𝟏𝟏�𝟑𝟑 digunakan untuk menyandikan satu
data biner menjadi sembilan data. Sembilan data tersebut meliputi tiga data sandi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
dan enam data paritas. Listing program dibawah ini merupakan fungsi penyandi konvolusi dengan rate 𝟏𝟏�𝟑𝟑.
function [hasil,jumlah]=Encoder13(message) m=message; mp=Paritas(m); R1=zeros; R2=zeros; R3=zeros; h=zeros; for i=1:size(mp,2) R3=R2; R2=R1; R1=mp(1,(size(mp,2)-i)+1); [h1,h2,h3]=Generator13(R1,R2,R3); h(i,1)=h1; h(i,2)=h2; h(i,3)=h3; end ha=zeros; count=1; for i=1:size(h,1) ha(1,count)=h(i,1); count=count+1; ha(1,count)=h(i,2); count=count+1; ha(1,count)=h(i,3); count=count+1; end jumlah=size(ha,2); hasil=ha(1,1:end-6); hasilpenyandian=hasil; savefile = 'hasilpenyandian13.mat'; save(savefile, 'hasilpenyandian');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
4.1.2.4. Penyandian Data Dengan Kode Konvolusi Rate 𝟏𝟏�𝟒𝟒
Listing program berikut merupakan kode program pembangkit sandi
konvolusi rate 1�4. Penyandi konvolusi rate 1�4 menggunakan tiga register dan generator polinomial yang dipakai adalah adalah 𝑔𝑔1 = [101] , 𝑔𝑔2 = [111] ,
𝑔𝑔3 = [111], dan 𝑔𝑔4 = [111]. Hasil dari penyandian berupa deretan data biner
bertipe “double”. function
[hasil1,hasil2,hasil3,hasil4]=Generator14(isiRegister1,isiRegister 2,isiRegister3) r1=isiRegister1; r2=isiRegister2; r3=isiRegister3; u1=r1+r3; u2=r1+r2+r3; u3=r1+r2+r3; u4=r1+r2+r3; h1=mod(u1,2); h2=mod(u2,2); h3=mod(u3,2); h4=mod(u4,2); hasil1=h1; hasil2=h2; hasil3=h3; hasil4=h4;
Penyandi konvolusi dengan rate 1�4 digunakan untuk menyandikan satu
data biner menjadi dua belas data. Dua belas data tersebut meliputi empat data
sandi dan delapan data paritas. Listing program dibawah ini merupakan fungsi penyandi konvolusi dengan rate 1�4.
function [hasil,jumlah]=Encoder14(message) m=message;
mp=Paritas(m); R1=zeros; R2=zeros;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 44
R3=zeros; h=zeros; for i=1:size(mp,2) R3=R2; R2=R1; R1=mp(1,(size(mp,2)-i)+1); [h1,h2,h3,h4]=Generator14(R1,R2,R3); h(i,1)=h1; h(i,2)=h2; h(i,3)=h3; h(i,4)=h4; end ha=zeros; count=1; for i=1:size(h,1) ha(1,count)=h(i,1); count=count+1; ha(1,count)=h(i,2); count=count+1; ha(1,count)=h(i,3); count=count+1; ha(1,count)=h(i,4); count=count+1; end jumlah=size(ha,2); hasil=ha(1,1:end-8); hasilpenyandian=hasil; savefile = 'hasilpenyandian14.mat'; save(savefile, 'hasilpenyandian');
4.1.3.
Implementasi Pengiriman Data Sandi Menggunakan Kanal AWGN Listing program berikut merupakan kode program untuk proses
pengiriman menggunakan kanal AWGN. Masukan dari program ini berupa data ECG yang telah disandikan dan nilai SNR yang digunakan untuk simulasi pengiriman data. Ukuran sinyal constellationí yang digunakan adalah sebesar 16 dan SNR yang digunakan yaitu 0 sampai 20. Jenis modulator yang digunakan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 45
adalah QAM-16. Data sandi akan di kirim sebanyak 21 kali dengan nilai SNR yang menjadi masukan. Keluaran dari program ini berupa 21 baris data sandi yang telah mendapat nilai error. function [messagefromkanal,yrx,nsamp]=AWGN(message,SNR) tic %% Setup % Define parameters. M = 16;
% Size of signal constellation
k = log2(M);
% Number of bits per symbol
n = 3e4;
% Number of bits to process
nsamp = 1;
% Oversampling rate
hMod = modem.qammod(M); % Create a 16-QAM modulator [a,b]=strread(SNR,'%d%d','delimiter',':'); snr=a:b; %% Signal Source % Create a binary data stream as a column vector. x = message; % Random binary data stream %% Bit-to-Symbol Mapping % Convert the bits in x into k-bit symbols. xsym = bi2de(reshape(x,k,length(x)/k).','left-msb'); %% Modulation y = modulate(modem.qammod(M),xsym); % Modulate using 16-QAM. %% Transmitted Signal ytx = y; %% hx = waitbar(0,'Harap tunggu ...'); steps = size(snr,2); for i=1:steps ynoisy = awgn(ytx,snr(1,i),'measured'); %% Received Signal yrx = ynoisy; %% Demodulation % Demodulate signal using 16-QAM. zsym = demodulate(modem.qamdemod(M),yrx); %% Symbol-to-Bit Mapping % Undo the bit-to-symbol mapping performed earlier.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
z = de2bi(zsym,'left-msb'); % Convert integers to bits. % Convert z from a matrix to a vector. zTrans=z'; dataTerima(i,:)=reshape(zTrans,1,(length(zTrans(1,:))*length(zTran s(:,1)))); waitbar(i/steps); end close(hx); messagefromkanal=dataTerima; message=messagefromkanal; savefile = 'hasilpengiriman.mat'; save(savefile, 'message'); toc
4.1.4.
Implementasi Pengawasandi Viterbi Dua puluh satu baris data sandi yang diterima dari kanal AWGN akan di
awasandikan menggunakan pengawasandi Viterbi. Rate yang digunakan pada pengawasandi Viterbi adalah 𝟏𝟏�𝟐𝟐, 𝟏𝟏�𝟑𝟑, dan 𝟏𝟏�𝟒𝟒 sesuai dengan rate dari penyandi. Setelah data sandi telah diawasandikan, maka program akan menerjemahkan kembali data hasil awasandi menjadi data ECG.
4.1.4.1. Implementasi Pengawasandi Viterbi Rate 𝟏𝟏�𝟐𝟐
Lisiting program berikut merupakan kode program pengawasandi Viterbi
dengan rate 𝟏𝟏�𝟐𝟐 dengan nama fungsi Main12. Dua puluh satu baris data hasil
pengiriman akan diproses baris per baris ke dalam program pengawasandi Viterbi. Data hasil pengiriman akan dihitung dan dikoreksi menggunakan teori pada pengawasandi Viterbi dengan rate 𝟏𝟏�𝟐𝟐 . Hasil keluaran dari program ini adalah
dua puluh satu baris data yang telah dikoreksi dan data tersebut disimpan ke dalam file “hasilpengawasandi12.mat”. function [hdecoding,hasil]=Main12(message) tic
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
record=zeros; banyakmessage=size(message,1); hx = waitbar(0,'Harap tunggu ...'); for k=1:banyakmessage record=InisiasiRecord12(message(k,1),message(k,2),message(k,3),mes sage(k,4)); for i=5:2:size(message,2) matrik8=Matrik812(message(k,i),message(k,i+1),record); for j=1:4 [baris,bobot]=Eliminasi12(matrik8,j); state=j; record=UbahRecord12(record,matrik8,baris,bobot,state); end end baris(k,1)=Selecting12(record); hasildecoding(k,:)=Decoding12(record,baris(k,1)); ukurankolomhasildecoding=size(hasildecoding,2); count=1; h=zeros; hdecoding=zeros; hdecoding=fliplr(hasildecoding); %hasil pembacaan yang telah dibalik% waitbar(k/banyakmessage); end close(hx); hasil=hdecoding; hasilpengawasandian=hasil; savefile = 'hasilpengawasandi12.mat'; save(savefile, 'hasilpengawasandian'); toc
4.1.4.2. Implementasi Pengawasandi Viterbi rate 𝟏𝟏�𝟑𝟑
Listing program berikut merupakan kode program pengawasandi Viterbi
dengan rate 𝟏𝟏�𝟑𝟑 dengan nama fungsi Main13. Dua puluh satu baris data hasil
pengiriman akan diproses baris per baris ke dalam program pengawasandi Viterbi. Data hasil pengiriman akan dihitung dan dikoreksi menggunakan teori pada
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
pengawasandi Viterbi rate 𝟏𝟏�𝟑𝟑. Hasil keluaran dari program ini adalah dua puluh satu baris data yang telah dikoreksi dan data tersebut disimpan ke dalam file “hasilpengawasandi13.mat”. function hasil=Main13(message) tic record=zeros; banyakmessage=size(message,1); hx = waitbar(0,'Harap tunggu ...'); for k=1:banyakmessage record=InisiasiRecord13(message(k,1),message(k,2),message(k,3),mes sage(k,4),message(k,5),message(k,6)); for i=7:3:size(message,2) matrik8=Matrik813(message(k,i),message(k,i+1),message(k,i+2),recor d); for j=1:4 [baris,bobot]=Eliminasi13(matrik8,j); state=j; record=UbahRecord13(record,matrik8,baris,bobot,state); end end baris(k,1)=Selecting13(record); hasildecoding(k,:)=Decoding13(record,baris(k,1)); ukurankolomhasildecoding=size(hasildecoding,2); count=1; h=zeros; hdecoding=zeros; hdecoding=fliplr(hasildecoding); %hasil pembacaan yang telah dibalik% waitbar(k/banyakmessage); end close(hx); hasil=hdecoding; hasilpengawasandian=hasil; savefile = 'hasilpengawasandi13.mat'; save(savefile, 'hasilpengawasandian'); toc
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
4.1.4.3. Implementasi Pengawasandi Viterbi rate 𝟏𝟏�𝟒𝟒
Listing program berikut merupakan kode program pengawasandi Viterbi
dengan rate 𝟏𝟏�𝟒𝟒 dengan nama fungsi Main14. Dua puluh satu baris data hasil
pengiriman akan diproses baris per baris ke dalam program pengawasandi Viterbi. Data hasil pengiriman akan dihitung dan dikoreksi menggunakan teori pada pengawasandi Viterbi rate 𝟏𝟏�𝟒𝟒. Hasil keluaran dari program ini adalah dua puluh satu baris data yang telah dikoreksi dan data tersebut disimpan ke dalam file “hasilpengawasandi14.mat”. function hasil=Main14(message) tic record=zeros; banyakmessage=size(message,1); hx = waitbar(0,'Harap tunggu ...'); for k=1:banyakmessage record=InisiasiRecord14(message(k,1),message(k,2),message(k,3),mes sage(k,4),message(k,5),message(k,6),message(k,7),message(k,8)); for i=9:4:size(message,2) matrik8=Matrik814(message(k,i),message(k,i+1),message(k,i+2),messa ge(k,i+3),record); for j=1:4 [baris,bobot]=Eliminasi14(matrik8,j); state=j; record=UbahRecord14(record,matrik8,baris,bobot,state); end end baris(k,1)=Selecting14(record); hasildecoding(k,:)=Decoding14(record,baris(k,1)); ukurankolomhasildecoding=size(hasildecoding,2); count=1; h=zeros; hdecoding=zeros; hdecoding=fliplr(hasildecoding); %hasil pembacaan yang telah dibalik% waitbar(k/banyakmessage);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
end close(hx); hasil=hdecoding; hasilpengawasandian=hasil; savefile = 'hasilpengawasandi14.mat'; save(savefile, 'hasilpengawasandian'); toc
4.1.5.
Implementasi Penerjemah Data Biner menjadi Data ECG Lisitng program berikut merupakan kode program untuk menerjemahkan
data biner atau data hasil awasandi menjadi format data ECG kembali. Dua puluh satu data hasil pengawasandian akan dikonversi baris per baris. Data hasil pengawasandian akan dikonversi ke dalam bentuk “string”. Hasil konversi ke bentuk “string” tersebut akan dikonversi menjadi bentuk desimal yang merupakan format dari data ECG. function [hasil]=Convertbin2dec(message) baris=size(message,1); count=1; for i=1:baris data=Convertnum2str(message(i,:)); hasil(count,:)=bin2dec(data); count=count+1; end
4.2.
Implementasi Tampilan
4.2.1.
Tampilan Utama Gambar 4.1 merupakan implementasi tampilan utama program simulasi
convolutional codes dengan pengawasandi Viterbi. Pada tampilan utama terdapat enam tombol yang akan menjalankan fungsi-fungsi dari program bila tombol dipilih. Tombol proses membaca ECG akan menjalankan tampilan proses pembacaan dan pemotongan ECG seperti Gambar 4.2. Tombol proses penyandian
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
data akan menjalankan tampilan proses menyandikan data ECG seperti Gambar 4.5. Tombol proses pengawasandian data akan menjalankan tampilan proses mengawasandikan data sandi seperti Gambar 4.10. Tombol grafik BER akan menjalankan tampilan grafik BER setelah data sandi diawasandikan seperti Gambar 4.12. Tombol grafik ECG akan menjalankan tampilan perbandingan grafik ECG sebelum dan setelah mengalami proses simulasi seperti Gambar 4.15. Tombol keluar akan menutup tampilan utama.
Gambar 4.1 Tampilan menu utama
4.2.2.
Tampilan Proses Membaca ECG Gambar 4.2 merupakan implementasi tampilan proses membaca,
memotong, dan menampilkan grafik data ECG. Pada tampilan proses membaca ECG, terdapat tombol-tombol yang akan menjalankan fungsi-fungsi dari program bila tombol dipilih. Tombol buka akan menjalankan tampilan proses memilih file ECG. Tombol pratinjau data ECG akan menjalankan proses pembacaan, pemotongan sesuai ukuran masukan pengguna dan menampilkan grafik ECG. Tombol kembali akan menutup tampilan proses membaca ECG dan menampilkan tampilan utama. Tombol sandikan ECG akan menjalankan tampilan proses
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
penyandian data. Listing program berikut merupakan kode program saat tombol pratinjau data ECG dipilih.
Gambar 4.2 Tampilan utama program simulasi kode konvolusi function pratinjauECG_Callback(hObject, eventdata, handles) inputukuran=get(handles.ukuranECG,'string'); ukuranecg=str2double(inputukuran); path=get(handles.pathECG,'string'); size=get(handles.ukuranECG, 'string'); ukuran=str2double(size); [dataECG,M,TIME]=Rddata(path,ukuran); hold on axes(handles.grafikECG); plot(TIME, M(:,1),'r');
4.2.2.1. Tampilan Pilih File ECG Gambar 4.3 merupakan implementasi tampilan saat tombol buka pada proses membaca ECG dipilih. Proses pilih ECG akan menampilkan file-file
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
dengan tipe file “.dat”. File tersebut akan menjadi data untuk proses membaca ECG. Listing program berikut merupakan kode program saat tombol buka dipilih.
Gambar 4.3 Tampilan pilih file ECG function bukaPath_Callback(hObject, eventdata, handles) [fname,pname] = uigetfile('*.dat'); if (fname ~= 0) filename = sprintf('%s%s',pname,fname); end namafile=filename; [fid message] = fopen(filename,'r'); set(handles.pathECG,'string',(namafile));
4.2.2.2. Tampilan Hasil Pratinjau Data ECG Gambar 4.4 merupakan tampilan hasil tombol pratinjau data ECG di pilih. Grafik ECG terbentuk dari file ECG yang dipilih dan memasukan ukuran ECG yang diinginkan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
Gambar 4.4 Tampilan hasil tombol pratinjau data ECG
4.2.3.
Tampilan Proses Penyandian Data Gambar 4.5 merupakan implementasi tampilan proses penyandian data
ECG. Pada tampilan proses penyandian data ECG terdapat tombol-tombol yang akan menjalankan fungsi-fungsi dari program bila tombol dipilih. Listing program berikut merupakan kode program saat tombol sandikan data ECG dipilih. Tombol sandikan data ECG akan menjalankan proses penyandian data setelah sebelumnya memilih code rate dari kode konvolusi. Tombol kembali akan menutup tampilan proses penyandian data dan menampilkan tampilan proses membaca ECG. Tombol menu utama akan menutup tampilan proses penyandian data dan menampilkan tampilan utama. Tombol kirim data ECG akan menjalankan tampilan proses pengiriman data.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
Gambar 4.5 Tampilan Proses Penyandian Data function sandiECG_Callback(hObject, eventdata, handles) loadecg=loaddata('dataecg.mat'); ecgawal=Convertdec2bin(loadecg); hasilkonversiECG=ecgawal; savefile = 'hasilkonversiECG.mat'; save(savefile, 'hasilkonversiECG'); list=get(handles.menuEncoder,'String'); val=get(handles.menuEncoder,'Value'); str=list(val); hasilencoder=zeros; if(strcmp(str,'Code Rate 1/2')) [hasilencoder,jumlah]=Encoder12(ecgawal); else if (strcmp(str,'Code Rate 1/3')) [hasilencoder,jumlah]=Encoder13(ecgawal); else [hasilencoder,jumlah]=Encoder14(ecgawal); end end set(handles.pesan,'Visible','on'); set(handles.pesan,'string','penyandian data berhasil'); set(handles.jumlahData,'String',jumlah);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56
4.2.3.1. Tampilan Hasil Penyandian Data Gambar 4.6 merupakan tampilan hasil tombol sandikan data ECG di pilih. Pesan proses penyandian data ECG telah berhasil akan ditampilkan pada textfield beserta jumlah data hasil penyandian.
Gambar 4.6 Tampilan hasil tombol sandikan data ECG
4.2.4.
Tampilan Proses Pengiriman Gambar 4.7 merupakan implementasi tampilan proses pengiriman data
menggunakan kanal AWGN. Pada tampilan proses pengriman data terdapat tombol-tombol yang akan menjalankan fungsi-fungsi dari program bila tombol dipilih. Tombol buka akan menjalankan tampilan proses memilih file data hasil penyandian.
Gambar 4.7 Tampilan proses pengiriman data menggunakan kanal AWGN
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 57
Listing program berikut merupakan kode program saat tombol kirim data ECG dipilih. Tombol kirim data ECG akan menjalankan proses pengiriman data ECG yang telah disandikan. Tombol kembali akan menutup tampilan proses pengiriman data dan menampilkan tampilan proses penyandian data. Tombol menu utama akan menutup tampilan proses pengiriman data dan menampilkan tampilan utama. Tombol awasandikan data akan menjalankan tampilan proses pengawasandian data. function kirim_Callback(hObject, eventdata, handles) path=get(handles.pathFile,'string'); [pathstr,name]=fileparts(path); dataload=zeros; dataload=load([name,'.mat']); data=zeros; data=dataload.hasilpenyandian; str='0:20'; pesandarikanal=zeros; [pesandarikanal,yrx,nsamp]=AWGN(data,str); set(handles.pesan1,'Visible','on'); set(handles.pesan1,'string','Pengiriman berhasil');
4.2.4.1. Tampilan Pilih File Hasil Penyandian Gambar 4.8 merupakan implementasi tampilan saat tombol buka pada proses pengiriman data dipilih. Proses pilih file hasil penyandian akan menampilkan file-file dengan tipe file “.mat”. File tersebut akan menjadi data untuk proses pengiriman data. Setelah data terpilih, program akan menampilkan pesan bahwa data telah di-load. Listing program berikut merupakan kode program saat tombol buka dipilih.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 58
Gambar 4.8 Tampilan pilih file hasil penyandian function bukaFile_Callback(hObject, eventdata, handles) [fname,pname] = uigetfile('*.mat'); if (fname ~= 0) filename = sprintf('%s%s',pname,fname); end namafile=filename; [fid message] = fopen(filename,'r'); set(handles.pathFile,'string',(namafile)); path=get(handles.pathFile,'string'); [pathstr,name]=fileparts(path); dataload=zeros; dataload=load([name,'.mat']); data=zeros; data=dataload.hasilpenyandian; set(handles.pesan,'Visible','on'); set(handles.pesan,'string','load data berhasil');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59
4.2.4.2. Tampilan Hasil Pengiriman Data Gambar 4.9 merupakan tampilan hasil tombol kirim data ECG di pilih. Pesan proses pengiriman data telah berhasil akan ditampilkan pada textfield.
Gambar 4.9 Tampilan hasil tombol kirim data ECG
4.2.5.
Tampilan Proses Pengawasandian Data Gambar 4.10 merupakan implementasi tampilan proses penyandian data
ECG. Pada tampilan proses penyandian data ECG terdapat tombol-tombol yang akan menjalankan fungsi-fungsi dari program bila tombol dipilih.
Gambar 4.10 Tampilan proses pengawasandian data Listing program berikut merupakan kode program saat tombol awasandikan data ECG dipilih. Tombol awasandikan data ECG akan menjalankan proses pengawasandian data setelah sebelumnya memilih decoder dengan rate
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
yang sesuai dengan code rate penyandi. Pesan proses pengawasandi telah selesai akan ditampilkan pada text field. Tombol kembali akan menutup tampilan proses pengawasandia data dan menampilkan tampilan proses pengiriman data. Tombol menu utama akan menutup tampilan proses pengawasandian data dan menampilkan tampilan utama. Tombol lihat grafik BER akan menjalankan tampilan grafik BER. function prosesPengawasandian_Callback(hObject, eventdata, handles) dataload=zeros; dataload=load('hasilpengiriman.mat'); data=zeros; data=dataload.message; list=get(handles.popupmenudecoder,'String'); val=get(handles.popupmenudecoder,'Value'); str=list(val); hasildecoder=zeros; if(strcmp(str,'Decoder 1/2')) [hasildecoder]=Main12(data); else if (strcmp(str,'Decoder 1/3')) [hasildecoder]=Main13(data); else [hasildecoder]=Main14(data); end end set(handles.pesan1,'Visible','on'); set(handles.pesan1,'string','Proses pengawasandian data berhasil');
4.2.5.1. Tampilan Hasil Pengawasandian Data Gambar 4.11 merupakan tampilan hasil tombol awasandikan data ECG di pilih. Pesan proses pengawasandian data telah berhasil akan ditampilkan pada textfield.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 61
Gambar 4.11 Tampilan hasil tombol awasandikan data ECG
4.2.6.
Tampilan Grafik BER Gambar 4.12 merupakan implementasi tampilan grafik BER. Pada
tampilan grafik BER terdapat tombol-tombol yang akan menjalankan fungsifungsi dari program bila tombol dipilih. Tombol buka akan menjalankan tampilan proses memilih file data hasil pengawasandian.
Gambar 4.12 Tampilan grafik BER
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62
Listing program berikut merupakan kode program saat tombol pratinjau grafik BER dipilih. Tombol kirim pratinjau grafik BER akan menjalankan proses perhitungan nilai BER berdasar dari data ECG awal dengan data hasil pengawasandian. Tombol kembali akan menutup tampilan grafik BER dan menampilkan tampilan proses pengawasandian data. Tombol menu utama akan menutup tampilan grafik BER dan menampilkan tampilan utama. Tombol lihat grafik ECG akan menjalankan tampilan grafik ECG. function grafikBER_Callback(hObject, eventdata, handles) pathhasilpengawasandi=get(handles.pathFile,'string'); [pathstr,name]=fileparts(pathhasilpengawasandi); dataloadpengawasandi=zeros; dataloadpengawasandi=load([name,'.mat']); datapengawasandi=zeros; datapengawasandi=dataloadpengawasandi.hasilpengawasandian; dataloadecg=zeros; dataloadecg=load('hasilkonversiECG.mat'); dataecg=zeros; dataecg=dataloadecg.hasilkonversiECG; dataecg [benar,salah]=Comparing(dataecg,datapengawasandi); [hasilber,count]=BER(salah,datapengawasandi); ber=flipud(hasilber); snr=1:count-1; idxM=1:length(ber); markerchoice = '.xo*'; plotsym = [markerchoice(2) '-']; % Plotting style for this curve semilogy(snr,ber(idxM,:),plotsym); % Plot one curve. drawnow; % Update the plot instead of waiting until the end. hold on; % Make sure next iteration does not remove this curve.
4.2.6.1. Tampilan Pilih File Hasil Pengawasandi Gambar 4.13 merupakan implementasi tampilan saat tombol buka pada tampilan grafik BER dipilih. Proses pilih file hasil pengawasandian akan menampilkan file-file dengan tipe file “.mat”. File tersebut akan menjadi data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63
untuk perhitungan BER. Setelah data terpilih, program akan menampilkan pesan bahwa data telah di-load. Listing program berikut merupakan kode program saat tombol buka dipilih.
Gambar 4.13 Tampilan pilih file hasil pengawsandian function pilihFileHasilPengawasandian_Callback(hObject, eventdata, handles) [fname,pname] = uigetfile('*.mat'); if (fname ~= 0) filename = sprintf('%s%s',pname,fname); end namafile=filename; [fid message] = fopen(filename,'r'); set(handles.pathFile,'string',(namafile)); pathhasilpengawasandi=get(handles.pathFile,'string'); [pathstr,name]=fileparts(pathhasilpengawasandi); dataloadpengawasandi=zeros; dataloadpengawasandi=load([name,'.mat']); datapengawasandi=zeros; datapengawasandi=dataloadpengawasandi.hasilpengawasandian; set(handles.pesan,'Visible','on');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64
set(handles.pesan,'string','Load data hasil pengawasandian berhasil');
4.2.6.2. Tampilan Hasil Pratinjau Grafik BER Gambar 4.14 merupakan tampilan hasil tombol awasandikan data ECG saat di pilih. Perhitungan nilai ber dari file hasil pengawasandi dan data ECG awal akan ditampilkan dalam bentuk grafik.
Gambar 4.14 Tampilan hasil pratinjau grafik BER
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
4.2.7.
Tampilan Grafik ECG Gambar 4.15 merupakan implementasi tampilan grafik ECG. Pada
tampilan grafik ECG terdapat tombol-tombol yang akan menjalankan fungsifungsi dari program bila tombol dipilih. Tombol buka akan menjalankan tampilan proses memilih file data hasil pengawasandian. Kode program saat list menu pilih ukuran SNR dipilih dapat dilihat pada Lampiran 2. Tombol kembali akan menutup tampilan grafik ECG dan menampilkan tampilan grafik BER. Tombol menu utama akan menutup tampilan grafik ECG dan menampilkan tampilan utama.
Gambar 4.15 Tampilan grafik ECG
4.2.7.1. Tampilan Pilih File Hasil Pengawasandian Gambar 4.16 merupakan implementasi tampilan saat tombol buka pada tampilan grafik ECG dipilih. Proses pilih file hasil pengawasandian akan menampilkan file-file dengan tipe file “.mat”. File tersebut akan menjadi data untuk perbandingan grafik ECG awal dengan grafik ECG setelah proses pengawasandian. Listing program berikut merupakan kode program saat tombol buka dipilih.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66
Gambar 4.16 Tampilan pilih file hasil pengawasandian function pilihFileECG_Callback(hObject, eventdata, handles) [fname,pname] = uigetfile('*.mat'); if (fname ~= 0) filename = sprintf('%s%s',pname,fname); end namafile=filename; [fid message] = fopen(filename,'r'); set(handles.pathFile,'string',(namafile));
4.2.7.2. Tampilan Hasil Grafik ECG Gambar 4.17 merupakan tampilan hasil pemilihan list menu ukuran SNR. Ukuran SNR yang dipilih pengguna akan menampilkan grafik ECG. Grafik ECG yang ditampilkan terbentuk dari konversi hasil pengawasandi menjadi data ECG.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67
Gambar 4.17 Tampilan hasil grafik ECG 4.3.
Pengujian Program
4.3.1.
Pembacaan Data ECG Proses pembacaan data ECG akan menjalankan fungsi dari Rddata.m.
Hasil dari pembacaan data ECG yang telah dipotong menjadi 300 data dapat dilihat pada Lampiran 3. Gambar 4.18 menunjukan grafik dari data ECG yang telah dibaca dan dipotong.
Gambar 4.18 Grafik hasil pembacaan data ECG
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68
Hasil pembacaan data ECG memiliki tipe data double (data desimal), sehingga data tersebut harus dihitung kembali menggunakan persamaan (4.1). Data ECG akan diubah menjadi data bulat tanpa nilai minus dan decimal. 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 = (𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 + 1) ∗ 1000
(4.1)
Hasil dari perhitungan persamaan (4.1) dapat dilihat pada Lampiran 4. Hasil persamaan tersebut yang kemudian dikonversi menjadi data biner dan diproses ke dalam penyandi konvolusi.
4.3.2.
Penyandi Konvolusi Pada tugas akhir ini penyandi konvolusi yang akan diuji adalah penyandi
konvolusi dengan code rate 𝟏𝟏�𝟐𝟐 , 𝟏𝟏�𝟑𝟑 , dan 𝟏𝟏�𝟒𝟒 . Masing-masing dari code rate
menggunakan register berjumlah tiga dan data akan masuk ke dalam register satu
per satu. Rangkaian masing-masing penyandi akan diberi masukan data uji sejumlah delapan data atau 8 bit. Data pengujian akan dihitung secara manual dan hasilnya akan dicocokan dengan perhitungan secara program.
4.3.2.1. Penyandi Konvolusi Rate 𝟏𝟏�𝟐𝟐
Gambar 4.19 merupakan rangkaian penyandi konvolusi dengan code rate
𝟏𝟏� . Tabel 4.1 merupakan perhitungan secara manual terhadap rangkaian pada 𝟐𝟐 Gambar 4.19.
+
Input
Output
+
Gambar 4.19 Rangkaian penyandi konvolusi (2,1,3) [13]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69
Masukan: 00110101 Masukan No. Pergeseran Isi Register 0 0 0 0 1 1 1 0 0 0 2 0 1 0 1 3 1 0 1 0 4 0 1 0 1 5 1 0 1 1 6 1 1 0 0 7 0 1 1 0 8 0 0 1 Keluaran 1101000100101011
Keluaran 1 1 0 1 0 0 0 1 0 0 1 0 1 0 1 1
Tabel 4.1 Perhitungan penyandi konvolusi (2,1,3) secara manual
Hasil dari Tabel 4.1 menghasilkan keluaran yang sama dengan hasil perhitungan menggunakan program penyandi konvolusi code rate 𝟏𝟏�𝟐𝟐 . Gambar 4.20 merupakan hasil perhitungan data uji menggunakan fungsi Encoder12.m.
Gambar 4.20 Hasil perhitungan fungsi Encoder12.m 4.3.2.2. Penyandi Konvolusi Rate 𝟏𝟏�𝟑𝟑
Gambar 4.21 merupakan rangkaian penyandi konvolusi dengan code rate
𝟏𝟏� . Tabel 4.2 merupakan perhitungan secara manual terhadap rangkaian pada 𝟑𝟑 Gambar 4.21.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70
+
Output Input
+
+
Gambar 4.21 Rangkaian penyandi konvolusi (3,1,3) [13] Masukan: 00110101 Masukan No. Pergeseran Isi Register Keluaran 0 0 0 0 1 1 1 0 0 1 1 1 0 2 0 1 0 0 1 1 1 3 1 0 1 0 0 0 0 4 0 1 0 0 1 1 1 5 1 0 1 0 0 0 1 6 1 1 0 1 0 0 0 7 0 1 1 1 0 0 0 8 0 0 1 1 1 1 Keluaran 111011000011000100100111 Tabel 4.2 Perhitungan penyandi konvolusi (3,1,3) secara manual
Hasil dari Tabel 4.2 menghasilkan keluaran yang sama dengan hasil perhitungan menggunakan program penyandi konvolusi code rate 𝟏𝟏�𝟑𝟑 . Gambar 4.22 merupakan hasil perhitungan data uji menggunakan fungsi Encoder13.m.
Gambar 4.22 Hasil perhitungan fungsi Encoder13.m
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71
4.3.2.3. Penyandi Konvolusi Rate 𝟏𝟏�𝟒𝟒
Gambar 4.23 merupakan rangkaian penyandi konvolusi dengan code rate
𝟏𝟏� . Tabel 4.27 merupakan perhitungan secara manual terhadap rangkaian pada 𝟒𝟒 Gambar 4.23.
+
Input
Output
+
Gambar 4.23 Rangkaian penyandi konvolusi (4,1,3) [13] Masukan: 00110101 Masukan No. Pergeseran Isi Register Keluaran 0 0 0 0 1 1 1 0 0 1 1 1 1 0 2 0 1 0 0 1 1 1 1 3 1 0 1 0 0 0 0 0 4 0 1 0 0 1 1 1 1 5 1 0 1 0 0 0 0 1 6 1 1 0 1 0 0 0 0 7 0 1 1 1 0 0 0 0 8 0 0 1 1 1 1 1 Keluaran 11110111000001110000100010001111 Tabel 4.3 Perhitungan penyandi konvolusi (4,1,3) secara manual
Hasil dari Tabel 4.3 menghasilkan keluaran yang sama dengan hasil perhitungan menggunakan program penyandi konvolusi code rate 𝟏𝟏�𝟒𝟒 . Gambar 4.23 merupakan hasil perhitungan data uji menggunakan fungsi Encoder14.m.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72
Gambar 4.23 Hasil perhitungan fungsi Encoder13.m
4.3.3.
Kanal AWGN Kanal AWGN menggunakan modulator QAM 16. Pada pengujian ini
SNR yang digunakan adalah 15 untuk penyandi konvolusi 𝟏𝟏�𝟐𝟐 , 12 untuk penyandi konvolusi 𝟏𝟏�𝟑𝟑 , dan 13 untuk penyandi konvolusi 𝟏𝟏�𝟒𝟒 . Data uji yang telah disandikan menggunakan penyandi-penyandi konvolusi dilakukan simulasi
pengiriman dan pemberian derau. Tabel 4.4 merupakan hasil akhir kanal AWGN. Data pada tabel tersebut merupakan data uji berbentuk biner yang telah terkena derau. Data pada tabel tersebut kemudian akan diproses ke pengawasandian data. Nama Data Data yang Diterima Data rate 1/2 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 Data rate 1/3 1 1 1 0 1 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 1 1 Data rate 1/4 1 1 1 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 1
Tabel 4.4 Hasil pengujian kanal AWGN
4.3.4.
Pengawasandi Viterbi Pengawasandi Viterbi memiliki rate yang sesuai dengan code rate dari
penyandi konvolusi yaitu 𝟏𝟏�𝟐𝟐 , 𝟏𝟏�𝟑𝟑 , dan 𝟏𝟏�𝟒𝟒 . Pengawasandi Viterbi diadaptasi
dari trellis diagram. Masing-masing trellis diagram pengawasandi memiliki state yang sama karena ukuran dari register yang dipakai berjumlah tiga. Sehingga nilai dari state adalah 2 bit. Code word dari masing-masing trellis diagram akan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 73
berbeda karena code rate dari masing-masing penyandi konvolusi berbeda. Perhitungan secara manual dilakukan dengan menghitung perbedaan bit code word dengan bit yang diterima untuk masing-masing waktu dan state. Nilai perbedaan bit tersebut kemudian dijumlahkan setiap menghitung bit selanjutnya dan mencatat jalur yang dilewati. Hasil dari penjumlahan tersebut akan menghasilkan empat nilai. Empat nilai tersebut kemudian dipilih nilai paling terkecil beserta jalur yang sebelumnya telah dicatat.
4.3.4.1. Pengawasandi Viterbi Rate 𝟏𝟏�𝟐𝟐
Gambar 4.24 merupakan trellis diagram untuk rate 𝟏𝟏�𝟐𝟐. Gambar 4.25
merupakan hasil perhitungan manual pengawsandian. Hasil perhitungan manual
tersebut ditemukan satu jalur (garis warna merah) yang mirip dengan data uji dan memiliki jumlah perbedaan bit paling minimal yaitu dua. Jalur yang didapat kemudian masuk ke dalam proses penerjemahan menjadi data 8 bit kembali dan sesuai dengan data uji. Tabel 4.5 merupakan hasil dari penerjemahan jalur yang ditemukan. Gambar 4.26 merupakan hasil perhitungan menggunakan fungsi Main12.m.
00
00
00
00
00
00
00
00
00
00
11
11
11
11
11
11
11
11
11
11
10
11
01 01
11
10
11 00
00
01
01
11 00
11 00
01
11 00
01
11 00
01
00
01
01
10
10
10
10
10
10
10
10
10
10
10
10
10
10
01
01
01
01
01
01
01
Gambar 4.24 Trellis diagram untuk rate 𝟏𝟏�𝟐𝟐
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74
Pesan asli
0
0
1
1
0
1
0
1
Pesan penyandi
11
01
00
01
00
10
10
11
Pesan diterima
11
01
01
01
00
10
11
11
2
1
1
1
0
1
2
2
0
1
1
1
2
1
0
0
00
1
1 0 2
01
11
Rate
0
0
1
1
2
1
2
2
1
0
0
0
1
2
1
1
10
2
2
1
0
1
1
2
2
1
0
1
1
0
0
1
2
1
1
Gambar 4.25 Hasil perhitungan manual pengawasandi Viterbi rate 𝟏𝟏�𝟐𝟐 Jalur
Rate 1/2
bobot
1 2 2 3 3 2 2 3 3 2 2 4 4 3 3 1
Hasil Terjemahan
0
0
1
1
0
1
0
2
2
1
Tabel 4.5 Hasil penerjemahan jalur Viterbi rate 𝟏𝟏�𝟐𝟐
Gambar 4.26 Hasil perhitungan fungsi Main12.m 4.3.4.2. Pengawasandi Viterbi Rate 𝟏𝟏�𝟑𝟑
Gambar 4.27 merupakan trellis diagram untuk rate 𝟏𝟏�𝟑𝟑. Gambar 4.28
merupakan hasil perhitungan manual pengawsandian. Hasil perhitungan manual
tersebut ditemukan satu jalur (garis warna merah) yang mirip dengan data uji dan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75
memiliki jumlah perbedaan bit paling minimal yaitu satu. Jalur yang didapat kemudian masuk ke dalam proses penerjemahan menjadi data 8 bit kembali dan sesuai dengan data uji. Tabel 4.6 merupakan hasil dari penerjemahan jalur yang ditemukan. Gambar 4.29 merupakan hasil perhitungan menggunakan fungsi Main13.m.
000
000
000
000
000
000
000
000
111
111
111
111
111
111
111
111
111
111
111
111
111
111
000
000 011
Pesan asli
0
011
011
100
000
000
011
000
011
000
011
011
100
100
100
100
100
100
100
100
100
100
100
100
011
011
011
011
011
011
Gambar 4.27 Trellis diagram untuk rate 𝟏𝟏�𝟑𝟑 0
1
1
0
1
0
1
011
000
011
000
100
100
111
Pesan penyandi
111
Pesan diterima
111
010
000
011
000
100
100
111
00
3
1
0
2
0
1
1
3
0
2
3
1
3
2
2
0
3
10
1
1 01
11
Rate
2 0
0
2
2
3 2
0
2 1
2
0 1
3
1
3
3
1
1
3
1
0
0
2
1
3
1
0
0
2
2
0
2
3
3
1
Gambar 4.28 Hasil perhitungan manual pengawasandi Viterbi rate 𝟏𝟏�𝟑𝟑 Jalur
Rate 1/3
bobot
1 2 2 3 3 2 2 3 3 2 2 4 4 3 3 1
Hasil Terjemahan
0
0
1
1
0
1
0
Tabel 4.6 Hasil penerjemahan jalur Viterbi rate 𝟏𝟏�𝟑𝟑
1
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76
Gambar 4.29 Hasil perhitungan fungsi Main13.m
4.3.4.3. Pengawasandi Viterbi Rate 𝟏𝟏�𝟒𝟒
Gambar 4.30 merupakan trellis diagram untuk rate 𝟏𝟏�𝟒𝟒. Gambar 4.31
merupakan hasil perhitungan manual pengawsandian. Tabel Hasil perhitungan
manual tersebut ditemukan satu jalur (garis warna merah) yang mirip dengan data uji dan memiliki jumlah perbedaan bit paling minimal yaitu satu. Jalur yang didapat kemudian masuk ke dalam proses penerjemahan menjadi data 8 bit kembali dan sesuai dengan data uji. Tabel 4.7 merupakan hasil dari penerjemahan jalur yang ditemukan. Gambar 4.32 merupakan hasil perhitungan menggunakan fungsi Main14.m. 0000
0000
0000
0000
0000
0000
0000
0000
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
0000 0111 1000
0111
0000 0111
0000 0111
0000 0111
0000 0111
0000 0111
1000
1000
1000
1000
1000
1000
1000
1000
1000
1000
1000
1000
0111
0111
0111
0111
0111
0111
Gambar 4.30 Trellis diagram untuk rate 𝟏𝟏�𝟒𝟒
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 77
Pesan asli
0
0
1
1
0
1
0
1
Pesan penyandi
1111
0111
0000
0111
0000
1000
1000
1111
Pesan diterima
1110
0111
0000
0111
0000
1000
1000
1111
00
3
3
0
3
0
1
1
4
1
1
4
1
4
3
3
0
1
4
10
0
11
Rate
0
0
3
4
01
3
4 3
0
3 1
3
0 1
4
4
4
1
1
1
4
1
0
0
3
1
4
1
0
0
3
3
0
3
4
4
1
Gambar 4.27 Hasil perhitungan manual pengawasandi Viterbi rate 𝟏𝟏�𝟒𝟒 Jalur
Rate 1/4
bobot
1 2 2 3 3 2 2 3 3 2 2 4 4 3 3 1
Hasil Terjemahan
0
0
1
1
0
1
0
Tabel 4.7 Hasil penerjemahan jalur Viterbi rate 𝟏𝟏�𝟒𝟒
Gambar 4.32 Hasil perhitungan fungsi Main13.m
1
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB V ANALISA HASIL
Pada bagian ini, penulis akan memaparkan hasil dan analisa dari penelitian yang telah dilakukan. Hasil penelitian yang diperoleh berupa hasil pengukuran pengujian yang telah dirancang sebelumnya yaitu : Pengujian code rate penyandi, pengujian nilai SNR, bentuk grafik data ECG, dan Pengujian panjang data ECG.
5.1.
Hasil Pengujian Pada bagian ini akan dijabarkan hasil analisa penulis terhadap hasil-hasil
yang didapat dari aspek yang diujikan. Aspek yang diujikan yaitu jumlah data ECG dan nilai SNR. Jumlah data ECG yang akan diuji adalah 300 data dan 600 data. Nilai SNR yang akan diuji adalah 1 sampai 20. Data ECG yang diuji berjumlah 3 buah data yang berbeda pola atau bentuk grafiknya. Masing-masing penyandi konvolusi akan diuji sebanyak tiga kali untuk setiap jumlah data. Pengujian dilakukan sebanyak tiga kali dikarena pemberian error yang bersifat random saat proses pengiriman melalui kanal AWGN. Sehingga hasil satu kali pengujian tidak dapat menentukan unjuk kerja dari penyandi. Oleh karena itu hasil pengujian diambil dari nilai rata-rata BER dari tiga kali pengujian yang telah dilakukan terhadap maing-masing penyandi. Hasil pengujian tersebut yang akan dianalisa oleh penulis tentang unjuk kerja dari penyandi konvolusi.
5.1.1.
Hasil Pengujian Penyandi Konvolusi Code rate 𝟏𝟏�𝟐𝟐
Lampiran 5 merupakan hasil dari tiga kali percobaan penyandi konvolusi
dengan data ECG sejumlah 300 data. Hasil dari percobaan pertama dapat dilihat bahwa BER mencapai nilai 0 (nol) ketika SNR berada pada nilai 17. Kemudian pada percobaan kedua nilai BER mencapai 0 (nol) ketika SNR berada pada nilai 16. Pada percobaan terakhir nilai BER mencapai 0 (nol) ketika SNR berada pada
78
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79
nilai 17. Hasil percobaan-percobaan tersebut kemudian dihitung nilai rata-ratanya. Hasil perhitungan tersebut menjadi rata-rata nilai BER untuk penyandi konvolusi code rate 𝟏𝟏�𝟐𝟐 dengan jumlah data uji 300 data ECG. Waktu rata-rata proses pengawasandian 300 data ECG membutuhkan waktu kurang lebih 160 detik
Lampiran 6 merupakan hasil dari tiga kali percobaan penyandi konvolusi dengan data ECG sejumlah 600 data. Hasil dari percobaan tersebut tidak jauh berbeda dengan percobaan menggunakan 300 data. Pada semua percobaan nilai BER mencapai 0 (nol) ketika SNR berada pada nilai 17. Hasil tiga kali percobaan tersebut dihitung nilai rata-ratanya dan digunakan sebagai rata-rata nilai BER penyandi konvolusi code rate 𝟏𝟏�𝟐𝟐 dengan jumlah data uji 600 data ECG. 5.1.1.1. Grafik Rata-rata BER Code rate 𝟏𝟏�𝟐𝟐
Gambar 5.1 merupakan grafik rata-rata nilai BER untuk hasil kode
konvolusi dengan code rate 𝟏𝟏�𝟐𝟐. Pada grafik dapat dilihat bahwa nilai SNR dari 1
sampai 13 menghasilkan nilai BER yang hampir sama antara panjang data ECG 300 dan 600. Kemudian saat nilai SNR mencapai 14, 15, dan 16, terjadi perbedaan nilai BER. Ketika nilai SNR berada pada 17 sampai 21 nilai BER hampir mendekati nol. Rata -rata BER Code Rate 1/2 1,00E+00
SNR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
BER
1,00E-01
300 data ECG 600 data ECG
1,00E-02 1,00E-03 1,00E-04
Gambar 5.1 Grafik Rata-rata BER code rate 𝟏𝟏�𝟐𝟐
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80
5.1.2.
Hasil Pengujian Penyandi Konvolusi Code rate 𝟏𝟏�𝟑𝟑
Lampiran 7 merupakan hasil dari tiga kali percobaan penyandi konvolusi dengan data ECG sejumlah 300 data. Hasil dari percobaan pertama dapat dilihat bahwa BER mencapai nilai 0 (nol) ketika SNR berada pada nilai 16. Kemudian pada percobaan kedua nilai BER mencapai 0 (nol) ketika SNR berada pada nilai 15. Pada percobaan terakhir nilai BER mencapai 0 (nol) ketika SNR berada pada nilai 17. Hasil percobaan-percobaan tersebut kemudian dihitung nilai rata-ratanya. Hasil perhitungan tersebut menjadi rata-rata nilai BER untuk penyandi konvolusi code rate 𝟏𝟏�𝟑𝟑 dengan jumlah data uji 300 data ECG. Waktu rata-rata proses pengawasandian 300 data ECG membutuhkan waktu kurang lebih 165 detik
Lampiran 8 merupakan hasil dari tiga kali percobaan penyandi konvolusi dengan data ECG sejumlah 600 data. Hasil dari percobaan menggunakan 600 data berbeda dengan percobaan menggunakan 300 data. Hasil dari percobaan pertama dapat dilihat bahwa BER mencapai nilai 0 (nol) ketika SNR berada pada nilai 15. Kemudian pada percobaan kedua dan ketiga nilai BER mencapai 0 (nol) ketika SNR berada pada nilai 16. Hasil tiga kali percobaan tersebut dihitung nilai rataratanya dan digunakan sebagai rata-rata nilai BER penyandi konvolusi code rate 𝟏𝟏� dengan jumlah data uji 600 data ECG. 𝟑𝟑 5.1.2.1. Grafik Rata-rata BER Code rate 𝟏𝟏�𝟑𝟑
Gambar 5.2 merupakan grafik rata-rata nilai BER untuk hasil kode
konvolusi dengan code rate 𝟏𝟏�𝟑𝟑. Pada grafik dapat dilihat bahwa nilai SNR dari 1
sampai 10 menghasilkan nilai BER yang hampir sama antara panjang data ECG
300 dan 600. Kemudian saat nilai SNR mencapai 11 terjadi perbedaan nilai BER. Ketika nilai SNR berada pada 12 menghasilkan nilai BER yang sama kembali hampir mendekati nol. Kemudian perbedaan nilai BER kembali terjadi saat SNR berada pada nilai 13 sampai 16. Pada panjang data ECG 600, nilai BER hampir mendekati nol ketika SNR bernilai lebih dari 16. Sedangkan pada panjang data ECG 300, nilai BER hampir mendekati nol ketka SNR bernilai lebih dari 17.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81
Rata-rata BER Code Rate 1/3 SNR
1,00E+00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1,00E-01 300 data ECG
1,00E-02 BER
600 data ECG
1,00E-03 1,00E-04 1,00E-05
Gambar 5.2 Grafik Rata-rata BER code rate 𝟏𝟏�𝟑𝟑
5.1.3.
Hasil Pengujian Penyandi Konvolusi Code rate 𝟏𝟏�𝟒𝟒
Lampiran 9 merupakan hasil dari tiga kali percobaan penyandi konvolusi dengan data ECG sejumlah 300 data.
Hasil dari percobaan pertama BER
mencapai nilai 0 (nol) ketika SNR berada pada nilai 13. Pada percobaan kedua nilai BER mencapai 0 (nol) ketika SNR berada pada nilai 15. Pada percobaan terakhir nilai BER mencapai 0 (nol) ketika SNR berada pada nilai 14. Hasil percobaan-percobaan tersebut kemudian dihitung nilai rata-ratanya. Hasil perhitungan tersebut menjadi rata-rata nilai BER untuk penyandi konvolusi code rate 𝟏𝟏�𝟒𝟒 dengan jumlah data uji 300 data ECG.
Lampiran 10 merupakan hasil dari tiga kali percobaan penyandi
konvolusi dengan data ECG sejumlah 600 data. Hasil dari percobaan menggunakan 600 data berbeda dengan percobaan menggunakan 300 data. Hasil dari semua percobaan nilai BER mencapai 0 (nol) ketika SNR berada pada nilai 14. Hasil tiga kali percobaan tersebut dihitung nilai rata-ratanya dan digunakan sebagai rata-rata nilai BER penyandi konvolusi code rate 𝟏𝟏�𝟒𝟒 dengan jumlah data uji 600 data ECG.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82
5.1.3.1. Grafik Rata-rata BER Code rate 𝟏𝟏�𝟒𝟒
Gambar 5.3 merupakan grafik rata-rata nilai BER untuk hasil kode
konvolusi dengan code rate 𝟏𝟏�𝟒𝟒. Pada grafik dapat dilihat bahwa nilai SNR dari 1
sampai 8 menghasilkan nilai BER yang hampir sama antara panjang data ECG 300 dan 600. Kemudian saat nilai SNR berada pada 9 sampai 15 terjadi perbedaan
nilai BER. Pada panjang data ECG 600, nilai BER hampir mendekati nol ketika SNR bernilai lebih dari 14. Sedangkan pada panjang data ECG 300, nilai BER hampir mendekati nol ketka SNR bernilai lebih dari 15. Rata-rata BER Code Rate 1/4 1,00E+00
SNR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
1,00E-01
BER
300 data ECG 600 data ECG
1,00E-02
1,00E-03
1,00E-04
Gambar 5.3 Grafik Rata-rata BER code rate 𝟏𝟏�𝟒𝟒 5.1.4.
Hasil Pengujian 300 Data ECG Gambar 5.4 merupakan grafik rata-rata nilai BER untuk semua hasil kode
konvolusi dengan pengujian menggunakan 300 data ECG. Pada grafik dapat dilihat bahwa nilai BER yang paling baik dimiliki oleh code rate 𝟏𝟏�𝟒𝟒. Code rate
𝟏𝟏� berada pada posisi kedua setelah code rate 𝟏𝟏� . Code rate 𝟏𝟏� berada pada 𝟑𝟑 𝟒𝟒 𝟐𝟐 posisi terakhir yang memiliki nilai BER kurang baik. Hal tersebut dikarenakan
kemampuan mengkoreksi dari masing-masing code rate. Sedangkan ukuran data
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 83
ECG tidak memberi pengaruh terhadap hasil BER. Ukuran data ECG hanya akan berpengaruh terhadapa kecepatan proses mengawasandikan data Rata-rata BER ECG = 300 Data SNR 1,00E+00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1,00E-01 Code Rate 1/2
BER
1,00E-02
Code Rate 1/3 Code Rate 1/4
1,00E-03 1,00E-04 1,00E-05
Gambar 5.4 Grafik Rata-rata BER 300 data ECG
5.1.5.
Hasil Pengujian Penyandi Konvolusi Dengan 600 Data ECG Gambar 5.5 merupakan grafik rata-rata nilai BER untuk semua hasil kode
konvolusi dengan pengujian menggunakan 600 data ECG. Pada grafik dapat dilihat bahwa nilai BER yang paling baik dimiliki oleh code rate 𝟏𝟏�𝟒𝟒. Rata-rata BER ECG = 600 Data
1,00E+00
SNR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Code Rate 1/2
1,00E-01 BER
Code Rate 1/3 Code Rate 1/4
1,00E-02
1,00E-03
1,00E-04
Gambar 5.5 Grafik Rata-rata BER 600 data ECG
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 84
Hal ini tidak jauh berbeda dengan penjelasan sebelumnya, yaitu kemampuan koreksi dari masing-masing code rate yang lebih mempengaruhi nilai BER. Sedangkan ukuran data ECG lebih mempengaruhi kecepatan sebuah code rate dalam mengawasandikan data.
5.1.6.
Hasil Pengujian Dengan Data ECG Jenis 1 Gambar 5.6 merupakan bentuk grafik data ECG untuk jenis pertama yang
akan menjadi data pengujian. Lampiran 13 merupakan hasil pengujian dari semua penyandi dengan menggunakan data ECG jenis pertama. Hasil dari pengujian ini nilai BER untuk code rate 𝟏𝟏�𝟐𝟐 dan 𝟏𝟏�𝟑𝟑 mencapai nilai 0 (nol) ketika SNR berada pada nilai 16. Sedangkan pada code rate 𝟏𝟏�𝟒𝟒 nilai BER mencapai 0 (nol) ketika
SNR berada pada nilai 13. Gambar 5.7 merupakan grafik nilai BER dari pengujian jenis ECG yang pertama.
Gambar 5.6 Bentuk grafik ECG 100.dat
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 85
Nilai BER ECG 100.dat 1,00E+00
SNR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1,00E-01
Code Rate 1/2
BER
Code Rate 1/3 1,00E-02
Code Rate 1/4
1,00E-03
1,00E-04
Gambar 5.7 Grafik nilai BER untuk data ECG 100.dat
5.1.7.
Hasil Pengujian Dengan Data ECG Jenis 2 Gambar 5.8 merupakan bentuk grafik data ECG untuk jenis kedua yang
akan menjadi data pengujian. Lampiran 14 merupakan hasil pengujian dari semua penyandi dengan menggunakan data ECG jenis kedua.
Gambar 5.8 Bentuk grafik ECG 103.dat Hasil dari pengujian ini nilai BER untuk code rate 𝟏𝟏�𝟐𝟐 dan 𝟏𝟏�𝟑𝟑 mencapai nilai 0 (nol) ketika SNR berada pada nilai 16. Sedangkan pada code rate 𝟏𝟏�𝟒𝟒 nilai BER
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 86
mencapai 0 (nol) ketika SNR berada pada nilai 15. Gambar 5.9 merupakan grafik nilai BER dari pengujian jenis ECG yang kedua.
1,00E+00
Nilai BER ECG 103.dat SNR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1,00E-01
Code Rate 1/2
BER
Code Rate 1/3
1,00E-02
Code Rate 1/4
1,00E-03
1,00E-04
Gambar 5.9 Grafik nilai BER untuk data ECG 103.dat
5.1.8.
Hasil Pengujian Dengan Data ECG Jenis 3 Gambar 5.10 merupakan bentuk grafik data ECG untuk jenis ketiga yang
akan menjadi data pengujian. Lampiran 15 merupakan hasil pengujian dari semua penyandi dengan menggunakan data ECG jenis ketiga.
Gambar 5.10 Bentuk grafik ECG 111.dat Hasil dari pengujian ini nilai BER untuk code rate 𝟏𝟏�𝟐𝟐 dan 𝟏𝟏�𝟑𝟑 mencapai nilai 0
(nol) ketika SNR berada pada nilai 16. Sedangkan pada code rate 𝟏𝟏�𝟒𝟒 nilai BER
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 87
mencapai 0 (nol) ketika SNR berada pada nilai 14. Gambar 5.11 merupakan grafik nilai BER dari pengujian jenis ECG yang ketiga. Nilai BER ECG 111.dat SNR
1,00E+00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1,00E-01
Code Rate 1/2
BER
Code Rate 1/3 1,00E-02
Code Rate 1/4
1,00E-03
1,00E-04
Gambar 5.11 Grafik nilai BER untuk data ECG 111.dat
5.1.9.
Hasil Pengujian Penyandi Konvolusi Code rate 𝟏𝟏�𝟐𝟐
Gambar 5.12 merupakan grafik nilai BER hasil pengujian 3 jenis data ECG terhadapa code rate 𝟏𝟏�𝟐𝟐 . 1,00E+00
Nilai BER Code Rate 1/2 SNR
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1,00E-01
ECG 100
BER
ECG 103 1,00E-02
ECG 111
1,00E-03
1,00E-04
Gambar 5.12 Grafik nilai BER code rate 𝟏𝟏�𝟐𝟐
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 88
Pada hasil pengujian code rate 𝟏𝟏�𝟐𝟐 menggunakan 3 jenis data ECG dapat dilihat
nilai BER mencapai 0 (nol) ketika SNR berada pada nilai 16 untuk semua jenis data ECG. Ketika nilai SNR 15, nilai BER paling kecil diperoleh untuk data ECG jenis 1 atau ECG 100.dat yaitu sebesar 0,000833333333333333. Kemudian data ECG jenis 3 atau ECG 111.dat memiliki nilai BER kedua terkecil yaitu sebesar 0,00111111111111111. Sedangkan data ECG jenis 2 atau ECG 103.dat memiliki nilai BER yang paling besar yaitu 0,00361111111111111. 5.1.10. Hasil Pengujian Penyandi Konvolusi Code rate 𝟏𝟏�𝟑𝟑
Gambar 5.13 merupakan grafik nilai BER hasil pengujian 3 jenis data
ECG terhadapa code rate 𝟏𝟏�𝟑𝟑 . Pada hasil pengujian code rate 𝟏𝟏�𝟑𝟑 menggunakan 3 jenis data ECG dapat dilihat nilai BER mencapai 0 (nol) ketika SNR berada
pada nilai 16 untuk semua jenis data ECG. Ketika nilai SNR 15, nilai BER paling kecil diperoleh untuk data ECG jenis 2 atau ECG 103.dat yaitu sebesar 0,000555555555555556. Kemudian data ECG jenis 3 atau ECG 111.dat memiliki nilai BER kedua terkecil yaitu sebesar 0,000833333. Sedangkan data ECG jenis 1 atau
ECG
100.dat
memiliki
nilai
BER
yang
paling
besar
yaitu
0,000833333333333333. Nilai BER Code Rate 1/3 1,00E+00
SNR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1,00E-01
ECG 100
BER
ECG 103 1,00E-02
ECG 111
1,00E-03
1,00E-04
Gambar 5.13 Grafik nilai BER code rate 𝟏𝟏�𝟑𝟑
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 89
5.1.11. Hasil Pengujian Penyandi Konvolusi Code rate 𝟏𝟏�𝟒𝟒
Gambar 5.14 merupakan grafik nilai BER hasil pengujian 3 jenis data
ECG terhadapa code rate 𝟏𝟏�𝟒𝟒 . Pada hasil pengujian code rate 𝟏𝟏�𝟒𝟒 menggunakan 3 jenis data ECG dapat dilihat nilai BER mencapai 0 (nol) ketika SNR berada
pada nilai 13 untuk semua jenis data ECG. Ketika nilai SNR 12, nilai BER paling kecil diperoleh untuk data ECG jenis 1 atau ECG 100.dat yaitu sebesar 0,000277777777777778. Kemudian data ECG jenis 2 atau ECG 103.dat dan data ECG jenis 3 atau ECG 111.dat memiliki nilai BER yang sama yaitu 0,000555555555555556. Nilai BER Code Rate 1/4 SNR
1,00E+00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1,00E-01
ECG 100
BER
ECG 103 1,00E-02
ECG 111
1,00E-03
1,00E-04
Gambar 5.14 Grafik nilai BER code rate 𝟏𝟏�𝟒𝟒 5.2.
Analisa Hasil Pengujian Pada bagian ini, penulis akan menjabarkan hasil analisa penulis terhadap
hasil-hasil yang didapat dari masing-masing aspek yang diujikan.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 90
5.2.1.
Analisa Pengujian Code Rate Hasil pengujian program dapat ditarik sebuah kesimpulan bahwa
penyandi konvolusi dengan code rate 𝟏𝟏�𝟒𝟒 merupakan code rate yang paling baik dalam mengkoreksi data ECG untuk panjang data 300 dan 600. Lampiran 11
menunjukan untuk panjang data ECG 300, code rate 𝟏𝟏�𝟒𝟒 mencapai nilai BER mendekati nol ketika SNR lebih besar dari 14. code rate 𝟏𝟏�𝟑𝟑 dan code rate 𝟏𝟏�𝟐𝟐 mencapai nilai BER mendekati nol ketika SNR lebih besar dari 16. Lampiran 12
menunjukan untuk panjang data ECG 600, code rate 𝟏𝟏�𝟒𝟒 mencapai nilai BER mendekati nol ketika SNR lebih besar dari 14. Code rate 𝟏𝟏�𝟑𝟑 dan code rate 𝟏𝟏�𝟐𝟐 mencapai nilai BER mendekati nol ketika SNR lebih besar dari 15 dan 16. Hal ini disebabkan oleh kemampuan koreksi dari code rate 𝟏𝟏�𝟒𝟒 lebih tinggi dari code rate lainnya. Code rate 𝟏𝟏�𝟒𝟒 mampu mengkoreksi data sejumlah 4 bit, sedangkan
code rate 𝟏𝟏�𝟑𝟑 mampu mengkoreksi data sejumlah 3 bit, dan code rate 𝟏𝟏�𝟐𝟐 mampu mengkoreksi data sejumlah 2 bit. Hal tersebut yang menyebabkan code rate 𝟏𝟏�𝟒𝟒 memiliki nilai BER yang lebih baik dari code rate lainnya.
5.2.2.
Analisa Pengujian Panjang Data ECG Ukuran atau panjang data uji, yaitu data ECG, tidak berpengaruh
terhadap hasil dari BER. Panjang data uji akan lebih berpengaruh terhadap kecepatan program dalam menyandikan dan mengawasandikan data. Semakin panjang data yang akan diuji, semakin lama waktu untuk menyandikan dan mengawasandikan data tersebut.
5.2.3.
Analisa Pengujian Nilai SNR
Lampiran 5, lampiran 6, lampiran 7, lampiran 8, lampiran 9, dan lampiran 10 menunjukan bahwa nilai SNR sangat berpengaruh terhadap kinerja semua penyandi konvolusi. Jika nilai SNR kecil, maka perhitungan nilai BER akan kurang baik. Hal tersebut disebabkan oleh daya sinyal lebih lemah daripada daya
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 91
noise. Sehingga data yang dikirimkan akan lebih mudah terkena error yang mengakibatkan data menjadi rusak dan perhitungan nilai BER akan menjadi kurang baik. Pada pengujian ini, code rate 𝟏𝟏�𝟒𝟒 merupakan code rate yang paling
baik dari code rate lainnya berdasarkan nilai BER yang dicapainya.
5.2.4.
Analisa Pengujian Jenis-jenis ECG Lampiran 16, lampiran 17, dan lampiran 18 menunjukan bahwa dari 3
jenis ECG yang berbeda bentuk tidak mempengaruhi nilai BER. Pada pengujian menggunakan data ECG jenis 1, 2 dan 3 terhadap code rate penyandi, nilai BER mencapai 0 (nol) dengan posisi SNR yang sama untuk semua jenis data ECG. Pada pengujian menggunakan data ECG jenis 1, 2, dan 3 terhadap semua code rate penyandi, nilai BER mencapai 0 (nol) saat SNR berada pada nilai 16 untuk code rate 𝟏𝟏�𝟐𝟐 dan 𝟏𝟏�𝟑𝟑 . Sedangkan pada code rate 𝟏𝟏�𝟒𝟒 , nilai BER mencapai 0
(nol) ketika SNR berada pada nilai 13.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
BAB VI KESIMPULAN DAN SARAN
6.1.
Kesimpulan Setelah simulasi convolutional codes dibuat, diuji dengan 3 jenis data
ECG dan dilakukan analisis terhadap nilai BER yang dihasilkan dari pengujian, didapatkan kesimpulan sebagai berikut: 1. Jenis data ECG tidak mempengaruhi nilai BER. 2. Nilai BER terbaik dicapai pada code rate penyandi 𝟏𝟏�𝟒𝟒 saat SNR berada
pada nilai 13 untuk 3 jenis data ECG.
6.2.
Saran Saran yang dapat penulis berikan berkaitan dengan keterbatasan yang ada
pada program yang dibangun adalah 1. Variasi modulasi pada kanal AWGN perlu dikembangkan. Tujuan
variasi modulasi tersebut adalah pengguna dapat membandingkan nilai BER dengan modulasi tertentu. 2. Code rate convolutional codes perlu dikembangkan agar nilai BER
menjadi lebih baik. 3. Unjuk kerja program akan lebih baik bila digabungkan dengan Reed-
Solomon Codes.
92
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA
[1] Panjaitan, Sihar Parlinggoman. 2006. Kinerja Sistem Pengkodean dengan Menggunakan
Kode
Inner
dan
Kode
Outer.
Sumber:
http://repository.usu.ac.id/bitstream/123456789/21137/1/sti-okt20067%20(7).pdf. Teknik Elektro, Universitas Sumatera Utara. Diakses: 2 Mei 2012. [2] Koenig, T., dkk. 2005. Brain connectivity at different time-scales measured with
EEG.
Sumber:
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1854932/pdf/rstb20051649.pdf. Philosophical Transactions of the Royal Society B: Biological Sciences, London. Diakses: 10 Mei 2012. [3] Setyadi, Bayu Dwi, Imam Santoso dan Darjat. 2011. Evaluasi Kinerja Convolutional
Coding
Rate
½
Pada
Sistem
CDMA.
Sumber:
http://eprints.undip.ac.id/32032/1/Bayu_Dwi_Setyadi.pdf.
Teknik
Elektro,
Universitas Diponegoro, Semarang. Diakses: 20 Mei 2012. [4] Morelos, Robert H. dan Zaragoza. 2006. The Art of Error Correcting Coding, Second Edition. John Wiley & Sons, Ltd. San Jose State University, USA [5] Prengki, Luther Pasca. 2009. Kelayakan Sistem DS-SS (Direct Squence Spread Spectrum) untuk transmisi Sinyal ECG (Electrocardiogram) Pada Sistem Telemedika
Wireless.
Sumber:
http://ppm.ittelkom.ac.id/jurtel/images/Volume10Juni2005/kelayakan%20sistem.p df. Teknik Elektro Sekolah Tinggi Teknologi Telkom, Bandung. Diakses: 30 Juni 2012. [6] Dewi, Karina Meyrita. 2011. Analisa Kinerja Kode Konvolusi pada Sistem Successive Interference Cancellation Multiuser Detection CDMA dengan Modulasi
QAM
Berbasis
Perangkat
its.edu/uploadta/downloadmk.php?id=1362.
Lunak
Teknik
http://www.eepis-
Telekomunikasi,
Institut
Teknologi Sepuluh Nopember, Surabaya. [7] Rohmah, Mamiek Rizka. 2011. Visualisasi dan Analisa Kinerja Kode Konvolusi Pada Sistem MC-CDMA Dengan Modulasi QPSK Berbasis Perangkat Lunak. Teknik Telekomunikasi, Institut Teknologi Sepuluh Nopember, Surabaya.
93
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 94
[8] Soleh, Ridwan Moch, Achmad Rizal, dan Rita Magdalena. 2008. Denoising Rekaman Sinyal Elektrokardiogram (EKG) Menggunakan Algoritma Iterative Threshold
Pada
Subband
Wavelet.
Sumber:
http://repository.akprind.ac.id/sites/files/conference-paper/2010/ridwan-mochsoleh_21225.pdf. Teknik Elektro, Institut Teknologi Telkom. Diakses: 10 Mei 2012. [9] Baharuddin, B. 2007. Analisa Kinerja Quadrature Amplitude Modulation Pada Kanal Additive White Gaussian Noise untuk Transmisi Citra. Sumber: http://repository.unand.ac.id/1107/1/5458_QAM_Baharuddin__kanal_AWGN.pdf. Teknik Elektro, Universitas Andalas. Diakses: 18 Juli 2012. [10] Breed, Gary. 2003. Bit Error Rate: Fundamental Concepts and Measurement Issues.
Sumber:
http://www.highfrequencyelectronics.com/Archives/Jan03/HFE0103_Tutorial.pdf . Summit TechnicalMedia, LLC. Diakses: 21 Juni 2012. [11] Hafidudin. 2009. Error Control Pada Jaringan Wireless ATM Berbasis CDMA
Menggunakan
Kode
Concatenated.
Sumber:
http://journal.uii.ac.id/index.php/Snati/article/viewFile/1423/1216. Teknik Elektro Institut Teknologi Telkom, Bandung. Diakses: 30 Juni 2012. [12] 1-CORE Technologies. 2008. Viterbi Algorithm for Decoding of Convolutional
Codes.
Sumber:
http://www.1-
core.com/library/comm/viterbi/viterbi.pdf. Moscow, Russia. Diakses: 27 Juni 2012. [13] Dr. Massey, J. L. and Dr. E. Paaske. 1973. Short Convolutional Codes With Maximal Free Distance for Rates 1/2, 1/3, and 1/4. IEEE Transactions On Information Theory. Technical University of Denmark. [14] Vamsi, P.Deepak and Mr. M.Murali Krishna. 2012. Constraint Length Parametrizable
Viterbi
Decoder
for
Convolutional
Codes.
Sumber:
http://www.ijerd.com/paper/vol1-issue1/F0113741.pdf. Diakses: 27 Juni 2012.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 95
[15]
Robert
Tratnig.
(2003,
Ferbuari)
physionet.org.
[Online].
http://www.physionet.org/physiotools/matlab/rddata.m. Diakses: 27 Desember 2012
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
Lampiran 1 Listing Rddata function [dataECG,M,TIME]=Rddata(path,ukuran) [pathstr, name] = fileparts(path); %------ SPECIFY DATA ----------------------------------------------------PATH=pathstr;
% path, where data are saved
HEADERFILE=[name,'.hea'];
% header-file in text format
ATRFILE=[name,'.atr'];
% attributes-file in binary format
DATAFILE=[name,'.dat']; SAMPLES2READ=ukuran;
% data-file % number of samples to be read
% in case of more than one signal: % 2*SAMPLES2READ samples are read %------ LOAD HEADER DATA ------------------------------------------------fprintf(1,'\\n$> WORKING ON %s ...\n', HEADERFILE); signalh= fullfile(PATH, HEADERFILE); fid1=fopen(signalh,'r'); z= fgetl(fid1); A= sscanf(z, '%*s %d %d %d',[1,3]); nosig= A(1);
% number of signals
sfreq=A(2);
% sample rate of data
clear A; for k=1:nosig z= fgetl(fid1); A= sscanf(z, '%*s %d %d %d %d %d %d %d %i',[1,8]); dformat(k)= A(1);
% format; here only 212 is allowed
gain(k)= A(2);
% number of integers per mV
bitres(k)= A(3);
% bitresolution
zerovalue(k)= A(4);
% integer value of ECG zero point
firstvalue(k)= A(5);
% first integer value of signal
(to test for errors) end; fclose(fid1); clear A;
96
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 97
%------ LOAD BINARY DATA ------------------------------------------------if dformat~= [212,212], error('this script does not apply binary formats different to 212.'); end; signald= fullfile(PATH, DATAFILE);
% data in format 212
fid2=fopen(signald,'r'); A= fread(fid2, [3, SAMPLES2READ], 'uint8')';
% matrix with 3
rows, each 8 bits long, = 2*12bit fclose(fid2); M2H= bitshift(A(:,2), -4); M1H= bitand(A(:,2), 15); PRL=bitshift(bitand(A(:,2),8),9);
% sign-bit
PRR=bitshift(bitand(A(:,2),128),5);
% sign-bit
M( : , 1)= bitshift(M1H,8)+ A(:,1)-PRL; M( : , 2)= bitshift(M2H,8)+ A(:,3)-PRR; if M(1,:) ~= firstvalue, error('inconsistency in the first bit values'); end; switch nosig case 2 M( : , 1)= (M( : , 1)- zerovalue(1))/gain(1); M( : , 2)= (M( : , 2)- zerovalue(2))/gain(2); TIME=(0:(SAMPLES2READ-1))/sfreq; case 1 M( : , 1)= (M( : , 1)- zerovalue(1)); M( : , 2)= (M( : , 2)- zerovalue(1)); M=M'; M(1)=[]; sM=size(M); sM=sM(2)+1; M(sM)=0; M=M'; M=M/gain(1); TIME=(0:2*(SAMPLES2READ)-1)/sfreq; otherwise
% this case did not appear up to now!
% here M has to be sorted!!! disp('Sorting algorithm for more than 2 signals not programmed yet!'); end;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 98
clear A M1H M2H PRR PRL; fprintf(1,'\\n$> LOADING DATA FINISHED \n');
%------ LOAD ATTRIBUTES DATA --------------------------------------------atrd= fullfile(PATH, ATRFILE);
% attribute file with
annotation data fid3=fopen(atrd,'r'); A= fread(fid3, [2, inf], 'uint8')'; fclose(fid3); ATRTIME=[]; ANNOT=[]; sa=size(A); saa=sa(1); i=1; while i<=saa annoth=bitshift(A(i,2),-2); if annoth==59 ANNOT=[ANNOT;bitshift(A(i+3,2),-2)]; ATRTIME=[ATRTIME;A(i+2,1)+bitshift(A(i+2,2),8)+... bitshift(A(i+1,1),16)+bitshift(A(i+1,2),24)]; i=i+3; elseif annoth==60 % nothing to do! elseif annoth==61 % nothing to do! elseif annoth==62 % nothing to do! elseif annoth==63 hilfe=bitshift(bitand(A(i,2),3),8)+A(i,1); hilfe=hilfe+mod(hilfe,2); i=i+hilfe/2; else ATRTIME=[ATRTIME;bitshift(bitand(A(i,2),3),8)+A(i,1)]; ANNOT=[ANNOT;bitshift(A(i,2),-2)]; end; i=i+1; end;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 99
ANNOT(length(ANNOT))=[];
% last line = EOF (=0)
ATRTIME(length(ATRTIME))=[];
% last line = EOF
clear A; ATRTIME= (cumsum(ATRTIME))/sfreq; ind= find(ATRTIME <= TIME(end)); ATRTIMED= ATRTIME(ind); ANNOT=round(ANNOT); ANNOTD= ANNOT(ind); %------ DISPLAY DATA ----------------------------------------------------% b= M(:,1); % dataECGasli=b; % savefile = 'dataecgasli.mat'; % save(savefile, 'dataECGasli'); a= M(:,1); a=(a(:,1)+1)*1000; dataECG=a; savefile = 'dataecg.mat'; save(savefile, 'dataECG'); for k=1:length(ATRTIMED) text(ATRTIMED(k),0,num2str(ANNOTD(k))); end; xlim([TIME(1), TIME(end)]); xlabel('Time / s'); ylabel('Voltage / mV'); string=['ECG signal ',DATAFILE]; title(string); fprintf(1,'\\n$> DISPLAYING DATA FINISHED \n'); % -----------------------------------------------------------------------fprintf(1,'\\n$> ALL FINISHED \n');
Lampiran 2 fungsi popupmenusnr function popupmenusnr_Callback(hObject, eventdata, handles) pathhasilpengawasandian=get(handles.pathfile1,'string'); [pathstr1,name1]=fileparts(pathhasilpengawasandian); datahasilpengawasandian=zeros; datahasilpengawasandian=load([name1,'.mat']); hasil=zeros; hasil=datahasilpengawasandian.hasilpengawasandian;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 100
list=get(handles.popupmenusnr,'String'); val=get(handles.popupmenusnr,'Value'); str=list(val); str=char(str); axes(handles.axes2); hold off if(strcmp(str,'1')) data=hasil(1,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'2')) data=hasil(2,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'3')) data=hasil(3,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'4')) data=hasil(4,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'5')) data=hasil(5,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'6')) data=hasil(6,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'7')) data=hasil(7,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'8')) data=hasil(8,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s')
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 101
else if (strcmp(str,'9')) data=hasil(9,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'10')) data=hasil(10,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'11')) data=hasil(11,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'12')) data=hasil(12,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'13')) data=hasil(13,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'14')) data=hasil(14,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 102
xlabel('Time / s') else if (strcmp(str,'15')) data=hasil(15,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'16')) data=hasil(16,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'17')) data=hasil(17,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'18')) data=hasil(18,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'19')) data=hasil(19,:); convert12bit=Ecgkolom(data);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 103
hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else if (strcmp(str,'20')) data=hasil(20,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') else data=hasil(21,:); convert12bit=Ecgkolom(data); hasil=Convertbin2dec(convert12bit); plot(hasil(1:300,1),'r'); xlabel('Time / s') end end end end end end end end end end end end end end end end end end end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 104
Lampiran 3 Hasil dari pembacaan 300 data ECG -0,145 -0,145 -0,145 -0,145 -0,145 -0,145 -0,145 -0,145 -0,12 -0,135 -0,145 -0,15 -0,16 -0,155 -0,16 -0,175 -0,18 -0,185 -0,17 -0,155 -0,175 -0,18 -0,19 -0,18 -0,155 -0,135 -0,155 -0,19 -0,205 -0,235
-0,225 -0,245 -0,25 -0,26 -0,275 -0,275 -0,275 -0,265 -0,255 -0,265 -0,275 -0,29 -0,29 -0,29 -0,29 -0,285 -0,295 -0,305 -0,285 -0,275 -0,275 -0,28 -0,285 -0,305 -0,29 -0,3 -0,28 -0,29 -0,3 -0,315
-0,32 -0,335 -0,36 -0,385 -0,385 -0,405 -0,455 -0,485 -0,485 -0,425 -0,33 -0,22 -0,07 0,12 0,375 0,62 0,78 0,84 0,765 0,52 0,17 -0,165 -0,365 -0,435 -0,425 -0,37 -0,33 -0,325 -0,335 -0,345
-0,33 -0,325 -0,315 -0,31 -0,32 -0,335 -0,34 -0,325 -0,345 -0,335 -0,33 -0,335 -0,33 -0,325 -0,33 -0,33 -0,345 -0,355 -0,335 -0,325 -0,305 -0,32 -0,32 -0,33 -0,34 -0,335 -0,34 -0,345 -0,355 -0,355
-0,34 -0,33 -0,33 -0,33 -0,34 -0,35 -0,325 -0,325 -0,33 -0,33 -0,335 -0,335 -0,34 -0,33 -0,34 -0,35 -0,355 -0,35 -0,345 -0,33 -0,32 -0,335 -0,33 -0,345 -0,33 -0,335 -0,335 -0,345 -0,345 -0,355
-0,34 -0,34 -0,335 -0,33 -0,35 -0,35 -0,345 -0,335 -0,335 -0,335 -0,35 -0,355 -0,355 -0,345 -0,345 -0,335 -0,35 -0,36 -0,36 -0,36 -0,365 -0,36 -0,37 -0,385 -0,37 -0,36 -0,355 -0,36 -0,375 -0,375
-0,365 -0,365 -0,36 -0,36 -0,365 -0,37 -0,355 -0,33 -0,325 -0,325 -0,335 -0,34 -0,315 -0,3 -0,3 -0,29 -0,295 -0,29 -0,285 -0,275 -0,255 -0,25 -0,25 -0,265 -0,255 -0,245 -0,23 -0,245 -0,245 -0,255
-0,255 -0,24 -0,25 -0,255 -0,245 -0,255 -0,25 -0,25 -0,265 -0,26 -0,26 -0,265 -0,27 -0,265 -0,26 -0,275 -0,28 -0,29 -0,275 -0,27 -0,26 -0,28 -0,28 -0,285 -0,275 -0,275 -0,265 -0,27 -0,285 -0,29
-0,28 -0,275 -0,285 -0,28 -0,3 -0,3 -0,305 -0,295 -0,3 -0,31 -0,31 -0,305 -0,295 -0,285 -0,285 -0,29 -0,295 -0,31 -0,29 -0,295 -0,3 -0,305 -0,31 -0,325 -0,31 -0,3 -0,29 -0,31 -0,325 -0,33
-0,315 -0,3 -0,305 -0,31 -0,32 -0,33 -0,325 -0,315 -0,31 -0,305 -0,305 -0,31 -0,3 -0,305 -0,29 -0,3 -0,3 -0,305 -0,305 -0,29 -0,28 -0,295 -0,305 -0,315 -0,305 -0,295 -0,29 -0,28 -0,27 -0,275
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 105
Lampiran 4 Hasil persamaan (4.1) 855 855 855 855 855 855 855 855 880 865 855 850 840 845 840 825 820 815 830 845 825 820 810 820 845 865 845 810 795
775 755 750 740 725 725 725 735 745 735 725 710 710 710 710 715 705 695 715 725 725 720 715 695 710 700 720 710 700
680 665 640 615 615 595 545 515 515 575 670 780 930 1120 1375 1620 1780 1840 1765 1520 1170 835 635 565 575 630 670 675 665
670 675 685 690 680 665 660 675 655 665 670 665 670 675 670 670 655 645 665 675 695 680 680 670 660 665 660 655 645
660 670 670 670 660 650 675 675 670 670 665 665 660 670 660 650 645 650 655 670 680 665 670 655 670 665 665 655 655
660 660 665 670 650 650 655 665 665 665 650 645 645 655 655 665 650 640 640 640 635 640 630 615 630 640 645 640 625
635 635 640 640 635 630 645 670 675 675 665 660 685 700 700 710 705 710 715 725 745 750 750 735 745 755 770 755 755
745 760 750 745 755 745 750 750 735 740 740 735 730 735 740 725 720 710 725 730 740 720 720 715 725 725 735 730 715
720 725 715 720 700 700 695 705 700 690 690 695 705 715 715 710 705 690 710 705 700 695 690 675 690 700 710 690 675
Lampiran 5 Hasil pengujian dengan 300 data ECG code rate 1�2 SNR percobaan 1
percobaan 2
percobaan 3
rata-rata
1 0,401388889 0,393611111 0,381944444 0,392314815 2 0,363333333 0,381944444 0,361111111 0,368796296 3 0,311111111 0,322222222 0,301666667 0,311666667 4 0,292777778 0,315833333 0,304722222 0,304444444 5 0,273055556 0,257222222 0,256944444 0,262407407 6 0,210833333 0,217222222
0,235 0,221018519
7 0,191388889 0,195555556 0,170833333 0,185925926 8 0,162777778 0,133611111 0,150555556 0,148981481 9 0,098611111 0,120833333 0,117777778 0,112407407 10 0,086666667 0,090555556 0,066666667 0,081296296 11 0,039444444 0,051666667
0,04 0,043703704
685 700 695 690 680 670 675 685 690 695 695 690 700 695 710 700 700 695 695 710 720 705 695 685 695 705 710 720 730
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 106
12 0,030833333 0,021666667 0,032222222 0,028240741 13 0,013611111 0,010833333 0,016111111 0,013518519 14 0,006111111 0,003333333 0,005833333 0,005092593 15 0,000833333 0,001388889
0 0,000740741
16 0,001111111
0 0,000277778 0,000462963
17
0
0
0
0
18
0
0
0
0
19
0
0
0
0
20
0
0
0
0
21
0
0
0
0
Lampiran 6 Hasil pengujian dengan 600 data ECG code rate 1�2 SNR percobaan 1
percobaan 2
percobaan 3
rata-rata
1 0,389166667 0,382638889 0,388472222 0,386759259 2 0,366666667 0,362777778 0,366944444 0,365462963 3 0,327777778 0,337361111 0,308472222 0,324537037 4 0,299722222 0,289305556 0,307361111 0,298796296 5 0,259444444 6
0,2575 0,262638889 0,259861111
0,2275 0,217222222 0,216388889
0,22037037
7 0,183611111 0,196805556 0,186527778 0,188981481 8 0,149305556 0,165833333
0,14625 0,153796296
9 0,122777778
0,1225 0,112916667 0,119398148
10 0,075138889
0,0775 0,082361111 0,078333333
11 0,051805556 0,044444444 0,039722222 0,045324074 12 0,034027778 0,025972222 0,030972222 0,030324074 13 0,015277778 0,010972222 0,014722222 0,013657407 14 0,007222222 15
0,0075 0,005694444 0,006805556
0,00125 0,000833333 0,001527778 0,001203704
16 0,000416667 0,000833333 0,001111111 0,000787037 17
0
0
0
0
18
0
0
0
0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 107
19
0
0
0
0
20
0
0
0
0
21
0
0
0
0
Lampiran 7 Hasil pengujian dengan 300 data ECG code rate 1�3 SNR Percobaan 1
Percobaan 2
Percobaan 3
Rata-rata
1 0,382222222 0,411944444 0,404166667 0,399444444 2 0,366111111 0,375833333 0,352777778 0,364907407 3 0,336944444 0,330833333 0,329166667 0,332314815 4 0,285833333
0,315
0,3 0,300277778
5 0,258888889
0,255 0,268888889 0,260925926
6 0,220277778 0,255277778 0,228611111 0,234722222 7
0,1775
0,145 0,157222222 0,159907407
8 0,128611111 0,120833333 0,120833333 0,123425926 9 0,083055556 0,082222222 0,076388889 0,080555556 10 0,062777778 0,038611111
0,04
0,04712963
11
0,025 0,022777778 0,028888889 0,025555556
12
0,015 0,006388889 0,011944444 0,011111111
13 0,002222222 0,007222222 0,003333333 0,004259259 14 0,001111111 0,002777778 0,001388889 0,001759259 15 0,000277778
0 0,000555556 0,000277778
16
0
0 0,000277778
17
0
0
0
0
18
0
0
0
0
19
0
0
0
0
20
0
0
0
0
21
0
0
0
0
9,25926E-05
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 108
Lampiran 8 Hasil pengujian dengan 600 data ECG code rate 𝟏𝟏�𝟑𝟑 SNR Percobaan 1
1 0,391944444
Percobaan 2
Percobaan 3
Rata-rata
0,4125 0,405555556 0,403333333
2 0,367916667 0,352083333 0,371388889 0,363796296 3
0,3425 0,340138889 0,340972222 0,341203704
4
0,29875 0,295833333 0,315416667 0,303333333
5 0,261527778 0,271944444 0,282638889 0,272037037 6
0,22125
0,22625
7 0,181111111 0,185138889 8
0,22
0,2225
0,1675 0,177916667
0,1275 0,127916667 0,128194444
0,12787037
9 0,078888889 0,076666667 0,076666667 0,077407407 10 0,049722222
0,0475 0,052916667 0,050046296
11 0,020277778 0,014305556 0,022083333 0,018888889 12 0,010416667 0,013194444 0,008194444 0,010601852 13 0,002222222 0,002361111
0,00375 0,002777778
14 0,000833333 0,001388889 0,000972222 0,001064815 15
0 0,000833333 0,000277778
0,00037037
16
0
0
0
0
17
0
0
0
0
18
0
0
0
0
19
0
0
0
0
20
0
0
0
0
21
0
0
0
0
Lampiran 9 Hasil pengujian dengan 300 data ECG code rate 1�4 SNR Percobaan 1
Percobaan 2
1 0,281111111 0,233333333
Percobaan 3
Rata-rata
0,26 0,258148148
2 0,212777778 0,234166667 0,195277778 0,214074074 3
0,1625 0,161388889 0,156944444 0,160277778
4 0,122222222 0,127222222 0,155555556
0,135
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 109
5 0,090833333 0,111111111 0,071388889 0,091111111 6 0,075833333 0,066666667 0,058888889
0,06712963
7 0,062222222 0,051666667 0,040555556 0,051481481 8 0,033055556 0,020277778 0,018055556 0,023796296 9 0,011111111 0,008055556 0,009166667 0,009444444 10 0,008611111 0,009722222 0,008888889 0,009074074 11
0,0025 0,002222222 0,002777778
0,0025
12 0,001388889 0,000555556 0,001666667 0,001203704 13
0 0,001111111 0,000555556 0,000555556
14
0 0,000555556
0 0,000185185
15
0
0
0
0
16
0
0
0
0
17
0
0
0
0
18
0
0
0
0
19
0
0
0
0
20
0
0
0
0
21
0
0
0
0
Lampiran 10 Hasil pengujian dengan 600 data ECG code rate 𝟏𝟏�𝟒𝟒 SNR Percobaan 1
Percobaan 2
Percobaan 3
Rata-rata
1 0,243472222 0,247916667 0,241388889 0,244259259 2 0,209583333 0,228611111 0,209166667 0,215787037 3 0,173472222 0,156805556 0,164444444 0,164907407 4 0,115277778 0,134027778 0,125138889 0,124814815 5 0,091527778 0,087083333 0,090416667 0,089675926 6 0,062777778 0,055277778 0,058611111 0,058888889 7 0,041388889 0,046944444 0,044583333 0,044305556 8 0,028611111
0,025 0,025138889
0,02625
9 0,010555556 0,014861111 0,012777778 0,012731481
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 110
10 0,005277778 0,007916667 0,007777778 0,006990741 11
0,00375 0,002916667 0,002638889 0,003101852
12 0,001666667 0,000416667 0,000277778 0,000787037 13 0,000277778 0,000277778 0,000833333 0,000462963 14
0
0
0
0
15
0
0
0
0
16
0
0
0
0
17
0
0
0
0
18
0
0
0
0
19
0
0
0
0
20
0
0
0
0
21
0
0
0
0
Lampiran 11 Rata-rata BER data ECG 300 SNR Penyandi Konvolusi 1/2 Penyandi Konvolusi 1/3 Penyandi Konvolusi 1/4 1 0,392314815 0,399444444 0,258148148 2 0,368796296 0,364907407 0,214074074 3 0,311666667 0,332314815 0,160277778 4 0,304444444 0,300277778 0,135 5 0,262407407 0,260925926 0,091111111 6 0,221018519 0,234722222 0,06712963 7 0,185925926 0,159907407 0,051481481 8 0,148981481 0,123425926 0,023796296 9 0,112407407 0,080555556 0,009444444 10 0,081296296 0,04712963 0,009074074 11 0,043703704 0,025555556 0,0025 12 0,028240741 0,011111111 0,001203704 13 0,013518519 0,004259259 0,000555556 14 0,005092593 0,001759259 0,000185185 15 0,000740741 0,000277778 0 16 0,000462963 9,25926E-05 0 17 0 0 0 18 0 0 0 19 0 0 0 20 0 0 0 21 0 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 111
Lampiran 12 Rata-rata BER data ECG 600 SNR Penyandi Konvolusi 1/2 Penyandi Konvolusi 1/3 Penyandi Konvolusi 1/4 1 0,386759259 0,403333333 0,244259259 2 0,365462963 0,363796296 0,215787037 3 0,324537037 0,341203704 0,164907407 4 0,298796296 0,303333333 0,124814815 5 0,259861111 0,272037037 0,089675926 6 0,22037037 0,2225 0,058888889 7 0,188981481 0,177916667 0,044305556 8 0,153796296 0,12787037 0,02625 9 0,119398148 0,077407407 0,012731481 10 0,078333333 0,050046296 0,006990741 11 0,045324074 0,018888889 0,003101852 12 0,030324074 0,010601852 0,000787037 13 0,013657407 0,002777778 0,000462963 14 0,006805556 0,001064815 0 15 0,001203704 0,00037037 0 16 0,000787037 0 0 17 0 0 0 18 0 0 0 19 0 0 0 20 0 0 0 21 0 0 0
Lampiran 13 Nilai BER data ECG 100.dat SNR 1 2 3 4 5 6 7 8 9 10 11 12
Code Rate Code Rate Code Rate 1/3 1/4 1/2 0,394444444 0,394722222 0,241944444 0,349444444 0,383055556 0,194166667 0,312222222 0,344444444 0,176944444 0,295833333 0,331944444 0,124444444 0,236388889 0,2675 0,1 0,222222222 0,196111111 0,070555556 0,185833333 0,170277778 0,031666667 0,128333333 0,123611111 0,028055556 0,1225 0,067777778 0,017222222 0,067222222 0,046111111 0,006666667 0,044722222 0,036944444 0,004722222 0,021944444 0,006111111 0,000277778
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 112
13 14 15 16 17 18 19 20
0,013055556 0,007222222 0,000833333 0 0 0 0 0
0,005277778 0,0025 0,000833333 0 0 0 0 0
0 0 0 0 0 0 0 0
Lampiran 14 Nilai BER data ECG 103.dat Code Rate Code Rate Code Rate 1/3 1/4 SNR 1/2 1 0,409444444 0,404444444 0,241944444 2 0,355 0,348333333 0,194166667 3 0,318888889 0,332777778 0,130277778 4 0,295277778 0,276111111 0,106666667 5 0,247222222 0,277222222 0,084444444 6 0,224166667 0,222777778 0,081111111 7 0,194722222 0,153333333 0,034166667 8 0,163333333 0,126666667 0,024166667 9 0,109444444 0,088611111 0,014166667 10 0,083888889 0,045 0,004722222 11 0,044166667 0,019166667 0,002222222 12 0,027222222 0,0075 0,000555556 13 0,011388889 0,0075 0 14 0,002777778 0,000277778 0 15 0,003611111 0,000555556 0 16 0 0 0 17 0 0 0 18 0 0 0 19 0 0 0 20 0 0 0
Lampiran 15 Nilai BER data ECG 111.dat Code Rate Code Rate Code Rate SNR 1/2 1/3 1/4 1 0,381666667 0,386666667 0,255833333 2 0,356388889 0,382777778 0,21 3 0,315277778 0,352222222 0,168888889 4 0,272222222 0,313333333 0,124166667
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 113
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
0,251666667 0,206666667 0,173333333 0,146111111 0,108888889 0,069444444 0,041666667 0,024444444 0,014444444 0,009722222 0,001111111 0 0 0 0 0
0,254444444 0,185555556 0,197777778 0,122222222 0,081111111 0,040277778 0,024722222 0,009444444 0,003333333 0,000555556 0,000833333 0 0 0 0 0
0,113333333 0,066666667 0,041666667 0,026666667 0,018611111 0,005555556 0,003055556 0,000555556 0 0 0 0 0 0 0 0
Lampiran 16 Nilai BER code rate 1�2 untuk semua jenis data ECG SNR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ECG 100 0,394444444 0,349444444 0,312222222 0,295833333 0,236388889 0,222222222 0,185833333 0,128333333 0,1225 0,067222222 0,044722222 0,021944444 0,013055556 0,007222222 0,000833333 0 0 0 0 0
ECG 103 0,409444444 0,355 0,318888889 0,295277778 0,247222222 0,224166667 0,194722222 0,163333333 0,109444444 0,083888889 0,044166667 0,027222222 0,011388889 0,002777778 0,003611111 0 0 0 0 0
ECG 111 0,381666667 0,356388889 0,315277778 0,272222222 0,251666667 0,206666667 0,173333333 0,146111111 0,108888889 0,069444444 0,041666667 0,024444444 0,014444444 0,009722222 0,001111111 0 0 0 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 114
Lampiran 17 Nilai BER code rate 1�3 untuk semua jenis data ECG SNR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
ECG 100 0,394722222 0,383055556 0,344444444 0,331944444 0,2675 0,196111111 0,170277778 0,123611111 0,067777778 0,046111111 0,036944444 0,006111111 0,005277778 0,0025 0,000833333 0 0 0 0 0
ECG 103 0,404444444 0,348333333 0,332777778 0,276111111 0,277222222 0,222777778 0,153333333 0,126666667 0,088611111 0,045 0,019166667 0,0075 0,0075 0,000277778 0,000555556 0 0 0 0 0
ECG 111 0,386666667 0,382777778 0,352222222 0,313333333 0,254444444 0,185555556 0,197777778 0,122222222 0,081111111 0,040277778 0,024722222 0,009444444 0,003333333 0,000555556 0,000833333 0 0 0 0 0
Lampiran 18 Nilai BER code rate 1�4 untuk semua jenis data ECG SNR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
ECG 100 0,241944444 0,194166667 0,176944444 0,124444444 0,1 0,070555556 0,031666667 0,028055556 0,017222222 0,006666667 0,004722222 0,000277778 0 0 0
ECG 103 0,241944444 0,194166667 0,130277778 0,106666667 0,084444444 0,081111111 0,034166667 0,024166667 0,014166667 0,004722222 0,002222222 0,000555556 0 0 0
ECG 111 0,255833333 0,21 0,168888889 0,124166667 0,113333333 0,066666667 0,041666667 0,026666667 0,018611111 0,005555556 0,003055556 0,000555556 0 0 0
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 115
16 17 18 19 20
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0