Simulasi reed solomon codes untuk pengolahan data uji elektrokardiogram.
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).