Simulasi convolutional codes dengan pengawasan di viterbi untuk pengolahan data uji elektrokardiogram

(1)

i

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


(2)

ii

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


(3)

iii


(4)

iv


(5)

v

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


(6)

vi

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.


(7)

vii

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.


(8)

viii

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.


(9)

ix

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.


(10)

x

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


(11)

xi

KATA PENGANTAR

Puji dan syukur kepada Tuhan Yesus Kristus atas bimbingan, kasih, dan perlindungan yang diberikan kepada penulis selama penyusunan skripsi yang

berjudul “SIMULASI CONVOLUTIONAL CODES DENGAN

PENGAWASANDI VITERBI UNTUK PENGOLAHAN 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.


(12)

xii

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


(13)

xiii

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


(14)

xiv

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


(15)

xv

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 AWGN ... 44 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


(16)

xvi

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 ... 78

5.1.1.1 Grafik Rata-rata BER Code Rate ... 79

5.1.2 Hasil Pengujian Penyandi Konvolusi Code Rate ... 80

5.1.2.1 Grafik Rata-rata BER Code Rate ... 80


(17)

xvii

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


(18)

xviii

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


(19)

xix

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

Gambar 4.25 Hasil perhitungan manual pengawasandi Viterbi rate ... 74

Gambar 4.26 Hasil perhitungan fungsi Main12.m ... 74

Gambar 4.27 Trellis diagram untuk rate ... 75

Gambar 4.28 Hasil perhitungan manual pengawasandi Viterbi rate ... 75


(20)

xx

Gambar 4.30 Trellis diagram untuk rate ... 76

Gambar 4.27 Hasil perhitungan manual pengawasandi Viterbi rate ... 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 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


(21)

xxi

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


(22)

xxii

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


(23)

1

BAB I PENDAHULUAN

1.1Latar 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


(24)

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


(25)

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.2Rumusan 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.3Tujuan penelitian

Tujuan dari penelitian ini adalah tersedianya program simulasi dari

convolutional codes yang diuji dengan data ECG.

1.4Manfaat 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 untuk pengkajian convolutional codes


(26)

4

1.5Batasan 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.6Metodologi 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


(27)

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.7Sistematika 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.


(28)

6

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.


(29)

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


(30)

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.1White 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.2Terdistribusi Gaussian

Pola kemunculan noise dianggap terdistribusi Gaussian dengan nilai rata-rata (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:


(31)

9

dengan n(t) adalah zero-mean white Gaussian noise dengan daya �0�2.

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

digital-to-analog dan analog-to-digital dan terkait dengan jumlah bit yang digunakan

pada titik-titik di rangkaian. Hal lain yang mempengaruhi kesalahan kuantisasi Sinyal

yang dikirimkan

Sinyal yang diterima

Noise

r(t) s(t)


(32)

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− ���)�

��

�0

� (2.5)

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

0

� atau 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.6)

2.4.1 Penyandian Konvolusi

Suatu kode konvolusi dengan rate R=k/n dan panjang constraint K dapat digambarkan oleh satu set urutan generator sebagai berikut [11]:

()

= ��(,0�),�(,1�), … ,�(,�−) 1,�(,)� (2.7)

i = 1, 2, 3, ... , k j= 1, 2, 3, ... , n

Constraint (K) juga dapat digambarkan sebagai polinomial berderet m


(33)

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


(34)

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.


(35)

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, x0 dan y0 adalah nilai-nilai ideal. Maka branch metric adalah:

2 0 2

0) ( )

