Simulasi reed solomon codes untuk pengolahan data uji elektrokardiogram.

(1)

i

SIMULASI REED SOLOMON CODES UNTUK

PENGOLAHAN DATA UJI ELEKTROKARDIOGRAM

SKRIPSI

Diajukan untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Komputer

Jurusan Teknik Informatika

OLEH:

Antonius Dewangga Redanha Putra

NIM : 085314030

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA


(2)

ii

SIMULATION OF REED SOLOMON CODES FOR

ELECTROCARDIOGRAM DATA TEST PROCESSING

THESIS

Presented as Partial Fullfilment of the Requirements To Obtain the Computer Bachelor Degree

In Informatics Engineering

By:

Antonius Dewangga Redanha Putra

NIM : 085314030

INFORMATICS ENGINEERING STUDY PROGRAM

FACULTY SCIENCE DAN TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA


(3)

iii


(4)

iv


(5)

v

HALAMAN PERSEMBAHAN

Do it for your people

Do it for your pride

Never gonna know if you never even try

Don't wait for luck

Dedicate yourself and you can find yourself

The Script – Hall Of Fame

Skripsi ini saya persembahkan untuk :

 Tuhan Yesus Kristus yang selalu menyertai dalam menyelesaikan skripsi ini.

 Kedua Orang Tua saya

 Semua Keluarga


(6)

vi

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa dalam skripsi yang saya tulis ini tidak memuat karya/bagian karya orang lain, kecuali yang secara tertulis

diacu dalam naskah ini dan disebutkan dalam daftar pustaka.

Yogyakarta, 21 Februari 2013 Penulis


(7)

vii

LEMBAR PERNYATAAN PERSETUJUAN

PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS

Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma : Nama : Antonius Dewangga Redanha Putra Nomor Mahasiswa : 085314030

Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah dengan judul :

SIMULASI REED SOLOMON CODES 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 21 Februari 2013

Yang menyatakan


(8)

viii

ABSTRAK

