• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
139
0
0

Teks penuh

(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

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

(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

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

(10)

x

LEMBARPERNYATAANPERSETUJUAN

PUBLIKASIKARYAILMIAHUNTUKKEPENTINGANAKADEMIS

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

KATAPENGANTAR

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.

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

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 Viterbirate ... 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 Viterbirate ... 75

(20)

xx

Gambar 4.30 Trellis diagram untuk rate ... 76

Gambar 4.27 Hasil perhitungan manual pengawasandi Viterbirate ... 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 Viterbirate ... 74

Tabel 4.6 Hasil penerjemahan jalur Viterbirate ... 75

(22)

xxii

DAFTAR LAMPIRAN

(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

(24)

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

(25)

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)

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

(27)

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

(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 atriumyang relatif tipis. 2. Gelombang QRS, terjadi akibat kontraksi otot pada bilik jantung

(29)

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)

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

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

(32)

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

(33)

(�)

(�) =��(,0�),�(,1�)�, … ,�(,�−) 1��−1,�(,)��� (2.8) Urutan informasi dan output penyandi adalah;

�() =��

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:

�(�) = (�)()

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

(34)

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 bitdecision setiap saat ketika satu jalur survivor terpilih dari dua.

(35)

2.5.3 Branch Metric Calculation

Metode pada perhitungan branch metric untuk harddecision 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 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 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)

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

(37)

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

(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

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.

(39)

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

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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)

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)

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.

(47)

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.

(48)

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

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)

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.

(50)

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.

Gambar 3.14 Data flow diagram level 0

3.2.8.3 Data Flow Diagram Level 1 Proses 1

(51)

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)

Pengguna

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

(53)

Gambar 3.17 Tampilan halaman utama program.

3.3.3 Halaman Penyandian Data

(54)

Gambar 3.18 Tampilan halaman penyandian data

3.3.4 Halaman Pengawasandian Data

(55)

Gambar 3.19 Tampilan halaman pengawasandian data

3.3.5 Halaman Hasil Penyandian Data

(56)

Gambar 3.20 Tampilan halaman hasil penyandian data

3.3.6 Halaman Hasil Pengawasandian Data

(57)

Gambar 3.21 Tampilan halaman hasil pengawasandian data

3.3.7 Halaman Grafik Bit Error Rate

(58)

Gambar 3.22 Tampilan halaman grafik bit error rate

3.3.8 Halaman Simpan Data

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

(61)

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

(62)

function

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)

[h1,h2]=Generator12(R1,R2,R3);

(63)

count=count+1;

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

(64)

dan enam data paritas. Listing program dibawah ini merupakan fungsi penyandi

(65)

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

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 rate1�4.

function [hasil,jumlah]=Encoder14(message)

m=message;

mp=Paritas(m);

R1=zeros;

(66)

R3=zeros;

[h1,h2,h3,h4]=Generator14(R1,R2,R3);

h(i,1)=h1;

savefile = 'hasilpenyandian14.mat'; save(savefile, 'hasilpenyandian');

(67)

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)

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

zsym = demodulate(modem.qamdemod(M),yrx);

%% Symbol-to-Bit Mapping

(68)

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)

(69)

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%

savefile = 'hasilpengawasandi12.mat'; save(savefile, 'hasilpengawasandian');

toc

4.1.4.2. Implementasi Pengawasandi Viterbi rate ��

Listing program berikut merupakan kode program pengawasandi Viterbi

(70)

pengawasandi Viterbirate��. 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

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

(71)

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

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%

(72)

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

Gambar

Gambar 2.2 Ilustrasi kanal AWGN [9].
Gambar 2.3 Aliran data pengawasandi Viterbi [12].
Gambar 2.9 menujukkan grafik dari jalur survivor.
Gambar 2.4 Contoh grafik jalur survivor. Lingkaran biru menunjukkan
+7

Referensi

Dokumen terkait

Pemanfaatan Media Internet Dalam Pembelajaran Pendidikan Agama Islam di Kelas ICT ( Information And Communication Technologies ) SMA Negeri 8 Yogyakarta. Yogyakarta:

Tujuan dari penelitian ini adalah mengetahui tekstur sedimen, kandungan bahan organik dan kelimpahan makrozoobentos.Materi yang digunakan dalam penelitian ini adalah

melakukan tes psikologi terhadap calon pekerja outsourcing yang lulusD. tahap awal (organik/outsourcing) dimasing-masing

Also you like reading this The Reflexive Teacher Educator In TESOL: Roots And Wings By Julian Edge anywhere you have time, you could enjoy it to review The Reflexive Teacher Educator

Gambar 7 Pengaruh konsentrasi substrat terhadap aktivitas spesifik katepsin Konsentrasi substrat itu akan menjadi cukup tinggi pada suatu titik tertentu sehingga semua sisi aktif

Hasil penelitian menunjukkan: (1) 21 pengrajin bata merah memiliki jumlah tanggungan kecil (2) 24 pengrajin mengeluarkan modal kecil untuk satu kali produksi (3)

Tanggapan responden terhadap item pertanyaan job insecurity paling banyak menjawab setuju artinya bahwa karyawan outsourcing di PT Askes (Persero) merasa tidak

Perlakuan E, H, J, dan K berbeda nyata terhadap kontrol pada parameter pengamatan ILD, hal ini disebabkan oleh kombinasi N, P, K 15-15-15 merupakan unsur hara utama tanaman