(x x y y

Mb = − + − (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:

); 2

( ) 2

(x2 xx0 x02 y2 yy0 y02

Mb = − + + − +

(2.13) atau ). 2 ( ) 2

( 2 0

0 2 2 2 * yy y xx x y x M

Mb = b − − = − + −

(2.14) *

b

M dapat dihitung tanpa perkalian di level perangkat keras. x02dan y02 dihitung terlebih dahulu dan perkalian x denganx0dan y dengan y0dapat dilakukan dengan sangat mudah dalam perangkat keras jika x0 dan y0 adalah konstan.

2.5.4 Path Metric Calculation

Path metrics dihitung menggunakan prosedur yang disebut Add-Compare-Select (ACS) [12]. Prosedur ini diulang untuk setiap bagian


(36)

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.


(37)

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.


(38)

16

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 Data ECG

Grafik ECG dan Probabilitas

error

Selesai

kanal AWGN Pengawasandian

Viterbi

Penyadian Konvolusi

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


(39)

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

Pengawasandi

Viterbi Digital to Analog

Converter

Sinyal ECG (Analog)

Kanal AWGN

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.


(40)

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).


(41)

19

Input

+ +

Output

+

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


(42)

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.


(43)

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


(44)

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.


(45)

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.


(46)

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 Reaksi Sistem

1. Pengguna menekan 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


(47)

25

data.

6. Sistem melakukan proses penyandian data menggunakan kode konvolusi dan menampilkan hasil 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 Reaksi Sistem

1. Pengguna memilih tombol Pengawasandian Data pada tampilan utama.

2. Sistem menampilkan halaman Pengawasandian File ECG


(48)

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 tombol

Awasandikan Data untuk

mengawasandikan data.

6. Sistem mengawasandikan masukan data.

7. Pengguna memilih tombol Lihat Grafik BER

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.

Pengguna Program Simulasi

Concatenated Codes Data ECG

Data ECG


(49)

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 1 Penyandian data ECG 2 Pengawasandian data sandi 1.1 Memotong ECG database 1.2

Mengubah data ECG ke bentuk biner

1.3

Menyandikan data ECG menggunakan kode konvolusi 2.1 Mendeteksi kesalahan data sandi 2.2 Mengkoreksi kesalahan data sandi

2.3 Menghitung BER

2.4

Mengembalikan data sandi menjadi data ECG awal


(50)

28

3.2.8.2 Data Flow Diagram Level 0

Data Flow Diagram (DFD) merupakan penjelasan aliran data dari proses-proses 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.

Pengguna

1

Penyandian data ECG

2

Pengawasandian data sandi

Sandi

ECG

Data ECG Data Sandi

Data Sandi Data Sandi

Data Sandi Data Awasandi

Data ECG Data 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.


(51)

29

Pengguna

1.1 Memotong ECG

database

1.2

Mengubah data ECG ke bentuk biner

1.3

Menyandikan data ECG biner menggunakan kode konvolusi

ECG Database Data ECG

Data ECG biner

Data Sandi

Sandi Data Sandi Data 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.


(52)

30

Pengguna

1.1

Mendeteksi kesalahan data sandi

1.2

Mengkoreksi kesalahan data sandi

1.3 Menghitung BER Data sandi

Data sandi dan error

Data sandi

Data ECG

ECG

Data ECG Data ECG

1.3

Mengembalikan data sandi menjadi data ECG awal

Data sandi dan BER

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.


(53)

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.


(54)

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.


(55)

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.


(56)

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.


(57)

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


(58)

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.


(59)

37


(60)

38

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.


(61)

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”.


(62)

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)


(63)

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


(64)

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');


(65)

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;


(66)

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


(67)

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


(68)

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


(69)

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


(1)

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


(2)

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

Code Rate 1/2

Code Rate 1/3

Code Rate 1/4

1 0,394444444 0,394722222 0,241944444 2 0,349444444 0,383055556 0,194166667 3 0,312222222 0,344444444 0,176944444 4 0,295833333 0,331944444 0,124444444

5 0,236388889 0,2675 0,1

6 0,222222222 0,196111111 0,070555556 7 0,185833333 0,170277778 0,031666667 8 0,128333333 0,123611111 0,028055556 9 0,1225 0,067777778 0,017222222 10 0,067222222 0,046111111 0,006666667 11 0,044722222 0,036944444 0,004722222 12 0,021944444 0,006111111 0,000277778