Komunikasi data saat ini berkembang dengan sangat cepat dan signifikan. Perkembangan komunikasi data tersebut ditemui salah satunya dalam bidang kedokteran. Dalam bidang kedokteran, penggunaan komunikasi data yang banyak dikembangkangkan adalah system telemedika atau pengiriman data medis jarak jauh. Perkembangan penggunaan komunikasi data tersebut, tidak ditunjang dengan kondisi geografis Indonesia yang baik. Kondisi geografis Indonesia yang kurang baik dapat mengurangi kinerja jaringan dan berakibat pada inkonsistensi bit-bit sinyal yang ditransmisikan Perubahan sinyal dapat menyebabkan data-data yang ditransmisikan menjadi tidak valid karena mengandung bit-bit error. Dalam bidang kedokteran,terdapat data yang sangat riskan terhadap error seperti data rekam medis (Electro Cardiography (ECG) atau yang sering disebut data kritis. Data rekam medis tersebut tentunya sangat rentan terhadap error karena berhubungan dengan penanganan medis yang akan dilakukan selanjutnya.

Dari latar belakang tersebut, dikembangkan sebuah sistem untuk mensimulasikan teknik koreksi kesalahan data menggunakan Reed Solomon codes untuk data elektrokardiogram. Reed Solomon merupakan teknik koreksi kesalahan data berbasis Linear Block Code yang banyak dijumpai saat ini. Simulasi yang dikembangkan dengan bahasa pemograman Matlab. Hasil akhir dari penelitian didapatkan grafik perbandingan nilai Symbol Error Rate pada 4-QAM, 16-4-QAM, 32-4-QAM, dan 64-QAM serta diperoleh perbandingan kinerja Reed Solomon dengan dimensi (31,27), (63,61), dan (127,119). Hasil akhir menunjukkan nilai SER yang terbaik dimiliki oleh modulasi 4-QAM. Kinerja Reed Solomon yang paling baik dimiliki oleh RS(31,27).


(9)

ix

ABSTRACT

Data communication recently developing very quickly and significance. Development of data communication could be find especially in medical area. In medical area, the most using data communication was for telemedica system or long range medical data sending. Development of using data communication at this time not supported by a good geographical condition in Indonesia . Geographical condition in Indonesia that was unreliable could reduce performance and it concequence to the inconcistency of signal which are transmitted. Changing of signal could cause data taransmitted become unvalid because it consisted an error bit. In medical area, there was data which are very sensitive with an error such as Electrocardiography or critical data. Electrocardiography absolutely very sensitive with an error because it connected to the medical treatment to be done

From these background,there was a system to simulate an error correction data control using Reed Salomon codes for electrocardiography data. Reed solomon was an error control correction data basically from Linear Block Code which can be find recently. Development of simulation using Matlab programming language, result from the research was a comparison graphic score Symbol Error Rate on 4-QAM, 16-QAM, 32-QAM and 64-QAM also gained comparison performance from Reed Salomon with (31,27), (63,61) and (127,119) dimension. Result shown the best SER point was 4-QAM modulation. The best Reed Solomon performance was had by RS (31,27).


(10)

x

KATA PENGANTAR

Puji syukur penulis haturkan kepada Yesus Kristus yang telah memberikan karunia, rahmat, dan kesempatan, sehingga penulis dapat menyelesaikan skripsi dengan judul “Simulasi Reed Solomon Codes Untuk Pengolahan Data Uji Elektrokardiogram”. Pada kesempatan ini penulis ingin mengucapkan terima kasih pada pihak-pihak yang telah membantu saya dalam menyelesaikan skripsi ini, baik dalam hal bimbingan, perhatian, kasih sayang, semangat, kritik dan saran yang diberikan. Ucapan terima kasih ini saya sampaikan antara lain kepada :

1. Ibu Ridowati Gunawan, S.Kom, M.T. selaku ketua jurusan Teknik Informatika Sanata Dharma.

2. Bapak Damar Widjaja, S.T., M.T. selaku Dosen Pembimbing Tugas Akhir, terima kasih atas bimbingan, masukan, dukungan selama penulis mengerjakan skripsi ini.

3. Bapak B. Herry Suharto, S.T., M.T. dan H. Agung Hernawan, S.T., M.Kom. selaku Dosen Penguji Pendadaran skripsi penulis, terima kasih atas masukkan dalam memperbaiki skripsi ini

4. Segenap dosen Universitas Sanata Dharma yang telah membantu memberikan bekal pengetahuan kepada penulis.

5. Kedua orang tua penulis Bapak M. Hari Mulyono dan Ibu C. Retna Irawati untuk dukungan yang selalu diberikan kepada saya.

6. Kakak penulis Agnes Methia Dewi dan Adik penulis Maria Ivana Saridewi yang memotivasi untuk menyelesaikan skripsi ini.

7. Clara Iyud Ambar Ciptaningsih yang selalu mengingatkan dan mendoakan penulis untuk menyelesaikan skripsi ini.

8. Bapak JB. Budi Darmawan, S.T, M.Sc. dan Emanuel Bele Bau yang telah banyak membimbing dan memberi pengetahuan baru kepada penulis di Laboratorium Basis Data.

9. Sahabat-sahabat penulis Surya, Endra, Devi, Putri, Petra, Wulan, Siska, Esy, Itha, Tista, Ocha, Reza, Bebeth, Yudi, Roni, dan yang belum


(11)

xi

disebutkan. Terima kasih atas pengalaman berharga yang dibagikan kepada penulis.

10. Sahabat-sahabat penulis sejak SMA Hendra Wijayanto, Putri Dyah Arminingtyas, Stevani Dian Rofista, dan Debora Ratri yang selalu mendukung dan berbagi suka duka kepada penulis.

11. Teman-teman Teknik Informatika angkatan 2008 dan semua pihak yang tidak dapat penulis tuliskan satu persatu.

Penulis menyadari bahwa masih terdapat kekurangan dalam penyusunan skripsi ini. Oleh karena itu penulis mengharapkan adanya kritik dan saran dari berbagai pihak yang bersifat membangun dalam penyempurnaan skripsi ini.

Yogyakarta, 21 Februari 2013 Penulis


(12)

xii

DAFTAR ISI

HALAMAN JUDUL INDONESIA ... i

HALAMAN JUDUL INGGRIS ... ii

HALAMAN PERSETUJUAN ... iii

HALAMAN PENGESAHAN ... iv

HALAMAN PERSEMBAHAN ... v

LEMBAR PERNYATAAN KEASLIAN KARYA ... vi

LEMBAR PERNYATAAN PERSETUJUAN ... vii

LEMBAR PUBLIKASI KARYA ILMIAH ... vii

ABSTRAK ... viii

ABSTRACT ... ix

KATA PENGANTAR ... x

DAFTAR ISI ... xii

DAFTAR GAMBAR ... xvi

DAFTAR TABEL ... xviii

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

BAB II LANDASAN TEORI ... 6


(13)

2.2 Prinsip Dasar Error Coding ... 8

2.2.1 Block Codes ... 11

2.2.2 Reed Solomon Codes ... 11

2.2.3 Sifat - Sifat Reed Solomon Codes ... 12

2.2.4 Reed Solomon Encoding ... 14

2.2.5 Reed Solomon Decoding... 16

2.3 Probabilitas Error ... 19

2.4 Signal-to-noise ratio ... 20

2.5 Penyandian Kanal ... 21

2.6 Konversi Digital-to-Analog ... 22

2.6.1 Quadrature amplitude modulation ... 22

2.7 Additive White Gaussian Noise ... 24

BAB III ANALISA DAN PERANCANGAN SISTEM ... 25

3.1 Gambaran Umum Program ... 25

3.2 Rancangan Model Sistem ... 26

3.3 Perancangan penyandian Reed Solomon ... 27

3.4 Desain Input Data ... 31

3.5 Perancangan Sistem ... 32

3.5.1 Use Case ... 32

3.5.2 Narasi Use Case ... 32

3.5.3 Diagram Arus Data Level 0 / Diagram Konteks ... 35

3.5.4 Diagram Berjenjang ... 35

3.5.5 Diagram Arus Data Level 1 ... 37

3.5.6 Diagram Arus Data Level 2 ... 37

3.6 Perancangan Tampilan ... 40


(14)

4.1 Implementasi Proses ... 44

4.1.1 Implementasi Preprocessing Pembacaan data ECG ... 44

4.1.2 Implementasi Proses Encoding Reed Solomon Code ... 46

4.1.3 Implementasi Simulasi Modulasi dan Kanal AWGN ... 48

4.1.4 Implementasi Decoder Reed Solomon... 51

4.2 Implementasi Tampilan Simulasi ... 53

4.2.1 Tampilan Halaman Awal Simulasi Reed Solomon Codes ... 53

4.2.2 Tampilan Halaman Encoder Reed Solomon Codes ... 54

4.2.3 Tampilan Halaman Modulasi QAM dan Simulasi Kanal AWGN .. 55

4.2.4 Tampilan Halaman Decoder Reed Solomon ... 56

4.2.5 Tampilan Halaman Bantuan Program ... 57

4.2.6 Tampilan Halaman Tentang Program ... 57

BAB V HASIL PENGUJIAN DAN ANALISA ... 58

5.1 Hasil Pengujian BER Menggunakan Modulasi QAM ... 58

5.2 Hasil Pengujian SER Reed Solomon Codes ... 59

5.3 Analisa Symbol Error Rate Hasil Pengujian ... 64

5.4 Pengujian Unjuk Kerja Reed Solomon dengan Dimensi (n,k) ... 65

5.5 Data Masukan ... 67

5.6 Proses Encoding Reed Solomon ... 70

5.6.1 Analisa Perbandingan Perhitungan dan Implementasi Encoder ... 70

5.7 Error Correction ... 72

5.8 Pengujian Perbandingan Citra Elektrokardiogram ... 73

BAB VI KESIMPULAN DAN SARAN ... 76

6.1 Kesimpulan ... 76

6.2 Saran ... 77


(15)

LAMPIRAN ... 81

Lampiran 1 Perbandingan BER pada 4-QAM, 16-QAM, 32-QAM, 64-QAM 82 Lampiran 2 Perbandingan Symbol Error Rate ... 82

Lampiran 3 Perbandingan SER tiap dimensi Reed Solomon ... 89

Lampiran 4 Hasil pembacaan data ECG bertipe numerik ... 93

Lampiran 5 Perhitungan manual paritas sebagai pembentuk codeword ... 94

Lampiran 6 Proses Koreksi Kesalahan Data ... 95

Lampiran 7 Listing Program ... 99


(16)

xvi

DAFTAR GAMBAR

Gambar 2.1 Bentuk gelombang dasar ECG ... 6

Gambar 2.2 Normal electrocardiogram yang diambil dari subjek sehat ... 7

Gambar 2.3 Blok diagram sistem transmisi atau media penyimpanan ... 8

Gambar 2.4 Bentuk sederhana dari coding sistem ... 10

Gambar 2.5 Format sistematis sebuah codeword ... 13

Gambar 2.6 RS(n,k) code ... 14

Gambar 2.7 Langkah-langkah proses decoding ... 17

Gambar 2.8 Konversi digital ke analog ... 22

Gambar 2.9 Tipe konversi digital ke analog ... 23

Gambar 2.10 Contoh Constellation Diagram untuk beberapa tipe QAM ... 23

Gambar 2.11 Konsep constellation diagram ... 24

Gambar 2.12 Proses penambahan noise pada kanal AWGN ... 24

Gambar 3.1 Alur program simulasi Reed Solomon ……… ….25

Gambar 3.2 Rancangan model sistem program simulasi Reed Solomon ... 27

Gambar 3.3 Rangkaian register geser Reed Solomon code (31,27) ... 28

Gambar 3.4 Rangkaian syndrome decoder (31,27) ... 28

Gambar 3.5 Rangkaian register geser Reed Solomon code (63,61) ... 29

Gambar 3.6 Rangkaian syndrome decoder(63,61) ... 30

Gambar 3.7 Rangkaian register geser Reed Solomon code (127,119) ... 30

Gambar 3.8 Rangkaian syndrome decoder (127,119) ... 30

Gambar 3.9 ECG database ... 31

Gambar 3.10 Use case program Reed Solomon ... 32

Gambar 3.11 Diagram arus data level 0 ... 35

Gambar 3.12 Diagram berjenjang program simulasi Reed Solomon code ... 36

Gambar 3.13 Diagram arus data level 1 ... 37

Gambar 3.14 Diagram arus data level 2 proses encode ... 38

Gambar 3.15 Diagram arus data level 2 proses decode ... 39

Gambar 3.16 Rancangan tampilan awal program simulasi Reed Solomon ... 40

Gambar 3.17 Tampilan halaman encode data ... 41


(17)

Gambar 3.19 Halaman tampilan kanal AWGN ... 43

Gambar 4.1 Tampilan Awal Simulasi Reed Solomon Code ……….53

Gambar 4.2 Gambar Tampilan Halaman Encode data ... 54

Gambar 4.3 Halaman Pemilihan File ... 55

Gambar 4.4 Halaman modulasi dan simulasi kanal AWGN... 56

Gambar 4.5 Halaman decoder Reed Solomon ... 56

Gambar 4.6 Halaman Bantuan Program ... 57

Gambar 4.7 Halaman Tentang Program ... 57

Gambar 5. 1 Grafik Perbandingan BER ………58

Gambar 5.2 Grafik Perbandingan SER untuk Reed Solomon Codes (31,27) ... 60

Gambar 5.3 Grafik perbandingan SER tanpamenggunakan Reed Solomon ... 61

Gambar 5.4 Grafik Perbandingan SER untuk Reed Solomon Codes (63,61) ... 61

Gambar 5.5 Gambar Perbandingan nilai uncoded RS (63,61) ... 62

Gambar 5.6 Grafik Perbandingan SER untuk Reed Solomon Codes(127,119) .... 63

Gambar 5.7 Gambar Perbandingan nilai SER uncoded RS (127,119) ... 63

Gambar 5.8 Grafik Perbandingan Unjuk Kerja Reed Solomon pada 4-QAM ... 66

Gambar 5.9 Grafik Perbandingan Unjuk Kerja Reed Solomon pada 16-QAM .... 66

Gambar 5.10 Hasil pembacaan grafik ECG 100.dat ... 68

Gambar 5.11 Hasil pemetaan gelombang QRS grafik ECG 100.dat ... 69

Gambar 5.12 Gambar hasil pembacaan data MIT-BIH dalam jurnal ... 69

Gambar 5.13 Gambar hasil pembacaan data ECG MIT-BIH dalam simulasi ... 70

Gambar 5. 14 Implementasi perhitungan generator polinomial ... 71

Gambar 5.15 Implementasi encoder Reed Solomon ... 72

Gambar 5.16 Implementasidecoder Reed Solomon ... 73

Gambar 5.17 Citra Elektrokardiogram sebelum proses encoding ... 74

Gambar 5.18 Citra EKG setelah proses decoding pada SNR 8 4-QAM ... 74


(18)

xviii

DAFTAR TABEL

Tabel 2.1 Tabel Reed Solomon menggunakan (n, k, t) primitive ... 14

Tabel 3.1 Perbedaan atribut penyandian Reed Solomon ...………...31

Tabel 3.2 Skenario utama use case encode data ... 33

Tabel 3.3 Skenario utama use case decode data ... 34

Tabel 3.4 Skenario utama use case menambahkan error padadata penyandian .. 35

Tabel 5.1 Perbandingan Nilai SER pada jurnal……….64

Tabel 5.2 Perbandingan atribut penyandian Reed Solomon ... 65

Tabel 5. 3 Atribut data masukan ECG yang akan disimulasikan ... 68

Tabel 5.4 Perbandingan BER pada 4-QAM, 16-QAM, 32-QAM, 64-QAM ... 82

Tabel 5.5 Tabel SER RS(31,27) pada 4-QAM ... 82

Tabel 5.6 Tabel SER RS(31,27) pada 16-QAM ... 83

Tabel 5. 7 Tabel SER RS(31,27) pada 32-QAM ... 83

Tabel 5. 8 Tabel SER RS(31,27) pada 64-QAM ... 84

Tabel 5.9 Tabel SER RS(63,61) pada 4-QAM ... 85

Tabel 5.10 Tabel SER RS(63,61) pada 16-QAM ... 85

Tabel 5.11 Tabel SER RS(63,61) pada 32-QAM ... 86

Tabel 5.12 Tabel SER RS(63,61) pada 64-QAM ... 86

Tabel 5.13 Tabel SER RS(127,119) pada 4-QAM ... 87

Tabel 5.14 Tabel SER RS(127,119) pada 16-QAM ... 88

Tabel 5.15 Tabel SER RS(127,119) pada 32-QAM ... 88

Tabel 5.16 Tabel SER RS(127,119) pada 64-QAM ... 89

Tabel 5.17Tabel SER RS(31,27) pada 4-QAM ... 89

Tabel 5.18 Tabel SER RS(63,61) pada 4-QAM ... 90

Tabel 5.19 Tabel SER RS(127,119) pada 4-QAM ... 91

Tabel 5.20 Tabel SER RS(31,27) pada 16-QAM ... 91

Tabel 5.21 Tabel SER RS(63,61) pada 16-QAM ... 92

Tabel 5.22 Tabel SER RS(127,119) pada 16-QAM ... 92


(19)

1

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Komunikasi data saat ini berkembang dengan sangat cepat dan signifikan. Penggunaan komputer yang meningkat merupakan salah satu penyebab hal tersebut. Sebagai contoh statistik penggunaan Internet di Indonesia sampai Desember 2011 sebesar 55.000.000 pengguna atau sekitar 22,4 % dari jumlah populasi di Indonesia [1]. Statistik penggunaan Internet tersebut menggambarkan bahwa komunikasi data memang sangat dibutuhkan seiring berkembangnya teknologi informasi.

Perkembangan komunikasi data tersebut, tidak ditunjang dengan kondisi geografis Indonesia yang baik. Kondisi geografis Indonesia yang bersifat kepulauan, dikelilingi oleh gunung, serta memiliki lautan yang luas, terkadang menjadi penghalang suatu komunikasi data dapat berjalan dengan baik. Cuaca serta iklim di Indonesia yang sering berubah-ubah serta banyaknya gedung pencakar langit juga turut andil bagian sebagai penghambat dalam komunikasi data terlebih untuk jaringan wireless. Redaman cuaca di atmosfer, thermal noise, shot noice, optical losses, jamming, danpelemahan sinyal (fading) dapat mengurangi kinerja jaringan dan berakibat pada inkonsistensi bit-bit sinyal yang ditransmisikan [2].

Perubahan sinyal dapat menyebabkan data-data yang ditransmisikan menjadi tidak valid karena mengandung bit-bit error. Akan tetapi, beberapa jenis data memiliki toleransi terhadap error yang cukup tinggi seperti streaming audio dan video. Terdapat pula data yang sangat riskan terhadap error seperti data rekam medis (Electro Cardiography (ECG) , Electro Encephalography (EEG) , dan lain-lain) atau yang sering disebut data kritis . Dalam bidang kedokteran, teknologi yang sedang marak digunakan adalah sistem telemedika. Sistem telemedika menunjang suatu prosedur penanganan medis jarak jauh. Ahli medis dapat malakukan monitoring langsung keadaan pasien dari jarak jauh. Salah satu penggunaannya terkait monitoring data rekam medis seperti ECG. Data rekam


(20)

medis tersebut tentunya sangat rentan terhadap error karena berhubungan dengan penanganan medis yang akan dilakukan selanjutnya. Data rekam medis yang tidak valid membuat nilai informasi menjadi tidak sesuai seperti saat awal ditransmisikan. Hal tersebut mendorong perlu adanya sebuah metode untuk mendeteksi dan mengkoreksi error untuk menjaga inkonsistensi data-data yang ditransmisikan.

Salah satu metode deteksi dan koreksi error yang terkenal adalah Reed-Solomon codes. Reed-Solomon ini dipublikasikan oleh Irving Reed dan Gus

Solomon pada 21 Januari 1959 dalam jurnal berjudul “Journal of the Society for Industrial and Applied Mathematics” [3]. Reed-Solomon codes diklaim sebagai digital error codes yang paling banyak digunakan di dunia ini . Banyak penelitian mengenai aplikasi serta pengembangan Reed-Solomon codes. Aplikasi Reed-Solomon codes yang paling banyak dijumpai terdapat pada compact atau audio disc. Reed-Solomon codes digunakan sebagai error correction dan error concealment. Pada tahun 1964, penelitian yang dilakukan Singleton menghasilkan sebuah kesimpulan, bahwa Reed-Solomon codes merupakan metode error correction terbaik untuk setiap code dengan panjang serta dimensi yang sama. Akan tetapi, Reed-Solomon masih jauh dikategorikan sebagai code yang mencapai kemampuan optimal dalam koreksi error atau yang biasa disebut MDS (Maximum Distance Separable)codes. Pada tahun 1999, Madhu Sudan dan Venkatesan Guruswami mempublikasikan sebuah algoritma yang memungkinkan untuk perbaikan kesalahan lebih dari setengah jumlah code [4] . Hal ini berlaku pada Reed-Solomon code yang umumnya merupakan kode aljabar Geometris. Algoritma ini menghasilkan daftar codeword berdasarkan interpolation dan

factorization dalam polinomial GF(2m) . Sampai saat ini penelitian-penelitian menggunakan Reed-Solomon masih banyak dilakukan agar performansi codes ini lebih baik.

Dalam tugas akhir ini, simulasi Reed-Solomon codes akan dibuat menggunakan Matlab. Kontribusi yang diharapkandari tugas akhir ini adalah mengetahui unjuk kerja dari Reed-Solomon Codes berdasarkan nilai SER (Symbol Error Rate) dengan menggunakan data-data rekam medis seperti ECG.


(21)

1.2 Rumusan Masalah

Berdasarkan latar belakang masalah yang telah dijelaskan, rumusan masalah yang diperoleh antara lain:

1. Bagaimana merancang dan mensimulasikan program Reed-Solomon codes

dalam Matlab?

2. Bagaimana mengkoreksi data ECG yang terkena noise dengan Reed solomon codes?

3. Bagaimana melakukan pengujian dan menganalisa hasil dari program Reed-Solomon codes yang telah dibuat?

1.3 Tujuan Penelitian

Tujuan dari penelitian ini adalah menyediakan program simulasi Reed-Solomon codes dengan menggunakan masukan data ECG.

1.4 Manfaat Penelitian

Manfaat yang diperoleh dari penelitian ini antara lain :

1. Hasil penelitian ini dapat dimanfaatkan oleh mahasiswa Teknik Informatika sebagai media pendukung pembelajaran mata kuliah Teknik Koreksi Kesalahan Data.

2. Hasil penelitian tugas akhir ini diharapkan dapat bermanfaat sebagai referensi penggunaan Reed-Solomon codes bagi penelitian di bidang teknik koreksi kesalahan data.

1.5 Batasan Masalah

Batasan masalah dalam tugas akhir ini adalah sebagai berikut :

1. Simulasi pengujian metode Reed-Solomon menggunakan program Matlab 2. Simulasi menggunakan Reed Solomon codes dengan besar (n,k) yaitu

(31,27), (63,61), dan (127,119).

3. Data sample ECG berasal dari MIT-BIH Arrhythmia Database. 4. Program merupakan simulasi yang melibatkan single PC. 5. Proses simulasi meliputi proses encoding dan decoding saja.


(22)

7. SNR yang digunakan adalah 1-20

8. Pengujian reed Solomon codes menggunakan panjang data 300 sample titik data.

1.6 Metodologi Penelitian

Metodologi dan langkah-langkah yang digunakan dalam pelaksanaan tugas akhir ini adalah sebagai berikut :

1. Studi Literatur

Mengumpulkan referensi-referensi yang digunakan untuk mendukung pengerjaan tugas akhir ini.

2. Perancangan

Dalam tahap ini, penulis menentukan besar ukuran dimensi dari Reed-Solomon codes, mencari data-data ECG yang akan digunakan, serta merancang program Reed-Solomon codes agar sesuai dengan data yang diuji.

3. Simulasi dan Pengujian Program

Simulasi Reed-Solomon codes ini menggunakan Matlab dalam pengerjaannya. Proses awal yang dilakukan adalah membuat kode-kode

script yang berekstensi “.m”. Program akan diuji dengan memberi masukan data berukuran kecil (berjumlah sedikit). Hasil simulasi akan dibandingkan dengan perhitungan teoritis secara manual. Program dianggap benar jika hasil antar kedua perhitungan bernilai sama.

4. Pengumpulan data

Data-data ECG dimasukkan dalam program simulasi untuk nantinya dilakukan pengujian dan dianalisa hasil keluarannya.

5. Analisa Data

Tahap ini penulis melakukan analisa hasil pengujian yang diperoleh dari proses simulasi. Analisis dilakukan dengan melakukan pengamatan dari hasil pengujian untuk selanjutnya dihitung nilai SER (Symbol Error Rate) dan kemudian disimpulkan tentang performansi Reed-Solomon codes..

1.7 Sistematika Penulisan


(23)

I. PENDAHULUAN

Bab ini berisi latar belakang penulisan tugas akhir, rumusan masalah, tujuan penulisan, manfaat penulisan batasan masalah, metodologi penelitian, dan sistematika penulisan

II. LANDASAN TEORI

Bab ini menjelaskan mengenai teori yang berkaitan dengan judul/masalah tugas akhir ini

III. PERENCANAAN SIMULASI REED-SOLOMON CODES

Bab ini berisi perencanaan simulasi program Reed-Solomon codes yang akan dibuat.

IV. IMPLEMENTASI DAN ANALISIS SIMULASI REED-SOLOMON

CODES

Bab ini berisi pelaksanaan simulasi dan hasil analisis data simulasi Reed-Solomon codes.

V. KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan yang didapat dan saran-saran berdasarkan hasil analisis program Reed-Solomon codes.


(24)

6

2

BAB II

LANDASAN TEORI

2.1 Electrocardiogram

Electrocardiogram (ECG) adalah gambaran berupa grafik hasil dari perekaman grafis potensial listrik yang dihasilkan oleh jantung [5].Sinyal yang terdeteksi melalui elektroda logam melekat pada dinding dada yang selanjutnya diperkuat dan direkam oleh elektrokardiograf. ECG dalam klinis berfungi untuk mendeteksi keadaan jantung sehat atau ada gangguan.

ECG mencatat suatu depolarisasi (stimulasi) dan repolarisasi (pemulihan) potensi yang dihasilkan oleh atrium (bagian atas bilik jantung yang berfungsi menerima darah) dan entrikel (bagian bawah bilik jantung yang bertanggung jawab untuk memompa darah ke seluruh tubuh).Depolarisasi jantung adalah proses awal terjadinya kontraksi jantung. Arus listrik yang menyebar melalui jantung diproduksi oleh tiga komponen: sel pacu jantung (sinus node), jaringan konduksi khusus, dan otot jantung itu sendiri.

Gambar 2.1 Bentuk gelombang dasar ECG [5]

Bentuk gelombang ECG diperlihatkan pada Gambar 2.1 dan diberi label menurut abjad, dimulai dengan gelombang P yang mewakili depolarisasi atrium.


(25)

QRS kompleks merupakan depolarisasi ventrikel, dan ST-TU kompleks (segmen ST,gelombang T, dan Ugelombang) merupakan repolarisai ventrikel. Titik J merupakan persimpangan antara akhir dari kompleks QRS dan awal segmen repolarisasi segment.Gambar 2.2 menunjukkan contoh ECG dengan sinus normal atau dalam keadaan sehat.

Gambar 2.2 Normal electrocardiogram yang diambil dari subjek sehat[6] Penggunaan ECG saat ini semakin banyak ditemui dalam dunia medis. Hal tersebut yang melandasi pemrosesan sinyalbanyak dilakukan pada sebagian besar sistem medisuntuk melakukan analisis dan interpretasi pada ECG [7].Pemrosesan sinyaltelahmemberikan kontribusi signifikan terhadap pemahaman baru mengenai ECG beserta sifat dinamisnya. Tujuan dari pemrosesan sinyal ECG adalahpeningkatan akurasi pengukuran dan reproduktifitas data ECG itu sendiri jika dibandingkan dengan pengukuran manual serta ekstraksi informasi tidak tersedia dari sinyal melalui penilaian visual.

Dalam banyak situasi, ECG dicatat selama kondisi rawat jalan,sehingga terkadang sinyal tercampur oleh galat yang berasal berbagai jenis noise atau berasal dari proses lain fisiologis tubuh. Oleh karena itu, pengurangan noise

merupakan satu tujuan penting dari pemrosesan sinyal ECG.

Sinyal ECG dapat dicatat dalam skala waktu yang panjang dengan tujuan untuk mengidentifikasi gangguan yang terjadi tiba-tiba dalam irama jantung.


(26)

Akibatnya, jumlah rekaman ECG diproduksi dalam ukuran besar dengan cepat mengisi ruang penyimpanan yang tersedia.

2.2 Prinsip Dasar Error Coding

Pada tahun 1948, Claude Shannon mendemonstrasikan dalam sebuah paper

bahwa suatu pengkodean informasi yang tepat dapat mengurangi induksi error

dalam sesuai dengan tingkat yang diinginkan tanpa harus mengorbankan laju transmisi sebuah informasi [8]. Secara umum, proses transmisi data digital melibatkan dua sisi yaitu sisi pengirim dan penerima. Sumber pengirim informasi dapat berupa user ataupun mesin.

Sumber keluaran yang ditujukan kepada penerima sendiri dapat berupa gelombang kontinyu yang berurutan atau berupa simbol-simbol diskret. Sistem komunikasi data digital dapat direpresentasikan dalam sebuah diagram blok pada Gambar 2.3.

Gambar 2.3 Blok diagram sistem transmisi atau media penyimpanan [8] Sumber penyandian akan mengubah urutan informasi dari bentuk data kontinyu menjadi bit-bit biner atau discrete (digital) yang berurutan terlebih dahulu. Bit-bit biner tersebut kemudian akan masuk dalam kanal penyandian. Data biner tersebut akan diolah kembali menjadi bit-bit sandi yang lebih panjang di dalam kanal penyandi. Data tersebut akan mengalami penambahan informasi. Informasi tersebut yang nantinya akan digunakan oleh decoder untuk melakukan

Sumber Infrormasi Sumber Penyandi Kanal Penyandi Modulator (Unit Penulis)

Kanal (Media Penyimpanan) Demodulator (Unit Pembaca) Kanal Pengawasandian Sumber Pengawasandian Penerima Noise


(27)

deteksi serta koreksi jika terjadi kesalahan terhadap data yang dikirimkan. Bit-bit informasi redundan yang ditambahkan tersebut disebut dengan bit-bit paritas.

Data yang sudah berada dalam kanal penyandi tersebut akan diumpankan menuju sebuah modulator. Bit-bit discrete atau biner sendiri tidak cocok dengan transmisi pada kanal fisik atau ketika merekam di media penyimpanan digital. Masalah tersebut selanjutnya akan ditangani oleh modulator. Modulator berfungsi nantinya untuk mengubah kata sandi yang telah terbentuk menjadi sinyal-sinyal dan selanjutnya akan ditransmisikan ke tujuan melalui media transmisi.

Ketika berada dalam media transmisi inilah, data-data yang dikirimkan seringkali mengalami distorsi yang disebabkan oleh noise (derau) dan berakibat pada error atau galat yang diterima oleh data. Noise sendiri ditemui pada banyak tempat antara lain kabel telepon, telepon seluler, HF Radio, link satelit, kabel fiber optic, dan lain-lain. Sebagai contoh dalam kabel telepon, gangguan bisa berasal dari switching impluse noise, thermal noise, atau crosstalk dari saluran lain. Selain yang terdapat di saluran-saluran komunikasi, noise juga dijumpai dalam media penyimpanan seperti seperti magnetic tapes, optical memory units, compact disc, semiconductor memory, dan lain-lain. Noise pada media penyimpanan tersebut seringkali disebabkan oleh permukaan media penyimpanan yang cacat atau partikel-partikel debu.

Demodulator atau unit pembaca bertugas untuk menerima gelombang sinyal dan menghasilkan output diskret atau kontinyu. Urutan yang dihasilkan oleh demodulator sesuai dengan urutan ketika data mengalami encoding. Output

hasil demodulator tersebut sering disebut dengan receivedsequence (urutan menerima).

Channel decoder akan mengubah dari bentuk received sequence menjadi bentuk urutanperkiraaninformasi. Strategi proses decode didasarkan pada aturan

channel encoding dan karakteristik dari noisepada suatu kanal. Idealnya, informasi yang dikirim oleh source encoder akan menjadi replika dari urutan informasi yang diterima pada channel decoder meskipun noisemungkin menyebabkan beberapa proses decode menjadi error.

Sebuah source decoder akan mengubah dari bentuk urutan perkiraan informasitersebutmenjadi sebuah estimasi sumber output yang nantinya akan


(28)

dikirim menuju ke tujuan. Ketika sumber informasi bertipe kontinyu, proses tersebut melibatkan konversi dari digital menjadi analog. Dalam sebuah sistem yang dirancang dengan baik, suatu perkiraan akan menjadi reproduksi tepat sumber output dengan catatan kanal (media penyimpanan) tidak sedang dalam kondisi yang sangat ramai atau padat.

Untuk lebih mempermudah dan memfokuskan pada beberapa titik, sistem komunikasi digital dapat diringkas seperti Gambar 2.4.

Gambar 2.4 Bentuk sederhana dari coding sistem [8]

Gambar 2.4 mengarahkan untuk terfokus pada kanal penyandidan kanal pengawasandian. Sumber informasi dan sumber penyandidapat digabung ke dalam bentuk sumber digital. Modulator, kanal atau media penyimpanan, dan

demodulator dikombinasikan dalam coding channel. Sumber pengawasandian dan penerima dikombinasikan dalam sebuah penerima digital. Sebuah encoder atau

decoder didesain dan diimplementasikan untuk memenuhi beberapa kriteria antara lain :

1. Informasi dapat ditransmisikan secepat mungkin dalam lingkungan yang sangat padat dan memiliki banyak noise.

2. Informasi dapat direproduksikan secara handal oleh kanal pengawasandian sebagai sebuah output.

Sumber Digital

Encoder (Penyandi)

Coding Channel

Decoder (Pengawasandi) Penerima


(29)

3. Biaya pelaksanaanproses penyandiandan pengawasandianmasih dalambatas yang dapat diterima

2.2.1 Block Codes

Dua perbedaan struktur jenis code yang saat ini umum digunakan adalah

block codes dan convolutional codes [9].Dalam block codes, penyandi membagi urutan informasi dalam blok pesan untuk setiap k bit informasi. Sebuah blok pesan direpresentasikan oleh k-tuple biner u = (u0,u1,...,uk-1) dan sering disebut

dengan pesan. Dalam block coding, simbol u digunakan untuk menotasikan sebuah k-bit pesan dari urutan informasi. Terdapat total 2k kemungkinan pesan yang berbeda. Penyandi akan mengubah setiap pesan u secara bebas ke dalam n-tuple v = (v0,v1, .... ,vn-1) simbol diskret yang sering disebut dengan codeword.

Dalam block coding, simbol v digunakan untuk menotasikan n-simbol blok dari seluruh urutan bit yang disandikan.

Sesuai pada jumlah 2k kemungkinan pesan yang berbeda, terdapat 2k pula kemungkinan codeword yang berbeda pada output penyandian. Hal tersebut mengatur 2kcodeword dengan panjang n dinamakan sebuah (n,k) block code. Rasio R=k/n dinamakan sebagai code rate dan hal ini dapat diinterpretasikan sebagai nomor informasi bit yang masuk ke penyandi per simbol yang ditransmisikan. Dikarenakan n-simbol outputcodeword hanya tergantung pada k-bit input pesan, setiap pesan disandikan secara bebas, penyandi (encoder) bersifat

memoryless (tidak menyimpan) dan dapat diimplementasikan dengan kombinasi logika sirkuit.

2.2.2 Reed Solomon Codes

Reed-Solomon (RS) codes merupakan sebuah metode error control coding

yang cukup terkenal dan sudah diaplikasikan diberbagai macam media. Reed-Solomon codes ini ditemukan oleh Irving Reed dan Gus Solomon pada 21 Januari 1959 [3]. Reed-Solomon codes dirancang menggunakan suatu metode matematika yang disebut Galois field. Galois field ini ditemukan oleh seorang ahli matematika bernama Evariste Galois pada tahun 1830 [10]. Penggunaan Reed-Solomon sangat banyak ditemukan dalam kehidupan sehari-hari seperti:


(30)

1. Digital Audio Disc

Digital audio disc atau compact disc menggunakan Reed Solomon untuk koreksi kesalahan dan menyembunyikan kesalahan. Digital audio system juga mengaplikasikan Reed Solomon codes untuk membuat kualitas suara compact disc lebih mengesankan (rasio daya sinyal dibanding daya

noise pada keluaran melebihi 90 ).

2. Deep Space Telecommunication Systems

Aplikasi yang paling terkenal dari Reed-Solomon codes dalam teknologi luar angkasa terdapat pada ekspedisi Voyager Uranus dan Neptunus. Reed Solomon codes digunakan dalam transmisi foto dari planet-planet tersebut. Voyager menyediakan gambar/foto close-up untuk selanjutnya dikirim ke Bumi. Reed-Solomon codes menjaga agar gambar/foto yang dikirimkan tetap dalam keadaan yang baik sama seperti saat dikirimkan dari Voyager.

3. Quick Response Code

Quick Response(QR) Code mengaplikasikan Reed-Solomon pada daerah kode data QR yang nantinya akan dibaca oleh scanner. Fungsi Reed-Solomon ini agar kode dapat dibaca dengan benar bahkan ketika mereka tercoret atau rusak sampai tingkat koreksi kesalahan tertentu. Tingkat koreksi kesalahan tersebut dikonfigurasi oleh pengguna ketika ia menciptakan simbol dari QR codes.

2.2.3 Sifat - Sifat Reed Solomon Codes

Reed Solomon codes memiliki sifat-sifat tertentu yang membuat kode ini sangat bermanfaat dalam dunia nyata. RS codes merupakan salah satu block code

linier sistematis [10]. RS codes termasuk dalam block code karena kode diletakkan bersama-sama dengan memisahkan pesan asli dalam blok dengan panjang yang tetap. Setiap sub blok lebih lanjut dibagi menjadi simbol m-bit. Setiap simbol memiliki lebar yang tetap, biasanya berukuran antara 3-8 bit.

Sifat linier memastikan bahwa dalam praktek, setiap m-bit data merupakan simbol yang valid. Sebagai contoh untuk 8-bit, pengkodean sangat dimungkinkan untuk word sebesar 8 bit dan tidak perlu khaqwatir tentang jenis data data yang akan ditransmisikan (misalnya biner, ASCII, dan lain-lain). Sistematis diartikan


(31)

data yang mengalami encoding terdiri dari data asli dengan tambahan bit-bit paritas pada codeword tersebut. Ilustrasi mengenai block code linear sistematis diperlihatkan dalam Gambar 2.5.

Gambar 2.5 Format sistematis sebuah codeword[5]

Sebagian RS codes ditetapkan dalam bentuk RS(n,k) dengan simbol m-bit. Sebagai contoh kode DVB (Digital Video Broadcast) adalah RS(204,188) menggunakan 8-bit simbol. Simbol n mengacu pada jumlah simbol yang akan dikodekan dalam blok, sementara k merujuk simbol-simbol pesan asli. Selisih n-k adalah jumlah bit-bit paritas yang telah ditambahkan untuk membuat sebuah

encoded block.

Sebuah RS decoder dapat memperbaiki hingga = −

2 simbol . Setiap t simbol dapat mengalami kerusakan dengan cara apapun dan simbol atau pesan asli dapat dipulihkan kembali. Dengan demikian, DVB akan memecah kode pesan menjadi blok dengan panjang 188 simbol, sedangkan sisa 16 bit paritas (2t = 204-188 = 16) kemudian ditambahkan untuk menghasilkan penuh 204 simbol panjang kode. Jumlah kode yang bisa dikoreksi jika terjadi kesalahan mencapai =

204−108

2 = 8 simbol

Daya Reed Solomon codes terletak pada kemampuannya untuk mengkoreksi data yang rusak atau corrupt dengan kesalahan bit tunggaldengan mudah. Hal ini membuat RS codes terutama cocok untuk mengoreksi kesalahan yang banyak dalam waktu singkat (burst error). Biasanya data yang disandikan akan ditransmisikan atau disimpan dalam urutan bit.

Bit-bit paritas Message atau pesan

n-k digit k digit


(32)

2.2.4 Reed Solomon Encoding

Penyandian merupakan hal yang sangat mudah saat ini. Sejak terdapat kode sistematis, seluruh blok dapat dibaca oleh encoder, dan kemudian mengirim

output berupa codeword kesisi laintanpa perubahan [10].Penyandi RS memiliki fungsi membawa sejumlah k runtun data sebagai masukan dan menghasilkan sejumlah n runtun data yang dinamakan codeword. Reed Solomon codes sering dinotasikan sebagai RS (n,k) . Struktur RS codes secara singkat dapat dilihat pada Gambar 2.6.

Dengan simbol dari GF(2m), parameter-parameter yang sering digunakan antara lain

1. n = 2m – 1 ; n merupakan panjang sandi dalam suatu simbol. 2. k = n – 2t ; k merupakan jumlah simbol informasi data 3. 2t = n – k ; 2t merupakan jumlah simbol paritas

; t merupakan jumlah simbol yang dapat dikoreksi 4. do = 2t – 1=dmin ; do merupakan jarak minimum

Jarak minimun adalah jarak terkecil antara dua kata sandi yang didefinisikan sebagai jumlah elemen atau dua posisi yang berbeda. Hubungan antara parameter n, k , dan t tersaji dalam Tabel 2.1.

Tabel 2.1 Tabel Reed Solomon menggunakan (n, k, t) primitive Syarat : 2m–1 (m ≤ 5)

(n,k) Kemampuan melakukan koreksi kesalahan t

(7,3) 2

(15,9) 3 (15,5) 5

Data yang tidak berubah Paritas

k simbol 2t simbol

n simbol


(33)

(n,k) Kemampuan melakukan koreksi kesalahan t

(31,25) 3 (31,21) 5

RS codes merupakan salah satu dari sandi siklis,penyandian dalam bentuk sistematis bersifat analog dengan prosedur encoding biner. RS codes dibangun melalui finite field arithmetic.Finite field ini ditemukan oleh seorang ahli matematika dari perancis bernama Evariste Galois. Seiring berjalannya waktu metode aritmatika tersebut sering disebut sebagai Galois field [3].

Galois field biasanya memiliki elemen q dan sering dinotasikan dalam GF(q). Jumlah elemen suatu finite field berbentuk sebuah pm, p merupakan bilangan bulat prima dan m merupakan bilangan bulat positif. Susunan nilai elemen X dalam GF(q) memiliki bilangan bulat terkecil m berupa Xm = 1. GF(q) selalu mengandung setidaknya 1 elemen yang disebut elemen primitif dengan susunan (q - 1). Sejak (q – 1) memiliki pangkat berurutan pada X {1, X, X2, ... , Xq-2} harus tidak boleh bernilai sama dan (q – 1) merupakan elemen bukan nol pada GF(q).

Reed Solomon codes dengan dimensi (n,k) dibangun dengan membentuk polynomial generator g(x) yang memiliki factor n-k=2t. Faktor tersebut merupakan akar elemen berurutan dalam Galois field. Pemilihan elemen secara berurutan akan memastikan bahwa sifat jarak dari codes domaksimalkan. Pembentukan polinomial generator ditunjukkan dalam persamaan(2.1) berikut

(2.1)

Codeword dalam RS codes dapat direpresentasikan dalam bentuk polinomial karena berlandaskan dari logika aritmatika. Penyandian Reed Solomon menggunakan generator polinomial untuk membagi bit data.

Proses penyandian RS codes dapat dijabarkan sebagai sebuah perhitungan polinomial dengan beberapa langkah. Proses penyandian codeword atau pesan dimulai dengan polinomial pesan dikalikan dengan xn-k dan hasilnya dibagi oleh polynomial generator g(x). Pembagian dengan g(x) menghasilkan suatuhasil bagi


(34)

q(x) dan r(x) sisanya. Hasil sisa r(x) merupakan derajat sampai nk-1. Proses penyandian pesan tersebut digambarkan dalam persamaan (2.2) berikut

(2.2)

Berdasarkan persamaaan (2.2), r(x) diproduksi oleh hasil pembagian. R(x) akan ditransmisikan codeword T(x) kemudian dapat dibentuk dengan menggabungkan M(x) dan r(x) sebagai persamaan (2.3) berikut

(2.3)

Dari persamaan (2.3), hasil dari penggabungan M(x) dan r(x) menghasilkan suatu codeword yang disimbolkan sebagai T(x). Penggabungan diatas menunjukkan bahwa codeword perlu diproduksi dalam bentuk yang sistematis.

2.2.5 Reed Solomon Decoding

Decoder atau pengawasandi terletak pada sisi penerima. Decoder berfungsi untuk menanggulangi jika terjadi error yang disebabkan oleh noise ketika proses transmisi terjadi [11]. Dalam proses decoding, codeword yang diterima disebut dengan r(x), dan dinyatakan sebagai :

dengan e(X) merupakan polinomial galat dan U(X) berupa codeword yang diterima.

Proses-proses yang terjadi saat decoding RS codes merupakan sebuah rangkaian dan gabungan dari berbagai macam proses yaitu :

1. Perhitungan untuk menentukan nilai syndrom

Langkah pertama dalamproses decoding simbol yang diterima adalah menentukan syndrome data. Di sini simbol yang diterima akan


(35)

dibagi generator polinomial byte. Hasilnya harus menghasilkan nilai nol (paritas ditempatkan di sana untuk memastikan kode yang persis dibagi oleh generator polinomial). Jika pembagian menghasilkan sisa, maka ada kesalahan yang disebut sebagai syndrome.

2. Menentukan lokasi polinomial error atau galat

3. Melakukan pengecekan terhadap akar-akar lokasi polinomial galat 4. Menentukan besar galat.

5. Mengoreksi polinomial yang diterima dengan perkiraan nilai polinomial galat.

Secara lebih lengkap langkah-langkah proses decoding dalam sebuah Reed Solomon decoder diilustrasikan dalam sebuah flowchart seperti diperlihatkan pada Gambar 2.7. Langkah-langkah tersebut bisa digambarkan sebagai arsitektur

general untuk proses decoding Reed Solomon codes.

Gambar 2.7 Langkah-langkah proses decoding [12]

Berdasarkan Gambar 2.7 Langkah-langkah proses decoding [12] terdapat beberapa komponen dalam decoder Reed Solomon antara lain syndrome decoder, error polynomial, error magnitudes, dan error corrections. Penjelasan dari komponen-komponen diatas sebagai berikut :

1. Syndrome Decoder

Langkah pertama dalam proses decoding suatu codeword atau simbol yang diterima adalah menentukan syndrome data (error syndrome). Selanjutnya, simbol masukan yang diterima mengalami pembagian dengan generator polinomial. Hasilnya pembagian harus menjadi nol (paritas ditempatkan di sana untuk memastikan kode yang sama dibagi oleh generator polinomial). Jika proses pembagian menghasilkan sisa, maka terdapat kesalahan. Sisa pembagian polinomial tersebut disebut sebagai syndrome.


(36)

2. Error polynomial lambda - Berlekamp-Massey

Langkah selanjutnya mencari polinomial lambda. Hal ini diperlukan untuk menyelesaikan persamaan simultan untuk setiap syndrome. Proses pemecahan persamaan simultan ini biasanya dibagi menjadi dua tahap.Tahap pertama, menemukan polinomial lokasi kesalahan. Polinomial ini memiliki akar persamaan yang memberikan lokasi kesalahan.Kemudian akar dari polinomial kesalahan dapat ditemukan.

Simulasi ini akan digunakan metode Reformulated inverless Berlekamp-Massey. Metode ini telah dibahas dalam jurnal berjudul High-Speed Architectures for Reed–Solomon Decoders[13]. Metode RiBM ini merupakan pengembangan dari algoritma Berlekamp Massey. Algortima RiBM ini dituangkan dalam sebuah pesudocode berikut.

3. Menemukan akar polinomial kesalahan – Chien search

Setelah polinomial kesalahan lambda diketahui, akar polinomial akan menentukan letak kesalahan pada blok simbol yang diterima. Algoritma yang


(37)

paling umum digunakan untuk ini adalah pencarian Chien. Algoritma ini menggunakan brute force beserta ignorance method. Algoritma pencarian Chien dapat dirumuskan dalam persamaan (2. 5).

(2. 5) [14]

Semuasimbol 2m mungkin diganti ke dalam polinomial kesalahan, satu per satu, dan polinomial akan dievaluasi. Jika hasilnya berupa nol, maka akar polinomial telah diketahui.

4. Menentukan error magnitudes dengan algoritma Forney

Metode perhitungan untuk menentukan besarnya nilai nilai error yang cukup efisien adalah algoritma Forney. Menurut algoritma Forney, nilai error

didapatkan dari persamaan (2.6) berikut.

(2.6)

Persamaan (2.6) tersebut akan memberikan hasil yang valid untuk posisi simbol yang mengandung kesalahan. Jika perhitungan dibuat pada posisi lain maka hasil yang didapatkan umumnya tidak valid. Dalam hal ini, algoritma pencarian chien diperlukan untuk mengidentifikasi posisi kesalahan.

2.3 Probabilitas Error

Teknik komunikasi modern yang bersifat digital mendorong dibutuhkannya pengukuran kinerja end-to-end. Pengukuran kinerja suatu proses transmisi data biasanya menggunakan bit error rate (BER) [15]. BER melakukan pengukuran kinerja melalui proses kuantifikasi bit data yang masuk serta keluar. Nilai BER sangat dipengaruhi oleh noise yang berada pada lingkungan pengitiman data. BER memiliki konsep sederhana yang didefinisikan dalam persamaan(2.7).


(38)

��

=

Perhitungan nilai BER pada persamaan diatas melibatkan dua buah variabel yaitu jumlah error dan total jumlah bit suatu data. Persamaan (2.8) diatas bukanlah perhitungan yang akurat. Proses penghitungan dengan rumus diatas merupakan perkiraan nilai BER. Setiap analisis mendalam dari proses yang mempengaruhi BER memerlukan analisis matematis yang signifikan.

Selain noise, kesalahan kuantisasi juga berperan mengurangi kinerja BER, melalui rekonstruksi yang salah dari bentuk suatu gelombang digital. 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 sirkuit. Hal lain yang mempengaruhi kesalahan kuantisasi adalah tingkat akurasi proses modulasi / demodulasi analog dan efek penyaringan pada sinyal serta noise bandwidth.

Selain BER, probabilitas error juga dapat ditunjukkan dengan Symbol Error Rate (SER). Satu simbol mewakili beberapa bit biner dalam suatu

codeword. Perbedaan jumlah bit akan menyebabkan nilai symbol berubah. Konsep SER didefinisikan sebagai berikut.

=

2.4 Signal-to-noise ratio

Signal-to-noise ratio (SNR) mengacu pada perbandingandaya rata-rata sinyaldengandaya rata-rata noise. SNR dapat digunakan sebagai alat ukur tingkat unjuk kerja dan efek dari suatu noiset ersebut dan digunakan sebagai evaluasi stabilitas unjuk kerja dari karakteristik output.

Semakin tinggi unjuk kerja yang diukur dengan tingginya SNR sama dengan kerugian yang mengecil. [8] SNR dapat didefinisikan dalam sebuah persamaan di bawah ini. Persamaan berikut merupakan ukuran standar kinerja pada berbagai titik dalam suatu link.


(39)

=

�� ��

��

� � �

��

Sinyal dapat berupa sebuah sinyal informasi,bentuk gelombang baseband, atau modulated carrier. SNR dapat mengalami penurunan dalam dua cara antara lain:

1. Melalui penurunan daya sinyal yang diinginkan

2. Melalui peningkatan daya noise sinyal yang mengganggu.

Degradasi atau penurunan tersebut dapat menyebabkan kerugian dan kebisingan (gangguan). Kerugian terjadi ketika sebagian dari sinyal diserap, dialihkan, tersebar, atau dipantulkan sepanjang proses transmisi data, sehingga sebagian dari energi yang ditransmisikan tidak sampai pada penerima. Noise atau kebisingan dapat disebabkan oleh beberapa sumber utama yaitu:

1. Thermal noise yang disebabkan oleh nilai suhu tertentu. 2. Sky noise yang biasa ditemui pada atmosfer udara

3. Sistem non linier yang menimbulkan sinyal palsu dalam link

4. Sinyal gangguan dari pengguna lain dari frekuensi yang sama dapat masuk ke dalam link.

2.5 Penyandian Kanal

Penyandian isyarat digital berfungsi sebagai peningkat kinerja komunikasi dengan meningkatkan ketahanan sinyal terhadap berbagai gangguan saluran [9] Penyandian dikelompokkan dalam dua jenis yaitu penyandian gelombang (waveform coding) dan urutan terstruktur (structured sequences).

Waveform coding merupakan teknik penyandian kanal dengan melakukan pengubahan bentuk gelombang menjadi bentuk gelombang yang lebih baik sehingga mengurangi terjadinya galat (error). Structured sequences merupakan teknik penyandian dengan melakukan pengubahan urutan data menjadi urutan yang mempunyai bit berlebih (redundant bit). Bit berlebih digunakan untuk mendeteksi dan mengkoreksi error.

Urutan terstruktur dibedakan menjadi dua kategori, yaitu: block codes dan


(40)

menjadi dua, yaitu: Backward Error Correction (BEC) dan Forward Error Correction (FEC). BEC hanya membutuhkan deteksi kesalahan. Jika kesalahan terdeteksi, pengirim diminta untuk mengirim ulang pesan. FEC membutuhkan

decoder yang digunakan untuk mengoreksi sejumlah kesalahan. Decoder harus mampu mengetahui posisi bit yang mengalami kesalahan. FEC hanya membutuhkan komunikasi simplex. FEC digunakan untuk meningkatkan efisiensi energi dari sistem.

2.6 Konversi Digital-to-Analog

Konversi digital-ke-analog merupakan proses pengubahan salah satu karakteristik sinyal analog berdasarkan informasi dalam data digital [17]. Gambar 2.8 menunjukkan hubungan antara informasi digital, proses digital-ke-analog, modulasi,dan sinyal analog yang dihasilkan.

Gambar 2.8 Konversi digital ke analog

Berdasarkan Gambar 2.8, konversi digitial ke analog melibatkan beberapa system yaitu sender (pengirim), modulator, link, demodulator, dan receiver

(penerima). Pertama-tama, data digital akan dikirimkan oleh pengirim. Selanjutnya, modulator berfungsi untuk mengubah data dari bentuk digital

menjadi analog. Data yang sudah berbentuk sinyal analog akan dikirim melalui link. Sebelum sampai pada penerima, sinyal analog akan diubah kembali menjadi data digital dan data akan disampaikan pada penerima.

2.6.1 Quadrature amplitude modulation

Tigamekanisme yang sering digunakan dalam modulasidata digitalmenjadi sinyalanalog yaitu Amplitudo Shift Keying (ASK), Frequency Shift Keying (FSK), danPhase Shift Keying (PSK). Selain itu, ada mekanisme keempat yang memiliki sifat lebih baik. Mekanisme ini menggabungkan perubahan baik amplitudo dan fase, yang disebut Quadrature Amplitude Modulation (QAM). Gambar 2.9


(41)

menunjukkan beberapa tipe metode konversi digital ke analog beserta penggabungannya

Gambar 2.9 Tipe konversi digital ke analog

QAM menggunakan dua operator (satu di phase dan lainnya quadrature) dengan tingkat amplitudo yang berbeda untuk masing-masing operator. Variasi kemungkinan QAM sangat banyak, Gambar 2.10 menunjukkan beberapa skema QAM.

Gambar 2.10 Contoh Constellation Diagram untuk beberapa tipe QAM Gambar 2.10 mewakili constellation diagram untuk QAM bertipe 4-QAM dan 16-QAM. Diagram konstelasi digunakan membantu menentukan amplitudo dan fase dari sebuah elemen sinyal, terutama ketika menggunakan dua operator (satu-fase dan satu quadrature). Dalam constellation diagram, jenis elemen sinyal diwakili sebagai titik. Bit atau kombinasi dari bit digambarkan disekitar titik konstelasi sebelahnya. Diagram memiliki dua sumbu yaitu sumbu X berhubungan dengan carrierdi fase, sedangkan sumbu Y vertikal berhubungan dengan carrier quadrature. Setiap titik pada diagram merupakan potongan informasi.

Proyeksi titik pada sumbu X mendefinisikan amplitudo puncak dalam fase, proyeksi titik pada sumbu Y mendefinisikan amplitudo puncak pada quadrature. Panjang garis (vektor) yang menghubungkan titik ke asal adalah amplitudo puncak elemen sinyal (kombinasi dari X dan komponen Y), sudut garis dibuat dengan sumbu X merupakan fase elemen sinyal. Semua informasi yang


(42)

dibutuhkan ditemukan pada constellation diagram. Gambar 2.11 menunjukkan konsep constellation diagram.

Gambar 2.11 Konsep constellation diagram

2.7 Additive White Gaussian Noise

AWGN adalah noise yang bersifat statis dan acak dalam rentang frekuensi yang luas dengan kerapatan spektral konstan [18]. Noise dalam AWGN dapat berasal dari banyak sumber seperti thermal noise, shot noise, noise dari radiasi matahari, dan lainnya yang menyebabkan gangguan terhadap kinerja suatu proses komunikasi data.

Kanal AWGN bekerja dengan menambahkan antara sinyal s(t) dengan

noise n(t) dalam suatu saluran komunikasi. Pada penerima,sinyal r(t) yang berasal dari sinyal asli s(t) telah bercampur dengan noise n(t)akan diterima. Proses terjadinya noise pada kanal AWGN diperlihatkan dalam Gambar 2.12.

+

n(t)

Receiver r(t)

s(t)


(43)

3

BAB III

ANALISA DAN PERANCANGAN SISTEM

3.1 Gambaran Umum Program

Gambar 3.1 menjelaskan alur program simulasi Reed Solomon secara singkat dari awal hingga akhir program dijalankan.

Mulai

ECG Database

Grafik ECG

Symbol Error Rate

Selesai

Memotong data ECG

Penyandian Reed Solomon

Pemberian error pada kanal AWGN

Deteksi dan Koreksi Error

Mengembalikan ke dalam bentuk ECG


(44)

Alur program simulasi Reed-Solomon secara umum adalah sebagai berikut, program memiliki input data berupa suatu ECG database. ECG database

akan dipotong dalam ukuran pola data ECG. User dapat melakukan pratinjau terhadap ECG yang akan dijadikan data dalam simulasi. Proses selanjutnya, program akan melakukan pemotongan terhadap data ECG sesuai dengan ukuran pola serta dimensi dari Reed Solomon yang akan dibuat.

Selanjutnya, data akan mengalami penyandian Reed Solomon. Input data yang telah disandikan tersebut akan mengalami suatu pemberian error secara otomatis dan acak. Pemberian error disimulasikan pada kanal AWGN. Hal tersebut dimaksudkan untuk memberikan gambaran pengiriman datadalam sebuah kanal dan data mengalami error.

Selanjutnya, program akan mendeteksi apakah terdapat error atau tidak. Jika terjadi error pada data, program akan menginformasikan dan melakukan pengkoreksian terhadap input data yang salah tersebut. Hasil data yang telah dikoreksi tersebut akan diubah kembali menjadi bentuk ECG. Selain itu, hasil yang diperoleh berupabit error rate dan parameter-parameter hasil penyandian.

Program simulasi Reed Solomon ini menghasilkan nilai bit error rate(BER) sebagai perbandingan antara jumlah error pada data dengan jumlah keseluruhan data. Program menampilkan sebuah grafik dengan 2 buah komponen. Pada sumbu Y merupakan besaran nilai SER dan sumbu X merupakan besaran nilai dari signal to noise ratio (SNR). Nilai SNR menggunakan rentang antara 1 – 20 .

Kedua parameter keluaran dari program simulasi Reed-Solomon ini digunakan sebagai analisa unjuk kerja dari reed solomon codes. Luaran dari program ini diharapkan mampu memperlihatkan perubahan 1 simbol data terhadap data elektrokardiogram yang ditransmisikan.

3.2 Rancangan Model Sistem

Program simulasi Reed Solomon ini merupakan hasil dari sebuah rancangan suatu model yang terdiri dari beberapa rangkaian sistem. Rancangan model sistem yang disimulasikan disajikan dalam Gambar 3.2.


(45)

Sinyal ECG (Analog)

Encoder Reed

Solomon Code Modulator QAM

Demodulator QAM Decoder Reed

Solomon Code Sinyal ECG

(Analog)

Kanal AWGN

Noise AWGN

Gambar 3.2 Rancangan model sistem program simulasi Reed Solomon Dalam Gambar 3.2 terlihat bahwa model sistem yang akan disimulasikan memiliki banyak komponen. Komponen awal berupa sinyal ECG Analog. Sinyal analog kemudian akan diolah sedemikian rupa. Komponen selanjutnya berupa

encoder Reed Solomon code. Encoder tersebut akan menyandikan ECG. Proses selanjutnya data akan mengalami modulasi dalam modulator QAM. Data yang telah disandikan tersebut selanjutnya akan masuk ke dalam sebuah kanal AWGN.

Data yang dikirimkan akan mengalamai error dalam kanal tersebut dan selanjutnya akan diterima oleh demodulator QAM dan akan mengalami proses modulasi. Data yang sudah didemodulasi kemudian diterima olehdecoder Reed Solomon.Proses-proses yang dilakukan dalam decoder ini antara lain pendeteksian error, koreksi error, beserta penghitungan SER (Symbol Error Rate). Selanjutnya akan diubah menjadi menjadi analog.

3.3 Perancangan penyandian Reed Solomon

Proses encode menggunakan Reed Solomon yang didasarkan pada Galois

FieldGF(25) = GF(32),GF(26) = GF(64), dan GF(27) = GF(128). Nilai dari GF tersebut akan digunakan sebagai ukuran panjang dari codeword atau n.Nilai

Galois Field diatas digunakan sebagai nilai variabel yang dalam proses penyandian. Penjelasan untuk masing-masing Galois Field yang digunakan adalah sebagai berikut.

1. Galois Field GF(25) = GF(32)

GF(32) menggunakan polinomial primitif dengan P(x) = 1+x2+x5, kode (n,k) yang dihasilkan adalah (31, 31-2t). Nilai ndan kdan tsemua mengacuke


(46)

sejumlah5-bitsimbol.Berdasarkan perhitungan diatas, diperoleh dimensi (n,k) yang digunakan dalam simulasi adalah (31,27) codeword dengan jumlah data yang bisa dikoreksi t=2.Ukuran codeword keseluruhan adalah 5×31 =155bit. Rancangan rangkaian register untuk penyandian RS dalam simulasi ini digambarkan dalamGambar 3.3.

Gambar 3.3 menunjukkan rangkaian register dengan polinomial P(x) = 1 + x2+x5. Langkah-langkah yang dijalankan dalam register geser yaitu pertama-tama, input data akan memasuki register geser n - k . Selanjutnya, data mengalami pergeseran dan akan mengisi setiap register. Ketika proses pergeseran, terdapat proses penjumlahan bit untuk setiap data yang masuk.Proses pergeseran terjadi sampai semua input data habis. Input data yang sudah masuk tadi akan menuju ke register output dan selanjutnya akan menjadi output. Sisa data yang berada pada register menjadi nilai bit paritas dari sandi yang akan digunakan.

Proses decode merupakan proses yang terjadi setelah data penyandian diterima oleh pihak tujuan. Proses decode memerlukan error syndrome untuk melakukan proses deteksi kesalahan.Proses penghitungan error syndrome bisa diperoleh dengan menggunakan sebuah rangkaian. Rangkaian pembagi polinomial ini mirip dengan rangkaian encoder yang sedikit mengalami perubahan.Gambar 3.4 di bawah ini menunjukkan rangkaian pembagi untuk mencari error syndrome.

Received Codeword Switch 1 Switch 2 + X5 X4 X3 X2 X1 X0 + Syndrome Register geser

+ Gate Data Output Digit Parity +

Gambar 3.3Rangkaian register geser Reed Solomon code (31,27)


(47)

Gambar 3.4 memberikan hasil error syndrome dari codeword yang dikirimkan oleh pemancar. Proses penghitungan syndrome ini bermula pada posisi

switch 1 dan switch 2 terbuka. Nilai register semua dalam kondisi awal nol.

Codeword yang diterima kemudian digeser pada register yang ada. Syndrome

didapat ketika semua codeword telah habis digeser. Isi dari register adalah

syndrome. Selanjutnya, switch 1 akan terbuka dan switch 2 tertutup, sehingga

codeword dapat digeser dan keluar dari register.

2. Galois FieldGF(26) = GF(64)

GF(64) memiliki polinimial primitif P(x) = 1 + x + x6 . Untuk GF(64), kode yang dihasilkan adalah (n, k) = (63, 63-2t), dengan n dan k serta t semua mengacu pada sejumlah 6-bit simbol [19].

Berdasarkan perhitungan diatas, diperoleh dimensi (n,k) yang digunakan dalam simulasi adalah (63,61) codeword dengan jumlah data yang bisa dikoreksi t=1.Ukuran codeword keseluruhan adalah 6×63 =378bit. Rancangan rangkaian

register untuk penyandian RS dalam simulasi ini digambarkan dalam Gambar 3.5.

Gambar 3.5 menunjukkan rangkaian register dengan polinomial P(x) = 1 + x + x6. Rangkaian tersebut memiliki 5 buah register, 2 buah adder dan sebuah

gate yang berfungsi sebagai saklar. Cara kerja dari rangkaian register untuk sandi (63,61) ini sama dengan sandi (31,25) hanya perbedaan terdapat pada jumlah

register. Sandi (63,61) juga memiliki rangkaian syndrome decoder. Gambar 3.6 menunjukkan rangkaian pembagi untuk mencari error syndrome.

+ Gate

Data

Output Digit

Parity +

Register geser


(48)

3. Galois Field GF(27) = GF(128)

GF(128) memiliki polinimial primitif P(x) = 1 + x3 + x7. Untuk GF(128), kode yang dihasilkan adalah (n, k) = (127, 127-2t), dengan n dan k serta t semua mengacu ke sejumlah 7-bit simbol. Salah satu dimensi (n,k) yang digunakan dalam simulasi adalah (127,119) codeword dengan jumlah data yang bisa dikoreksi t=4.Ukuran codeword keseluruhan adalah 7×127 = 889bit. Rancangan rangkaian register untuk penyandian RS dalam simulasi ini digambarkan dalam Gambar 3.7.

Gambar 3.7 menunjukkan rangkaian register dengan polinomial P(x) = 1 + x3 + x7. Rangkaian tersebut memiliki 7 buah register, 2 buah adder dan sebuah

gate yang berfungsi sebagai saklar. Sandi (127,119) juga memiliki rangkaian

syndrome decoder. Gambar 3.8 menunjukkan rangkaian pembagi untuk mencari

error syndrome. Received Codeword Switch Switch + + X X X X X X X Syndrome X7

Register geser

+ Gate

Data Output

Digit Parity + Received Codeword Switch 1 + + X X X X X X X Syndrome Switch 2

Gambar 3.6 Rangkaian syndrome decoder(63,61)

Gambar 3.7 Rangkaian register geser Reed Solomon code (127,119)


(49)

Secara singkat perbedaan dari ketiga buah rancangan penyandian Reed Solomon diperlihatkan dalam Tabel 3.1.

Tabel 3.1 Perbedaan atribut penyandian Reed Solomon

Panjang Codeword

RS Codes Kemampuan koreksi (t)

Code rate R

31 RS(31,27) 2 0.87

63 RS(63,61) 1 0.97

127 RS(127,119) 4 0.94

3.4 Desain Input Data

Sumber data yang akan digunakan dalam simulasi ini berupa ECG

database. Format ECG database yang sering digunakan dalam penelitian berasal dari Massachusetts Institute of Technology dan Boston's Beth Israel Hospital (MIT-BIH). Data yang akan diolah terdiri dari beberapa file berekstensi hea, dat, dan atr. Header file (.hea) dan data (.dat) merupakan file dasar yang berisi data sinyal. Atribut file (.atr) berisi mengenai file biner yang mengandung label (penjelasan) dan mengarah kelokasi tertentu dalamsinyal (.dat) file

danmenggambarkan kejadiandi lokasi tersebut.


(50)

Format yang digunakan adalah format212. Format tersebut merupakan format ideal yang terdiri masing-masing 12 bit data dan format tersebut

merupakan format yang relatif mudah. Gambar 3.9 merupakan contoh ECG hasil

pembacaan dari ECG Databaseyang telah diolah dan ditampilkan secara visual dalam bentuk grafik..

3.5 Perancangan Sistem

3.5.1 Use Case

Gambar 3.10merupakan uraian aksi aktor yang dilakukan terhadap program simulasi Reed Solomon.

User

Program Simulasi Reed Solomon

Encode data ECG

Decode data hasil penyandian

Menambahkan error pada data penyandian

Gambar 3.10Use case program Reed Solomon

Dari Gambar 3.10, dapat diketahui bahwa aksi yang dilakukan aktor yaitu

user adalah encode data ECG, decode data hasil penyandian, dan menambahkan

error pada data penyandian. Aksi encode yang dilakukan user berfungsi untuk menghasilkan data ECG dalam bentuk sandi Reed Solomon code. Aksi decode

berfungsi untuk mengembalikan kembali data ECG yang telah disandikan menjadi ECG awal dan mengetahui seberapa besar error yang diterima. Aksi user

menambahkan error berfungsi untuk memberikan error secara acak untuk mensimulasikan sandi dikirimkan melalui kanal dan mengalami error.

3.5.2 Narasi Use Case

Use case dalam Gambar 3.10 merupakan deskripsi langkah kerja yang akan dilakukan user terhadap program simulasi Reed Solomon codes. Langkah


(51)

kerja tersebut meliputi aksi pengguna dan reaksi program terhadap reaksi pengguna yang dituangkan dalam narasi use case

Nama Use Case : Encode data ECG

Aktor : User

Kondisi awal : User berada pada halaman awal program.

Deskripsi : Use case ini digunakan untuk user menyandikan data awal menggunakan Reed Solomon codes

Tabel 3.2 Skenario utama use case encode data

Aksi Aktor Reaksi Sistem

1. User memilih menu Encode data

2. Sistemmenampilkan halaman

Encode data

3. User memasukkan file database

ECG yang akan digunakan dan menekan tombol Pratinjau

4. Menampilkan grafik

visualisasi ECG hasil proses pembacaan

5. Memilih ukuran dari dimensi Reed Solomon dan menekan tombol encode data untuk melakukan proses penyandian data.

6. Melakukan proses penyandian / encode data menggunakan

Reed Solomon dan

menampilkan hasil penyandian encodepada halaman baru. Nama Use Case : Decode data ECG


(52)

Kondisi awal : User berada pada halaman awal program.

Deskripsi : Use case ini digunakan untuk user melakaukan pengawasandian data hasil penyandian menggunakan Reed Solomon codes .

Tabel 3.3 Skenario utama use case decode data

Aksi Aktor Reaksi Sistem

1. User memilih menu Decode

data

2. Sistemmenampilkan halaman

Decode data

3. User memilih file data yang merupakan hasil

4. Sistem membaca masukan file

berupa hasil penyandian dan menampilkan data sandi yang dibaca

5. Memilih tombol Decode Data untuk melakukan proses decode

data penyandian

6. Melakukan proses decode

terhadap masukan data dan menampilkan halaman yang berisi visualisasi grafik ECG dan parameter penyandian 7. Menampilkan nilai SER beserta

atribut lain

Nama Use Case : Menambahkan error padadata penyandian

Aktor : User


(53)

Deskripsi : Use case ini digunakan untuk usermenambahkan

error secara acak pada sandi.

Tabel 3.4 Skenario utama use case menambahkan error padadata penyandian

Aksi Aktor Reaksi Sistem

1. Sistem menampilkan halaman penambahan error.

2. User memilih ukuran modulasi yang digunakan beserta ukuran nilai SNR

3. Sistem melakukan simulasi pengiriman kanal AWGN

3.5.3 Diagram Arus Data Level 0 / Diagram Konteks

Gambar 3.11merupakan diagram arus data level 0 atau sering disebut sebagai diagram konteks.

User

Data ECG

Data ECG

Symbol Error Rate

0 Program Simulasi Reed

Solomon

Gambar 3.11 Diagram arus data level 0

Gambar 3.11 terdapat user beserta Program simulasi Reed Solomon Code.

User memasukkan input data berupa data ECG ke dalam program simulasi. Keluaran dari hasil proses yang dilakukan berupa data ECG kembali beserta

symbol error rate.

3.5.4 Diagram Berjenjang

Gambar 3.12 merupakan diagram berjenjang dari program Simulasi Reed Solomon code.


(54)

0

Program Simulasi Reed Solomon

1 Encode Data ECG

2 Decode data hasil

penyandian 1.1 Memotong data ECG 1.2 Mengubah data menjadi biner 1.3

Menyandikan data dalam Reed Solomon code

2.1 Deteksi data hasil

penyandian 2.2 Koreksi data hasil

penyandian 2.3 Menghitung Probabilitas Error 2.4 Mengembalikan data dalam bentuk ECG

Gambar 3.12 Diagram berjenjang program simulasi Reed Solomon code

Diagram berjenjang yang disajikan dalam Gambar 3.12 memperlihatkan proses yang terjadi dalam program simulasi Reed Solomon code. Dua buah proses besar yang terjadi dalam program adalah encode data ECG dan decode data hasil penyandian yang memiliki jenjang paling atas yaitu 1 dan 2. Proses encode data ECG memiliki beberapa sub proses yang berfungsi sebagai penunjang antara lain memotong data ECG dalam pola-pola tertentu (1.1), mengubah data yang sudah dipotong-potong menjadi biner (1.2), dan menyandikan data biner dalam Reed Solomon code (1.3).

Proses kedua merupakan decode data hasil penyandian Reed Solomon untuk mendapatkan kembali data yang telah disandikan. Proses ini memilik sub proses antara lain deteksi data hasil penyandian (2.1), koreksi data hasil penyandian (2.2), menghitung probabilitas error (2.3), dan mengembalikan kembali data dalam bentuk ECG (2.4).


(55)

3.5.5 Diagram Arus Data Level 1

Gambar 3.13 merupakan diagram arus data level 1 dari program Simulasi Reed Solomon code.

1

Encode data ECG

User

Data ECG Data ECG

File data encode

File data encode

Data hasil penyandian

File data encode

2

Decode data hasil penyandian

File data ECG

File data encode

Data ECG Symbol Error Rate

Data hasil decode Data ECG

Gambar 3.13 Diagram arus data level 1

Diagram arus data pada Gambar 3.13 menunjukkan aliran data yang dikirimkan pada proses besar dari program yaitu encode data ECG (1) beserta

decode data hasil penyandian (2). Proses encode melibatkan langsung aktor user

dalam melakukan eksekusi. Data yang dikirimkan saat aksi user terhadap sistem berupa data ECG yang masih berupa database. Selanjutnya sistem akan melakukan proses encode data tersebut dan menghasilkan file data hasil encode. File data tersebut yang nantinya akan digunakan dalam proses decode. Proses

decode akan berjalan dengan masukan file data encode. Hasil keluaran dari proses

decode berupa data ECG dalam bentuk semula beserta hasil SER (Symbol Error Rate).

3.5.6 Diagram Arus Data Level 2

Gambar 3.14 merupakan diagram arus data level 2 dari program Simulasi Reed Solomon code.


(56)

1.1 Memotong data ECG

1.2

Membagi data sesuai panjang k

1.3

Menyandikan data dalam Reed Solomon code

Pola ECG

Data panjang k

User

Data ECG

File data encode File data encode

Data hasil penyandian File data encode

Gambar 3.14 Diagram arus data level 2 proses encode

DAD yang disajikan dalam Gambar 3.14 menggambarkan proses yang terjadi dalam aksi encode. Proses encode secara garis besar terdiri dari proses Memotong data ECG (1.1), membagi data sesuai dengan ukuran k (1.2), serta menyandikan data dalam Reed Solomon code (1.3).

Data yang mengalir dalam proses ini antara lain data ECG yang berbentuk

database dikirim menuju ke sistem kemudian mengalami proses pemotongan. Proses pemotongan data ECG menghasilkan sebuah ECG yang sudah berpola dalam satuan waktu tertentu. Selanjutnya, data ECG yang sudah berpola diubah menjadi bentuk sedemikian rupa agar siap disandikan. Proses pengubahan tersebut memberikan hasil berupa data ECG berbentuk biner.

Data tersebut kemudian disandikan oleh encoder menjadi Reed Solomon

code. Hasil dari proses penyandian berupa sebuah file hasil penyandian yang nantinya akan dikirim kembali ke user.

Gambar 3.15 menunjukkan diagram arus data untuk proses decode data ECG.


(1)

% RiBM algorithm (Reformulated inversionless Berlekamp-Massey) % This implements the key equation solver portion of the decoder. % see "High-Speed Architectures for ReedSolomon Decoders" by Dilip V.

% Sarwate, and Naresh R. Shanbhag

%---

k = 0; gamma = 1;

delta = gf(zeros(1, 3*t+2), m); delta(3*t+1) = 1;

delta(1:(2*t)) = syndrome; theta = delta(1:3*t+1); delta_next = delta;

for r=1:2*t+1,

delta = delta_next; %step1

delta_next(1:3*t+1) = (gamma*delta(2:3*t+2))-(delta(1)*theta(1:3*t+1));

%step2

if((delta(1) ~= 0) && (k>=0))

theta(1:3*t+1) = delta(2:3*t+2); gamma = delta(1);

k = -k-1;

else

theta = theta; gamma = gamma; k = k+1;

end end

lamda = delta(t+1:2*t+1); omega = delta(1:t);

%---

% chein search:

% find the error locations by finding the roots of lamda

%---

% inverse table

inverse_tb = gf(zeros(1, t+1), m, pp);

for i=1:t+1,

inverse_tb(i) = alpha^(i-1);

end;

lamda_v=gf(0, m, pp);

accu_tb=gf(ones(1, t+1), m,pp); zero = gf(0, m, pp);

error = zeros(2,nn);

for i=1:nn

accu_tb=accu_tb.*inverse_tb; lamda_v=lamda*accu_tb';

if(lamda_v==zero)

error(1,i)=1;

end end


(2)

%---

% Forney's algorithm

% find the error magnitudes using Forney's algorithm. This algorithm

% allows error magnitudes to be determined without matrix inversion. For

% RiBM, the omega term must be shifted by a power of 2*t.

%---

% the derivative of lamda comes out to be lamda with only the odd terms

% considered. generate the index vector... even=floor(t/2)*2;

if(even==t) odd=t-1;

else

odd=t;

end

%inverse table

inverse_tb = gf(zeros(1, t+1), m, pp);

for i=1:3*t,

inverse_tb(i) = alpha^(-i+1);

end;

lamda_ov=gf(0, m, pp); omega_v=gf(0, m, pp);

accu_tb=gf(ones(1, t+1), m,pp); accu_tb1=gf(ones(1, 3*t), m, pp);

% shift the exponents of omega by 2*t for RiBM (equation 12 in paper)

omega = [zeros(1,2*t),omega];

for i=1:nn,

lamda_ov=lamda(2:2:odd+1)*accu_tb(2:2:odd+1)'; omega_v=omega*accu_tb1';

accu_tb=accu_tb.*inverse_tb(1:t+1); accu_tb1=accu_tb1.*inverse_tb;

if(error(1,nn-i+1) == 1)

ev=(omega_v/lamda_ov)*alpha^(1-i); error(2, nn-i+1)=double(ev.x);

end end

%---

% Apply corrections - and display the results

%---

disp(['the original code is : ', num2str(double(code))]);

disp(['the received code is : ', num2str(double(reccode.x))]);

found = find(error(1,:)~=0);

disp(['found error(s) at location(s): ',num2str(found)]); disp(['calulated error magnitudes : ',


(3)

reccode(found) = reccode(found) - gf(error(2,found),m); disp(['the corrected code is : ',

num2str(double(reccode.x))]); douRec=double(reccode.x);

dataCorrect(jj,[1:kk])=douRec(1,[1:kk]); correct=correct+length(error(2,found));

end

waitbar(jj / steps)

end dataOut=zeros(1,size(dataCorrect,1)*size(dataCorrect,2)); save('CorrectDec.mat','dataCorrect'); flg=1; flgA=1; tempStr=''; ecgFin=zeros(1,300); tempEcg=0; lenData=0; correctAsli=0;

for c=1:size(dataCorrect,1)

for d=1:size(dataCorrect,2)

dataOut(1,flg)=dataCorrect(c,d); flg=flg+1;

end end

for y=1:size(encFin,1) counter=0;

for yy=1:length(encFin(y,[1:kk]))

if(counter<300*4+1)

if(encFin(y,yy) ~= dataCorrect(y,yy)) correctAsli=correctAsli+1; end counter=counter+1; end end end

disp('ini koreksi asli'); disp(correctAsli);

for e=1:(300*4)

tempStr=[tempStr,num2str(dataOut(e))]; lenData=lenData+1;

if mod(e,4)==0

if(length(tempStr)==4) doubStr=str2num(tempStr); tempEcg=(doubStr/1000)-2; elseif(length(tempStr)==5) doubStr=str2num(tempStr); tempEcg=(doubStr/10000)-2; elseif(length(tempStr)==6) doubStr=str2num(tempStr); tempEcg=(doubStr/100000)-2; end ecgFin(1,flgA)=tempEcg; flgA=flgA+1; tempStr=''; end


(4)

dataAll=lenData;

correct=errorAsli-correctAsli ber=correctAsli/dataAll

save('finalECG.mat','ecgFin'); close(h);

plot(ecgFin(1,1:300));

xlabel('Time / s'); ylabel('Voltage / mV');


(5)

viii ABSTRAK

Komunikasi data saat ini berkembang dengan sangat cepat dan signifikan. Perkembangan komunikasi data tersebut ditemui salah satunya dalam bidang kedokteran. Dalam bidang kedokteran, penggunaan komunikasi data yang banyak dikembangkangkan adalah system telemedika atau pengiriman data medis jarak jauh. Perkembangan penggunaan komunikasi data tersebut, tidak ditunjang dengan kondisi geografis Indonesia yang baik. Kondisi geografis Indonesia yang kurang baik dapat mengurangi kinerja jaringan dan berakibat pada inkonsistensi bit-bit sinyal yang ditransmisikan Perubahan sinyal dapat menyebabkan data-data yang ditransmisikan menjadi tidak valid karena mengandung bit-bit error. Dalam bidang kedokteran,terdapat data yang sangat riskan terhadap error seperti data rekam medis (Electro Cardiography (ECG) atau yang sering disebut data kritis. Data rekam medis tersebut tentunya sangat rentan terhadap error karena berhubungan dengan penanganan medis yang akan dilakukan selanjutnya.

Dari latar belakang tersebut, dikembangkan sebuah sistem untuk mensimulasikan teknik koreksi kesalahan data menggunakan Reed Solomon codes untuk data elektrokardiogram. Reed Solomon merupakan teknik koreksi kesalahan data berbasis Linear Block Code yang banyak dijumpai saat ini. Simulasi yang dikembangkan dengan bahasa pemograman Matlab. Hasil akhir dari penelitian didapatkan grafik perbandingan nilai Symbol Error Rate pada 4-QAM, 16-4-QAM, 32-4-QAM, dan 64-QAM serta diperoleh perbandingan kinerja Reed Solomon dengan dimensi (31,27), (63,61), dan (127,119). Hasil akhir menunjukkan nilai SER yang terbaik dimiliki oleh modulasi 4-QAM. Kinerja Reed Solomon yang paling baik dimiliki oleh RS(31,27).


(6)

ix ABSTRACT

Data communication recently developing very quickly and significance. Development of data communication could be find especially in medical area. In medical area, the most using data communication was for telemedica system or long range medical data sending. Development of using data communication at this time not supported by a good geographical condition in Indonesia . Geographical condition in Indonesia that was unreliable could reduce performance and it concequence to the inconcistency of signal which are transmitted. Changing of signal could cause data taransmitted become unvalid because it consisted an error bit. In medical area, there was data which are very sensitive with an error such as Electrocardiography or critical data. Electrocardiography absolutely very sensitive with an error because it connected to the medical treatment to be done

From these background,there was a system to simulate an error correction data control using Reed Salomon codes for electrocardiography data. Reed solomon was an error control correction data basically from Linear Block Code which can be find recently. Development of simulation using Matlab programming language, result from the research was a comparison graphic score Symbol Error Rate on 4-QAM, 16-QAM, 32-QAM and 64-QAM also gained comparison performance from Reed Salomon with (31,27), (63,61) and (127,119) dimension. Result shown the best SER point was 4-QAM modulation. The best Reed Solomon performance was had by RS (31,27).