Simulasi turbo codes untuk pengolahan data elektrokardiogram.

(1)

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


(2)

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

2013


(3)

iii Halaman Persetujuan


(4)

iv Halaman Pengesahan


(5)

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.


(6)

vi


(7)

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.

Data ECG dapat dikoreksi dengan baik ketika menggunakan modulasi QAM 4 dengan SNR lebih besar dari 11 dan modulasi QAM 16 dengan SNR lebih besar dari 19. Pada penelitian ini, panjang data dan iterasi tidak mempengaruhi BER turbo codes. SNR mempengaruhi kinerja BER. Selain itu, ukuran modulasi mempengaruhi kinerja BER. Semakin kecil ukuran modulasi, nilai BER semakin baik.


(8)

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.

ECG data could be corrected well when using a QAM 4 modulation with an SNR more than 11 and a QAM 16 modulation with an SNR more than 19. In this research, the length and iteration of data had no influence on the BER turbo codes whereas the SNR did. If the size of modulation is smaller, value of BER will be better.


(9)

ix Halaman Persetujuan


(10)

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,


(11)

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


(12)

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


(13)

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


(14)

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


(15)

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


(16)

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


(17)

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


(18)

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

Tabel 5.2 Sampel Pengujian data ... 55 Tabel 5.3 hasil encoding setelah pemenggalan secara vertikal tiap tiga karakter 55


(19)

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 satelit. Sebagai contoh misi Pathfinder pada tahun 1997, turbo codes digunakan


(20)

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

Tujuan dari tugas akhir ini adalah tersedianya program simulasi turbo codes yang diuji dengan data ECG.


(21)

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

Penulis menentukan besar ukuran dari turbo codes, mencari data ECG dan EEG yang akan digunakan, dan merancang program turbo codes untuk pengujian.


(22)

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 V akan memaparkan proses implementasi hasil dan analisa dari penelitian yang telah dilakukan. Hasil penelitian yang diperoleh berupa hasil pengukuran pengujian BER dan grafik ECG setelah proses decoding.


(23)

BAB VI KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dan saran berdasar hasil analisis program turbo code.


(24)

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

Penyandian isyarat digital berguna untuk meningkatkan kinerja komunikasi dengan meningkatkan ketahanan sinyal terhadap berbagai gangguan saluran [1]. Penyandian dikelompokkan dalam dua jenis, penyandian gelombang (waveform coding) dan urutan terstruktur (structured sequences).


(25)

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


(26)

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.


(27)

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

Sumber noise yang kedua berasal dari rangkaian pada penerima itu sendiri. Dalam tugas akhir ini bentuk noise yang dipilih bersifat aditif (menambahkan) dengan pendekatan statistik yang memiliki distribusi Gaussian dan pada keseluruhan band frekuensi menunjukkan karakteristik yang sama sehingga memiliki sifat yang sama dengan warna putih yang spektrumnya membentang pada keseluruhan frekuensi warna.

Sinyal yang

dikirim s(t)

+

Sinyal yang diterima

r(t)

Noise n(t)

Gambar 2.5 Kanal AWGN [12]


(28)

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.


(29)

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). Sebagai contoh, inti FPGA dapat beroperasi pada 90Mbit/s.


(30)

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

Representasi generator menunjukkan sambungan perangkat keras dari register geser dengan proses penambahan modulo-2 [7]. Sebuah vektor generator mewakili posisi register geser untuk keluaran. Nilai "1" mewakili koneksi dan "0" menunjukkan tidak ada koneksi.


(31)

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

pengiriman data encoder dengan R=1/3 atau code rate yang lebih tinggi. T


(32)

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


(33)

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.


(34)

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.

� , =� (A)

� , = � �( ) = �( 1, =+1)/ 1)

�( 1, =−1)/ 1 (2.3)

�( 1 , = +1)/ 1 = �( , , 1 ) (2.4) 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 menjadi persamaan(2.5)


(35)

= �( 1, = +1)/ 1 )

�( 1 , =−1)/ 1

= �(

, ,

1) =+1

�( , , 1)

=−1 (2.5) Untuk

1 = 1−1, , 1+1

1 = , ,

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 − = � ,

=� |

′, =� , | ,

, , = ′, (2.9)

− ( ′) = metrik

= metrik


(36)

Persamaan (2.9) akan dimasukkan kelalam persamaan (1.5) sehingga akan menjadi

= −

,

=+1

′,

=−1 (2.10)

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 BER [16]. Kebisingan merupakan proses acak, didefinisikan dalam bentuk statistik. Kebisingan muncul dalam perangkat dan dapat ditentukan dengan fungsi probabilitas Gaussian.


