PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 2013
i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
ii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Halaman Persetujuan
iii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Halaman Pengesahan
iv
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Halaman Persembahan
HALAMAN PERSEMBAHAN
UNLESS someone like you cares a whole awful lot, nothing is going to get better. It’s not. -Dr. Seuss
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 Saputro yang selalu mendukung dengan Doa. Sahabat dan teman-teman.
v
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Pernyataan Keaslian Karya
vi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 APosteriori 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.
vii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 interleaver. 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.
viii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Halaman Persetujuan
ix
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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,
L. Endra Prasetya
x
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.1
Konversi Digital ke Analog .............................................................. 7
xi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI xii
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 2.4
Recursive Systematic Convolutional Encoder ........................................ 12
2.4.1 2.5
Representasi Generator ................................................................... 12
Turbo Encoder ........................................................................................ 13
2.5.1 2.6
Parameter Pengujian Unjuk Kerja Turbo Codes ............................. 12
Interleaving ..................................................................................... 14
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 2.8
Log-Likelihood Ratio ...................................................................... 16
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.3
Diagram Use Case........................................................................... 23
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI xiii
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
BAB V HASIL PENGUJIAN DAN ANALISA .................................................. 45
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI xiv
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 QAM 64................................................................................................ 64
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI xv
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 Turbo code Decoder 2.................................................................................. 89
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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.7 Notifikasi AWGN. ............................................................................ 43 xvi
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI xvii
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 Gambar 5.15 Pengujian Decoder Turbo codes ..................................................... 56
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
xviii
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 2
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 3
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 4
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 5
BAB VI KESIMPULAN DAN SARAN Bab ini berisi kesimpulan dan saran berdasar hasil analisis program turbo code.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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).
6
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 7
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).
Gambar 2.2 Konversi digital ke analog.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 8
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.
Gambar 2.4 Konsep Diagram Constellation
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 9
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]: 𝑆𝑤 (𝑓) =
𝑵𝟎 𝟐
(2.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)
+
r(t)
Sinyal yang diterima
n(t)
Noise
Gambar 2.5 Kanal AWGN [12]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 10
Gambar 2.5 merupakan blok kanal AWGN. Pada kanal AWGN, zeromean white Gaussian noise ditambahkan pada sinyal transmisi s(t), sehingga sinyal yang diterima r(t) berbentuk sebagai berikut: (2.2)
𝑟 𝑡 = 𝑠 𝑡 + 𝑛(𝑡)
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 11
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), 1xEVDO (baik 1xEV-DO revisi A, 1xEV-DO revisi B fase 1 dan fase 2, dan 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 DVBS2 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 12
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 13
Gambar 2.7 Turbo codes (a) dan (b) dengan rate ½ [4] Keterangan gambar : : Modulo 2 bilangan biner
T
: 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 d k 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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 14
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 Yk=Yk1 dan akan menuju DEC2 ketika Yk=Yk2. Ketika informasi yang berlebih
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 15
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 d k 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.
Gambar 2.10 Feedback loop [4]
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 16
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𝑁 ) 𝑘
(2.2)
1
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𝑁 )
(2.3)
𝑃(𝑦1𝑁 ,𝑢 𝑘 =−1)/𝑦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)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 17
𝐿𝑢𝑘 = 𝑙𝑜𝑔 = 𝑙𝑜𝑔
𝑃(𝑦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 𝑎𝑘−𝑠 𝑠 ′ = 𝑃 𝑠 ′ , 𝑦𝑝 𝛽𝑘 𝑠 = 𝑃 𝑦𝑓 |𝑠 𝛾𝑘 𝑠′, 𝑠 = 𝑃 𝑠, 𝑦𝑘 |𝑠 ′, 𝑦𝑝 𝑃 𝑠 ′, 𝑠, 𝑦 = 𝑎𝑘−𝑠 𝑠 ′ 𝛽𝑘 𝑠 𝛾𝑘 𝑠′, 𝑠 𝑎𝑘−𝑠 (𝑠′) = 𝑓𝑜𝑟𝑤𝑎𝑟𝑑 metrik 𝛽𝑘 𝑠 = 𝑏𝑎𝑐𝑘𝑤𝑎𝑟𝑑 metrik 𝛾𝑘 𝑠′, 𝑠 = 𝐵𝑟𝑎𝑛𝑐 𝑀𝑎𝑡𝑟𝑖𝑥
(2.9)
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 18
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.8
𝛾 𝑠′, 𝑠 = 𝑒𝑥𝑝
𝑞 𝑖=2(𝐿𝑐
∗ 0.5 ∗ 𝑦𝑘𝑖,𝑝 ∗ 𝑐𝑘𝑖 )
𝛾 𝑠′, 𝑠 = 𝑒𝑥𝑝
𝑞 𝑖 𝑖=2(0.5 ∗ 𝑐𝑘 )
(2.13) (2.14)
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 19
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
3
BAB III
PERANCANGAN 3.1 3.1.1
Analisis Sistem 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,
20
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 21
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. dk
M1
R1
R2
RSC1
R3
yk1
Interleaver
M1
R1
R2
RSC2
R3
yk2
Gambar 3.2 Diagram encoder dengan generator polinomial 15,13
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 22
Keterangan gambar : : Modulo bilangan biner M1
: bit hasil modulo dua : Register
R
: Arah arus data yk1,yk2
3.2.2
: Keluaran RSC
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.
deinterleaving
Decoder 1
Interleaver
Decoder 2
dk deinterleaving yk2 output
yk1
Gambar 3.3 Diagram decoder
Keterangan gambar : : arah arus data yk1,yk2
: keluaran RSC sebagai masukan decode
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 23
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.
Program Turbo codes <> Encoding
Kanal AWGN
<> Pengguna
Decoding
Lihat data ECG
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 24
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 1. Pengguna
memilih
Reaksi Sistem 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
utama program
tampilan
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 25
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 26
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 3. Pengguna mencari file “.mat”
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 27
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 28
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 11. Pengguna
Reaksi Sistem memilih
tombol
pengulangan “Encoder”/”AWGN” 12. Sistem menampilkan GUI sesuai pilihan pengguna
Nama Use Case
:
Lihat data ECG
Aktor
:
Pengguna
Kondiai awal
:
Pengguna pada tampilan decoding
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 29
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 3. Pengguna
belum
Reaksi Sistem 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. 0 Pengguna
Data ECG Data ECG
Gambar 3.5 Diagram arus data
Program turbo code
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 30
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. 0 Progam turbo code
1
3
2 Kanal AWGN
Encode
Decode
1.1b Membaca data ECG
2.1b Mengirim data Sandi melalui kanal AWGN
1.2b Menyandikan data biner
1.1b Proses Decoding
1.2b Mengubah data biner menjasi data ECG
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 31
1 Encode
Data ECG Status File Tipe Modulasi Ukuran Modulasi SNR
Pengguna
Scatter/Grafik Data
2 Pembangkit Derau Kanal AWGN
3 Decode
Data Sandi Status File
Data sandi disimpan
File data sandi
SNR disimpan
Data ECG disimpan
File data ECG
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.
1.1 Membaca data ECG
Status File
Pengguna
Data ECG
File data sandi
Data biner disiimpan
1.2 Menyandikan data biner
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 32
Tipe modulasi Ukuran Modulasi SNR
Pengguna Grafik data pada Kanal AWGN
2.1b Mengirim data Sandi
SNR
File 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 Sandi
Pengguna
File data ECG
Status File
Data ECG disiimpan
3.1b Membaca data sandi
3.2b Mengubah data sandi menjadi 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 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 33
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 34
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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 35
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 36
Gambar 3.14 Tampilan fungsi Decode
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
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 4.1.1
Implementasi Proses 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.
37
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 38
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 39
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);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 40
i=0;a=1; while i
Implementasi Tampilan 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
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 41
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
Gambar 4.4 Notifikasi proses Encoding
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 42
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.6 Tampilan pengaturan kanal AWGN.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 43
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.
Gambar 4.8 Tampilan Decoder Turbo Codes.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Gambar 4.9 Tampilan ECG setelah Encoding
44
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
5
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. Pengujian dilakukan pada personal computer (PC) tunggal dengan spesifikasi : 1
Processor
: AMD AtholnTM II X2 255 ~3.1 Ghz
2
Memory
: 3 GB DDR3-10600
3
Hardisk
: 40 GB IDE Seagate Baracuda @7200rpm
4
Sistem Operasi
: Windows 7
5
Aplikasi
: Matlab 7.10.0.449 (R2010a)
5.1 5.1.1
Hasil Pengujian Hasil Pengujian BER dengan Parameter Pengujian Iterasi Gambar 5.1 merupakan grafik BER dan SNR dengan parameter pengujian
iterasi. Jika semakin besar iterasi, maka kemapuan koreksi kesalahan akan semakin meningkat [4] [19]. Gambar 5.1 menunjukkan tidak ada perbedaan dari iterasi 1 sampai 5. Iterasi pada program turbo codes tidak mempengaruhi kinerja turbo codes dikarenakan ukuran
random interleaver yang digunakan pada
program turbo codes adalah 1024. Dengan ukuran random interleaver=1024, turbo codes menghasilkan kinerja yang baik pada iterasi rendah [20].
1.00E+00
BER QAM 4
1.00E-01 BER
Iterasi 1 1.00E-02
Iterasi 2 Iterasi 3
Iterasi 4
1.00E-03
Iterasi 5 1.00E-04 0 1 2 3 4 5 6 7 8 9 1011121314151617181920 SNR
Gambar 5.1 BER turbo codes yang dibentuk daari pengujian iterasi 45
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 46
Jika semakin besar SNR, maka nilai BER akan semakin mengecil. Hal tersebut dikarenakan signal power lebih tinggi dibanding noise power. Jika nilai BER sama dengan nol, maka label BER akan mengikuti label BER yang terendah. Pada saat SNR lebih besar dari 12, BER turbo codes tidak mengalami perubahan dikarenakan bit yang mengalami error pada data selalu dapat dikoreksi oleh decoder. Nilai BER dapat dilihat pada lampiran 1. 5.1.2
Hasil Pengujian BER Menggunakan Modulasi QAM 4 Gambar 5.2 merupakan grafik kinerja BER dengan panjang data ECG
300, 600, 900, 1200, dan 1500 titik sampel. Pengujian menggunakan modulasi QAM 4. Gambar 5.2 menunjukkan BER yang relatif sama untuk setiap pengujian dengan panjang data 300, 600, 900, 1200, dan 1500. Pada saat SNR lebih besar dari 11, BER mempunyai mencapai nilai minimal kecuali ECG dengan panjang 600. ECG dengan panjang 600 tidak bisa mencapai BER minimal karena ada beberapa bit yang tidak dapat dikoreksi oleh decoder.
BER QAM 4
1.00E+00
1.00E-01
BER
ECG: 300 1.00E-02
ECG: 600
ECG: 900 ECG: 1200
1.00E-03
ECG: 1500 1.00E-04 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 SNR
Gambar 5.2 BER turbo codes dengan ukuran modulasi QAM 4. 5.1.3
Hasil Pengujian BER Menggunakan Modulasi QAM 16 Gambar 5.3 merupakan grafik BER dan SNR dengan modulasi QAM 16.
Ketika data dimodulasi dengan QAM 16, BER yang paling baik adalah BER dengan panjang data ECG 300.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 47
BER QAM 16 1.00E+00
1.00E-01
BER
ECG: 300 1.00E-02
ECG: 600 ECG: 900 ECG: 1200
1.00E-03
ECG: 1500
1.00E-04
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 SNR
Gambar 5.3 BER turbo codes dengan ukuran modulasi QAM 16 5.1.4
Hasil Pengujian BER Menggunakan Modulasi QAM 32 Gambar 5.4 merupakan grafik BER dan SNR dengan modulasi QAM 32.
BER yang paling baik berdasar Gambar 5.4 adalah pengujian dengan panjang data ECG 1200 dan 1500. BER mencapai 5.5x10-4.
1.00E+00
BER QAM 32
1.00E-01
BER
ECG: 300 1.00E-02
ECG: 600 ECG: 900 ECG: 1200
1.00E-03
ECG: 1500 1.00E-04 0 1 2 3 4 5 6 7 8 9 10 1112 13 1415 16 17 18 1920 SNR
Gambar 5.4 BER turbo codes dengan ukuran modulasi QAM 32
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 48
5.2
Hasil Pengujian BER Menggunakan Modulasi QAM 64 Gambar 5.5 merupakan grafik BER dan SNR dengan modulasi QAM 64.
Pengujian dengan modulasi QAM 64 menghasilkan BER yang realatif sama untuk setiap pengujian dengan panjang data ECG 300, 600, 900, 1200, dan 1500.
1.00E+00
BER QAM 64
1.00E-01 BER
ECG: 300
ECG: 600 ECG: 900
1.00E-02
ECG: 1200 ECG: 1500 1.00E-03 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 SNR
Gambar 5.5 BER turbo codes dengan ukuran modulasi QAM: 64 5.2.1
Analisis Pengujian BER Berdasar Panjang data ECG Ukuran frame yang lebih besar memungkinkan lebih banyak bit yang
diacak oleh interleaver. Hal tersebut mengurangi korelasi antara dua bit yang berdekatan sehingga membantu meningkatkan kinerja BER [21]. Berdasarkan penelitian dalam jurnal “Performance of Turbo Codes With Matrix Interleavers” [22], hasil BER dan SNR pada Gambar 5.1 sampai dengan Gambar 5.5 menunjukkan bahwa panjang data tidak mempengaruhi kinerja turbo codes. Hal tersebut dikarenakan data yang dikirimkan dengan ukuran besar mungkinkan banyak data yang berguna akan hilang sepanjang kanal transmisi. Pada akhirnya, penerima tidak akan dapat memulihkan data asli [21]. 5.2.2
Hasil Pengujian BER Menggunakan Panjang Data ECG 300 Gambar 5.6 merupakan grafik BER turbo codes dengan panjang data ECG
300. BER yang paling baik adalah modulasi QAM 4 [23]. QAM 4 menghasilkan BER 2.7x10-4, BER mencapai 0(nol) ketika SNR lebih besar dari 11.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 49
1.00E+00
BER ECG=300 data
BER
1.00E-01 QAM 4
1.00E-02
QAM 16
QAM 32 1.00E-03
QAM 64
1.00E-04
0 1 2 3 4 5 6 7 8 9 1011121314151617181920 SNR
Gambar 5.6 BER turbo codes dengan panjang data ECG: 300 titik 5.2.3
Hasil Pengujian BER Menggunakan Panjang Data ECG 600 Gambar 5.7 merupakan grafik BER turbo codes dengan panjang data ECG
600. BER yang paling baik adalah modulasi QAM 4. QAM 4 menghasilkan BER 1.39x10-4 ketika SNR lebih besar dari 11.
1.00E+00
BER ECG=600 data
BER
1.00E-01 QAM 4
1.00E-02
QAM 16 QAM 32
1.00E-03
QAM 64 1.00E-04 0 1 2 3 4 5 6 7 8 9 1011121314151617181920 SNR
Gambar 5.7 BER turbo codes dengan panjang data ECG: 600 titik 5.2.4
Hasil Pengujian BER Menggunakan Panjang Data ECG 900 BER yang paling baik berdasar Gambar 5.8 adalah modulasi QAM 4.
QAM 4 menghasilkan BER 2.7 x10 -4, ketika SNR sama dengan 11 dan BER sama dengan 0(nol) ketika SNR lebih besar dari 12.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 50
1.00E+00
BER ECG=900 data
BER
1.00E-01
QAM 4
1.00E-02
QAM 16 QAM 32
1.00E-03
QAM 64 1.00E-04
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 SNR
Gambar 5.8 BER turbo codes dengan panjang data ECG: 900 titik 5.2.5
Hasil Pengujian BER Menggunakan Panjang Data ECG 1200 BER yang paling baik berdasarkan Gambar 5.9 adalah modulasi QAM 4.
QAM 4 menghasilkan BER 3.47x10 -4 ketika SNR sama dengan 11 dan BER sama dengan nol ketika SNR lebih besar dari 12.
BER ECG=1200 data 1.00E+00
1.00E-01
BER
QAM 4 1.00E-02
QAM 16 QAM 32
1.00E-03
QAM 64
1.00E-04 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 SNR
Gambar 5.9 BER turbo codes dengan panjang data ECG: 1200 titik
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 51
5.3
Hasil Pengujian BER Menggunakan Panjang Data ECG 1500 Gambar 5.10 merupakan grafik BER turbo codes dengan panjang data
ECG 1500. BER yang paling baik berdasarkan Gambar 5.10 adalah modulasi QAM 4. Pajang data ECG 1500 menghasilkan BER 2.78x10 -4 pada QAM 4 SNR 11. BER mencapai nol ketika SNR lebih besar dari 12.
BER ECG=1500 data 1.00E+00
BER
1.00E-01 QAM 4
1.00E-02
QAM 16 QAM 32
1.00E-03
QAM 64 1.00E-04 0
2
4
6
8
10 12 14 16 18 20
SNR
Gambar 5.10 BER turbo codes dengan panjang data ECG: 1500 titik. 5.3.1
Analisis Pengujian BER Menggunakan Modulasi QAM Berdasarkan penelitian dalam jurnal Performance Analysis of Different M-
ARY Modulation Techniques in Cellular Mobile Communication [24], BER turbo codes Gambar 5.6 sampai dengan Gambar 5.10 menunjukkan bahwa perbandingan nilai QAM sama dengan hasil pengujian QAM pada jurnal tersebut. Nilai BER paling kecil dimiliki oleh 4-QAM dan nilai BER paling besar dimiliki oleh 64-QAM. Hal tersebut dikarenakan semakin tinggi nilai QAM, semakin rentan pula terhadap noise yang diterima. Jika energi rata-rata konstelasi bersifat tetap atau konstan, maka titik konstelasi harus tetap berdekatan sama lain. Hal ini penyebab semakin tinggi QAM menghasilkan bit error rate yang tinggi pula. Akan tetapi, keuntungan nilai QAM atau konstelasi yang lebih tinggi memungkinkan pengiriman bit per simbol yang lebih besar. Penggunaan nilai QAM yang tinggi harus memperhatikan signal power serta pengurangan noise agar nilai BER tetap dalam kondisi baik.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 52
5.4 5.4.1
Pengujian Pembacaan Data ECG Fungsi proses_baca_data.m pada program merupakan modifikasi fungsi
yang diunduh dari physionet.org. Gambar 5. 11 merupakan grafik ECG hasil pembacaan data dengan menggunakan fungsi yang diunduh dari physionet.org. Gambar 5.12 merupakan grafik ECG hasil pembacaan oleh program turbo codes. Sehingga fungsi proses_baca_data.m pada program layak digunakan untuk pembacaan data ECG. Fungsi proses_baca_data.m menghasilkan menghasilkan data seperti pada lampiran 3. Data tersebut akan disajikan menjadi grafik seperti pada Gambar 5.12.
Gambar 5. 11 Hasil pembacaan data menggunakan fungsi dari physionet.org [18].
Gambar 5.12 Hasil pembacaan data ECG pada program turbo codes.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 53
Data ECG yang dihasilkan oleh fungsi Proses_baca_data berupa data double (data pecahan). Data tersebut tidak disa diproses oleh encoder. Oleh karena itu, data perlu teknik pengkompresian data [25]. Persamaan (4.1) merupakan persamaan sederhana yang digunakan untuk memproses data ECG menjadi data yang bernilai bulat positif sehingga data bisa diterjemahkan ke dalam bentuk biner. 𝑑𝑎𝑡𝑎𝐸𝐶𝐺 = 𝑑𝑎𝑡𝑎𝐸𝐶𝐺 + 1 ∗ 1000
(4.1)
persamaan (4.1) akan menghasilkan data seperti pada lampiran 7. Data tersebut akan diterjemahkan menjadi data biner dan akan diproses oleh encoder turbo codes. 5.5
Encoder Turbo Codes Tabel 5.1 merupakan hasil operasi encoder RSC 1 pada Gambar 3.2.
Keluaran pada Tabel 5.1 akan dijadikan sebagai trellis diagram seperti pada Gambar 5.13. Trellis diagram akan digunakan sebagai dasar decoder turbo codes. Tabel 5.1 Perhitungan Encoder secara manual. Masukan: 0101010101110100 Masukan No. Pergeseran 0 0 1 1 2 0 3 1 4 0 5 1 6 0 7 1 8 0 9 1 10 1 11 1 12 0 13 1 14 0 15 0 16
Isi Register 0 0 0 0 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 1 0
Keluaran 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0
Gambar 5.13 merupakan relasi antara masukan, isi register awal, isi register akhir, dan keluaran encoder turbo codes. Masukan pada Tabel 5.1 merupakan bit yang masuk dalam RSC1. Sedangkan keluaran merupakan hasil
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 54
dari RSC1. Isi register dari Tabel 5.1 merupakan kondisi register akhri pada Gambar 5.13 Contoh pembacaan trellis diagaram Gambar 5.13 sebagai berikut: Jika kondisi register awal adalah 000, bit yang masuk dalam RSC =0, maka kondisi isi register adalah 000 dan keluaran RSC adalah 00. Register awal
Register akhir
Masukan/keluaran
000
000
0/00 1/11
001
001 1/10 0/01
010
1/11
1/11 0/00
010
0/00
011
011
0/01 100
101
100
1/10
0/01
101 1/10
0/00 1/11 110
110 1/10 111
0/01
111
Gambar 5.13 Trellis diagram dari RSC Gambar 5.14 merupakan hasil encoding progam turbo codes. Data pada Tabel 5.2 dibaca dari kiri ke kanan. Sedangkan program membaca dari kanan ke kiri. Data “a” pada Gambar 5.14 dirotasi 1800 agar data yang dibaca program sama dengan data yang dibaca pada Tabel 5.2. Untuk melihat kesamaan hasil encoding dengan keluaran Tabel 5.2, hasil encoding dipenggal tiap tiga(3) karakter (menunjukan 1 data asli, 1 paritas DEC1, dan 1 paritas DEC2) seperti pada Tabel 5.3. Dua karakter awal (data dan paritas 1) dari hasil pemenggalan disamakan dengan keluaran Tabel 5.2. Berdasar Tabel 5.3 pada baris “Data” dan “Paritas 2” dengan Tabel 5.2, proses encoding menunjukkan hasil yang sama. Sehingga encoder turbo codes layak digunakan untuk proses encoding data ECG.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 55
Tabel 5.2 Sampel Pengujian data data: 11000100 Antrian masuk
Data masuk
Isi Register
keluaran
11000100
-
0
0
0
-
1100010
0
0
0
0
0
0
110001
0
0
0
0
0
0
11000
1
1
0
0
1
1
1100
0
1
1
0
0
0
110
0
0
1
1
0
1
11
0
0
0
1
0
1
1
1
0
0
0
1
1
-
1
1
0
0
1
1
Gambar 5.14 Hasil encoding program turbo codes Tabel 5.3 hasil encoding setelah pemenggalan secara vertikal tiap tiga karakter k
5.6
k=1
k=2
k=3
k=4
k=5
k=6
k=7
k=8
Data
0
0
1
0
0
0
1
1
Paritas 1
0
0
1
0
1
1
1
1
Paritas 2
0
0
0
0
0
0
0
0
Decoder Turbo Codes Gambar 5.15 merupakan pengujian proses decoding turbo codes. Data
hasil encoding pada Gambar 5.15 akan diproses oleh decoder. Data hasil decoder disamakan dengan data sebelum proses encoding dan hitungan manual
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 56
menggunakan excel pada lampiran 9. Berdasar data awal, penghitungan manual pada excel, hasil decoding program menunjukkan hasil yang sama. Sehingga decoder turbo codes layak digunakan untuk proses decoding data ECG.
Gambar 5.15 Pengujian Decoder Turbo codes
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
6
BAB VI
KESIMPULAN DAN SARAN 6.1
Kesimpulan Setelah program turbo codes dibuat, diuji dengan data ECG, dan dilakukan
analisis terhadap BER yang dihasilkan program, didapatkan kesimpulan sebagai berikut:
1. Program turbo codes yang dikembangkan layak digunakan untuk proses mengoreksi data ECG ketika menggunakan modulasi QAM 4 dengan SNR lebih besar dari 11 dan modulasi QAM 16 dengan SNR lebih besar dari 19. 2. Pada penelitian ini, Panjang data dan iterasi tidak mempengaruhi BER turbo codes. SNR mempengaruhi kinerja BER. Semakin Besar nilai SNR, nilai BER semakin baik. Selain itu, ukuran modulasi mempengaruhi kinerja BER. Semakin kecil ukuran modulasi, nilai BER semakin baik. Ketika SNR lebih besar dari 11 dengan modulasi QAM 4, kinerja program turbo codes menghasilkan BER yang baik. 6.2
Saran Penulis menyadari masih ada permasalahan yang terdapat pada program
turbo codes yang dikembangkan. Saran yang ditujukan untuk pengembangan selanjutnya: 1. Modulasi kanal AWGN perlu ditambah dengan variasi modulasi. Tujuan penambahan tersebut adalah pengguna dapat membandingkan BER dengan modulasi tertentu. 2. Iterasi decoder turbo codes perlu dikembangkan agar BER tiap iterasi menjadi lebih baik. 3. Decoder turbo code perlu ditambah dengan pilihan algoritma decoding misal Soft Output Viterbi Algoritma. Tujuan penambahan tersebut adalah pengguna dapat membandingkan BER antar algoritma decoding.
57
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
DAFTAR PUSTAKA [1] Bernard Sklar, Digital Communications Fundamental and Applicatios. New Jersey: Prentice Hall, Inc, 2001. [2] Behrouz A. Forouzan, Communications and Networking, 4th ed. New york, United States: McGraw-Hill, 2007. [3] Edward J. Berbari, "The Biomedical Engineering Handbook: Second Edition," in Principles of Electrocardiography. Boca Raton: CRC Press LLC, 2000. [4] Claude Berrou and Alain Glavieux, "Near Shannon Limit Error Correction Coding and Decoding: Turbo-Codes," in IEEE Transactions on Communication, Geneva,Switzerland, 1996, pp. 1261-1271. [5] A. Burr, "Turbo-codes: the ultimate error control codes?," Electronics & Communication Engineering Journal, pp. 155-165, Agustus 2001. [6] Daniel J. Costello, Joachim Hagenauer, Hideki Imai, and Stephen B. Wicker, "Applications of Error-Control Coding," vol. 44, pp. 2531-2560, Oktober 1998. [7] Fu-hua Huang. (1997) Evaluation of Soft Output Decoding for Turbo Codes. [8] Indra Irawan Isa, Fahmi Arfianto, and Achmad Rizal, "Simulasi Unjuk Kerja Sistem Komunikasi Satelit Berbasis CDMA untuk Transmisi Sinyal ECG (Electrocardiogram) pada Sistem Telemedika," in Seminar Nasional “Soft Computing, Intelligent Systems and Information Technology” (SIIT 2005), 2005, pp. 35-39. [9] (1997, May) physionet.org. [Online]. http://www.physionet.org/physiobank/database/mitdb/ [10] W.A. Newman Dorland, Dorland’s Illustrated Medical Dictionary. Philadelphia, Pennsylvania: W.B. Saunders Company, 2000, vol. 29/E. [11] Lawrence Staib and Patrick J. Lynch. (2007) Yale University. [Online]. http://noodle.med.yale.edu/~staib/bme355/ecg/prep.htm [12] Kresimir Malaric, "Electromagnetic Interference," in EMI Protection for Communication System. Norwood, MA: Artech House, 2009, p. 57.
58
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 59
[13] Ken Gracie and Marie-He´le`ne Hamon, "Turbo and Turbo-Like Codes: Principles and Applications in Telecommunications," in Proceedings of the IEEE, vol. 95, No 6, 2007, pp. 1228-1254. [14] D. Divsalar and F. Pollara, "On the Design of Turbo Codes," Communications Systems and Research Section, pp. 99-121, 1995. [15] Charan Langton. (2006) Turbo Coding and MAP decoding. [16] Gary Breed, "Bit Error Rate: Fundamental Concepts and Measurement Issues," High Frequency Electronics, pp. 46-48, 2003. [17] George B. Moody, "PhysioNet: Research Resource for Complex Physiologic Signals". [18] Robert Tratnig. (2003, Ferbuari) physionet.org. [Online]. http://www.physionet.org/physiotools/matlab/rddata.m [19] A. Sudhir Babu and Dr. K.V Sambasiva Rao, "Evaluation of BER for AWGN, Rayleigh and Rician Fading Channels under Various Modulation Schemes," International Journal of Computer Applications (0975 – 8887), vol. 26, pp. 23-28, Juli 2011. [20] Yahya Jasim Harbi, "Effect Of The Interleaver Types On The Performance Of The Parallel Concatenation Convolutional Codes," International Journal of Electrical & Computer Sciences, vol. 12 No. 3, pp. 25-31, Juni 2012. [21] ___. (2013, januari) oocities.org. [Online]. http://www.oocities.org/turbocoding/tc3.html [22] Maan A. Kousa, "Performance of Turbo Codes With Matrix Interleavers," The Arabian Journal for Science and Engineering, vol. 28, No. 2B, pp. 211220, Oktober 2003. [23] Rashmi Suthar, Sunil Joshi, and Navneet Agrawal, "Performance Analysis of Different M-ARY Modulation Techniques in Cellular Mobile Communication," IJCA, no. IP Multimedia Communications, pp. 24-29. [24] Rashmi Suthar, Sunil Joshi, and Navneet Agrawal, "Performance Analysis of Different M-ARY Modulation Techniques in Cellular Mobile Communication," IP Multimedia Communications, no. A Special Issue from
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 60
IJCA - www.ijcaonline.org, pp. 25-29. [25] Robert S. H. Istepanian and A. Petrosian, "Compression for a Mobile Telecardiology System Optimal Zonal Wavelet-Based ECG Data," IEEE TRANSACTIONS ON INFORMATION TECHNOLOGY IN BIOMEDICINE, vol. 4, pp. 200-211, September 2000.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
LAMPIRAN
61
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 62
LAMPIRAN 1 BER QAM 4 Berdasar Iterasi 0 0.169722 0.169722 0.169722 0.169722 0.169722
1 0.126389 0.126389 0.126389 0.126389 0.126389
2 0.106111 0.106111 0.106111 0.106111 0.106111
3 0.073333 0.073333 0.073333 0.073333 0.073333
4 0.0625 0.0625 0.0625 0.0625 0.0625
5 0.0425 0.042778 0.042778 0.042778 0.042778
6 0.02 0.02 0.02 0.02 0.02
7 0.011944 0.011944 0.011944 0.011944 0.011944
8 0.005556 0.005556 0.005556 0.005556 0.005556
9 0.003333 0.003333 0.003333 0.003333 0.003333
10 0.000278 0.000278 0.000278 0.000278 0.000278
11 0.000278 0.000278 0.000278 0.000278 0.000278
12 0 0 0 0 0
13 0 0 0 0 0
14 0 0 0 0 0
15 0 0 0 0 0
16 0 0 0 0 0
17 0 0 0 0 0
18 0 0 0 0 0
19 0 0 0 0 0
20 0 0 0 0 0
SNR
1 0.1375 0.127083 0.131204 0.133681 0.1305
2 0.101389 0.105694 0.104444 0.105972 0.101889
3 0.084167 0.080972 0.075093 0.078611 0.079222
4 0.056111 0.0575 0.057963 0.05625 0.055389
5 0.04 0.041111 0.037037 0.036944 0.039611
SNR
6 7 0.023889 0.011389 0.020694 0.014444
8 0.0075 0.007222
9 0.003056 0.002639
10 0.001111 0.001111
11 0.000278 0.000278
SNR
Iterasi 1 Iterasi 2 Iterasi 3 Iterasi 4 Iterasi 5 SNR
Iterasi 1 Iterasi 2 Iterasi 3 Iterasi 4 Iterasi 5 SNR
Iterasi 1 Iterasi 2 Iterasi 3 Iterasi 4 Iterasi 5 SNR
Iterasi 1 Iterasi 2 Iterasi 3 Iterasi 4 Iterasi 5
BER QAM 4 0 0.163611 ECG: 300 0.152778 ECG: 600 0.158611 ECG: 900 ECG: 1200 0.152361 ECG: 1500 0.158056
ECG: 300 ECG: 600
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 63
SNR
6 0.021759 ECG: 900 ECG: 1200 0.024931 ECG: 1500 0.021167
7 0.012778 0.011181 0.012278
8 0.005648 0.006111 0.006222
9 0.002407 0.001944 0.002111
10 0.000741 0.000694 0.000889
11 0.000278 0.000347 0.000278
SNR
12 0 ECG: 300 0.000139 ECG: 600 0 ECG: 900 ECG: 1200 0 ECG: 1500 0
13 0 0.000139 0 0 0
14 0 0.000139 0 0 0
15 0 0.000139 0 0 0
16 0 0.000139 0 0 0
17 0 0.000139 0 0 0
18 0 ECG: 300 0.000139 ECG: 600 0 ECG: 900 ECG: 1200 0 ECG: 1500 0
19 0 0.000139 0 0 0
20 0 0.000139 0 0 0
SNR
0 0.313889 ECG: 300 0.313194 ECG: 600 0.310926 ECG: 900 ECG: 1200 0.308125 ECG: 1500 0.309722
1 0.293889 0.293611 0.299722 0.298264 0.288111
2 0.273889 0.276944 0.281481 0.269653 0.275278
3 0.263889 0.257083 0.256574 0.260903 0.256833
4 0.230833 0.234722 0.24037 0.233958 0.230722
5 0.201111 0.210278 0.209259 0.210764 0.212056
SNR
6 0.180278 ECG: 300 0.182361 ECG: 600 0.185648 ECG: 900 ECG: 1200 0.183472 ECG: 1500 0.187111
7 0.153056 0.153333 0.159815 0.157292 0.161778
8 0.134722 0.12625 0.125741 0.136042 0.130333
9 0.110833 0.100833 0.101944 0.104653 0.104778
10 0.083056 0.0725 0.077315 0.076806 0.080222
11 0.058889 0.053611 0.05713 0.054444 0.055944
12 0.038611 ECG: 300 0.035556 ECG: 600 0.035926 ECG: 900 ECG: 1200 0.036181 ECG: 1500 0.037722
13 0.027222 0.024444 0.021204 0.021806 0.0235
14 0.010556 0.0125 0.01287 0.012222 0.013167
15 0.007222 0.005139 0.007315 0.004931 0.006444
16 0.0025 0.002083 0.002315 0.002292 0.002444
17 0.000278 0.001528 0.000648 0.000972 0.001
SNR
BER QAM 16
SNR
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 64
SNR ECG: 300 ECG: 600 ECG: 900 ECG: 1200 ECG: 1500
18 0 0.000417 0.000463 0.000486 0.000111
19 0 0.000139 0 0 0.000111
20 0 0.000139 0 0 0
BER QAM 32 SNR
0 0.355556 ECG: 300 0.362361 ECG: 600 0.356944 ECG: 900 ECG: 1200 0.354236 ECG: 1500 0.364722
1 0.347778 0.34875 0.341481 0.337917 0.346556
2 0.324167 0.33125 0.335 0.328681 0.328611
3 0.318889 0.313056 0.321296 0.316181 0.309278
4 0.294444 0.299167 0.297593 0.300486 0.299611
5 0.282778 0.284028 0.277685 0.280694 0.280333
SNR
6 0.281944 ECG: 300 0.256111 ECG: 600 0.263519 ECG: 900 ECG: 1200 0.258194 ECG: 1500 0.255444
7 0.233611 0.246944 0.2325 0.238889 0.238944
8 0.210556 0.211944 0.214444 0.213611 0.213056
9 0.187778 0.188333 0.191574 0.191458 0.187444
10 0.1675 0.159722 0.161296 0.162153 0.165111
11 0.129167 0.133194 0.130741 0.139375 0.1355
SNR
12 0.1025 ECG: 300 0.109444 ECG: 600 0.109352 ECG: 900 ECG: 1200 0.106736 ECG: 1500 0.113444
13 0.086667 0.083194 0.083056 0.081111 0.0815
14 0.056944 0.063056 0.060556 0.059861 0.061667
15 0.038889 0.039028 0.040926 0.038681 0.040167
16 0.024444 0.025417 0.025926 0.026042 0.022444
17 0.013611 0.01125 0.013148 0.013611 0.013611
18 0.005278 ECG: 300 0.006528 ECG: 600 0.006667 ECG: 900 ECG: 1200 0.006458 ECG: 1500 0.006111
19 0.002222 0.001806 0.002037 0.002292 0.001889
20 0.001389 0.000972 0.000926 0.000556 0.000556
1 0.199444 0.197083 0.190278
2 0.181667 0.179583 0.178426
3 0.156389 0.162639 0.155648
4 0.141944 0.1425 0.136111
5 0.132222 0.131111 0.121759
SNR
BER QAM 64 SNR ECG: 300 ECG: 600 ECG: 900
0 0.217222 0.214028 0.21787
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 65
0.219444 0.197778 ECG: 1500 0.218889 0.201611
0.179792 0.177889
0.159653 0.161778
0.143681 0.142611
0.123542 0.126889
ECG: 1200
SNR
6 0.111944 ECG: 300 0.102222 ECG: 600 0.111019 ECG: 900 ECG: 1200 0.114375 ECG: 1500 0.108833
7 0.095 0.097778 0.098796 0.097153 0.098889
8 0.087222 0.087083 0.086667 0.087222 0.084389
9 0.077222 0.076111 0.080463 0.075208 0.078167
10 0.066111 0.064028 0.064815 0.065903 0.068444
11 0.059444 0.057639 0.059907 0.060347 0.057333
SNR
12 0.046111 ECG: 300 0.048333 ECG: 600 0.052037 ECG: 900 ECG: 1200 0.048819 ECG: 1500 0.052333
13 0.045833 0.0425 0.043519 0.042153 0.042278
14 0.035278 0.031389 0.03213 0.035694 0.033944
15 0.024167 0.027083 0.028241 0.029097 0.027444
16 0.021944 0.021111 0.022222 0.019514 0.021944
17 0.013056 0.016806 0.016574 0.015903 0.0165
18 0.009722 ECG: 300 0.009167 ECG: 600 0.009722 ECG: 900 ECG: 1200 0.010694 ECG: 1500 0.011778
19 0.005833 0.005833 0.006204 0.006667 0.006889
20 0.003056 0.0025 0.00287 0.003194 0.002833
SNR
BER dengan panjang data ECG: 300 SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64
0 0.163611 0.313889 0.355556 0.217222
1 0.1375 0.293889 0.347778 0.199444
2 0.101389 0.273889 0.324167 0.181667
3 0.084167 0.263889 0.318889 0.156389
4 0.056111 0.230833 0.294444 0.141944
5 0.04 0.201111 0.282778 0.132222
6 0.023889 0.180278 0.281944 0.111944
7 0.011389 0.153056 0.233611 0.095
8 0.0075 0.134722 0.210556 0.087222
9 0.003056 0.110833 0.187778 0.077222
10 0.001111 0.083056 0.1675 0.066111
11 0.000278 0.058889 0.129167 0.059444
12 0 0.038611 0.1025 0.046111
13 0 0.027222 0.086667 0.045833
14 0 0.010556 0.056944 0.035278
15 0 0.007222 0.038889 0.024167
16 0 0.0025 0.024444 0.021944
17 0 0.000278 0.013611 0.013056
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 66
SNR QAM 4 QAM 16 QAM 32 QAM 64
18 0 0 0.005278 0.009722
19 0 0 0.002222 0.005833
20 0 0 0.001389 0.003056
BER dengan panjang data ECG: 600 0 0.152778 0.313194 0.362361 0.214028
1 0.127083 0.293611 0.34875 0.197083
2 0.105694 0.276944 0.33125 0.179583
3 0.080972 0.257083 0.313056 0.162639
4 0.0575 0.234722 0.299167 0.1425
5 0.041111 0.210278 0.284028 0.131111
6 0.020694 0.182361 0.256111 0.102222
7 0.014444 0.153333 0.246944 0.097778
8 0.007222 0.12625 0.211944 0.087083
9 0.002639 0.100833 0.188333 0.076111
10 0.001111 0.0725 0.159722 0.064028
11 0.000278 0.053611 0.133194 0.057639
QAM 64
12 0.000139 0.035556 0.109444 0.048333
13 0.000139 0.024444 0.083194 0.0425
14 0.000139 0.0125 0.063056 0.031389
15 0.000139 0.005139 0.039028 0.027083
16 0.000139 0.002083 0.025417 0.021111
17 0.000139 0.001528 0.01125 0.016806
SNR QAM 4 QAM 16 QAM 32 QAM 64
18 0.000139 0.000417 0.006528 0.009167
19 0.000139 0.000139 0.001806 0.005833
20 0.000139 0.000139 0.000972 0.0025
SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32
BER dengan panjang data ECG: 900 SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16
0 0.158611 0.310926 0.356944 0.21787
1 0.131204 0.299722 0.341481 0.190278
2 0.104444 0.281481 0.335 0.178426
3 0.075093 0.256574 0.321296 0.155648
4 0.057963 0.24037 0.297593 0.136111
5 0.037037 0.209259 0.277685 0.121759
6 0.021759 0.185648
7 0.012778 0.159815
8 0.005648 0.125741
9 0.002407 0.101944
10 0.000741 0.077315
11 0.000278 0.05713
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 67
QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64
0.263519 0.111019
0.2325 0.098796
0.214444 0.086667
0.191574 0.080463
0.161296 0.064815
0.130741 0.059907
12 0 0.035926 0.109352 0.052037
13 0 0.021204 0.083056 0.043519
14 0 0.01287 0.060556 0.03213
15 0 0.007315 0.040926 0.028241
16 0 0.002315 0.025926 0.022222
17 0 0.000648 0.013148 0.016574
18 0 0.000463 0.006667 0.009722
19 0 0 0.002037 0.006204
20 0 0 0.000926 0.00287
BER dengan panjang data ECG: 1200 SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64
0 0.152361 0.308125 0.354236 0.219444
1 0.133681 0.298264 0.337917 0.197778
2 0.105972 0.269653 0.328681 0.179792
3 0.078611 0.260903 0.316181 0.159653
4 0.05625 0.233958 0.300486 0.143681
5 0.036944 0.210764 0.280694 0.123542
6 0.024931 0.183472 0.258194 0.114375
7 0.011181 0.157292 0.238889 0.097153
8 0.006111 0.136042 0.213611 0.087222
9 0.001944 0.104653 0.191458 0.075208
10 0.000694 0.076806 0.162153 0.065903
11 0.000347 0.054444 0.139375 0.060347
12 0 0.036181 0.106736 0.048819
13 0 0.021806 0.081111 0.042153
14 0 0.012222 0.059861 0.035694
15 0 0.004931 0.038681 0.029097
16 0 0.002292 0.026042 0.019514
17 0 0.000972 0.013611 0.015903
18 0 0.000486 0.006458 0.010694
19 0 0 0.002292 0.006667
20 0 0 0.000556 0.003194
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 68
BER dengan panjang data ECG: 1500 SNR QAM 4 QAM 16 QAM 32 QAM 64
SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64 SNR QAM 4 QAM 16 QAM 32 QAM 64
0 0.158056 0.309722 0.364722 0.218889
1 0.1305 0.288111 0.346556 0.201611
2 0.101889 0.275278 0.328611 0.177889
3 0.079222 0.256833 0.309278 0.161778
4 0.055389 0.230722 0.299611 0.142611
5 0.039611 0.212056 0.280333 0.126889
6 0.021167 0.187111 0.255444 0.108833
7 0.012278 0.161778 0.238944 0.098889
8 0.006222 0.130333 0.213056 0.084389
9 0.002111 0.104778 0.187444 0.078167
10 0.000889 0.080222 0.165111 0.068444
11 0.000278 0.055944 0.1355 0.057333
12 0 0.037722 0.113444 0.052333
13 0 0.0235 0.0815 0.042278
14 0 0.013167 0.061667 0.033944
15 0 0.006444 0.040167 0.027444
16 0 0.002444 0.022444 0.021944
17 0 0.001 0.013611 0.0165
18 0 0.000111 0.006111 0.011778
19 0 0.000111 0.001889 0.006889
20 0 0 0.000556 0.002833
Lampiran 2 Fungsi Proses_baca_data.m function [sandi]=Proses_baca_data(File,PanjangData) [pathstr, name]=fileparts(File); %------ SPECIFY DATA --------------------------------------------PATH= pathstr;
% path, where data are saved
HEADERFILE= [name,'.hea']; ATRFILE= [name,'.atr']; DATAFILE=[name,'.dat'];
% header-file in text formati
% attributes-file in binary format % data-file
SAMPLES2READ=PanjangData;
% number of samples to be read
% in case of more than one signal: % 2*SAMPLES2READ samples are read %% --------------------------- LOAD HEADER DATA -----------------signalh= fullfile(PATH, HEADERFILE); fid1=fopen(signalh,'r');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 69
Fungsi Proses_baca_data.m (Lanjutan) z= fgetl(fid1); A= sscanf(z, '%*s %d %d %d',[1,3]); nosig= A(1); % number of signals sfreq=A(2); % sample rate of data clear A; for k=1:nosig z= fgetl(fid1); A= sscanf(z, '%*s %d %d %d %d %d',[1,5]); dformat(k)= A(1);
% format; here only 212 is allowed
gain(k)= A(2);
% number of integers per mV
bitres(k)= A(3);
% bitresolution
zerovalue(k)= A(4); firstvalue(k)= A(5);
% integer value of ECG zero point % first integer value of signal (to test for errors)
end; fclose(fid1); clear A; %% --------------------------- LOAD BINARY DATA -----------------if dformat~= [212,212], error('this script does not apply binary formats different to 212.'); end; signald= fullfile(PATH, DATAFILE);
% data in format 212
fid2=fopen(signald,'r'); A= fread(fid2, [3, SAMPLES2READ], 'uint8')'; % matrix with 3 rows, each 8 bits long, = 2*12bit fclose(fid2); M2H= bitshift(A(:,2), -4); M1H= bitand(A(:,2), 15); PRL=bitshift(bitand(A(:,2),8),9);
% sign-bit
PRR=bitshift(bitand(A(:,2),128),5); % sign-bit M( : , 1)= bitshift(M1H,8)+ A(:,1)-PRL; M( : , 2)= bitshift(M2H,8)+ A(:,3)-PRR; if M(1,:) ~= firstvalue, error('inconsistency in the first bit values'); end; switch nosig case 2 M( : , 1)= (M( : , 1)- zerovalue(1))/gain(1); M( : , 2)= (M( : , 2)- zerovalue(2))/gain(2); TIME=(0:(SAMPLES2READ-1))/sfreq; case 1 M( : , 1)= (M( : , 1)- zerovalue(1)); M( : , 2)= (M( : , 2)- zerovalue(1));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 70
Fungsi Proses_baca_data.m (Lanjutan) M=M'; M(1)=[]; sM=size(M); sM=sM(2)+1; M(sM)=0; M=M'; M=M/gain(1); TIME=(0:2*(SAMPLES2READ)-1)/sfreq; otherwise % this case did not appear up to now! disp('Sorting algorithm for more than 2 signals not programmed yet!'); end; clear A M1H M2H PRR PRL; %% --------------------------- LOAD ATTRIBUTES DATA -------------atrd= fullfile(PATH, ATRFILE);
% attribute file with annotation data
fid3=fopen(atrd,'r'); A= fread(fid3, [2, inf], 'uint8')'; fclose(fid3); ATRTIME=[];ANNOT=[]; sa=size(A); saa=sa(1); i=1; while i<=saa annoth=bitshift(A(i,2),-2); if annoth==59 ANNOT=[ANNOT;bitshift(A(i+3,2),-2)]; ATRTIME=[ATRTIME;A(i+2,1)+bitshift(A(i+2,2),8)+... bitshift(A(i+1,1),16)+bitshift(A(i+1,2),24)]; i=i+3; elseif annoth==60 % nothing to do! elseif annoth==61 % nothing to do! elseif annoth==62 % nothing to do! elseif annoth==63 hilfe=bitshift(bitand(A(i,2),3),8)+A(i,1); hilfe=hilfe+mod(hilfe,2);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 71
Fungsi Proses_baca_data.m (Lanjutan) i=i+hilfe/2; else ATRTIME=[ATRTIME;bitshift(bitand(A(i,2),3),8)+A(i,1)]; ANNOT=[ANNOT;bitshift(A(i,2),-2)]; end; i=i+1; end; ANNOT(length(ANNOT))=[];
% last line = EOF (=0)
ATRTIME(length(ATRTIME))=[]; % last line = EOF clear A; ATRTIME= (cumsum(ATRTIME))/sfreq; ind= find(ATRTIME <= TIME(end)); ATRTIMED= ATRTIME(ind); ANNOT=round(ANNOT); ANNOTD= ANNOT(ind); %% --------------------------- DISPLAY DATA ------------------------------plot(TIME, M(:,1),'r'); xlim([TIME(1), TIME(end)]); xlabel('Time / s'); ylabel('Voltage / mV'); DataECG(:,1)=M(:,1); DataECG(:,1)=(DataECG(:,1)+1)*1000; if exist('ECGDat.mat','file')==2 save('ECGDat.mat','DataECG','TIME','-append'); else save('ECGDat.mat','DataECG','TIME'); end end
Lampiran 3 Hasil Pembacaan Data ECG oleh Proses_baca_data.m -0.145 -0.145 -0.145 -0.145 -0.145 -0.145 -0.145 -0.145 -0.12
-0.225 -0.245 -0.25 -0.26 -0.275 -0.275 -0.275 -0.265 -0.255
-0.32 -0.335 -0.36 -0.385 -0.385 -0.405 -0.455 -0.485 -0.485
-0.33 -0.325 -0.315 -0.31 -0.32 -0.335 -0.34 -0.325 -0.345
-0.34 -0.33 -0.33 -0.33 -0.34 -0.35 -0.325 -0.325 -0.33
-0.34 -0.34 -0.335 -0.33 -0.35 -0.35 -0.345 -0.335 -0.335
-0.365 -0.365 -0.36 -0.36 -0.365 -0.37 -0.355 -0.33 -0.325
-0.255 -0.24 -0.25 -0.255 -0.245 -0.255 -0.25 -0.25 -0.265
-0.28 -0.275 -0.285 -0.28 -0.3 -0.3 -0.305 -0.295 -0.3
-0.315 -0.3 -0.305 -0.31 -0.32 -0.33 -0.325 -0.315 -0.31
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 72
Hasil Pembacaan Data ECG oleh Proses_baca_data.m (Lanjutan) -0.135 -0.145 -0.15 -0.16 -0.155 -0.16 -0.175 -0.18 -0.185 -0.17 -0.155 -0.175 -0.18 -0.19 -0.18 -0.155 -0.135 -0.155 -0.19 -0.205 -0.235
-0.265 -0.275 -0.29 -0.29 -0.29 -0.29 -0.285 -0.295 -0.305 -0.285 -0.275 -0.275 -0.28 -0.285 -0.305 -0.29 -0.3 -0.28 -0.29 -0.3 -0.315
-0.425 -0.33 -0.22 -0.07 0.12 0.375 0.62 0.78 0.84 0.765 0.52 0.17 -0.165 -0.365 -0.435 -0.425 -0.37 -0.33 -0.325 -0.335 -0.345
-0.335 -0.33 -0.335 -0.33 -0.325 -0.33 -0.33 -0.345 -0.355 -0.335 -0.325 -0.305 -0.32 -0.32 -0.33 -0.34 -0.335 -0.34 -0.345 -0.355 -0.355
-0.33 -0.335 -0.335 -0.34 -0.33 -0.34 -0.35 -0.355 -0.35 -0.345 -0.33 -0.32 -0.335 -0.33 -0.345 -0.33 -0.335 -0.335 -0.345 -0.345 -0.355
-0.335 -0.35 -0.355 -0.355 -0.345 -0.345 -0.335 -0.35 -0.36 -0.36 -0.36 -0.365 -0.36 -0.37 -0.385 -0.37 -0.36 -0.355 -0.36 -0.375 -0.375
-0.325 -0.335 -0.34 -0.315 -0.3 -0.3 -0.29 -0.295 -0.29 -0.285 -0.275 -0.255 -0.25 -0.25 -0.265 -0.255 -0.245 -0.23 -0.245 -0.245 -0.255
-0.26 -0.26 -0.265 -0.27 -0.265 -0.26 -0.275 -0.28 -0.29 -0.275 -0.27 -0.26 -0.28 -0.28 -0.285 -0.275 -0.275 -0.265 -0.27 -0.285 -0.29
-0.31 -0.31 -0.305 -0.295 -0.285 -0.285 -0.29 -0.295 -0.31 -0.29 -0.295 -0.3 -0.305 -0.31 -0.325 -0.31 -0.3 -0.29 -0.31 -0.325 -0.33
-0.305 -0.305 -0.31 -0.3 -0.305 -0.29 -0.3 -0.3 -0.305 -0.305 -0.29 -0.28 -0.295 -0.305 -0.315 -0.305 -0.295 -0.29 -0.28 -0.27 -0.275
Lampiran 4 Fungsi Encoder %% Proses Encoding h = waitbar(0,'Tunggu beberapa saat ...'); steps = length(dataProses); %RSC 1 dataA=0;dataB=0;dataC=0; for i=1:steps if (mod(i,1000)==0) waitbar(i / steps) end %Modulo Data, R1, R2, dan R3 moduloRSC1(1,1)=mod((dataProses(i)+RegRSC1(1,1)+RegRSC1(1,2)+RegRSC1(1,3)),2); %Modulo M1, R1, dan R3 moduloRSC1(1,2)=mod((moduloRSC1(1,1)+RegRSC1(1,1)+RegRSC1(1,3)),2); %Penggeseran R2 ke R3, R1 ke R2, dan modulo M1 ke R1 RegRSC1(1,3)=RegRSC1(1,2); RegRSC1(1,2)=RegRSC1(1,1); RegRSC1(1,1)=moduloRSC1(1,1); %RSC 2
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 73
Lampiran 4 Fungsi Encoder (Lanjutan) %Modulo Data, R1, R2, dan R3 moduloRSC2(1,1)=mod((dataIntrlvr(i)+RegRSC2(1,1)+RegRSC2(1,2)+RegRSC2(1,3)),2); %Modulo M1, R1, dan R3 moduloRSC2(1,2)=mod((moduloRSC2(1,1)+RegRSC2(1,1)+RegRSC2(1,3)),2); %Penggeseran R2 ke R3, R1 ke R2, dan modulo M1 ke R1 RegRSC2(1,3)=RegRSC2(1,2); RegRSC2(1,2)=RegRSC2(1,1); RegRSC2(1,1)=moduloRSC2(1,1);
dataEncoder=[dataEncoder,num2str(dataProses(i)),num2str(moduloRSC1(1,2)),num2str(moduloR SC2(1,2))]; end close(h);
Lampiran 5 Pengiriman Data Sandi Melalui Kanal AWGN function [dataEncoder,dataKirim,dataKanal, dataTerima]=ModemQAM_2(QamSize,Snr) %% Setup % Define parameters. M = QamSize;
% Size of signal constellation
k = log2(M);
% Number of bits per symbol
[x,y,z]=strread(Snr,'%d %[:] %d'); snr=x:z;
%sigyal ratio to noise
nsamp = 1;
% Oversampling rate
hMod = modem.qammod(M); % Create a 16-QAM modulator hDeMod = modem.qamdemod(M); % Create a 16-QAM demodulator load ('ECGDat.mat','lokasiSandi'); load (lokasiSandi, 'sandiEncoder'); %% Signal Source steps = length(sandiEncoder)/k; a=1; for colom=1:steps for row=1:k x(row,colom)=str2double(sandiEncoder(a)); a=a+1; end end
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 74
Lampiran 5 Pengiriman Data Sandi Melalui Kanal AWGN clear a colom row QamSize ; %% Bit-to-Symbol Mapping% Convert the bits in x into k-bit symbols. xsym = bi2de(x.','left-msb'); %% Modulation y = modulate(hMod,xsym); % Modulate using 16-QAM. %% Transmitted Signal ytx = y; %% hx = waitbar(0,'Tunggu beberapa saat ...'); steps =length(snr(1,:)); for i=1:steps %% Channel
% Send signal over an AWGN channel.
ynoisy = awgn(ytx,snr(1,i),'measured'); %% Received Signal yrx = ynoisy; %% Demodulation % Demodulate signal using 16-QAM. zsym = demodulate(hDeMod,yrx); %% Symbol-to-Bit Mapping % Undo the bit-to-symbol mapping performed earlier. z = de2bi(zsym,'left-msb'); % Convert integers to bits. % Convert z from a matrix to a vector.
%z = reshape(z.',numel(z),1);
zTrans=z'; dataEncoder=x; dataKirim=ytx; dataKanal=yrx; [error, jmlbit]=biterr(dataEncoder,zTrans); berAWGN(1,i)=jmlbit; dataTerima(i,:)=reshape(zTrans,1,(length(zTrans(1,:))*length(zTrans(:,1)))); waitbar(i/steps); end close(hx); BerAWGN=berAWGN; if exist('ber.mat','file')==0 save('ber.mat','berAWGN'); else save('ber.mat','berAWGN','-append'); end save(lokasiSandi,'snr','M','-append');
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 75
Lampiran 6 Fungsi Decoder Turbo codes function [dataECG, BER]=decoder(files,iterasi) load (files) ber=0; noe=0; hx = waitbar(0,'Tunggu beberapa saat ...'); stepsx =length(snr(1,:)); for iSNR=1:length(snr(1,:)) sinyalTerima=reshape(dataTerima(iSNR,:),3, length(dataTerima(iSNR,:))/3); sinyalTerima(sinyalTerima==0 )=-1; %% inisialisai trelis Lc=1;
% channel reliability value.
state=[-1 -1 1 1; %1 -1 -1 2 5; %2 -1 1 3 6; %3 -1 1 4 2; %4 -1 -1 5 7; %5 -1 -1 6 3; %6 -1 1 7 4; %7 -1 1 8 8; %8
1 1 1 5; %9 1 1 2 1; %10 1 -1 3 2; %11 1 -1 4 6; %12 1 1 5 3; %13 1 1 6 7; %14 1 -1 7 8; %15 1 -1 8 4;]; %16
%% inisialisasi variabel LcSinyal=sinyalTerima*Lc;
% sinyal * Lc
Le(1,length(LcSinyal(1,:)))=0; %inisialisasi Le untuk iterasi 1=0 alfa=[1; 0; 0; 0; 1;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 76
0; 0; 0;]; alfa(9,1)=sum(alfa([1:8],1)); alfaN=alfa([1:8],1); beta([1:8],length(LcSinyal(1,:))+1)=alfa([1:8],1); betaN([1:9],length(LcSinyal(1,:))+1)=alfa([1:9],1); gamma=Le; itrs=1; %% iterasi while itrs<=iterasi %%DEC 1 % compute gamma : full brack matrik for i=1:length(state(:,1)); a=Le(1,:)*state(i,1); b=LcSinyal(1,:)*state(i,1); c=LcSinyal(2,:)*state(i,2); gamma(i,:)=exp(0.5*( a+b+c)); gamma2(i,:)=exp(0.5*c); end %Forward Branch and backward for i=2: length(gamma(1,:))+1 %Forward Branch Metrics for j=1:length(gamma(:,1))/2 if (mod(j,8)==1) alfa(j,i)=alfaN(1,i-1)*gamma(1,i-1)+ alfaN(2,i-1)*gamma(10,i-1); elseif (mod(j,8)==2) alfa(j,i)=alfaN(4,i-1)*gamma(4,i-1)+ alfaN(3,i-1)*gamma(11,i-1); elseif (mod(j,8)==3) alfa(j,i)=alfaN(5,i-1)*gamma(13,i-1)+ alfaN(6,i-1)*gamma(6,i-1); elseif (mod(j,8)==4) alfa(j,i)=alfaN(8,i-1)*gamma(16,i-1)+ alfaN(7,i-1)*gamma(7,i-1); elseif (mod(j,8)==5) alfa(j,i)=alfaN(1,i-1)*gamma(2,i-1)+ alfaN(2,i-1)*gamma(9,i-1); elseif (mod(j,8)==6) alfa(j,i)=alfaN(4,i-1)*gamma(3,i-1)+ alfaN(3,i-1)*gamma(12,i-1); elseif (mod(j,8)==7) alfa(j,i)=alfaN(5,i-1)*gamma(14,i-1)+ alfaN(6,i-1)*gamma(5,i-1);
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 77
else alfa(j,i)=alfaN(8,i-1)*gamma(16,i-1)+ alfaN(7,i-1)*gamma(8,i-1); end end alfa(9,i)=sum(alfa([1:8],i)); %Forward Branch Metrics, Normalized for j=1:length(gamma(:,1))/2 alfaN(j,i)=alfa(j,i)/alfa(9,i); end a=alfaN(1,i-1)*(gamma(1,i-1)+gamma(9,i-1)); b=alfaN(2,i-1)*(gamma(2,i-1)+gamma(10,i-1)); c=alfaN(3,i-1)*(gamma(3,i-1)+gamma(11,i-1)); d=alfaN(4,i-1)*(gamma(4,i-1)+gamma(12,i-1)); e=alfaN(5,i-1)*(gamma(5,i-1)+gamma(13,i-1)); f=alfaN(6,i-1)*(gamma(6,i-1)+gamma(14,i-1)); g=alfaN(7,i-1)*(gamma(7,i-1)+gamma(16,i-1)); h=alfaN(8,i-1)*(gamma(8,i-1)+gamma(16,i-1)); betaN(9,i)=a+b+c+d+e+f+g+h; end %%Compute Backward Branch Metrics i=length(gamma(1,:))+1; while 1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 78
beta(j,i-1)=betaN(8,i)*gamma(j+8,i-1)+ betaN(6,i)*gamma(j,i-1); end end clear j; %%Compute Backward Branch Metrics, Normalized for j=1:length(gamma(:,1))/2 betaN(j,i-1)=beta(j,i-1)/betaN(9,i-1); end i=i-1; end %penghitungan LLR x=1; for i=1 : length(gamma(:,1)); if mod(x,8)==1 x=1; end a=alfaN(x,[1:length(gamma(1,:))]);
% mengambil nilai alfa yang telah di normalisasi
b=gamma2(i,[1:length(gamma(1,:))]);
% mengambil nilai gamma partial
c=betaN(state(i,4),[2:(length(gamma(1,:))+1)]); % ambil nilai betaN sesuai urutan state LLR(i,[1:length(gamma(1,:))])=a.*b.*c;
%log likeehood ratio
x=x+1; end LLR(length(gamma(:,1))+1,[1:length(gamma(1,:))])=sum(LLR([9:16],[1:length(gamma(1,:))]))./s um(LLR([1:8],[1:length(gamma(1,:))])); le=log(LLR(17,:)); luk=le(1,:)+LcSinyal(1,:)+Le(1,:); %desision iterasiDEC1=luk; iterasiDEC1(iterasiDEC1(1,:)>=0)=1; iterasiDEC1(iterasiDEC1(1,:)<0)=0; Le=le; %%DEC 2 % compute gamma : full brack matrik gamma2: bagian dari gamma for i=1:length(state(:,1)); a=Le(1,:)*state(i,1); b=iterasiDEC1(1,:)*state(i,1); c=LcSinyal(3,:)*state(i,2); gamma(i,:)=exp(0.5*(a+b+c));
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 79
gamma2(i,:)=exp(0.5*c); end %Forward Branch and backward for i=2: length(gamma(1,:))+1 %Forward Branch Metrics for j=1:length(gamma(:,1))/2 if (mod(j,8)==1) alfa(j,i)=alfaN(1,i-1)*gamma(1,i-1)+ alfaN(2,i-1)*gamma(10,i-1); elseif (mod(j,8)==2) alfa(j,i)=alfaN(4,i-1)*gamma(4,i-1)+ alfaN(3,i-1)*gamma(11,i-1); elseif (mod(j,8)==3) alfa(j,i)=alfaN(5,i-1)*gamma(13,i-1)+ alfaN(6,i-1)*gamma(6,i-1); elseif (mod(j,8)==4) alfa(j,i)=alfaN(8,i-1)*gamma(16,i-1)+ alfaN(7,i-1)*gamma(7,i-1); elseif (mod(j,8)==5) alfa(j,i)=alfaN(1,i-1)*gamma(2,i-1)+ alfaN(2,i-1)*gamma(9,i-1); elseif (mod(j,8)==6) alfa(j,i)=alfaN(4,i-1)*gamma(3,i-1)+ alfaN(3,i-1)*gamma(12,i-1); elseif (mod(j,8)==7) alfa(j,i)=alfaN(5,i-1)*gamma(14,i-1)+ alfaN(6,i-1)*gamma(5,i-1); else alfa(j,i)=alfaN(8,i-1)*gamma(16,i-1)+ alfaN(7,i-1)*gamma(8,i-1); end end alfa(9,i)=sum(alfa([1:8],i)); %Forward Branch Metrics, Normalized for j=1:length(gamma(:,1))/2 alfaN(j,i)=alfa(j,i)/alfa(9,i); end a=alfaN(1,i-1)*(gamma(1,i-1)+gamma(9,i-1)); b=alfaN(2,i-1)*(gamma(2,i-1)+gamma(10,i-1)); c=alfaN(3,i-1)*(gamma(3,i-1)+gamma(11,i-1)); d=alfaN(4,i-1)*(gamma(4,i-1)+gamma(12,i-1)); e=alfaN(5,i-1)*(gamma(5,i-1)+gamma(13,i-1)); f=alfaN(6,i-1)*(gamma(6,i-1)+gamma(14,i-1)); g=alfaN(7,i-1)*(gamma(7,i-1)+gamma(16,i-1)); h=alfaN(8,i-1)*(gamma(8,i-1)+gamma(16,i-1)); betaN(9,i)=a+b+c+d+e+f+g+h;
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 80
end %%Compute Backward Branch Metrics i=length(gamma(1,:))+1; while 1
% mengambil nilai alfa yang telah di normalisasi % mengambil nilai gamma partial
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 81
c=betaN(state(i,4),[2:(length(gamma(1,:))+1)]);% ambil nilai betaN sesuai urutan state LLR(i,[1:length(gamma(1,:))])=a.*b.*c;
%log likeehood ratio
x=x+1; end LLR(length(gamma(:,1))+1,[1:length(gamma(1,:))])=sum(LLR([9:16],[1:length(gamma(1,:))]))./s um(LLR([1:8],[1:length(gamma(1,:))])); le=log(LLR(17,:)); luk=le(1,:)+LcSinyal(1,:)+Le(1,:); %desision iterasiDEC2=luk; iterasiDEC2(iterasiDEC2(1,:)>=0)=1; iterasiDEC2(iterasiDEC2(1,:)<0)=0; itrsDEC=iterasiDEC2; itrsDEC(iSNR,:)=iterasiDEC2; Le=le; clear a b c d e f g h i j x; itrs=itrs+1; waitbar(iSNR/stepsx); end %% clear h steps; %% proses penerjemahan data dataAwal=reshape(dataEncoder,3,(length(dataEncoder(1,:))*length(dataEncoder(:,1)))/3); i=0; a=1; while i
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 82
Lampiran 7 Hasil Penerjemahan Data Biner menjadi Data ECG 855 855 855 855 855 855 855 855 880 865 855 850 840 845 840 825 820 815 830 845 825 820 810 820 845 865 845 810 795 765
775 755 750 740 725 725 725 735 745 735 725 710 710 710 710 715 705 695 715 725 725 720 715 695 710 700 720 710 700 685
680 665 640 615 615 595 545 515 515 575 670 780 930 1120 1375 1620 1780 1840 1765 1520 1170 835 635 565 575 630 670 675 665 655
670 675 685 690 680 665 660 675 655 665 670 665 670 675 670 670 655 645 665 675 695 680 680 670 660 665 660 655 645 645
660 670 670 670 660 650 675 675 670 670 665 665 660 670 660 650 645 650 655 670 680 665 670 655 670 665 665 655 655 645
660 660 665 670 650 650 655 665 665 665 650 645 645 655 655 665 650 640 640 640 635 640 630 615 630 640 645 640 625 625
635 635 640 640 635 630 645 670 675 675 665 660 685 700 700 710 705 710 715 725 745 750 750 735 745 755 770 755 755 745
745 760 750 745 755 745 750 750 735 740 740 735 730 735 740 725 720 710 725 730 740 720 720 715 725 725 735 730 715 710
720 725 715 720 700 700 695 705 700 690 690 695 705 715 715 710 705 690 710 705 700 695 690 675 690 700 710 690 675 670
685 700 695 690 680 670 675 685 690 695 695 690 700 695 710 700 700 695 695 710 720 705 695 685 695 705 710 720 730 725
Lampiran 8 Data ECG -0.145
-0.225
-0.321
-0.331
-0.341
-0.341
-0.365
-0.255
-0.28
-0.315
-0.145
-0.245
-0.335
-0.325
-0.331
-0.341
-0.365
-0.24
-0.275
-0.3
-0.145
-0.25
-0.36
-0.315
-0.331
-0.335
-0.36
-0.25
-0.285
-0.305
-0.145
-0.26
-0.385
-0.31
-0.331
-0.331
-0.36
-0.255
-0.28
-0.31
-0.145
-0.275
-0.385
-0.321
-0.341
-0.35
-0.365
-0.245
-0.3
-0.321
-0.145
-0.275
-0.405
-0.335
-0.35
-0.35
-0.37
-0.255
-0.3
-0.331
-0.145
-0.275
-0.456
-0.341
-0.325
-0.345
-0.355
-0.25
-0.305
-0.325
-0.145
-0.265
-0.485
-0.325
-0.325
-0.335
-0.331
-0.25
-0.295
-0.315
-0.12
-0.255
-0.485
-0.345
-0.331
-0.335
-0.325
-0.265
-0.3
-0.31
-0.135
-0.265
-0.425
-0.335
-0.331
-0.335
-0.325
-0.26
-0.31
-0.305
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 83
Data ECG (Lanjutan) -0.145
-0.275
-0.331
-0.331
-0.335
-0.35
-0.335
-0.26
-0.31
-0.305
-0.15
-0.29
-0.22
-0.335
-0.335
-0.355
-0.341
-0.265
-0.305
-0.31
-0.16
-0.29
-0.071
-0.331
-0.341
-0.355
-0.315
-0.27
-0.295
-0.3
-0.155
-0.29
0.12
-0.325
-0.331
-0.345
-0.3
-0.265
-0.285
-0.305
-0.16
-0.29
0.375
-0.331
-0.341
-0.345
-0.3
-0.26
-0.285
-0.29
-0.175
-0.285
0.62
-0.331
-0.35
-0.335
-0.29
-0.275
-0.29
-0.3
-0.18
-0.295
0.78
-0.345
-0.355
-0.35
-0.295
-0.28
-0.295
-0.3
-0.185
-0.305
0.839
-0.355
-0.35
-0.36
-0.29
-0.29
-0.31
-0.305
-0.17
-0.285
0.765
-0.335
-0.345
-0.36
-0.285
-0.275
-0.29
-0.305
-0.155
-0.275
0.52
-0.325
-0.331
-0.36
-0.275
-0.27
-0.295
-0.29
-0.175
-0.275
0.17
-0.305
-0.321
-0.365
-0.255
-0.26
-0.3
-0.28
-0.18
-0.28
-0.165
-0.321
-0.335
-0.36
-0.25
-0.28
-0.305
-0.295
-0.19
-0.285
-0.365
-0.321
-0.331
-0.37
-0.25
-0.28
-0.31
-0.305
-0.18
-0.305
-0.435
-0.331
-0.345
-0.385
-0.265
-0.285
-0.325
-0.315
-0.155
-0.29
-0.425
-0.341
-0.331
-0.37
-0.255
-0.275
-0.31
-0.305
-0.135
-0.3
-0.37
-0.335
-0.335
-0.36
-0.245
-0.275
-0.3
-0.295
-0.155
-0.28
-0.331
-0.341
-0.335
-0.355
-0.23
-0.265
-0.29
-0.29
-0.19
-0.29
-0.325
-0.345
-0.345
-0.36
-0.245
-0.27
-0.31
-0.28
-0.205
-0.3
-0.335
-0.355
-0.345
-0.375
-0.245
-0.285
-0.325
-0.27
-0.235
-0.315
-0.345
-0.355
-0.355
-0.375
-0.255
-0.29
-0.331
-0.275
Lampiran 9 Penghitungan Manual Encoder Menggunakan Excel Tabel 4.4 merupakan representasi trellis diagram dari Gambar 5.13 pada program turbo codes. Nilai Ck1 dan Ck2 bernilai negatif (-) menunjukkan 0(nol) sedangkan
positif menunjukkan 1(satu). Start state digunakan sebagai dasar
penghitungan forward branch matrik. End state digunakan sebagai dasar penghitungan backward branch matrik. Tabel 4.6 sampai dengan Tabel 4.16 merupakan penghitungan manual decoder tturbo codes dilakukan pada excel. Tabel 4.4 Trellis diagram pada program Ck1 -1 -1 -1 -1 -1 -1 -1
Ck2 -1 -1 1 1 -1 -1 1
Start State 1 2 3 4 5 6 7
End State 1 5 6 2 7 3 4
sk1,s 1,1 2,5 3,6 4,2 5,7 6,3 7,4
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 84
Tabel 4.4 Trellis diagram pada program (Lanjutan) Ck1 -1 1 1 1 1 1 1 1 1
Start State 8 1 2 3 4 5 6 7 8
Ck2 1 1 1 -1 -1 1 1 -1 -1
End State 8 5 1 2 6 3 7 8 4
sk1,s 8,8 1,5 2,1 3,1 4,6 5,3 6,7 7,8 8,4
Data yang dihasilkan kanal akan diproses oleh decoder. Decoder akan menggati data yang bernilai 0(nol) akan diganti dengan -1 (negatif satu). Sehingga data akan seperti pada Tabel 4.5. Tabel 4.5 Data proses yang diproses oleh decoder Data Paritas 1 Paritas 2
-1 -1 -1
-1 -1 -1
1 1 -1
-1 -1 -1
-1 1 -1
-1 1 -1
1 1 -1
1 1 -1
Turbo Code Decoder 1 Penghitungan Branch Matrix Branch matrix digunakan untuk preprosesing data pada saat komputasi penghitungan forward branch matrix, backward branch matrix, dan penghitungan LLR. Penghitungan data menggunakan persamaan (2.13). Tabel 4.6 merupakan hasil akhir dari persamaan (2.13). Tabel 4.6 Branch Matrix hasil persamaan (2.13) y(s',s) y(1,1) y(2,5) y(3,6) y(4,2) y(5,7) y(6,3) y(7,4) y(8,8) y(1,5) y(2,1) y(3,1)
k=1 2.7183 2.7183 1.0000 1.0000 2.7183 2.7183 1.0000 1.0000 0.3679 0.3679 1.0000
k=2 2.7183 2.7183 1.0000 1.0000 2.7183 2.7183 1.0000 1.0000 0.3679 0.3679 1.0000
k=3 0.3679 0.3679 1.0000 1.0000 0.3679 0.3679 1.0000 1.0000 2.7183 2.7183 1.0000
k=4 2.7183 2.7183 1.0000 1.0000 2.7183 2.7183 1.0000 1.0000 0.3679 0.3679 1.0000
k=5 1.0000 1.0000 2.7183 2.7183 1.0000 1.0000 2.7183 2.7183 1.0000 1.0000 0.3679
k=6 1.0000 1.0000 2.7183 2.7183 1.0000 1.0000 2.7183 2.7183 1.0000 1.0000 0.3679
k=7 0.3679 0.3679 1.0000 1.0000 0.3679 0.3679 1.0000 1.0000 2.7183 2.7183 1.0000
k=8 0.3679 0.3679 1.0000 1.0000 0.3679 0.3679 1.0000 1.0000 2.7183 2.7183 1.0000
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 85
Tabel 4.6 Branch Matrix hasil persamaan (2.13)(Lanjutan) y(4,6) y(5,3) y(s',s) y(6,7) y(7,8) y(8,4)
1.0000 0.3679 k=1 0.3679 1.0000 1.0000
1.0000 0.3679 k=2 0.3679 1.0000 1.0000
1.0000 2.7183 k=3 2.7183 1.0000 1.0000
1.0000 0.3679 k=4 0.3679 1.0000 1.0000
0.3679 1.0000 k=5 1.0000 0.3679 0.3679
0.3679 1.0000 k=6 1.0000 0.3679 0.3679
1.0000 2.7183 k=7 2.7183 1.0000 1.0000
1.0000 2.7183 k=8 2.7183 1.0000 1.0000
Penghitungan Partial Branch Matrix Partial Branch matrix digunakan untuk penggitungan LLR. Partial Branch matrix merupakan penghitungan sederhana dari branch matrix . Penghitungan menggunakan persamaan (2.14). Tabel 4.7 merupakan hasil penghitungan partial branch matrix. Tabel 4.7 Penghitungan partial branch matrix ye(s',s) ye(1,1) ye(2,5) ye(3,6) ye(4,2) ye(5,7) ye(6,3) ye(7,4) ye(8,8) ye(1,5) ye(2,1) ye(3,2) ye(4,6) ye(5,3) ye(6,7) ye(7,8) ye(8,4)
k=1
k=2
k=3
k=4
k=5
k=6
k=7
k=8
1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487
1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487
0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065
1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487
0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065
0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065
0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065
0.6065 0.6065 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 1.6487 1.6487 0.6065 0.6065 1.6487 1.6487 0.6065 0.6065
Penghitungan Forward Branch Matrix Penghitungan forward branch matrix menggunakan persamaan (2.11). Penghitungan tersebut menggunakan nilai dari branch matrix pada saat end state. Sebagai contoh adalah a(1), maka nilai Branch Matrix yang digunakan untuk
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 86
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 branch matrix 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
Normalisasi forward 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 Branch Matrix ae(s)
k=0
k=1
k=2
k=3
k=4
k=5
k=6
k=7
k=8
a (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
a (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
a (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
a (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
e
e
e
e
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.
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 87
Tabel 4.10 Penghitungan Backward branch mrnggunakan persamaan (2.12) β(s)
k=1
k=2
β(1)
0.0890
β(2)
k=3
k=4
k=5
k=6
k=7
K=8
0.0694 0.1276 0.0338
0.0228
0.0542
0.3679
1.0000
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
+ ⋯ + 𝑎𝑒 8 1 ( 𝑦 𝑒 8,8
1
1
+ 𝑎𝑒 2 1 ( 𝑦 𝑒 2,5
+ 𝑦 𝑒 8,4
1
1
+ 𝑦 𝑒 2,1
1
)
)
Tabel 4.11 Normalisasi Backward branch e β (s) e β (1) e β (2) e β (3) e β (4) e β (5) e β (6) e β (7) e β (8)
x
k=1
k=2
0.0288
k=3
k=4
k=5
k=6
k=7
k=8
0.0225 0.0432 0.0156
0.0091
0.0228
0.1472
1.0000
0.0695
0.0404 0.2146 0.0156
0.0091
0.1683
0.0000
0.0000
0.0377
0.0759 0.0197 0.2313
0.0247
0.0000
0.0000
0.0000
0.0377
0.0759 0.0197 0.0425
0.1828
0.0000
0.0000
0.0000
0.0288
0.0225 0.0432 0.0156
0.0091
0.0228
0.1472
0.0000
0.0695
0.0404 0.2146 0.0156
0.0091
0.1683
0.0000
0.0000
0.0377
0.0759 0.0197 0.2313
0.0247
0.0000
0.0000
0.0000
0.0377 3.0862
0.0759 0.0197 0.0425 3.0862 2.9567 2.1628
0.1828 2.5022
0.0000 2.3779
0.0000 2.4992
0.0000 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. Sebagai contoh :
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 88
′
e
𝜎 𝑠
𝑘
= 𝑦𝑒 𝑠′ , 𝑥
𝜎 2
1
= 𝑦𝑒 2,5 1 𝑎𝑒 2 1 β 5
𝑘
𝑎𝑒 𝑠 𝑘 β 𝑥 e
k
k
=1.6487*0.0000*0.0288 =0
Tabel 4.12 Pengitungan LLR σ(s) σ(1) σ(2) σ(3) σ(4) σ(5) σ(6) σ(7) σ(8) σ(9) σ(10) σ(11) σ(12) σ(13) σ(14) σ(15) σ(16) Ratio (+1/-1)
k=1 0.0476 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0175 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
k=2 0.0185 0.0000 0.0000 0.0000 0.0626 0.0000 0.0000 0.0000 0.0068 0.0000 0.0000 0.0000 0.0230 0.0000 0.0000 0.0000
k=3 0.0115 0.0000 0.0211 0.0000 0.0053 0.0000 0.0019 0.0000 0.0313 0.0000 0.0078 0.0000 0.0143 0.0000 0.0007 0.0000
k=4 0.0014 0.0005 0.0038 0.0002 0.0209 0.0077 0.0104 0.0005 0.0005 0.0002 0.0104 0.0005 0.0077 0.0028 0.0284 0.0014
k=5 0.0004 0.0011 0.0005 0.0029 0.0011 0.0029 0.0104 0.0592 0.0011 0.0029 0.0002 0.0011 0.0029 0.0080 0.0038 0.0218
k=6 0.0015 0.0030 0.0298 0.0185 0.0000 0.0000 0.0000 0.0000 0.0040 0.0082 0.0110 0.0068 0.0000 0.0000 0.0000 0.0000
k=7 0.0122 0.0083 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0333 0.0225 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
k=8 0.0734 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.1783 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
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
L(uk)
-2.0000
Decision
0
1.0000 2.0000 0
data awal
0
0
0.3067
0.1331
-0.6297
-0.5648
1.0000
0.8875
1.3067
-0.8669
-1.6297
-1.5648
2.0000
1.8875
1
0
0
0
1
1
1
0
0
0
1
1
PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI 89
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 0.5671
-0.0523
0.9592
0.8103
-1.0000
-0.0620
1.7396
-1.9192
-1.6705
-1.7545
2.0000
2.8255
0
1.0000 4.0000 0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
L(extrinsic)
-1.0000
L(uk)
-4.0000
Decision data awal