(3)

14 0,007222222 0,0025 0 15 0,000833333 0,000833333 0

16 0 0 0

17 0 0 0

18 0 0 0

19 0 0 0

20 0 0 0

Lampiran 14 Nilai BER data ECG 103.dat

SNR

Code Rate 1/2

Code Rate 1/3

Code Rate 1/4

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

SNR

Code Rate 1/2

Code Rate 1/3

Code Rate 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


(4)

5 0,251666667 0,254444444 0,113333333 6 0,206666667 0,185555556 0,066666667 7 0,173333333 0,197777778 0,041666667 8 0,146111111 0,122222222 0,026666667 9 0,108888889 0,081111111 0,018611111 10 0,069444444 0,040277778 0,005555556 11 0,041666667 0,024722222 0,003055556 12 0,024444444 0,009444444 0,000555556 13 0,014444444 0,003333333 0 14 0,009722222 0,000555556 0 15 0,001111111 0,000833333 0

16 0 0 0

17 0 0 0

18 0 0 0

19 0 0 0

20 0 0 0

Lampiran 16 Nilai BER code rate

1�2 untuk semua jenis data ECG SNR ECG 100 ECG 103 ECG 111

1 0,394444444 0,409444444 0,381666667 2 0,349444444 0,355 0,356388889 3 0,312222222 0,318888889 0,315277778 4 0,295833333 0,295277778 0,272222222 5 0,236388889 0,247222222 0,251666667 6 0,222222222 0,224166667 0,206666667 7 0,185833333 0,194722222 0,173333333 8 0,128333333 0,163333333 0,146111111 9 0,1225 0,109444444 0,108888889 10 0,067222222 0,083888889 0,069444444 11 0,044722222 0,044166667 0,041666667 12 0,021944444 0,027222222 0,024444444 13 0,013055556 0,011388889 0,014444444 14 0,007222222 0,002777778 0,009722222 15 0,000833333 0,003611111 0,001111111

16 0 0 0

17 0 0 0

18 0 0 0

19 0 0 0


(5)

SNR ECG 100 ECG 103 ECG 111 1 0,394722222 0,404444444 0,386666667 2 0,383055556 0,348333333 0,382777778 3 0,344444444 0,332777778 0,352222222 4 0,331944444 0,276111111 0,313333333 5 0,2675 0,277222222 0,254444444 6 0,196111111 0,222777778 0,185555556 7 0,170277778 0,153333333 0,197777778 8 0,123611111 0,126666667 0,122222222 9 0,067777778 0,088611111 0,081111111 10 0,046111111 0,045 0,040277778 11 0,036944444 0,019166667 0,024722222 12 0,006111111 0,0075 0,009444444 13 0,005277778 0,0075 0,003333333 14 0,0025 0,000277778 0,000555556 15 0,000833333 0,000555556 0,000833333

16 0 0 0

17 0 0 0

18 0 0 0

19 0 0 0

20 0 0 0

Lampiran 18 Nilai BER code rate

1�4 untuk semua jenis data ECG SNR ECG 100 ECG 103 ECG 111

1 0,241944444 0,241944444 0,255833333 2 0,194166667 0,194166667 0,21 3 0,176944444 0,130277778 0,168888889 4 0,124444444 0,106666667 0,124166667 5 0,1 0,084444444 0,113333333 6 0,070555556 0,081111111 0,066666667 7 0,031666667 0,034166667 0,041666667 8 0,028055556 0,024166667 0,026666667 9 0,017222222 0,014166667 0,018611111 10 0,006666667 0,004722222 0,005555556 11 0,004722222 0,002222222 0,003055556 12 0,000277778 0,000555556 0,000555556

13 0 0 0

14 0 0 0


(6)

16 0 0 0

17 0 0 0

18 0 0 0

19 0 0 0