i
Halaman Judul
SIMULASI
TURBO CODES
UNTUK PENGOLAHAN DATA
ELEKTROKARDIOGRAM
SKRIPSI
Diajukan untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh: L. Endra Prasetya
085314004
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
ii
Halaman Judul
SIMULATION OF TURBO CODES
FOR ELECTROCARDIOGRAM DATA PROCESSING
THESIS
Presented as Partial Fullfilment of the Requirements To Obtain the Computer Bachelor Degree
In Informatics Engineering
By:
L. Endra Prasetya 085314004
INFORMATICS ENGINEERING STUDY PROGRAM
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
iii
iv
v
Halaman Persembahan
HALAMAN PERSEMBAHAN
Skripsi ini saya persembahkan untuk : Tuhan Yesus Kristus.
Keluarga Bapak Ignatius Pilih, Ibu Th. Ninik Sriwinarni, Margareta Sri Pininih, dan Christina Putranti Rose Widani yang selalu setia mendukung dengan Cinta dan Doa.
Keluarga besar Bapak B. Puji Saputroyang selalu mendukung dengan Doa.
Sahabat dan teman-teman.
UNLESS someone like you
cares a whole awful lot,
nothing is going to get better.
It’s not.
vi
vii
ABSTRAK
Perkembangan teknologi yang begitu pesat menuntut pengiriman data dengan kecepatan tinggi dan kinerja yang handal. Data yang dikirim dapat berupa data analog atau data digital, seperti audio, video, karakter atau teks. Sebagai contohnya adalah data rekam medis Electrocardiogram (ECG). Pemasalahan yang sering terjadi ketika komunikasi data adalah gangguan saluran. Gangguan saluran berupa derau (noise), pelemahan sinyal (fading), dan perusakan sinyal oleh sinyal lain (jamming) [1]. Jika data yang dikirim mengalami gangguan saluran, maka di sisi penerima data dipastikan mengalami kesalahan (error). Jika data yang dikirim berupa data ECG, maka akan menyebabkan salah diagnosa yang akan menimbulkan runtutan kesalahan, sehingga akan berakibat fatal terhadap pasien. Dari permasalahan tersebut, suatu metode dibutuhkan agar kesalahan dapat dideteksi dan dikoreksi [2]. Dengan menggunakan metode penyandian digital, kesalahan dapat dideteksi dan dikoreksi. Salah satu metode penyandian dalam error control coding, ialah dengan turbo codes.
Turbo codes encoder yang dikembangkan untuk penelitian menggunakan
Recursive Systematic Convolutional (RSC) dengan rate 1/3 dan menggunan random interleaver. Decoder turbo codes menggunakan algoritma Maximum
A-Posteriori Probability (MAP). Pengujian menggunakan data rekam medis dengan
panjang data 300, 600, 900, 1200, dan 1500 titik. Modulasi yang diggunakan adalah Quadrature amplitude modulation (QAM) dengan ukuran QAM 4, 16, 32, dan 64. Signal to Noise Ratio (SNR) yang digunakan adalah 0 sampai dengan 20.
viii
ABSTRACT
The fast development of technology required that data should be transmitted in a high speed way and in a meticulous performance. The data which was sent could be in the form of an analog or digital data such as audio, video, character, or text. Examples are electrocardiogram (ECG) medical records. The problems which usually occur during a communication is on the way is channel disturbance. Channel disturbance could be in the form of hissing sound (noise), fading signals, and disturbed signals because of other signals which are called jamming [1]. Others from the mentioned problems, very often it happened that the data being sent is broken before it is transmitted. When the data being sent undergo channel disturbance or data break down, then there certainly be some errors on the receiver side and the data received is not valid. When the data being sent is in the form of an ECG, then it would cause false diagnosis which would raise a series of deceptions that it would end in a serious and fatal result on the patients. From this point of view, an application or a method is needed that the errors could detected and corrected [2]. By using a digital coding method, any error could be certainly detected and corrected. One of the coding methods in error control coding is the turbo codes.
Turbo codes encoder which was developed for research used the Recursive Systematic Convolutional (RSC) with a rate of 1/3 and used a random inter-leaver. The Decoder turbo codes used the Maximum A-Posteriori Probability (MAP) algorithm. The test used a medical record data of 300, 600, 900, and 1,500 niche in length. The modulation which was applied was the Quadrature amplitude modulation (QAM) in QAM 4, 16, 32, and 64 sizes whereas the Signal to Noise Ratio (SNR) was 0 to 20.
ix
x
Kata Pengantar
KATA PENGANTAR
Puji syukur kepada Yesus Kristus yang telah memberikan karunia, rahmat, dan kesempatan, sehingga penulis dapat menyelesaikan skripsi dengan judul “Simulasi Turbo Codes Untuk Pengolahan Data Elektrokardiogram”. Penyusunan skripsi ini tidak lepas dari semua pihak yang turut memberikan dukungan, doa, semangat, dan bantuan yang sangat bermanfaat bagi penulis. Pada kesempatan ini penulis mengucapkan terima kasih sebesar besarnya kepada :
1. Bapak Damar Widjaja, S.T.,M.T. selaku dosen pembimbing senantiasa memberikan masukkan dan bantuan dalam membimbing penulis untuk menyelesaikan skripsi ini.
2. Segenap dosen Universitas Sanata Dharma yang telah membantu memberikan bekal pengetahuan kepada penulis.
3. Bapak Ignatius Pilih, Ibu Th. Ninik Sriwinarni, Margareta Sri Pinilih, dan keluarga besar Christina Putranti Rose Widani yang dengan tulus memberikan perhatian, doa, dan dukungan.
4. Seluruh sahabat dan rekan-rekan TI (Angga, Sisca, Reza, Wulan, Surya, Devi, Putri, Petra, Itha, Tista, Gadis, dan Mas Susilo) yang tidak dapat penulis sebutkan atas kesediaanya dalam memberikan masukkan, menemani dan mendengarkan keluh kesah dari penulis.
Penulis menyadari bahwa masih banyak kekurangan yang terdapat pada skripsi ini. Saran dan kritik penulis harapkan untuk kebaikan bersama. Semoga bermanfaat.
Yogyakarta, Februari 2013 Penulis,
xi
Daftar Isi
Halaman Judul ... i
Halaman Judul ... ii
Halaman Persetujuan ... iii
Halaman Pengesahan ... iv
Halaman Persembahan ... v
Pernyataan Keaslian Karya ... vi
ABSTRAK ... vii
ABSTRACT ... viii
Halaman Persetujuan ... ix
Kata Pengantar ... x
Daftar Isi... xi
Daftar Gambar ... xvi
Daftar Tabel ... xviii
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang... 1
1.2 Rumusan masalah ... 2
1.3 Tujuan ... 2
1.4 Manfaat ... 3
1.5 Batasan Masalah ... 3
1.6 Metodologi Penelitian ... 3
1.7 Sistematika Penulisan ... 4
BAB II LANDASAN TEORI ... 6
2.1 ECG ... 6
2.2 Penyandian Kanal ... 6
2.2.2 Additive white gausian Noise ... 9
2.2.3 White Noise ... 9
2.2.4 Distribusi Gaussian ... 9
2.3 Turbo Codes ... 10
2.3.1 Parameter Pengujian Unjuk Kerja Turbo Codes ... 12
2.4 Recursive Systematic Convolutional Encoder ... 12
2.4.1 Representasi Generator ... 12
2.5 Turbo Encoder ... 13
2.5.1 Interleaving ... 14
2.6 Turbo Decoder... 14
2.6.1 Skema Decoding ... 15
2.6.2 Decoding dengan Menggunakan Feedback Loop ... 15
2.7 Algoritma Maximum A-Posteriori Probability ... 16
2.7.1 Log-Likelihood Ratio ... 16
2.8 Bit Error Rate ... 18
2.8.1 Noise dan BER ... 18
2.8.2 Kuantisasi Kesalahan ... 19
2.8.3 Signal to Noise Ratio ... 19
BAB III PERANCANGAN ... 20
3.1 Analisis Sistem ... 20
3.1.1 Gambaran Sistem yang Dikembangkan ... 20
3.1.2 Analisis Kebutuhan Sistem ... 20
3.2 Perancangan Sistem ... 20
3.2.1 Perancangan Encoder Turbo Codes ... 21
3.2.2 Perancangan Decoder Turbo Codes ... 22
3.2.4 Narasi Use Case ... 23
3.2.5 Diagram Konteks ... 29
3.2.6 Diagram Dekomposisi (Diagram Berjenjang) ... 30
3.2.7 Data Flow Diagram Level 0 ... 30
3.2.8 DFD Level 1 Proses 1 ... 31
3.2.9 DFD Level 1 Proses 2 ... 31
3.2.10 DFD Level 1 Proses 3 ... 32
3.3 Desain Antarmuka Pengguna ... 32
3.3.1 Halaman Utama Program ... 32
3.3.2 Tampilan Open File ... 33
3.3.3 Halaman Encode ... 33
3.3.4 Halaman Pengaturan kanal AWGN ... 34
3.3.5 Halaman Decode ... 35
BAB IV IMPLEMENTASI SISTEM ... 37
4.1 Implementasi Proses ... 37
4.1.1 Proses Pembacaan Data ECG... 37
4.1.2 Penyandian Data ECG... 37
4.1.3 Pengiriman Data Sandi Melalui Kanal AWGN ... 39
4.1.4 Decoder Turbo Codes ... 39
4.2 Implementasi Tampilan ... 40
4.2.1 Tampilan Utama ... 40
4.2.2 Tampilan Proses Encoding ... 40
4.2.3 Tampilan Handling “Cari Data ECG” ... 42
4.2.4 Tampilan Pengaturan Kanal AWGN ... 42
4.2.5 Tampilan Decoder ... 43
5.1 Hasil Pengujian ... 45
5.1.1 Hasil Pengujian BER dengan Parameter Pengujian Iterasi ... 45
5.1.2 Hasil Pengujian BER Menggunakan Modulasi QAM 4 ... 46
5.1.3 Hasil Pengujian BER Menggunakan Modulasi QAM 16 ... 46
5.1.4 Hasil Pengujian BER Menggunakan Modulasi QAM 32 ... 47
5.2.1 Analisis Pengujian BER Berdasar Panjang data ECG ... 48
5.2.2 Hasil Pengujian BER Menggunakan Panjang Data ECG 300 ... 48
5.2.3 Hasil Pengujian BER Menggunakan Panjang Data ECG 600 ... 49
5.2.4 Hasil Pengujian BER Menggunakan Panjang Data ECG 900 ... 49
5.2.5 Hasil Pengujian BER Menggunakan Panjang Data ECG 1200 ... 50
5.3.1 Analisis Pengujian BER Menggunakan Modulasi QAM... 51
5.4 Pengujian ... 52
5.4.1 Pembacaan Data ECG ... 52
5.5 Encoder Turbo Codes ... 53
5.6 Decoder Turbo Codes... 55
BAB VI KESIMPULAN DAN SARAN ... 57
6.1 Kesimpulan ... 57
6.2 Saran ... 57
DAFTAR PUSTAKA ... 58
LAMPIRAN ... 61
LAMPIRAN 1 ... 62
BER QAM 4 Berdasar Iterasi ... 62
BER QAM 4 ... 62
BER QAM 16 ... 63
BER QAM 32 ... 64
BER dengan panjang data ECG: 300 ... 65
BER dengan panjang data ECG: 600 ... 66
BER dengan panjang data ECG: 900 ... 66
BER dengan panjang data ECG: 1200 ... 67
BER dengan panjang data ECG: 1500 ... 68
Lampiran 2 Fungsi Proses_baca_data.m ... 68
Lampiran 3 Hasil Pembacaan Data ECG oleh Proses_baca_data.m ... 71
Lampiran 4 Fungsi Encoder ... 72
Lampiran 5 Pengiriman Data Sandi Melalui Kanal AWGN ... 73
Lampiran 7 Hasil Penerjemahan Data Biner menjadi Data ECG ... 82
Lampiran 8 Data ECG ... 82
Lampiran 9 Penghitungan Manual Encoder Menggunakan Excel ... 83
Turbo Code Decoder 1 ... 84
xvi
Daftar Gambar
Gambar 2.1 Rekaman Detak Jantung ... 6
Gambar 2.2 Konversi digital ke analog... 7
Gambar 2.3 Diagram Constellation ... 8
Gambar 2.4 Konsep Diagram Constellation ... 8
Gambar 2.5 Kanal AWGN ... 9
Gambar 2.6 Unjuk kerja turbo codes ... 12
Gambar 2.7 Turbo codes (a) dan (b) dengan rate ½ ... 13
Gambar 2.8 Turbo Codes dengan rate 1/3 ... 14
Gambar 2.9 Skema decoder ... 14
Gambar 2.10 Feedback loop ... 15
Gambar 3.1 Model Sistem... 20
Gambar 3.2 Diagram encoder dengan generator polinomial 15,13 ... 21
Gambar 3.3 Diagram decoder ... 22
Gambar 3.4 Diagram Use Case pengguna ... 23
Gambar 3.5 Diagram arus data... 29
Gambar 3.6 Diagram berjenjang ... 30
Gambar 3.7 DFD level 0 ... 31
Gambar 3.8 DFD level 1 proses 1 ... 31
Gambar 3.9 DFD level 1 proses 2 ... 32
Gambar 3.10 DFD level 1 proses 3 ... 32
Gambar 3.11 Halaman utama progam ... 33
Gambar 3.12 Tampilan fungsi Encode... 34
Gambar 3.13 Pengaturan kanal AWGN ... 35
Gambar 3.14 Tampilan fungsi Decode ... 36
Gambar 4.1 Tampilan utama program turbo codes. ... 40
Gambar 4.2 Tampilan Turbo Encoder ... 41
Gambar 4.3 Tampilan Cari lokasi Simpan data ... 41
Gambar 4.4 Notifikasi proses Encoding ... 41
Gambar 4.5 Tampilan handling Cari data ECG ... 42
Gambar 4.6 Tampilan pengaturan kanal AWGN. ... 42
Gambar 4.8 Tampilan Decoder Turbo Codes. ... 43
Gambar 4.9 Tampilan ECG setelah Encoding ... 44
Gambar 5.1 BER turbo codes yang dibentuk daari pengujian iterasi ... 45
Gambar 5.2 BER turbo codes dengan ukuran modulasi QAM 4. ... 46
Gambar 5.3 BER turbo codes dengan ukuran modulasi QAM 16 ... 47
Gambar 5.4 BER turbo codes dengan ukuran modulasi QAM 32 ... 47
Gambar 5.5 BER turbo codes dengan ukuran modulasi QAM: 64... 48
Gambar 5.6 BER turbo codes dengan panjang data ECG: 300 titik ... 49
Gambar 5.7 BER turbo codes dengan panjang data ECG: 600 titik ... 49
Gambar 5.8 BER turbo codes dengan panjang data ECG: 900 titik ... 50
Gambar 5.9 BER turbo codes dengan panjang data ECG: 1200 titik ... 50
Gambar 5.10 BER turbo codes dengan panjang data ECG: 1500 titik. ... 51
Gambar 5. 11 Hasil pembacaan data menggunakan fungsi dari physionet.org . .. 52
Gambar 5.12 Hasil pembacaan data ECG pada program turbo codes. ... 52
Gambar 5.13 Trellis diagram dari RSC ... 54
Gambar 5.14 Hasil encoding program turbo codes ... 55
xviii
Daftar Tabel
Tabel 4.1 Pengubahan data ECG menjadi data Biner ... 38
Tabel 4.2 Pengubah data “string” menjadi array ... 38
Tabel 4.3 Fungsi konversi data biner menjadi Data ECG ... 39
Tabel 4.4 Trellis diagram pada program... 83
Tabel 4.5 Data proses yang diproses oleh decoder ... 84
Tabel 4.6 Branch Matrix hasil persamaan (2.13) ... 84
Tabel 4.7 Penghitungan partial branch matrix ... 85
Tabel 4.8 Penghitungan forward branch matrix dari persamaan (2.11) ... 86
Tabel 4.9 Normalisasi Forward Branch Matrix ... 86
Tabel 4.10 Penghitungan Backward branch mrnggunakan persamaan (2.12) .... 87
Tabel 4.11 Normalisasi Backward branch ... 87
Tabel 4.12 Pengitungan LLR ... 88
Tabel 4.13 Hasil akhir pengitungan LLR ... 88
Tabel 4.14 Hasil L(extrinsic) dari DEC 1 ... 89
Tabel 4.15 Penghitungan LLR dari DEC 1 ... 89
Tabel 4.16 Hasil L(extrinsic) dari DEC 1 ... 89
Tabel 5.1 Perhitungan Encoder secara manual. ... 53
1
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi yang begitu pesat menuntut pengiriman data dengan kecepatan tinggi dan kinerja yang handal. Data yang dikirim dapat berupa data analog atau data digital, seperti audio, video, karakter atau teks. Sebagai contohnya adalah data rekam medis Electrocardiogram (ECG) atau Elektrokardiogram (EKG). ECG adalah rekaman pada permukaan tubuh aktivitas listrik yang dihasilkan oleh jantung [3].
Gangguan saluran merupakan permasalahan yang sering terjadi ketika komunikasi data, seperti derau (noise), pelemahan sinyal (fading), dan perusakan sinyal oleh sinyal lain (jamming) [1]. Selain permasalahan tersebut sering kali data rusak sebelum ditranmisikan [2]. Jika data yang dikirim mengalami gangguan saluran atau kerusaan data, maka di sisi penerima data dipastikan mengalami kesalahan (error) dan data yang diterima tidak valid. Jika data yang dikirim berupa data rekam medis (ECG atau EEG) maka akan menyebabkan salah diagnosa yang akan menimbulkan runtutan kesalahan, sehingga akan berakibat fatal terhadap pasien.
Dari permasalahan tersebut, suatu aplikasi atau metode dibutuhkan agar kesalahan (error) dapat dideteksi dan dikoreksi [2]. Dengan menggunakan metode penyandian digital, kesalahan dapat dideteksi dan dikoreksi. Penyandian digital mengubah data ke dalam bit-bit kode yang bertujuan untuk meningkatkan ketahanan sinyal terhadap terjadinya gangguan saluran.
Salah satu metode penyandian dalam error control coding, ialah dengan turbo codes. Turbo codes diperkenalkan oleh Berrou, Glavieux, dan
Thitimajshima pada tahun 1993 [4]. Turbo codes merupakan metode baru turunan dari sandi convolusional dengan unjuk kerja penghitungan Bit Error Rate (BER) mendekati Shanon limit
Turbo codes banyak dikembangkan untuk National Aeronautics and Space
Administration (NASA) dan European Space Agency (ESA) untuk komunikasi
untuk mengirim citra foto dari Mars [5]. Selain itu error control coding digunakan untuk komunikasi luar angkasa, transmisi data, penyimpanan data, komunikasi perangkat bergerak, file transfer, dan transmisi digital audio atau video [6].
Pengujian unjuk kerja turbo codes selama ini dilakukan dengan cara membuat simulasi dengan parameter-parameter tertentu. Parameter yang sering diuji adalah rasio noise (Eb/No), ukuran frame, code rate dan jumlah iterasi [7]. Pengujian unjuk kerja turbo codes mengunakan data ECG sudah pernah dilakukan menggunakan komunikasi satelit berbasis Code-Division Multiple-Acces (CDMA) [8]. Pengujian tersebut menggunakan kanal Additive White Gaussian Noise (AWGN) Unshadowed/shadowed. Selain itu, pengujian tersebut menggunakan code rate ½, jumlah bit yang dikirim 1280 bit, memori encoder yang digunakan
adalah 2. Iterasi yang digunakan adalah 1, 3, dan 5 dengan target BER 10-5.
Pada tugas akhir ini, pengujian turbo codes menggunakan program simulasi yang dibuat dengan menggunakan Matlab. Pengujian menggunakan data rekam medis dengan panjang data 300, 600, 900, 1200, dan 1500 titik. Data tersebut adalah data pecahan antara negatif 1 dan positif 1. Bilangan pecahan tidak dapat diprose oleh encoder. Untuk mengatasi hal tersebut, setiap titik data akan diubah menjadi data bulat kemudian akan dijadikan data biner basis 12 bit. Code rate yang digunakan adalah 1/3, memori encoder yang digunakan adalah 3. Iterasi yang digunakan adalah 1, 2, 3, 4, dan 5. Signal to Noise Ratio (SNR) yang digunakan adalah 0 sampai dengan 20 db.
1.2 Rumusan masalah
Dari latar belakang masalah, rumusan masalah yang didapat adalah: 1. Bagaimana mengoreksi data yang terkena noise?
2. Bagaimana program turbo codes mengoreksi data?
1.3 Tujuan
1.4 Manfaat
Hasil penelitian tugas akhir ini diharapkan dapat bermanfaat bagi mahasiswa dan dosen teknik informatika sebagai media pendukung pembelajaran untuk mata kuliah Teknik Koreksi Kesalahan Data.
Hasil penelitian tugas akhir ini diharapkan dapat bermanfaat sebagai referensi penelitian lanjutan teknik koreksi data mengenai error control coding terutama untuk pengkajian turbo code lebih lanjut.
1.5 Batasan Masalah
Batasan masalahan dari penelitian ini adalah:
1. Pengujian dilakukan dengan cara simulasi pada aplikasi encoding dan decoding pada Matlab.
2. Program simulasi turbo codes menggunakan personal computer (PC) tunggal. 3. Data ECG berasal dari MIT-BIH Arryhtymia Database [9].
4. Pengujian program turbo codes menggunakan data ECG dengan panjang data 300, 600, 900, 1200, dan 1500 sampel titik data.
5. Code rate turbo codes menggunakan rate=1/3. 6. SNR yang digunakan adalah 0 sampai 20 db. 7. Kanal yang digunakan adalah AWGN.
8. Modulasi yang digunakan adalah Quadrature amplitude modulation (QAM). 9. Algoritma decoding yang digunakan adalah Maximum a-posteriori
Probability (MAP) dengan menggunakan variasi iterasi 1, 2, 3, 4, dan 5.
10.Perhitungan BER dilakukan dengan menggunakan rumus dasar BER.
1.6 Metodologi Penelitian
Langkah-langkah yang digunakan dalam penelitian ini adalah: 1. Studi literatur
Mengumpukan dan mempelajari referensi yang berkaitan dan mendukung penelitian ini, seperti error control coding, tutorial turbo code, algoritma turbo code.
2. Perancangan
3. Pengujian program
Program akan diuji dengan memberi masukan data kecil atau berjumlah sedikit. Kemudian hasil simulasi dibandingkan dengan hasil perhitungan secara teoritis. Program akan dianggap benar jika kedua hasil perhitungan bernilai sama.
4. Simulasi dan pengumpulan data
Simulasi dan perancangan program turbo codes mengunakan bahasa pemprograman Matlab.
5. Analisis
Pada tahap ini, penulis akan melakukan analisis dari hasil pengujian. Analisis akan dilakukan dengan melakukan pengamatan dan menghitung nilai BER, kemudian akan menyimpukan unjuk kerja dari turbo codes.
1.7 Sistematika Penulisan
BAB I PENDAHULUAN
Bab ini berisi latar belakang masalah penulisan tugas akhir, rumusan masalah, tujuan penulisan, manfaat penulisan, batasan masalah, metodologi penelitian dan sistematika penulisan.
BAB II LANDASAN TEORI
Bab ini menjelaskan mengenai teori yang berkaitan dengan masalah tugas akhir ini.
BAB III PERANCANAN SIMULASI TURBO CODES
Bab III berisi perancangan prose dan tampilan program turbo codes yang akan dibuat.
BAB IV IMPLEMENTASI TURBO CODES
Bab ini berisi implementasi proses dan tampilan (GUI) program turbo codes.
BAB V HASIL PENGUJIAN DAN ANALISA
BAB VI KESIMPULAN DAN SARAN
6
2
BAB II
LANDASAN TEORI
2.1 ECG
Electrocardiogram (ECG) merupakan gambaran yang berupa grafik
berbagai variasi potensial listrik yang disebabkan oleh eksitasi (proses untuk menetral polaritas) yang dideteksi pada permukaan tubuh [10]. Elektrokardiogram normal merupakan gambaran skalar yang memperlihatkan defleksi (perubahan garis dasar yang diukur sebagai gelombang) yang disebabkan oleh aktifitas atrium (ruangan yang menjadi jalan masuk ke struktur atau organ lain) dan ventrikel (suatu ronga normal, kecil di dalam suatu organ seperti jantung dan otak) sebagai perubahan dalam magnitudo tegangan dan polaritas (positif dan negatif) terhadap waktu. Gambar 2.1 menunjukkan skema detak jantung.
Gambar 2.1 Rekaman Detak Jantung [11]
Defleksi pertama gelombang P pada Gambar 2.1 disebabkan oleh eksitasi kedua atrium. Defleksi QRS disebabkan oleh eksitasi kedua ventrikel, dan gelombang T terjadi karena pulihnya kedua ventrikel (repolarisasi).
2.2 Penyandian Kanal
Waveform coding merupakan penyandian yang mengubah bentuk gelombang menjadi bentuk gelombang yang “lebih baik”, sehingga mengurangi terjadinya galat (error). Sedangkan structured sequences merupakan penyandian yang mengubah urutan data menjadi urutan yang “lebih baik” yang mempunyai bit berlebih (redundant bit). Bit berlebih digunakan untuk mendeteksi dan mengkoreksi error.
Urutan terstruktur dibedakan menjadi dua kategori, yaitu: block codes dan convolutional code. Berdasarkan metode penyandian, penyandian kanal dibedakan
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. BEC merupakan metode sederhana yang menggunakan persyaratan sederhana pada koreksi galat. Di sisi lain, BEC membutuhkan komunikasi duplek yang menyebabkan keterlambatan transmisi.
Sedangkan FEC membutuhkan decoder yang digunakan untuk mengoreksi sejumlah kesalahan. Decoder harus mampu mengetahui posisi bit yang mengalami kesalahan. FEC hanya membutuhkan komunikasi simplek saja, FEC sangat menarik dalam komunikasi jaringan nirkabel. FEC digunakan untuk meningkatkan efisiensi energi dari sistem.
2.2.1 Konversi Digital ke Analog
Konversi digital ke analog adalah proses pengubahan salah satu karakteristik sinyal analog berdasarkan informasi data digital [2]. Gambar 2.2 menunjukkan hubungan antara informasi digital, proses digital ke analog modulasi, dan sinyal analog yang dihasilkan. Salah satu konversi digital ke analog adalah quadrature amplitude modulation (QAM).
2.2.1.1 Quadrature Amplitude Modulation
Quadrature amplitude modulation (QAM) merupakan gabungan
amplitude shift keying (ASK) dan phase shift keying (PSK) [2]. 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.3 menunjukkan beberapa skema QAM.
Gambar 2.3 Diagram Constellation
2.2.1.1.1 Constellation Diagram
Diagram konstelasi digunakan membantu menentukan amplitudo dan fase dari sebuah elemen sinyal, terutama ketika menggunakan dua operator (satu-fase dan satu quadrature) [2]. Dalam diagram konstelasi, jenis elemen sinyal diwakili sebagai titik. Bit atau kombinasi dari bit digambarkan disekitar titik konstelasi. sebelahnya. Diagram memiliki dua sumbu. Sumbu X berhubungan dengan carrier di fase, 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 dibutuhkan ditemukan pada diagram konstelasi. Gambar 2.4 menunjukkan konsep diagram konstelasi.
2.2.2 Additive white gausian Noise
Additive white gausian Noise (AWGN) merupakan model kanal sederhana
dan umum dalam suatu sistem komunikasi [12]. AWGN adalah sebuah statistik acak pada frekuensi yang lebar dengan spektrum kepadatan yang konstan.
2.2.3 White Noise
Spektrum rapat noise power dianggap memiliki nilai yang sama untuk setiap frekuensi (dalam pita komunikasi yang digunakan), yang dapat dimodelkan pada persamaan matematis sebagai beriku [1]:
𝑆𝑤(𝑓) =𝑵𝟐𝟎
dengan 𝑁0 adalah daya noise dan f adalah frekuensi.
2.2.4 Distribusi Gaussian
Pola kemunculan noise dianggap terdistribusi Gaussian dengan nilai rata-rata (mean) adalah nol dan varians tergantung rapat daya yang diperkirakan dari noise tersebut [1].
Penerima akan menterjemahkan sinyal informasi (bit) baseband dari sinyal carrier yang telah mengandung noise. Penambahan noise tersebut terjadi di dalam
kanal (saluran) yang dapat berupa kabel tembaga atau lintasan melalui udara tanpa halangan (line of sight).
Gambar 2.5 merupakan blok kanal AWGN. Pada kanal AWGN, zero-mean white Gaussian noise ditambahkan pada sinyal transmisi s(t), sehingga
sinyal yang diterima r(t) berbentuk sebagai berikut:
𝑟 𝑡 = 𝑠 𝑡 +𝑛(𝑡)
s(t) adalah sinyal atau data yang dihasilkan encoder, n(t) adalah zero-mean white
Gaussian noise dengan daya No/2, dan r(t) adalah data atau sinyal yang
mengalami perubahan karena derau. Kanal AWGN merupakan penambahan data atau sinyal s(t) dan derau n(t). Derau AWGN dihasilkan oleh thermal noise, shot noise, dan radiasi sinar matahari.
2.3 Turbo Codes
Salah satu turunan sandi konvolusi adalah turbo codes. Turbo codes pertama kali diperkenalkan oleh Berrou, Glavieux, dan Thitimajshima pada tahun 1993 [4]. Turbo codes merupakan penggabungan dari dua atau lebih Recursive Systematic Convolutional (RSC) dan decoder yang terkait, menggunakan aturan
decoding umpan balik (feedback loop), diimplementasikan sebagai saluran
decoder yang identik. Detail RSC dan feedback loop dapat dilihat pada bagian yang selanjutnya.
Turbo codes yang diajukan oleh Berrou menggunakan code rate (R) ½, generator polinomial g1=37 dan g2=21, dan interleaving 256x256. Code rate merupakan perbandingan antara bit yang masuk ke dalam encoder dan bit yang dihasilkan encoder. Turbo codes tersebut menghasilkan BER 10-5 setelah iterasi ke 18 dengan Eb/N0 0.7 dB, mendekati batas teori yang diprediksi Shanon. Detail
interleaving dan generator polinomial dapat dilihat pada bagian yang selanjutnya.
Penggunaan turbo codes sangat banyak ditemukan dalam kehidupan sehari-hari seperti [5] [13]:
1. Komunikasi perangkat bergerak
Turbo codes dikembangkan untuk komunikasi perangkat bergerak. Turbo
codes merupakan salah satu pilihan FEC dalam Universal Mobile Telecommunications System (UMTS) generasi ketiga. Perkembangan turbo codes
banyak dilakukan pada desain interleavers dengan berbagai macam panjang ukuran interleavers. Aplikasi layanan suara yang mengharuskan efisiensi latency dan untuk layanan data yang harus menyediakan BER yang sangat rendah.
Turbo codes digunakan dalam Wideband Code-Division Multiple-Access
(W-CDMA). W-CDMA merupakan generasi penerus dari second generation (2G) yang bebasis pada komunikasi Global System for Mobile Communication (GSM) Time Division Multiple-Access (TDMA). W-CDMA didukung oleh Third Generation Partnership Project (3GPP)
Selain itu, turbo codes digunakan untuk komunikasi CDMA2000. CDMA2000 mengalami perkembangan dari 1xRTT (sering disebut 1X), 1xEV-DO (baik 1xEV-1xEV-DO revisi A, 1xEV-1xEV-DO revisi B fase 1 dan fase 2, dan 1xEV-1xEV-DO revisi C), dan 1xEV-DV. CDMA2000 didukung oleh Third Generation Partnership Project 2 (3GPP2).
2. Komunikasi Ruang Angkasa
Jet Propulsion Laboratory (JPL) melakukan penelitian untuk NASA, mewujudkan potensi turbo codes digunakan dalam misi Pathfinder tahun 1997 untuk mengirimkan foto-foto dari Mars ke bumi.
3. Komunikasi Satelit
Turbo codes telah dimasukkan ke dalam standar komunikasi satelit. Turbo
code digunakan untuk Digital Video Broadcasting Return Channel via Satellite
(DVB-RCS). DVB-RCS diadopsi pada tahun 2001 untuk mengembalikan kanal distribusi satelit.
Turbo code digunakan untuk Digital Video Broadcasting via Satellite
Second Generation (DVB-S2). DVB-S2 digunakan digunakan dalam komuniksi satelit untuk memberikan layanan siaran (contoh televisi digital). Selain itu DVB-S2 digunakan untuk layana interaktif (contoh layanan internet).
4. Digital Signal Processor
Algoritma turbo codes dapat diimplementasikan pada digital signal processor (DSP), tetapi perangkat DSP saat ini tidak bisa beroperasi pada kecepatan data lebih tinggi dari beberapa puluh kilobit per detik. Pendekatan yang lebih menjanjikan adalah dirancangnya perangkat khusus application specific integrated circuit (ASIC/IC), atau field programmable gate arrays (FPGA).
2.3.1 Parameter Pengujian Unjuk Kerja Turbo Codes
Unjuk kerja program turbo codes dapat diketahui dengan cara menghitung nilai BER. BER dihitung dengan menggunakan beberapa parameter di antaranya energi rasio noise bit terhadap (Eb/No), ukuran frame, code rate, dan jumlah iterasi [7]. Gambar 2.6 menunjukkan unjuk kerja turbo codes berdasar code rate dan jumlah iterasi (m). Semakin kecil code rate, unjuk kerja turbo codes akan semakin bagus.
Gambar 2.6 Unjuk kerja turbo codes [14]
2.4 Recursive Systematic Convolutional Encoder
Turbo codes menggunakan lebih dari satu encoder Recursive Systematic Convolutional Encoder (RSC) yang dipisahkan oleh interleaver [4]. Encoder yang dipakai tidak harus identik satu dengan yang lainya, tetapi pada praktiknya encoder yang digunakan dalam progam selalu identik.
2.4.1 Representasi Generator
Gambar 2.7 Turbo codes (a) dan (b) dengan rate ½ [4] Keterangan gambar :
: Modulo 2 bilangan biner
: Register
: Arah arus data
Xk,Yk : Keluaran RSC
Gambar 2.7 merupakan diagram blok turbo codes dengan code rate R = ½, g1=[111], dan g2=[101] [4]. G1 dan g2 merupakan dua generator polinomial encoder, dinyatakan dalam bentuk oktal.
2.5 Turbo Encoder
Gambar 2.8 menunjukkan aliran data yang terjadi pada encoder [4]. Aliran data (dk pada waktu k) langsung menuju RSC encoder C1 yang pertama, setelah itu
interleaving akan memberi masukan (dn pada waktu k) menuju RSC encoder C2
yang kedua. Kedua encoder tersebut tidak harus selalu sama atau tidak identik satu dengan yang lainya. Data dk secara sistematis dikirim sebagai simbol Xk,
redundansi Y1k dan Y2k dihasilkan oleh C1 dan C2 untuk menyempurnakan
Gambar 2.8 Turbo Codes dengan rate 1/3 [4]
2.5.1 Interleaving
Interleaver merupakan matrik M*M berbentuk persegi dengan panjang M
(matrik>=32), umumnya terdiri dari bilangan biner. Semua data ditulis secara mendatar dan dibaca secara menurun. Matrik diisi dengan “0”, kecuali untuk beberapa matrik akan diisi dengan “1”. Matrik tersebut menyatakan beberapa pola yang akan mengarah ke codeword.
2.6 Turbo Decoder
Gambar 2.9 memperlihatkan diagram blok decoder yang terdiri dari dua decoder dasar decoder 1(DEC1) dan decoder 2(DEC2) yang disusun secara serial.
Decoder dasar DEC1 yang pertama akan dihubungkan dengan encoder C1 dan
menghasilkan data dk.
Gambar 2.9 Skema decoder [4]
informasi Yk akan mengalami demultipex dan dikirim ke decoder DEC1 ketika
diberikan ke encoder (C1 atau C2) dan tidak mengeluarkan informasi, masukan decoder yang sama akan diatur ulang menjadi “nol”. Hal tersebut dilakukan oleh blok demux/insertion.
Algoritma Viterbi merupakan metode optimal untuk decoding yang mempunyai peluang kesalahan paling kecil untuk sandi konvolusi. Sayangnya, alogaritma ini tidak mampu untuk menghasilkan keluaran secara langsung untuk setiap bit yang diproses oleh decoder.
2.6.1 Skema Decoding
Skema decoding diwakili Gambar 2.9. Pada diagram blok tersebut, decoder DEC1 menghasilkan bit A1(dk) dari setiap bit yang ditransmisikan dk
melalui urutan {𝑥𝑘} dan {𝑦𝑘}, kemudian decoder DEC2 melakukan decoding
pada bit {dk} dari bit A1(dk) dan {𝑦2𝑘}. Decoder DEC1 menggunakan modifikasi
algoritma Bahl-Cocke-Jelinek-Raviv (BCJR) dan decoder DEC2 menggunakan
algoritma VITERBI. Aturan decoding yang umum tidak optimal karena decoder yang pertama hanya menggunakan sebagian kecil dari informasi bit yang tersedia. oleh karena itu, feedback loop digunakan untuk meningkatkan kinerja decoder.
2.6.2 Decoding dengan Menggunakan Feedback Loop
Gambar 2.10 merupakan skema decoding menggunakan bit W2k yang
dihasilkan oleh decoder DEC2 dalam feedback loop. Untuk mempermudah,
diagram feedback loop tidak memperhitungkan penundaan (delay) yang digunakan oleh decoder DEC1, DEC2, dan interleaving.
2.7 Algoritma Maximum A-Posteriori Probability
Turbo codes diterjemahkan dengan menggunakan metode Maximum Likelihood Detection (MLD) [15]. MDL yang digunakan turbo codes disebut Maximum a-posteriori Probability (MAP). Algoritma ini diperkenalkan pertama kali pada BCJR. Algoritma MAP sangat terkait dengan algoritma lain seperti Hidden markov model, Baum-Welch algorithm, Forward-Backward algorithm. MAP merupakan lagoritma yang sangat komplek, sulit untuk dimengerti dan sulit untuk digambarkan.
2.7.1 Log-Likelihood Ratio
MAP menggunakan minimum probability of error untuk menghitung a priori probabilities (APP) [15]. Persamaan (2.1) merupakan Persamaan umum dalam MAP untuk APP sebagai berikut :
𝐿𝑢𝑘 = 𝑙𝑜𝑔𝑃𝑃((𝑢𝑢𝑘=+1)
𝑘=−1) (2.1) Nilai uk +1 dan -1 volt merupakan representasi 0 dan 1 bit. Persamaan tersebut
sering digunakan pada error correction coding, disebut sebagai log likelihood ratio(LLR).
𝐿𝑢𝑘 = 𝑙𝑜𝑔𝑃(𝑢𝑘=+1|𝑦1
𝑁)
𝑃(𝑢𝑘=−1|𝑦1𝑁) (2.2) Persamaan (2.2) meruakan proses decoding bit uk pada saat k pada saat bit N .
Persamaan tersebut dapat dirumuskan kembali menggunakan aturan Baye’s peraturan A. Persamaan (2.4) meliputi probabilitas bit yang diterima dari kanal pengiriman. 𝑠′ merupakan state awal trellis. s merupakan state akhir trellis. Sedangkan 𝑦1𝑁 merupakan bit masuk decoder. Proses decoding akan mengikuti trellis diagram yang terbentuk oleh encoder. Persamaan (2.4) akan dimasukkan kedalam persamaan (2.3) untuk mendapatkan LLR dari uk. Sehingga Persamaan (2.3) akan
𝐿𝑢𝑘 = 𝑙𝑜𝑔𝑃 Sehingga P pada persamaan (2.5) menjadi :
𝑃 𝑠′,𝑠,𝑦
1𝑁 =𝑃(𝑠′,𝑠,𝑦𝑝,𝑦𝑘,𝑦𝑓) (2.6)
𝑦𝑝 = merupakan bit sebelum bit proses 𝑦𝑘 = merupakan bit proses
𝑦𝑓 = merupakan bit setelah bit proses
Persamaan (2.6) akan ditulis kembali dengan dengan peraturan Baye’s berikut
𝑃 𝐴,𝐵|𝐶 = 𝑃 𝐴|𝐶 𝑃 𝐵|𝐵,𝐶 𝑃 𝑠′,𝑠,𝑦 =𝑃 𝑠′,𝑠,𝑦𝑝,𝑦𝑘,𝑦𝑓
= 𝑃 𝑦𝑓|𝑠′,𝑠,𝑦𝑝,𝑦𝑘 𝑃 𝑠′,𝑠,𝑦𝑝,𝑦𝑘 (2.7) Persamaan (2.7) dapat disederhanakan menjadi :
𝑃 𝑠′,𝑠,𝑦 =𝑃 𝑦
𝑓|𝑠 𝑃 𝑠′,𝑠,𝑦𝑝,𝑦𝑘 (2.8)
Persamaan (2.8) akan ditulis kembali dengan dengan peraturan Baye’s berikut
𝑃 𝐴,𝐵 =𝑃 𝐴,𝐵 𝑃 𝐵 =𝑃 𝐵|𝐴 𝑃 𝐴 𝑃 𝑠′,𝑠,𝑦𝑝,𝑦𝑘 =𝑃 𝑠,𝑦𝑘|𝑠′𝑦𝑝 𝑃 𝑠′,𝑦𝑘
𝑃 𝑠′,𝑠,𝑦 =𝑃 𝑦
𝑓|𝑠 𝑃 𝑠,𝑦𝑘|𝑠′,𝑦𝑝 𝑃 𝑠′,𝑦𝑝 (2.9)
Persamaan (2.9) akan disingkat menjadi
Persamaan (2.9) akan dimasukkan kelalam persamaan (1.5) sehingga akan
Untuk menghitung forward metric menggunkanan persamaan berikut 𝑎𝑘 𝑠′ = 𝑠′,𝑠,𝑦𝑝,𝑦𝑘
𝑠
= 𝑎𝑠′ 𝑘−𝑠 𝑠′ 𝛾 𝑠′,𝑠 (2.11) Untuk menghitung backward metrik menggunkanan persamaan berikut
𝛽𝑘−1 𝑠′ = 𝛽𝑠′ 𝑘 𝑠 𝛾 𝑠′,𝑠 (2.12) Untuk menghitung tranformasi metrik menggunkanan persamaan berikut
𝛾 𝑠′,𝑠 = 𝑒𝑥𝑝 𝑞𝑖=2(𝐿𝑐 ∗0.5∗ 𝑦𝑘𝑖,𝑝∗ 𝑐𝑘𝑖) (2.13)
𝛾 𝑠′,𝑠 = 𝑒𝑥𝑝 𝑞𝑖=2(0.5∗ 𝑐𝑘𝑖) (2.14)
2.8 Bit Error Rate
Salah satu perubahan sistem komunikasi digital modern pada teknik komunikasi radio adalah kebutuhan kinerja end-to-end [16]. Ukuran kinerja dihitung dari bit error rate (BER). BER merupakan kuantifikasi keandalan seluruh sistem radio dari "bit masuk" sampai "bit keluar". BER merupakan konsep-sederhana definisinya adalah:
𝐵𝐸𝑅 =𝑗𝑢𝑚𝑙𝑎 𝑒𝑟𝑟𝑜𝑟
𝑡𝑜𝑡𝑎𝑙𝑏𝑖𝑡 (2.14)
Perhitungan nilai BER pada persamaan di atas melibatkan dua buah variabel yaitu jumlah error dan total jumlah bit suatu data. Nilai BER berbanding terbalik dengan error. Jika error semakin besar, maka nilai BER akan besar. Setiap analisis mendalam dari proses yang mempengaruhi BER memerlukan analisis matematis yang signifikan.
2.8.1 Noise dan BER
Noise (derau) merupakan faktor utama yang sangat mempengaruhi kinerja
2.8.2 Kuantisasi Kesalahan
Kesalahan kuantisasi juga mengurangi kinerja BER, melalui rekonstruksi yang salah atau ambigu dari gelombang digital [16]. Kesalahan ini terutama keakurasian dari proses konversi digital ke analog dan analog ke digital, dan terkait dengan jumlah bit yang digunakan pada perangkat. Keakuratan proses modulasi/demodulasi analog, efek penyaringan pada sinyal, dan derau bandwidth juga mempengaruhi kesalahan kuantisasi.
2.8.3 Signal to Noise Ratio
Signal to Noise Ratio (SNR) merupakan perbandingan kekuatan rata-rata
sinyal dengan kekuatan rata-rata noise [2]. SNR digunakan untuk mengukur tingkat unjuk kerja dan efek dari faktor noise. Selain itu, SNR digunakan untuk mengevaluasi unjuk kerja dari karakteristik keluaran. Jika semakin tinggi daya sinyal yang digunakan, maka kerugian (error) akan semakin mengecil. Persamaan berikut merupakan ukuran standar kinerja pada berbagai titik dalam suatu link.
𝑆𝑁𝑅=𝑠𝑖𝑔𝑛𝑎𝑙 𝑝𝑜𝑤𝑒𝑟
𝑛𝑜𝑖𝑠𝑒 𝑝𝑜𝑤𝑒𝑟 (2.15)
Sinyal dapat berupa sebuah sinyal informasi, bentuk gelombang baseband, atau modulated carrier [1]. SNR dapat mengalami penurunan dalam dua cara antara lain:
1. Melalui penurunan kekuatan sinyal yang diinginkan
2. Melalui peningkatan kekuatan noise sinyal yang mengganggu.
Degradasi atau penurunan tersebut dapat menyebabkan kerugian dan noise. 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] [2]:
1. Thermal noise yang disebabkan oleh nilai suhu tertentu. 2. Noise Induksi disebabkan oleh induksi motor.
3. Impulse noise disebabkan oleh sinyal dengan energy yang besar dalam waktu yang siangkat.
20
3
BAB III
PERANCANGAN
3.1 Analisis Sistem
3.1.1 Gambaran Sistem yang Dikembangkan
Progam yang akan dikembangkan adalah program turbo codes, tujuan program dibuat adalah untuk encoding dan decoding data ECG. Fasilitas utama program turbo codes adalah encoding data ECG dan decoding data sandi menjadi data ECG.
3.1.2 Analisis Kebutuhan Sistem
Program turbo codes membutuhkan file berformat “*.dat”, “*.hea”, dan “.atr”. File “*.dat” merupakan data ECG yang masih berupa data unsigned integer. File tersebut akan diterjemahkan program turbo codes menjadi data biner
(data yang terdiri dari angka 0 dan 1).
3.2 Perancangan Sistem
Diagram model sistem yang akan dikembangkan ditunjukkan pada Gambar 3.1:
Gambar 3.1 Model Sistem
SNR yang digunakan adalah nilai acak antara 0 sampai 5. Setelah itu progam dapat menerjemahkan kembali data sandi ke dalam betuk data biner menggunakan decoder. Decoder yang digunakan menggunakan iterasi 1, 2, 3, 4, dan 5.
kemudian data biner akan diubah menjadi data ECG kembali.
3.2.1 Perancangan Encoder Turbo Codes
Gambar 3.2 merupakan diagram encoder turbo codes. Diagram tersebut menggunakan code rate R=1/3 dengan generator polinomial G1{111} dan G2{1101}. Program yang dibuat diharapkan mempunyai unjuk kerja yang bagus, mendekati batas teori yang diprediksi oleh Shannon.
Data dk merupakan data biner yang diterjemahkan dari file ECG yang
dibaca. Bit dk akan masuk ke dalam ke dalam register geser. Register geser
dibentuk berdasarkan generator polinomial. Ketika bit dalam register geser mulai bergerak, bit register R1 akan mengisi register R2, bit register R2 akan mengisi R3. Data dk dengan nilai R1, R2, dan R3 akan dipindahkan dengan modulo dua
menghasilkan bit M1. Bit M1 akan mengisi register R1. Pada saat bersamaan, Bit M1, nilai R1, dan R3 akan dipindahkan dengan modulo dua menghasilkan bit yk1. Arus data pada RSC2 hampir sama dengan RSC1, yang membedakan adalah data
dk akan masuk ke dalam interleaver. Data yang keluar dari interleaver akan
diproses pada RSC2.
R1 R2 R3
Interleaver dk
yk1
M1
R1 R2 R3
M1
yk2
Gambar 3.2 Diagram encoder dengan generator polinomial 15,13
Keterangan gambar :
: Modulo bilangan biner
M1 : bit hasil modulo dua
: Register
: Arah arus data
yk1,yk2 : Keluaran RSC
3.2.2 Perancangan Decoder Turbo Codes
Gambar 3.3 merupakan diagram decoder turbo codes yang akan digunakan pada program turbo codes. Data yang telah disandikan oleh encoder akan diterjemahkan oleh decoder menjadi data integer. Data dk dan yk1 yang
dihasilkan oleh encoder secara bersamaan akan masuk ke dalam decoder 1. Decoder 1 akan menghasilkan bit, bit tersebut akan dikirim ke interleaver.
Interleaver menghasilkan bit yang akan diproses bersamaan dengan bit yk2 yang
masuk ke dalam decoder 2. Bit yang dihasikan oleh decoder 2 akan diproses oleh deinterleaving dan dimasukkan kembali ke dalam decoder 1. Bit dari decoder 2
akan diproses oleh deinterleaving dan diterjemahkan sebagai keluaran.
Decoder 1 Interleaver Decoder 2
deinterleaving
deinterleaving
output dk
yk2
yk1
Gambar 3.3 Diagram decoder
Keterangan gambar :
: arah arus data
yk1,yk2 : keluaran RSC sebagai masukan decode
3.2.3 Diagram Use Case
Gambar 3.4 merupakan use case pengguna pada program turbo codes. Program turbo codes yang akan dibuat mempunyai dua use case yaitu: encode data ECG dan decode data sandi. Masing-masing use case akan dijelaskan pada narasi use case di bawah.
Pengguna
Program Turbo codes
Encoding
Decoding Lihat data ECG Kanal AWGN
<<Depend on>> <<Depend on>>
Gambar 3.4 Diagram Use Case pengguna
3.2.4 Narasi Use Case
Use case encode data ECG dan decode data sandi merupakan deskripsi
langkah kerja (skenario utama dan skenario alternatif) yang akan dilakukan pengguna terhadap program turbo codes. Langkah kerja tersebut meliputi aksi pengguna dan reaksi program terhadap reaksi pengguna.
Nama Use Case : Encodedata
Aktor : Pengguna
Kondiai awal : Pengguna pada tampilan utama program turbo codes.
Deskripsi : Use case ini digunakan pengguna untuk memasukkan
data ECG, data akan diubah menjadi data yang
Tabel 3.1 sampai Tabel 3.3 merupakan skenario utama dan skenario alternatif yang akan digunakan pada proses encode data. Tabel tersebut akan menggambarkan aksi yang dilakukan pengguna dan reaksi yang diberikan program kepada pengguna ketika melakukan encoding data ECG.
Tabel 3.1 Skenario utama Encode data
Aksi Aktor Reaksi Sistem
1. Pengguna memilih dropdown “Panjang data ECG”.
2. Pengguna memilih tombol “Cari data ECG”.
3. Sistem menampilkan dialog open file
4. Pengguna mencari dan memilih file ECG/EEG
5. Sistem melakukan pembacaan data ECG
6. Sistem menampilkan data ECG dalam bentuk grafik
7. Pengguna memilih tombol “Encode data”
8. Sistem melakukan konversi data ke dalam data biner
9. Sistem melakukan penyandian terhadap data biner.
10.Sistem menyimpan data penyandian Tabel 3.2 Skenario alternatif 1 Encode data
Aksi Aktor Reaksi Sistem
3. Pengguna memilih tombol “batal”
Tabel 3.3 Skenario alternatif 2 Encode data
Aksi Aktor Reaksi Sistem
3. Pengguna mencari dan memilih file selain data ECG.
4. Sistem menampilkan notifikasi bahwa data yang dipilih bukan data ECG atau data yang salah
Nama Use Case : Kanal AWGN
Aktor : Pengguna
Kondiai awal : Pengguna selesai melakukan encode data, kemudian
program menampilkan tampilan untuk pengaturan
kanal AWGN
Deskripsi : Use case ini digunakan pengguna untuk mengatur nilai
SNR
Tabel 3.4 sampai Tabel 3.6 merupakan skenario yang digunakan pada proses membangkit derau. Tabel tersebut akan menggambarkan aksi yang dilakukan pengguna dan reaksi yang diberikan program kepada pengguna ketika melakukan pembangkitan derau dengan SNR tertentu.
Tabel 3.4 Skenario utama kanal AWGN
Aksi Aktor Reaksi Sistem
1. Pengguna memilih tombol drop down list tipe modulator.
2. Pengguna memilih tombol drop down list SNR dan memilih nilai SNR
3. Pengguna memilih tombol “Kirim Data”
Tabel 3.5 Skenario alternatif 1 kanal AWGN
Aksi Aktor Reaksi Sistem
1. Pengguna memilih tombol “Tidak” pada notifikasi melanjutkan proses decoding
2. Sistem kembali ketampilan kanal AWGN.
Tabel 3.6 Skenario alternatif 2 kanal AWGN
Aksi Aktor Reaksi Sistem
1. Pengguna memilih tombol “Proses Encoding”
2. Sistem menampilkan GUI Encoding.
Nama Use Case : Decodedata
Aktor : Pengguna
Kondiai awal : Pengguna pada tampilan Decoding.
Deskripsi : Use case ini digunakan pengguna untuk memasukkan
data sandi yang akan di terjemahkan.
Tabel 3.7 sampai Tabel 3.13 merupakan skenario utama dan alternatif yang akan digunakan pada proses decode data. Tabel tersebut akan menggambarkan aksi yang dilakukan pengguna dan reaksi yang diberikan program kepada pengguna ketika melakukan decoding data sandi.
Tabel 3.7 Skenario utama decode data
Aksi Aktor Reaksi Sistem
1. Pengguna memilih tombol “Cari data Sandi”.
2. Sistem menampilkan dialog open file
Tabel 3.7 (Lanjutan) Skenario utama decode data
Aksi Aktor Reaksi Sistem
1. Pengguna memilih dropdown list iterasi decoder.
2. Pengguna mencari lokasi Simpan file “.xls”
3. Pengguna memilih tombol “Decode data”.
4. Sistem melakukan proses decoding.
5. Sistem mengubah data biner hasil decoding menjadi data ECG kembali.
6. Sistem menampilkan grafik BER. 7. Sistem menampilkan notifikasi
penimpanan BER berhasil. Tabel 3.8 Skenario alternatif 1 decode data
Aksi Aktor Reaksi Sistem
3. Pengguna memilih tombol “batal”
4. Sistem menampilkan tampilan utama program.
Tabel 3.9 Skenario alternatif 2 decode data
Aksi Aktor Reaksi Sistem
3. Pengguna mencari dan memilih file selain data sandi.
Tabel 3.10 Skenario alternatif 3 decode data
Aksi Aktor Reaksi Sistem
4. Pengguna belum memilih iterasi decoder
5. Sistem menampilkan notifikasi bahwa iterasi decoder belum terisi. Tabel 3.11 Skenario alternatif 4 decode data
Aksi Aktor Reaksi Sistem
4. Pengguna belum memilih lokasi penyimpanan file “.xls”
5. Sistem menampilkan notifikasi bahwa lokasi penyimpanan file “.xls” belum terisi.
Tabel 3.12 Skenario alternatif 5 decode data
Aksi Aktor Reaksi Sistem
6. Pengguna belum melakukan proses encoding
7. Sistem menampilkan notifikasi bahwa pengguna belum melakukan proses encoding
Tabel 3.13 Skenario alternatif 6 decode data
Aksi Aktor Reaksi Sistem
11.Pengguna memilih tombol pengulangan “Encoder”/”AWGN”
12.Sistem menampilkan GUI sesuai pilihan pengguna
Nama Use Case : Lihat data ECG
Aktor : Pengguna
Deskripsi : Use case ini digunakan pengguna untuk melihat dan
membandingkan data ECG sebelum encoding dan sesudah
decoding
Tabel 3.14 sampai Tabel 3.15 merupakan skenario utama dan alternatif yang akan digunakan pada proses lihat data ECG. Tabel tersebut akan menggambarkan aksi yang dilakukan pengguna dan reaksi yang diberikan program kepada pengguna ketika melakukan lihat data ECG.
Tabel 3.14 Skenario utama lihat data ECG
Aksi Aktor Reaksi Sistem
1. Pengguna memilih dropdown list ECG pada SNR tertentu
2. Sistem menampilkan ECG sebelum encoding dan ECG setelah decoding
Tabel 3.15 Skenario alternatif lihat data ECG
Aksi Aktor Reaksi Sistem
3. Pengguna belum melakukan decoding
4. Sistem menampilkan notifikasi bahwa belum melakukan decoding
3.2.5 Diagram Konteks
Gambar 3.5 merupakan interaksi antara pengguna dan program turbo codes. Program menerima masukan data ECG dari pengguna. Setelah proses
encoding dan decoding, program memberikan luaran berupa data ECG kepada
pengguna.
3.2.6 Diagram Dekomposisi (Diagram Berjenjang)
Gambar 3.6 menjabarkan proses-proses yang dikerjakan oleh program turbo codes. Program turbo codes mempunyai dua proses utama yaitu encode dan
decode. Proses encode mempunyai sub-proses mengubah data ECG menjadi data
File data
Gambar 3.8 merupakan detail proses encoding. Progam menerima masukan berupa data ECG, kemudian data tersebut akan dibaca proses 1.1 kemudian akan disandikan oleh proses 1.2. Data yang sudah disandikan akan disimpan ke dalam bentuk file.
File data
Gambar 3.8 DFD level 1 proses 1
3.2.9 DFD Level 1 Proses 2
Pengguna
Gambar 3.9 DFD level 1 proses 2
3.2.10 DFD Level 1 Proses 3
Gambar 3.10 merupakan detail proses decoding. Progam menerima masukan berupa data sandi, kemudian data tersebut akan dibaca proses 2.1. pembacaan data akan menerjemahkan data sandi (data biner) menjadi data integer. Data integer diproses proses 2.2 yang akan mengubah data integer menjadi unsigned-integer dan akan ditulis ke dalam file menjadi data ECG kembali.
File data ECG
Gambar 3.10 DFD level 1 proses 3
3.3 Desain Antarmuka Pengguna
Antarmuka pengguna digunakan oleh pengguna untuk memudahkan proses encoder dan decoder. Progam mempunyai fungsi utama yaitu encoder dan decoder.
3.3.1 Halaman Utama Program
Gambar 3.11 dipilih, program akan menampilkan halaman “Decode Data” seperti pada Gambar 3.14.
Gambar 3.11 Halaman utama progam
3.3.2 Tampilan Open File
Tampilan open file merupakan tampilan yang disediakan oleh program. Tampilan open file digunakan untuk mempermudah pencarian file, baik file ECG maupun file sandi. Tampilan open file pada proses encoding digunakan untuk mencari file bertipe “*.dat”, sedangkan pada proses decoding digunakan untuk mencari yang berisi data sandi. Tampilan open file akan menggunakan fungsi “uigetfile” pada matlab.
3.3.3 Halaman Encode
dengan keinginan. Setelah file dipilih oleh pengguna, program melakukan proses pengubahan data ECG menjadi data biner dan memapilkan grafik ECG sesuai panjang yang dipilh pengguna.“Encode Data” digunakan untuk memulai proses encoding data ECG menjadi data sandi. Ketika tombol “Encode Data” dipilih, progam akan membaca file data “*.dat”, file atribut “.atr”, dan file header ”.hea” kemudian akan menampilkan isi ECG ke dalam grafik. “Batal” digunakan untuk mengakiri proses encoding dan akan mengembalikan tampilan ke halaman utama.
Gambar 3.12 Tampilan fungsi Encode
3.3.4 Halaman Pengaturan kanal AWGN
pengiriman data dengan tipe modulasi, ukuran modulasi dan SNR yang telah dipilih pengguna. Setelah proses pada AWGN selesai, program akan menampilkan sinyal Constellation pada kanal.
Gambar 3.13 Pengaturan kanal AWGN
3.3.5 Halaman Decode
Halaman decode digunakan untuk proses decoding data sandi menjadi data ECG. Halaman decode mempunyai beberapa tombol yaitu “Cari data Sandi”, “jumlah iterasi”, “Cari lokasi”, dan “Decode Data” ditunjukkan pada Gambar 3.14. “Cari data Sandi” digunakan untuk mencari file yang berisi data sandi, dengan menggunakan fasilitas open file. “Cari lokasi” digunakan untuk menyimpan file data ECG yang dihasilkan program. Lokasi penyimpanan diisi oleh program secara otomatis, lokasi penyimpanan sama dengan lokasi file sandi yang dibaca program. Selain itu, pengguna dapat mengubah lokasi penyimpanan file dapat sesuai dengan keinginan. Sedangkan “jumlah iterasi” digunakan untuk memilih iterasi yang akan digunakan decoder.
37
4
BAB IV
IMPLEMENTASI SISTEM
Bab IV berisi implementasi sistem dibuat berdasar perancangan sistem pada Bab III. Spesifikasi perangkat lunak yang digunakan untuk melakukan implementasi simulasi ini sebagai berikut :
1. Sistem operasi : Windows 7 32-bit 2. Matlab R2010a (Versi : 7.10.0.499)
4.1 Implementasi Proses
4.1.1 Proses Pembacaan Data ECG
Proses pembacaan data ECG adalah proses konversi data unsigned integer menjadi data array bertipe integer. Program membutuhkan file “*.dat”, file “*.hea”, dan file “*.atr”. File “*.dat” merupakan file yang berisi sinyal ECG dalam bentuk digital. File “*.hea” merupakan file yang berisi teks singkat yang digunakan untuk menggambarkan sinyal (berisi nama atau URL dari file ”*.dat”, format penyimpanan, jumlah dan jenis sinyal, frekuensi sampling, data kalibrasi, karakteristik, durasi rekaman dan waktu mulai) [17]. File “*.atr” merupakan file yang berisi penjelasan gelombang QRS (detak jangtung), menunjukkan lokasi (waktu terjadi), dan jenis ECG (normal, ventricular ectopic, dll), serta penjelasan lain yang menunjukkan perubahan irama detak jantung dan kualitas sinyal.
Data ECG yang digunakan untuk pengujian adalah data ECG yang diunduh dari MIT-BIH Arryhtymia Database [9]. Data ECG akan dibaca dengan fungsi yang diunduh dari physionet.org [18]. Fungsi program pembacaan data ECG dinamakan Proses_baca_data. Kode program Proses_baca_data dilampirkan pada lampiran 2, sedangkan hasil pembacaan data dilampirkan pada lampiran 3.
4.1.2 Penyandian Data ECG
Proses penyandian adalah proses pengubahan data biner sesuai dengan rate encoder. Fungsi program dinamakan encoder. Fungsi encoder mempunyai
4.1.2.1 Proses Pengubahan Data ECG Menjadi Data Biner
Tabel 4.1 merupakan kode program yang digunakan untuk mengubah data ECG menjadi data biner. Setiap satu titik data ECG akan diubah menjadi 12 data biner. Hasil konversi data ECG menjadi data biner akan bertipe data “string”.
Tabel 4.1 Pengubahan data ECG menjadi data Biner
function [dataBin]= baca_dataECG() load ECGDat;
dataBiner='';
for i=1:size(DataECG(:,1))
dataBiner=[dataBiner,dec2bin(DataECG(i,1),12)];
end
dataBin=dataBiner;
4.1.2.2 Random Interleaver
Random interleaver digunakan untuk mengacak pola atau urutan data
biner yang dihasilkan oleh pengubah data ECG menjadi data biner. Interleaver yang digunakan merupakan fungsi yang tersedia pada Matlab. Sebelum data masuk dalam interleaver, data “string” yang dihasilkan pengubah data biner diproses menjadi array data biner dengan kode program pada Tabel 4.2, kemudian array data biner akan dimasukkan ke dalam interleaver.
Tabel 4.2 Pengubah data “string” menjadi array tempData='';
for i=1:length(dataBiner) if i==length(dataBiner)
tempData=[tempData,dataBiner(i)]; else
tempData=[tempData,dataBiner(i),' ']; end
end
4.1.2.3 Encoder Turbo Codes
Encoder turbo digunakan untuk mengkodekan data ECG yang telah
berbetuk data biner menjadi data sandi. Satu data biner akan disandikan menjadi tiga data, tiga data tersebut meliputi satu data asli dan dua data paritas. Turbo encoder terdiri dari dua RSC. RSC pertama menghasilkan satu data asli dan satu
data paritas, RSC kedua menghasilkan satu paritas. Data hasil RSC 1 dan 2 akan digabungkan menjadi satu deret data. Hasil encoder adalah data biner bertipe “string”. Kode program encoder dilampirkan pada lampiran 4.
4.1.3 Pengiriman Data Sandi Melalui Kanal AWGN
Pengiriman data sandi menggunakan kanal AWGN. Sebelum proses pada kanal AWGN, data akan diproses oleh modulator QAM dengan ukuran modulasi 4, 16, 32, atau 64. Data hasil modulator akan masuk ke dalam kanal AWGN. SNR yang digunakan yaitu 0 sampai 20. Setelah proses pada kanal, data akan diproses oleh demodulator QAM. Demodulator QAM digunakan untuk menerjemahkan data kanal menjadi data biner. Kode program dilampirkan pada lampiran 5.
4.1.4 Decoder Turbo Codes
Decoder turbo codes terdiri dari 2 decoder yang menggunakan algoritma
Maximum a-posteriori Probability (MAP). Decoder turbo codes merupakan komputasi untuk menghitung matrik tranformasi, Forward Branch matrix, backward Branch matrix, LLR, dan soft output. Kode program decoder turbo codes dilampirkan pada lampiran 6.
4.1.4.1 Proses Penerjemahan Data Biner Menjadi Data ECG
Tabel 4.3 merupakan kode penerjemah data biner menjadi data ECG. Kode tersebut digunakan untuk mengembalikan data biner hasil decoding menjadi data ECG. Data ECG yang diterjemahkan akan disajikan dalam bentuk grafik. Lampiran 7 merupakan data ECG hasil penerjemahan data biner menjadi data ECG.
Tabel 4.3 Fungsi konversi data biner menjadi Data ECG
i=0;a=1;
while i<length(iterasiDEC2(1,:))
indexECG(a,iSNR)=bi2de(iterasiDEC2(1,[i+1:i+12]),'left-msb'); i=i+12;
a=a+1;
end
4.2 Implementasi Tampilan
4.2.1 Tampilan Utama
Gambar 4.1 merupakan implementasi tampilan utama program turbo code. Tombol “Encode“ digunakan untuk memanggil tampilan turbo encoder pada Gambar 4.2. Tombol “Decode“ digunakan untuk memanggil tampilan turbo decoder pada Gambar 4.8.
Gambar 4.1 Tampilan utama program turbo codes.
4.2.2 Tampilan Proses Encoding
Gambar 4.2 merupakan implementasi tampilan program turbo encode Tampilan turbo encoder digunakan untuk proses encoding data ECG. Dropdown
list “panjang data ECG” digunakan untuk memilih panjang data yang akan
Simpan data merupakan tampilan yang telah disediakan oleh Matlab. Tombol “Encode” digunakan untuk memproses data ke dalam turbo encoder. Setelah proses encode data selesai, progam menampilkan notifikasi seperti pada Gambar 4.4. Jika pengguna memilih “ya” pada notifikasi, maka program menampilkan tampilan pada Gambar 4.6. Jika pengguna memilih “tidak”, maka program kembali pada tampilan turbo encoder.
Gambar 4.2 Tampilan Turbo Encoder
Gambar 4.3 Tampilan Cari lokasi Simpan data
4.2.3 Tampilan Handling“Cari Data ECG”
Gambar 4.5 merupakan implementasi tampilan yang digunakan untuk menangani handling tombol “Cari Data ECG” pada Gambar 4.2. Tampilan pilih data ECG digunakan untuk mencari data ECG berbentuk file “*.dat “. Tampilan handling Cari data ECG merupakan tampilan yang disediakan Matlab.
Gambar 4.5 Tampilan handling Cari data ECG
4.2.4 Tampilan Pengaturan Kanal AWGN
Gambar 4.6 merupakan implementasi tampilan pengaturan parameter pada kanal AWGN. Dropdown list “Tipe modulator” digunakan untuk memilih tipe modulasi data sebelum pengiriman pada kanal AWGN. Dropdown list
“Ukuran modulator” digunakan untuk memilih ukuran modulasi. Ukuran modulasi yang tersedia adalah 4, 16, 32, dan 64 QAM. Dropdown list “SNR Kanal AWGN” digunakan untuk memilih ukuran SNR. Tombol “Kirim Data” digunakan untuk memproses data sesuai dengan parameter yang dipilih oleh pengguna. Ketika proses data selesai, program akan menampilkan notifikasi seperti Gambar 4.7. Jika pengguna memilih “ya” pada notifikasi, maka program menampilkan tampilan pada Gambar 4.6. Jika pengguna memilih “tidak”, maka program kembali pada tampilan pengaturan kanal AWGN.
Gambar 4.7 Notifikasi AWGN.
4.2.5 Tampilan Decoder
Gambar 4.8 merupakan implementasi tapilan decoder turbo codes. Tombol “Cari Data Sandi” digunakan unuk mencari lokasi data sandi hasil encoding. Lokasi sandi diisi otomatis oleh program. Dropdown list Iterasi
digunakan untuk memilih iterasi proses decoding data sandi. Lokasi penyimpanan BER digunakan untuk menyimpan data BER hasil decoding. Data BER disimpan dalam bentuk excel. “Lihat Data ECG” digunakan untuk melihat grafik ECG sebelum encoding dan sesudah decoding seperti pada Gambar 4.9. Tombol “Encoder” digunakan untuk kembali pada tampilan encoding turbo codes. Tombol “AWGN” digunakan untuk kembali pada tampilan encoding turbo codes.
44