(37)

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.

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


(38)

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

Program turbo codes yang dikembangkan mempunyai beberapa fungsi utama yaitu encoding (penyandian), decoding (pembacaan sandi), dan I/O konverter. Sebelum data disandikan, program tersebut harus mampu mengubah data menjadi data biner dengan menggunakan I/O konverter. Data biner yang didapat akan disandikan menjadi data sandi. Data sandi yang dihasilkan encoder turbo codes akan masuk dalam kanal AWGN. Ketika data masuk ke dalam kanal,


(39)

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

RSC2 RSC1


(40)

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


(41)

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 : Encode data

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 tersandikan dalam bentuk data biner.


(42)

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”

4. Sistem menampilkan tampilan utama program


(43)

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”

4. Sistem menampilkan notifikasi untuk melanjutkan proses decoding


(44)

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 : Decode data

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


(45)

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.

4. Sistem menampilkan notifikasi bahwa file yang dipilih bukan data sandi.


(46)

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


(47)

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.

Pengguna

0

Program turbo code

Data ECG

Data ECG


(48)

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 biner dan proses penyandian data biner menjadi data sandi. Sedangkan decode mempunyai sub-proses membaca data sandi dan mengubah data biner menjadi data ECG.

1.2b

Mengubah data biner menjasi data ECG

1.1b Proses Decoding

1.2b Menyandikan data

biner 1.1b Membaca data ECG 1

Encode

2.1b

Mengirim data Sandi melalui kanal AWGN 0

Progam

turbo code

3

Decode

2 Kanal AWGN

Gambar 3.6 Diagram berjenjang

3.2.7 Data Flow Diagram Level 0

Data Flow Diagram (DFD) merupakan gambaran arus data yang terjadi ketika program dijalankan baik encode dan decode. Gambar 3.7 merupakan gambaran arus data pada proses encode, kanal AWGN, dan decode. Program menerima masukan data ECG atau data sandi dari pengguna, kemudian data akan diproses lebih lanjut oleh program menjadi data sandi atau data ECG sesuai perintah yang dimasukkan pengguna. Data yang telah dihasilkan program disimpan dalam bentuk file, lokasi penyimpanan akan disesuaikan dengan keinginan pengguna.


(49)

File data sandi 1 Encode 3 Decode Pengguna Data ECG Data Sandi Data sandi disimpan Status File

Status File File data ECG

Data ECG disimpan SNR disimpan Tipe Modulasi Ukuran Modulasi SNR 2 Pembangkit Derau Kanal AWGN Scatter/Grafik Data

Gambar 3.7 DFD level 0

3.2.8 DFD Level 1 Proses 1

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 sandi

1.1

Membaca

data ECG

1.2

Menyandikan

data biner

Pengguna

Data ECG

Status File

Data biner disiimpan

Gambar 3.8 DFD level 1 proses 1

3.2.9 DFD Level 1 Proses 2

Gambar 3.10 merupakan proses pembangkitan derau. Progam menerima masukan nilai SNR, 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


(50)

Pengguna

Tipe modulasi Ukuran Modulasi SNR

Grafik data pada Kanal AWGN

File Sandi

SNR

2.1b

Mengirim

data Sandi

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 Pengguna

File Data Sandi

Status File Data ECG disiimpan 3.2b Mengubah data sandi menjadi data ECG 3.1b Membaca data sandi

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

Halaman pertama merupakan halaman yang akan dijumpai pengguna ketika pengguna menjalankan program turbo codes. Halaman utama mempunyai beberapa tombol utama yaitu “Encode Data” dan “Decode Data”. Ketika tombol “Encode Data” pada Gambar 3.11 dipilih, program akan menampilkan halaman “Encode data” seperti pada Gambar 3.12. Ketika tombol “Decode Data” pada


(51)

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

Halaman encode digunakan pengguna untuk proses encoding data ECG. Halaman “Encode Data” mempunyai beberapa tombol yaitu “Panjang data ECG”, “Cari data ECG”, “Cari lokasi”, “Encode Data” dan “Batal”, ditunjukkan pada Gambar 3.12. “Panjang data ECG” digunakan untuk mengambil sample data ECG. “Cari data ECG” digunakan untuk mencari file yang bertipe “*.dat” dengan menggunakan fasilitas open file. “Cari lokasi” digunakan untuk menyimpan file data sandi yang dihasilkan program. Lokasi penyimpanan diisi oleh program secara otomatis, lokasi penyimpanan sama dengan lokasi file ECG yang disandikan. Selain itu, lokasi penyimpanan file dapat diubah oleh pengguna sesuai


(52)

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

Gambar 3.13 merupakan gambar pengaturan kanal AWGN. Halaman Pengaturan Kanal AWGN digunakan untuk mengatur nilai SNR, tipe modulasi, dan ukuran modulasi. Halaman ini ditampilkan setelah proses encoding selesai. Halaman Pengaturan Kanal AWGN mempunyai drop down list unuk memilih tipemodulasi, ukuran modulasi, dan SNR. Tombol “Kirim Data” melakukan


(53)

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.

“Decode Data” digunakan untuk memulai proses decoding data sandi menjadi data ECG. Ketika tombol “Decode Data” dipilih, program melakukan proses decoding menjadi data biner. Program melanjutkan proses pengubahan data biner menjadi data ECG. Setelah proses tersebut selesai progam akan menampilkan Grafik BER. “Lihat data ECG” digunakan untuk melihat data ECG debelum encoding dan sesudah decoding. Tombol “encode” digunakan untuk kembali pada tampilah encoder turbo codes. Tombol “AWGN” digunakan untuk kembali pada tampilah Pengaturan kanal AWGN.


(54)

(55)

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 beberapa bagian yaitu proses pengubahan data ECG hasil persamaan (4.1) menjadi data biner, interleaver, dan encoder.


(56)

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

temp = regexp(tempData, ' ', 'split'); dataProses = cellfun(@str2num,temp); dataIntrlvr=randintrlv(dataProses,1024);


(57)

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

dataAwal=reshape(dataEncoder,3,(length(dataEncoder(1,:))*length(dataEncode r(:,1)))/3);


(58)

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 diproses oleh encoder turbo codes. Tombol “ Cari data” digunakan untuk mencari file “*.dat”. Ketika tombol “Cari data” dipilih, program akan menampilkan tampilan pada Gambar 4.5. Tombol “Cari lokasi” digunakan untuk mencari lokasi penyimpanan data hasil proses encoding. Ketika tombol “Cari lokasi” dipilih, program akan menampilkan tampilan pada Gambar 4.3. Tampilan Cari lokasi


(59)

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


(1)

penghitungan adalah nilai ye(1,1) dan ye(2,1) pada Tabel 4.6. X pada Tabel 4.8 merupakan penjumlahan nilai a(s) pada saat k.

Tabel 4.8 Penghitungan forward branchmatrix dari persamaan (2.11)

a(s) k=0 k=1 k=2 k=3 k=4 k=5 k=6 k=7 k=8 a(1) 1.0000 2.7183 1.3591 0.1620 0.1564 0.2688 0.3260 0.3024 0.3384 a(2) 0.0000 0.0000 0.0000 0.0596 0.4250 0.5470 0.2204 0.2702 0.2709 a(3) 0.0000 0.0000 0.1839 1.1971 0.0750 0.2688 0.3260 0.4068 0.3687 a(4) 0.0000 0.0000 0.0000 0.0596 0.4250 0.1665 0.3165 0.2702 0.2709 a(5) 0.0000 2.7183 1.3591 0.1620 0.1564 0.2688 0.3260 0.3024 0.3384 a(6) 0.0000 0.0000 0.0000 0.0596 0.4250 0.5470 0.2204 0.2702 0.2709 a(7) 0.0000 0.0000 0.1839 1.1971 0.0750 0.2688 0.3260 0.4068 0.3687 a(8) 0.0000 0.0000 0.0000 0.0596 0.4250 0.1665 0.3165 0.2702 0.2709 x 1.0000 5.4366 3.0862 2.9567 2.1628 2.5022 2.3779 2.4992 2.4977

Normalisasiforward branch matrix digunakan untuk menyetabilkan nilai yang dihasilkan oleh persamaan (2.11). ae(s) diisi dengan nilai a(s) dibagi dengan nilai x saat k pada Tabel 4.8.

Tabel 4.9 Normalisasi Forward BranchMatrix

ae(s) k=0 k=1 k=2 k=3 k=4 k=5 k=6 k=7 k=8 ae(1) 1.0000 0.5000 0.4404 0.0548 0.0723 0.1074 0.1371 0.1210 0.1355 ae(2) 0.0000 0.0000 0.0000 0.0202 0.1965 0.2186 0.0927 0.1081 0.1085 ae(3) 0.0000 0.0000 0.0596 0.4049 0.0347 0.1074 0.1371 0.1628 0.1476 ae(4) 0.0000 0.0000 0.0000 0.0202 0.1965 0.0665 0.1331 0.1081 0.1085 ae(5) 0.0000 0.5000 0.4404 0.0548 0.0723 0.1074 0.1371 0.1210 0.1355 ae(6) 0.0000 0.0000 0.0000 0.0202 0.1965 0.2186 0.0927 0.1081 0.1085 ae(7) 0.0000 0.0000 0.0596 0.4049 0.0347 0.1074 0.1371 0.1628 0.1476 ae(8) 0.0000 0.0000 0.0000 0.0202 0.1965 0.0665 0.1331 0.1081 0.1085

Penghitungan Backward branch Matrix

Penghitungan backward branch matrix menggunakan persamaan (2.12). Penghitungan tersebut menggunakan nilai dari Branch Matrix pada saat star state. Sebagai contoh adalah a(1), maka nilai Branch Matrix yang digunakan untuk penghitungan adalah nilai ye(1,1) dan ye(1,5) pada Tabel 4.6.


(2)

Tabel 4.10 Penghitungan Backward branch mrnggunakan persamaan (2.12)

β(s) k=1 k=2 k=3 k=4 k=5 k=6 k=7 K=8

β(1) 0.0890 0.0694 0.1276 0.0338 0.0228 0.0542 0.3679 1.0000 β(2) 0.2146 0.1246 0.6345 0.0338 0.0228 0.4001 0.0000 0.0000 β(3) 0.1163 0.2343 0.0582 0.5003 0.0619 0.0000 0.0000 0.0000 β(4) 0.1163 0.2343 0.0582 0.0920 0.4574 0.0000 0.0000 0.0000 β(5) 0.0890 0.0694 0.1276 0.0338 0.0228 0.0542 0.3679 0.0000 β(6) 0.2146 0.1246 0.6345 0.0338 0.0228 0.4001 0.0000 0.0000 β(7) 0.1163 0.2343 0.0582 0.5003 0.0619 0.0000 0.0000 0.0000 β(8) 0.1163 0.2343 0.0582 0.0920 0.4574 0.0000 0.0000 0.0000

Normalisasi bacward branch digunakan untuk menyetabilkan nilai yang dihasilkan oleh persamaan (2.12). x pada Tabel 4.11 diisi dengan penjumlahan semua y(s',s) dikali ae(s) ke k pada saat star state. Sebagai contoh x saat k=1,

1 = 1 1 1,1 1+ 1,5 1 + 2 1( 2,5 1+ 2,1 1 ) +⋯+ 8 1( 8,8 1+ 8,4 1 )

Tabel 4.11 Normalisasi Backward branch

βe(s) k=1 k=2 k=3 k=4 k=5 k=6 k=7 k=8

βe(1) 0.0288 0.0225 0.0432 0.0156 0.0091 0.0228 0.1472 1.0000 βe(2) 0.0695 0.0404 0.2146 0.0156 0.0091 0.1683 0.0000 0.0000 βe(3) 0.0377 0.0759 0.0197 0.2313 0.0247 0.0000 0.0000 0.0000 βe(4) 0.0377 0.0759 0.0197 0.0425 0.1828 0.0000 0.0000 0.0000 βe(5) 0.0288 0.0225 0.0432 0.0156 0.0091 0.0228 0.1472 0.0000 βe(6) 0.0695 0.0404 0.2146 0.0156 0.0091 0.1683 0.0000 0.0000 βe(7) 0.0377 0.0759 0.0197 0.2313 0.0247 0.0000 0.0000 0.0000 βe(8) 0.0377 0.0759 0.0197 0.0425 0.1828 0.0000 0.0000 0.0000 x 3.0862 3.0862 2.9567 2.1628 2.5022 2.3779 2.4992 2.4977 Penghitungan Log-Likelihood Ratio

Tabel 4.12 digunakan sebagai dasar untuk soft decision (mengembalikan hasil pengitungan menjadi data biner). σ(s) didisi dengan hasil perkalian antara transformasi matrik, normalisasi forward branch matrix pada saat start state

dengan backward branch matrix dari transformasi matrik pada saat end state.


(3)

� = ′, βe k

� 2 1 = 2,5 1 2 1β

e 5 k

=1.6487*0.0000*0.0288 =0

Tabel 4.12 Pengitungan LLR

σ(s) k=1 k=2 k=3 k=4 k=5 k=6 k=7 k=8

σ(1) 0.0476 0.0185 0.0115 0.0014 0.0004 0.0015 0.0122 0.0734

σ(2) 0.0000 0.0000 0.0000 0.0005 0.0011 0.0030 0.0083 0.0000

σ(3) 0.0000 0.0000 0.0211 0.0038 0.0005 0.0298 0.0000 0.0000

σ(4) 0.0000 0.0000 0.0000 0.0002 0.0029 0.0185 0.0000 0.0000

σ(5) 0.0000 0.0626 0.0053 0.0209 0.0011 0.0000 0.0000 0.0000

σ(6) 0.0000 0.0000 0.0000 0.0077 0.0029 0.0000 0.0000 0.0000

σ(7) 0.0000 0.0000 0.0019 0.0104 0.0104 0.0000 0.0000 0.0000

σ(8) 0.0000 0.0000 0.0000 0.0005 0.0592 0.0000 0.0000 0.0000

σ(9) 0.0175 0.0068 0.0313 0.0005 0.0011 0.0040 0.0333 0.0000

σ(10) 0.0000 0.0000 0.0000 0.0002 0.0029 0.0082 0.0225 0.1783

σ(11) 0.0000 0.0000 0.0078 0.0104 0.0002 0.0110 0.0000 0.0000

σ(12) 0.0000 0.0000 0.0000 0.0005 0.0011 0.0068 0.0000 0.0000

σ(13) 0.0000 0.0230 0.0143 0.0077 0.0029 0.0000 0.0000 0.0000

σ(14) 0.0000 0.0000 0.0000 0.0028 0.0080 0.0000 0.0000 0.0000

σ(15) 0.0000 0.0000 0.0007 0.0284 0.0038 0.0000 0.0000 0.0000

σ(16) 0.0000 0.0000 0.0000 0.0014 0.0218 0.0000 0.0000 0.0000

Ratio

(+1/-1) 0.3679 0.3679 1.3590 1.1424 0.5327 0.5685 2.7183 2.4290 Tabel 4.13 merupakan hasil akhir dari decoder 1. L(extrinsic) diperoleh dari log(Ratio) pada Tabel 4.12. L(uk) diperoleh dari penjumlahan dari L(extrinsic), L(uk) awal dan data pada Tabel 4.5. Soft decision dilakukan dengan cara :

Jika data L(uk) >= 0 (nol) maka data akan diisi dengan 1. Jika data L(uk) < 0 maka data akan diisi dengan 0.

Tabel 4.13 Hasil akhir pengitungan LLR

L(extrinsic) -1.0000

-1.0000 0.3067 0.1331 -0.6297 -0.5648 1.0000 0.8875 L(uk) -2.0000

-2.0000 1.3067 -0.8669 -1.6297 -1.5648 2.0000 1.8875 Decision 0 0 1 0 0 0 1 1 data awal 0 0 1 0 0 0 1 1


(4)

Turbo code Decoder 2

Proses decoder 2 mempunyai proses yang identik dengan decoder 1.

Perbedaannya adalah data masukan. Data yang digunakan decoder 2 adalah data hasil decoding decoder 1 (hasil soft decision) dan data paritas 2 dari Tabel 4.5. Tabel 4.11 sampai dengan Tabel 4.16 merupakan hasil decoding decoder 2.

Tabel 4.14 Hasil L(extrinsic) dari DEC 1

le -2.0000 -2.0000 1.3067 -0.8669 -1.6297 -1.5648 2.0000 1.8875

Tabel 4.15 Penghitungan LLR dari DEC 1

Ratio (+1/-1)

0.3679 0.3679 0.5672 0.9490 2.6095 2.2485 0.3679 0.9399

Tabel 4.16 Hasil L(extrinsic) dari DEC 1

L(extrinsic) -1.0000 -1.0000

-0.5671 -0.0523 0.9592 0.8103 -1.0000 -0.0620 L(uk) -4.0000

-4.0000 1.7396 -1.9192 -1.6705 -1.7545 2.0000 2.8255 Decision 0 0 1 0 0 0 1 1 data awal 0 0 1 0 0 0 1 1


(5)

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.

Data ECG dapat dikoreksi dengan baik ketika menggunakan modulasi QAM 4 dengan SNR lebih besar dari 11 dan modulasi QAM 16 dengan SNR lebih besar dari 19. Pada penelitian ini, panjang data dan iterasi tidak mempengaruhi BER turbo codes. SNR mempengaruhi kinerja BER. Selain itu, ukuran modulasi mempengaruhi kinerja BER. Semakin kecil ukuran modulasi, nilai BER semakin baik.


(6)

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.

ECG data could be corrected well when using a QAM 4 modulation with an SNR more than 11 and a QAM 16 modulation with an SNR more than 19. In this research, the length and iteration of data had no influence on the BER turbo codes whereas the SNR did. If the size of modulation is smaller, value of BER will be better.