Edy Susanto : Analisis Kinerja Kode BCH, 2010.
ANALISIS KINERJA KODE BCH
Oleh :
NAMA : EDY SUSANTO
NIM : 030402002
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA
MEDAN
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
ANALISIS KINERJA KODE BCH
Oleh :
030402002 EDY SUSANTO
Disetujui oleh,
Pembimbing
NIP : 131 945 815
IR. SIHAR P. PANJAITAN,MT.
Diketahui oleh,
Ketua Departemen Teknik Elektro FT USU
NIP : 131 459 554 IR. NASRUL ABDI, MT.
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA
MEDAN
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
ANALISA KINERJA KODE BCH
Oleh :
NAMA : EDY SUSANTO
NIM : 030402002
Tugas akhir ini diajukan untuk melengkapi salah satu syarat
untuk memperoleh gelar sarjana Teknik Elektro pada
DEPARTEMEN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SUMATERA UTARA
MEDAN
Sidang pada tanggal di depan penguji
1.
2.
3.
Diketahui Oleh: Disetujui Oleh:
Ketua Departemen Teknik Elektro Pembimbing Tugas Akhir
IR.NASRUL ABDI,MT.
NIP : 131 459 554 NIP : 131 945 815
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
ABSTRAK
Untuk menghasilkan suatu sistem komunikasi yang handal, dalam artian bebas dari error, perlu diterapkan suatu algoritma atau kode yang dapat
mengoreksi kesalahan bit. Salah satu dari kode pengoreksi kesalahan yang cukup popular adalah kode BCH. Dalam tugas akhir ini, penulis menggunakan Visual Basic 6 untuk menunjukkan kinerja kode BCH.
Kode BCH yang dibahas memiliki karakteristik 31 bit kode biner, dengan rincian 16 bit informasi dan 15 bit parity check. Karenanya Kode BCH (31,16) ini mampu mengoreksi sebanyak 3 bit kesalahan.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
KATA PENGANTAR
Puji dan syukur penulis panjatkan kepada Tuhan Yang Maha Esa atas kasih dan karunia-Nya sehingga penulis dapat menyelesaikan Tugas Akhir ini.
Laporan Tugas Akhir ini dibuat sebagai salah satu syarat untuk menyelesaikan pendidikan di Fakultas Teknik Departemen Teknik Elektro Program Studi Teknik Telekomunikasi Universitas Sumatera Utara.
Penyelesaian Tugas Akhir ini tidak terlepas dari bantuan banyak pihak dan pada kesempatan ini penulis ingin menyampaikan ucapan terima kasih yang sebesar-besarnya kepada :
1. Kedua orang tua penulis, yang telah memberikan dukungan moril, doa, dan materiil serta limpahan kasih sayang kepada penulis.
2. Saudara-saudara penulis, yang memberikan yang terbaik bagi keluarga. 3. Buat kawan kawan di DCKC, yang selalu memberikan dukungan.
4. Bapak Ir. Sihar P. Panjaitan, MT, selaku dosen pembimbing Tugas Akhir, atas segala bimbingan, pengarahan, dan motivasi dalam menyelesaikan Tugas Akhir ini.
5. Bapak Ir. Nasrul Abdi, MT. dan Bapak Rahmad Fauzi,ST,MT. selaku Ketua Departemen dan Sekretaris Departemen Teknik Elektro, Fakultas Teknik Universitas Sumatera Utara.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
7. Seluruh staf pengajar Departemen Teknik Elektro, khususnya konsentrasi telekomunikasi yang telah membekali penulis dengan berbagai disiplin ilmu.
8. Seluruh pegawai dan karyawan Departemen Teknik Elektro Fakultas Teknik Universitas Sumatera Utara.
9. Teman – teman di Departemen Teknik Elektro USU angkatan 2003; yang selama ini telah menjadi teman seperjuangan dalam hari-hari kuliah.
10. Serta semua pihak yang telah banyak membantu penulis dalam menyelesaikan Tugas Akhir ini yang tidak dapat disebutkan satu persatu.
Penulis menyadari bahwa Tugas Akhir ini tidak luput dari kekurangan-kekurangan. Oleh karena itu, dengan segala kerendahan hati penulis memohon maaf, dan penulis menerima saran dan kritik untuk perbaikan Tugas Akhir ini. Akhir kata semoga Tugas Akhir ini bermanfaat bagi kita semua.
Medan, Mei 2009
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
DAFTAR ISI
Abstrak ... i
Kata Pengantar ... ii
Daftar Isi... ... iv
Daftar Gambar ... vii
Daftar Tabel... ... viii
BAB I Pendahuluan ... 1
11 Latar Belakang ... 1
1.2 Rumusan Masalah ... 2
1.3 Tujuan Penulisan ... 2
1.4 Batasan Masalah ... 3
1.5 Metode Penulisan ... 3
1.6 Sistematika Penulisan ... 4
BAB II Landasan Teori ... 5
2.1 Komunikasi Data ... 5
2.2 Gangguan Transmisi ... 9
2.3 Konsep Dasar Sistem Pengkodean ... 13
2.4 Pendeteksian Kesalahan ... 20
2.5 Perkembangan Teori Pengkodean ... 20
2.5.1 Formula Shannon ... 21
2.6 Dasar Aljabar ... 23
2.6.1 Group ... 23
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
2.6.3 Field………..25
2.6.4 Polynomial Ring………...26
2.6.5 Galois Field………...27
2.6.6 Primitif Polinomial………30
2.6.7 Minimal Polinomial………..31
2.7 Kode Block Linear ... 36
2.7.1 Jarak Minimum ... 38
2.8 Kode Siklis………..39
2.9 Kode Hamming………...40
2.10 Kode Reed-Solomon……….41
2.11 Kode Konvolusi………42
2.12 Metode BCH Code………48
BAB III Pemodelan Kode BCH ... 53
3.1 Algoritma Pengkodean dan Pengdekodean BCH ... 53
3.2 Model Sistem ... 64
BAB IV Simulasi Kode BCH ... 68
4.1 Fungsi pada Model Sistem ... 68
4.1.1 Fungsi Pembangkitan Pesan ... 68
4.1.2 Fungsi Encoder ... 69
4.1.3 Fungsi Modulator ... 70
4.1.4 Fungsi Pembangkitan Kesalahan Bit………..71
4.1.5 Fungsi Demodulator………..72
4.1.6 Fungsi Decoding ... .72
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
4.3 Contoh Perhitungan Kode BCH ... 77
4.4 Evaluasi Performansi Kode BCH……….83
4.5 Faktor yang mempengaruhi Simulasi……….85
4.6 Hasil Simulasi……….86
BAB V Kesimpulan dan Saran ... 88
V.1 Kesimpulan ... 88
V.2 Saran ... 88
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
DAFTAR GAMBAR
Gambar 2.1 Gambaran Umum Model Komunikasi ... 7
Gambar 2.2 Rincian Proses Transmisi Data ... 8
Gambar 2.3 Blok Diagram untuk Sistem Pengkodean Digital ... 15
Gambar 2.4 Perbedaan Kode BCH dan Kode R-S ... 46
Gambar 3.1 Proses Encoding pada BCH Code ... 54
Gambar 3.2 Proses Decoding pada BCH Code ... 55
Gambar 3.3 Model Sistem ... 64
Gambar 4.1 Form Input untuk Tutorial Pembelajaran ... 74
Gambar 4.2 Form Tutorial Pembelajaran ... 75
Gambar 4.3 Form Analisis ... 76
Gambar 4.4 Hasil Simulasi untuk carrier rate =20... 86
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
DAFTAR TABEL
Tabel 2.1 Primitive Polynomial pada GF(2) ... 34
Tabel 2.2 Rincian Minimal Polynomial... 36
Tabel 3.1 Galois Field GF (25) ... 57
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Untuk menghasilkan suatu sistem komunikasi yang bebas error diperlukan suatu pengkodean. Pengkodean ini bertujuan untuk mengoreksi kesalahan atau error yang terjadi. Akan tetapi, masalah yang timbul menunjukkan bahwa diperlukan suatu pengkodean yang tidak hanya dapat mengoreksi error yang terjadi, tetapi juga menawarkan suatu algoritma pengkodean dan pengdekodean yang efisien. Menurut teori Shannon, sebuah kode yang bagus memungkinkan sistem komunikasi untuk mencapai kecepatan transmisi yang mendekati kapasitas kanal itu sendiri.
Semua teori pengkodean, dimulai dari Kode Hamming, telah memberikan kontribusi terhadap permasalahan ini, yaitu bagaimana melewatkan satu kesatuan data melalui suatu kanal dengan kemungkinan error yang besar. Dengan bantuan kode blok linear, dan formula matematika, banyak kode - kode yang telah ditemukan, diantaranya, kode Golay, kode BCH, dan kode Reed – Solomon.
Kode BCH adalah kode pengoreksi kesalahan jamak yang berulang. Kode ini ditemukan oleh Bose, Chaudari, dan Hocquenghem. Kode ini merupakan sebuah kelas yang berisikan kode kode siklis pengoreksi kesalahan. Kode BCH merupakan sebuah kode yang cukup menonjol dalam bidang pengoreksi kesalahan jamak ( multiple error) secara teoritis maupun praktik.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
performansi system yang menggunakan kode BCH, dibandingkan dengan system yang tidak mengimplementasikannya. Kode BCH dipilih karena kehandalannya dalam mengoreksi sejumlah t kesalahan yang muncul secara acak dengan menggunakan algoritma pengdekodean yang sederhana.
1.2 Rumusan Masalah
Rumusan masalah yang akan dibahas pada Tugas Akhir ini adalah : a. Bagaimana prinsip kerja BCH dalam mengoreksi kesalahan bit.
b. Bagaimana performansi sistem yang menggunakan kode BCH. c. Bagaimana cara kerja algoritma Berlekamp.
d. Apa saja kinerja yang dihitung atau ditampilkan.
1.3 Tujuan Penulisan
Tujuan penulisan Tugas Akhir ini adalah untuk memperlihatkan
penurunan nilai energy per bit Eb/No yang diperlukan untuk menghasilkan BER =0, bila dibandingkan dengan transmisi data tanpa disertai pengkodean BCH.
1.4 Batasan Masalah
Untuk menghindari pembahasan yang meluas maka penulis membatasi pembahasan permasalahan. Adapun yang menjadi batasan masalah dalam Tugas Akhir ini adalah :
a. Hanya membahas algoritma pengkodean dan pengdekodean BCH (31,16). b. Kanal pentransmisian merupakan kanal diskrit tanpa memory, dan Noise yang
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
c. Algoritma yang digunakan adalah algortima pengdekodean Berlekamp d. Model simulasi mengikut i model Jacobs – Viterbi
e. Tidak membahas kode BCH non binary
f. Jumlah bit yang dapat dikoreksi sebanyak 3 bit
g. Tidak membahas Daya Transmisi yang diperlukan untuk mentransmisi bit data
1.5 Metodologi Penulisan
Metode pembahasan yang digunakan dalam Tugas Akhir ini adalah Studi
Literatur. Studi ini dilakukan dengan rincian sebagai berikut :
a. Pembahasan melalui buku-buku, jurnal, majalah maupun artikel-artikel lainnya yang mendukung dalam analisis kinerja kode BCH
b. Diskusi dengan dosen yang menguasai ataupun memahami Tugas Akhir ini. c. Menggunakan Simulasi untuk menampilkan grafik BER vs Eb / No
d. Simulasi menggunakan bahasa pemrograman Microsoft Visual Basic 6.0.
1.6 Sistematika Penulisan
Untuk mempermudah pembahasan, maka penulisan tugas akhir ini dibagi atas lima bab, yaitu :
BAB I PENDAHULUAN
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
BAB II BCH
Bab ini berisi Pengertian dan Prinsip Dasar kode BCH, Pembentukan Generator Polinomial, dan Pembentukan Kode BCH.
BAB III MODEL SISTEM
Bab ini berisi uraian mengenai Algoritma Pengkodean dan Algoritma Pengdekodean, Model Sistem, dan Sistem Pembangkitan Salah Bit.
BAB IV SIMULASI
Bab ini berisi analisis hasil numerik yang didapatkan dari model simulasi. Kemudian melakukan plot grafik BER vs Eb/ No.
BAB V PENUTUP
Bab ini berisi kesimpulan dari pengaruh implementasi Kode BCH pada sistem Komunikasi.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
BAB II
LANDASAN TEORI
2.1 Komunikasi Data
Komunikasi data merupakan penggabungan antara dunia komunikasi dengan komputer. Komunikasi manusia adalah komunikasi antar manusia (baik dengan bantuan alat maupun langsung) sedangkan komunikasi data adalah komunikasi antar komputer atau perangkat digital lainnya (PDA, printer,
handphone).
Komunikasi data adalah proses transmisi data yang di-encode melalui media elektrik, optik, wireless antara komputer atau prosesor jaringan. Transmisi suara dapat saja dijadikan transmisi data jika informasi suara tersebut dirubah (dikodekan) menjadi bentuk digital. Komunikasi digital merupakan sesuatu hal yang penting dalam suatu infrastruktur komunikasi yang sedang dibangun. Di bawah ini ada beberapa faktor yang harus diperhatikan pada komunikasi data: a. Jumlah dan lokasi pemrosesan data.
b. Jumlah dan lokasi terminal (remote). c. Tipe transaksi.
d. Kepadatan lalu lintas tiap tipe transaksi. e. Prioritas/urgensi informasi yang disalurkan. f. Pola lalu lintas.
g. Bit error rate yang dibutuhkan.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Supaya suatu sistem komunikasi dapat berjalan secara lancar dan global, maka perlu dibuat suatu standar protokol yang dapat menjamin:
• Kompatibilitas penuh antara dua peralatan setara
• Bisa melayani banyak peralatan dengan kemampuan berbeda-beda • Berlaku umum dan mudah untuk dipelajari atau diterapkan.
Kegunaan dasar dari sistem komunikasi adalah menjalankan pertukaran data antara 2 pihak. Contohnya adalah pertukaran sinyal-sinyal suara antara 2 telepon pada suatu jaringan yang sama.
Elemen-elemen kunci dari model komunikasi dasar adalah: a. Source (Sumber)
Alat ini membangkitkan data sehingga dapat ditransmisikan, contoh: telepon dan PC (Personal Computer).
b. Transmitter (Pengirim)
Biasanya data yang dibangkitkan dari sistem sumber tidak ditransmisikan secara langsung dalam bentuk aslinya. Sebuah transmitter cukup memindah dan menandai informasi dengan cara yang sama seperti menghasilkan sinyal-sinyal elektro-magnetik yang dapat ditransmisikan melewati beberapa sistem transmisi berurutan. Sebagai contoh, sebuah modem tugasnya menyalurkan suatu digital bit stream dari suatu alat yang sebelumnya sudah dipersiapkan misalnya PC, dan mentransformasikan bit stream tersebut menjadi suatu sinyal analog yang dapat melintasi melalui jaringan telepon.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Berupa jalur transmisi tunggal (single transmission line) atau jaringan kompleks (complex network) yang menghubungkan antara sumber dengan
destination (tujuan).
d. Receiver (Penerima)
Receiver menerima sinyal dari sistem transmisi dan menggabungkannya ke
dalam bentuk tertentu yang dapat ditangkap oleh tujuan. Sebagai contoh, sebuah modem akan menerima suatu sinyal analog yang datang dari jaringan atau jalur transmisi dan mengubahnya menjadi suatu digital bit stream.
e. Sumber Noise
Noise merupakan gangguan yang muncul selama transmisi data berlangsung.
Noise memperngaruhi mutu atau kualitas dari sinyal yang diterima pada
bagian receiver. Untuk lebih detailnya, Noise dibahas pada sub-bab 2.2 f. Destination (Tujuan)
Menangkap data yang dihasilkan oleh receiver.
Sumber
Gambar 2.1 Gambaran Umum Model Komunikasi
Source (sumber) dan transmitter (pengirim) merupakan bagian dari sistem
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Proses transmisi / pengiriman data secara terperinci dapat dilihat pada gambar di bawah ini,
Source Transmitter Transmission
Gambar 2.2 Rincian proses transmisi data Keterangan :
1. Informasi yang di-input. 2. Data yang di-input.
3. Signal yang akan ditransmisikan berupa signal analog. 4. Signal yang diterima berupa signal analog.
5. Data output. 6. Informasi output.
Sebagai contoh komunikasi data, diambil ilustrasi transmisi data pada surat elektronik (electronic mail) seperti berikut:
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
yang masuk ditransfer ke transmitter sebagai rangkaian dari perubahan tegangan yang menunjukkan bit – bit pada communication bus atau kabel. Transmitter dihubungkan secara langsung ke media dan merubah aliran yang masuk menjadi sinyal yang mampu untuk ditransmisikan.
Sinyal yang ditransmisikan yang diserahkan ke media menjadi subyek untuk sejumlah gangguan, sebelum mencapai receiver. Jadi, sinyal yang diterima dapat saja berbeda dari sumbernya. Receiver akan berupaya menganalisis keaslian data sumber, didasarkan atas sinyal yang diterima dan pengetahuannya atas media dan menghasilkan rangkaian bit. Bit – bit ini dikirim ke komputer output, di mana
bit – bit tersebut secara singkat ditahan di dalam memori. Dalam beberapa kasus,
sistem tujuan akan berupaya untuk memperingatkan bila terjadi error, dan untuk selanjutnya bekerja sama dengan sistem sumber sampai akhirnya mendapatkan data yang bebas dari error (error-free data). Data – data ini kemudian diberikan kepada user melalui suatu perangkat output, seperti printer atau layar monitor. Pesan atau message yang dilihat oleh user biasanya merupakan salinan dari pesan aslinya.
2.2 Gangguan Transmisi
Masalah utama dalam merancang sebuah fasilitas komunikasi adalah gangguan transmisi. Untuk sinyal-sinyal analog, gangguan transmisi memperkenalkan efek random yang menurunkan mutu informasi yang diterima dan kemungkinan mempengaruhi kejelasan data. Sedangkan sinyal-sinyal digital, gangguan transmisi dapat menyebabkan bit error pada receiver.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
a. Atenuasi
Kekuatan sinyal berkurang bila jaraknya terlalu jauh melalui media transmisi. Untuk guided media, penurunan dalam hal kekuatan, atau atenuasi, pada umumnya mengikuti fungsi logarithm. Sehingga biasanya dinyatakan sebagai jumlah desibel konstan per unit jarak. Untuk unguided media, atenuasi adalah fungsi yang lebih kompleks dari jarak. Atenuasi membawa tiga pertimbangan untuk membangun transmisi. Pertama, sinyal yang diterima harus cukup kuat sehingga arus elektronik pada receiver bisa mendekati sinyal. Kedua, sinyal harus mempertahankan level yang lebih tinggi dibanding derau yang diterima tanpa error. Ketiga, atenuasi merupakan fungsi frekuensi yang meningkat. Permasalahan pertama dan kedua berkaitan dengan perhatian terhadap kekuatan sinyal dan penggunaan amplifier atau repeater. Untuk hubungan ujung ke ujung, kekuatan sinyal sebuah transmitter harus cukup kuat agar dapat diterima dengan jelas, namun juga tidak perlu terlalu kuat agar tidak menimbulkan overload pada sirkuit transmitter atau repeater, yang bisa menyebabkan distorsi. Melampaui jarak tertentu, atenuasi tidak dapat diterima dengan baik, dan repeater atau amplifier dipergunakan utnuk memperkuat sinyal pada interval yang wajar. Permasalahan ini menjadi lebih kompleks untuk jalur multipoint dimana jarak dari transmitter menuju receiver tidak tetap.
b. Distorsi Tunda
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
signal band terbatasi, kecepatannya cenderung sangat tinggi di dekat pusat frekuensi dan turun mengarah pada kedua sisi band. Sehingga berbagai komponen frekuensi suatu sinyal akan mencapai receiver pada waktu yang berlainan, dan mengakibatkan fasenya berubah di antara frekuensi yang berbeda-beda.
Efek ini menunjuk pada distorsi tunda, akibat sinyal yang diterima mengalami distorsi karena berbagai penundaan yang dialami pada pemilih frekuensinya. Distrosi tunda sangat kritis bagi data digital. Anggap saja, suatu rangkaian bit sedang ditransmisikan baik dengan menggunakan signal analog maupun signal digital. Karena mengalami distrosi tunda, beberapa komponen sinyal dair satu posisi bit meluap (spill over) ke posisi bit yang lain, dan menimbulkan gangguan inter-simbol, yang merupakan batasan utama terhadap bit rate maksimum sepanjang channel transmisi.
c. Derau
Untuk suatu peristiwa pentransmisian data, sinyal yang diterima akan berisikan sinyal-sinyal yang ditransmisikan, dimodifikasi oleh berbagai distorsi yang terjadi melalui sistem transmisi, plus sinyal-sinyal tambahan yang tidak diinginkan yang diselipkan di suatu tempat di antara transmisi dan penerimaan. Berikutnya, sinyal-sinyal yang tidak diharapkan tersebut disebut sebagai derau. Derau dapat dibagi menjadi empat kategori, yaitu:
i. Derau suhu
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
sering juga disebut segagai white noise. Derau suhu tidak dapat dihilangkan dan karena itu menempatkan suatu batas atas pada unjuk kerja sistem komunikasi.
ii. Derau Intermodulasi
Derau intermodulasi akan terjadi bila terdapat beberapa sifat tidak linear pada transmitter, receiver, atau sistem transmisi yang menghalangi. Normalnya, komponen-komponen ini berlaku sebagai sistem linear, yaitu
output sama dengan input kali suatu konstanta. Pada suatu sistem
nonlinear, output merupakan fungsi yang lebih kompleks dari input. Sifat tidak linear semacam ini disebabkan karena tidak berfungsinya komponen atau penggunaan kekuatan sinyal yang terlalu berlebihan.
iii. Crosstalk
Crosstalk dialami oleh siapapun yang saat menggunakan telepon,
terdengan percakapan lain; ini merupakan kopel yang tidak diharapkan yang terjadi di antara sinyal. Dapat pula terjadi karena kopel elektrik di antara twisted pair yang berdekatan. Crosstalk dapat pula terjadi bila sinyal-sinyal yang tidak diharapkan tersebut disebarkan melalui antena gelombang mikro, meskipun antena pengarah dipergunakan, namun energi gelombang mikro tersebar luas selama proses propagasi.
iv. Derau impuls
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
gemerisik tanpa mengurangi kejelasannya. Bagaimanapun juga, derau impuls juga merupakan sumber utama terjadinya error dalam komunikasi data digital. Gangguan ini kadang-kadang cukup memadai untuk mengubah 1 menjadi 0 atau 0 menjadi 1.
2.3 Konsep Dasar Sistem Pengkodean
Pada proses transmisi data digital melalui suatu saluran komunikasi fisik dalam sebuah sistem komunikasi dan penyimpanan data pada media penyimpanan dalam sebuah sistem komputer, data digital ditransfer dari suatu sumber informasi ke suatu tujuan. Karena saluran komunikasi atau media pemyimpanan dapat mengalami berbagai macam jenis gangguan, distorsi dan interferensi, output dari saluran komunikasi atau media penyimpanan dapat berbeda dari input. Hal ini disebabkan oleh kesalahan (error) yang dapat menghalangi atau mengganggu proses transmisi. Oleh karena itu, kebutuhan akan pengontrolan kesalahan (error
control) semakin besar dalam saluran komunikasi dan media penyimpanan.
Kode dan algoritma pengkodean yang bagus tersedia untuk memenuhi kebutuhan ini. Kemajuan pesat dari teknologi integrated circuit chip memungkinkan proses perancangan dan implementasi dari pasangan
encoder-decoder yang menggunakan algoritma pengkodean ini.
Teori dan praktek dari kode pengontrolan kesalahan (error-control coding) berhubungan erat dengan pengamanan dari informasi digital terhadap kesalahan yang muncul pada saat transmisi atau penyimpanan data. Perhatian utama dari
designer adalah proses pengontrolan kesalahan sehingga dapat dilakukan
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Blok diagram pada Gambar 2.3 berikut mengilustrasikan elemen-elemen dasar yang diperlukan untuk melakukan proses transmisi atau penyimpanan informasi digital melalui suatu sistem pengkodean. Untuk sistem ini, semua informasi yang ditransmisikan antar blok harus dalam bentuk digital.
Information
Gambar 2.3 Blok Diagram untuk Sistem Pengkodean Digital
Data yang masuk ke dalam sistem komunikasi (communication system) atau sistem penyimpanan (storage system) dari sumber informasi (information
source) akan diproses pertama kali oleh suatu pengkodean sumber (source
encoder) yang dirancang untuk mengkonversi informasi sumber menjadi bentuk
kode. Biasanya, source encoder akan mengubah output sumber menjadi sebuah deretan bit biner yang disebut sebagai deretan informasi (information sequence) d.
Output sumber dapat berupa sebuah gelombang kontinu (continuous waveform)
atau sebuah deretan dari simbol diskrit (sequence of discrete symbols). Dalam kasus output analog, source encoder harus memiliki kemampuan konversi dari analog ke digital (A/D), contohnya pulse-code modulation (PCM).
Pengkodean saluran komunikasi (channel encoder) mentransformasikan
information sequence d menjadi sebuah barisan pengkodean biner (binary-coded
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Code word dari saluran komunikasi (channel) berupa sebuah barisan yang
baru dan lebih panjang yang berisi redundansi dari simbol cek paritas
(parity-check symbols). Setiap simbol dalam code word dapat diwakili oleh suatu bit
ataupun kelompok bit. Secara umum, digit biner tidak cocok untuk proses transmisi melalui saluran komunikasi bergelombang (waveform channel) atau proses penyimpanan pada media penyimpanan digital.
Digit biner pada sebuah code word dari channel encoder dimasukkan ke dalam sebuah modulator atau unit penulisan (writing unit) yang mentransformasikan setiap bit menjadi gelombang sinyal dasar (elementary signal
waveform). Oleh karena itu, modulator harus mengubah setiap bit dari code word
saluran komunikasi menjadi suatu gelombang yang cocok dengan durasi T sekon agar bit-bit tersebut dapat ditransmisikan. Binary phase shift keying (BPSK) atau
frequency shift keying (FSK) sering dipakai sebagai pembentuk signal gelombang
untuk mentransmisikan code word.
Gelombang ini akan masuk ke saluran komunikasi atau media penyimpanan dan akan dirusak atau diubah oleh kegaduhan (noise). Saluran komunikasi gelombang ini terdiri dari semua perangkat keras (hardware) dan media fisik yang akan dilalui oleh gelombang dari modulator output atau media penulisan menuju ke demodulator input atau media pembacaan.
Dalam sistem koheren, skema modulasi biner dari BPSK yang sering digunakan. Dengan proses transmisi biner ini, 1 direpresentasikan oleh gelombang
(7)
…(2.1)
sedangkan 0 direpresentasikan oleh sinyal antipodal
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
dimana kekuatan gelombang adalah
(7)
…(2.3)
.
Dalam sistem BPSK non-koheren, proses demodulasi dari signal gelombang tidak dapat dilakukan. Maka, sebagai penggantinya, digunakan sepasang signal nada (signal tones)
(7)
…(2.4)
dan
(7)
…(2.5)
untuk merepresentasikan digit 0 dan 1 yang ditransmisikan.
Beberapa contoh waveform channel adalah saluran telepon, hubungan
microwave, hubungan radio berfrekuensi tinggi, hubungan telemetri dan
hubungan satelit. Sedangkan, beberapa contoh media penyimpanan adalah core
memory, magnetic tapes, disk files dan optical memory unit.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
atau dapat berupa berbagai macam kegaduhan area (urban noise) ataupun terjadi karena gangguan disengaja dari pihak yang tidak bersahabat.
Saluran komunikasi (channel) juga memiliki beberapa bentuk. Untuk
memoryless channel, noise akan memiliki efek terhadap setiap bit yang
ditransmisikan, sehingga kesalahan transmisi terjadi secara acak (random error) pada code word yang diterima. Beberapa contoh memoryless channel adalah saluran komunikasi satelit dan saluran komunikasi jarak jauh. Untuk memory
channel, noise tidak terjadi secara bebas pada saluran komunikasi, dan kesalahan
transmisi terjadi secara menyeluruh (burst error). Contoh dari channel ini adalah saluran komunikasi radio, saluran telepon dan penyimpanan magnetik. Tentu saja juga terdapat beberapa channel yang memiliki kombinasi dari random error dan
burst error.
Setelah itu, signal hasil yang diterima akan diproses pertama kali oleh
demodulator dan kemudian oleh channel decoder. Demodulator atau unit
pembacaan (reading unit) membuat keputusan untuk setiap signal yang diterima dari durasi T sekon untuk menentukan digit 1 atau 0 yang ditransmisikan. Proses ini disebut hard decision. Output dari demodulator disebut sebagai received word
r. Nilai r ini dapat tidak cocok dengan code word c yang ditransmisikan sebagai
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Channel decoder mentransformasikan deretan r yang diterima ke bentuk
deretan biner d, atau deretan informasi yang diperkirakan. Karena noise dapat mengakibatkan beberapa kesalahan decoding, channel decoder harus diimplementasikan untuk meminimisasi probabilitas dari kesalahan decoding.
Channel decoder menggunakan sindrom dasri code word r yang diterima untuk
memperbaiki kesalahan pada word yang diterima dan menghasilkan perkiraan deretan informasi d. Jika semua kesalahan telah diperbaiki, maka deretan informasi perkiraan d akan cocok dengan informasi sumber d yang asli.
Source decoder mentransformasikan deretan perkiraan d menjadi perkiraan dari output sumber dan mengirimkan perkiraan ini kepada pemakai. Dengan demikian, source decoder melakukan operasi yang berlawanan dengan
source encoder dan mengirimkan output-nya ke tujuan.
2.4 Pengdeteksian Kesalahan
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
2.4.1 Ukuran Informasi
Kandungan informasi dari suatu kejadian terkait dengan probabilitas kejadiannya. Suatu pesan dengan probabilitas kejadian tinggi mempunyai informasi yang sedikit. Sebaliknya pesan dengan probabilitas rendah mempunyai informasi yang lebih besar. Suatu sumber informasi yang mengirimkan satu dari sejumlah q pesan yang mungkin : dengan probabilitas kemunculan
: mempunyai probabilitas total . Jumlah
informasi yang terkandung dalam pesan ke-i yang dilambangkan dengan Ii akan berbanding terbalik dengan probabilitasnya. I akan mendekati 0 jika p mendekati 1 dan I tidak boleh bernilai negatif karena setiap pesan mengandung informasi.
Formula matematisnya dinyatakan sebagai berikut (8) : untuk
…(2.1a)
untuk
…(2.1b)
untuk
….(2.1c)
Untuk sumber yang mengeluarkan dua pesan berurutan yang independent : xA dan
xB dengan probabilitas bersama , maka(8) :
...(2.2)
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
...(2.3)
dimana I disebut self-information dan b adalah basis logaritma.
Basis logaritma yang dipergunakan menentukan satuan informasi. Basis logaritma bilangan natural (e) menghasilkan informasi dengan satuan nat, basis 10 mempunyai satuan decit dan basis 2 mempunyai satuan bit.
2.4.2 Entropy dan Kecepatan Informasi
Tinjau suatu sumber informasi yang mengeluarkan sederetan simbol yang berasal dari M simbol yang berbeda, yang dinyatakan dengan . Masing masing simbol mempunyai probabilitas Pi dan self information Ii.
Keseluruhan probabilitas simbol harus memenuhi
...(2.4) Asumsi yang diberikan adalah bahwa sumber stationary dan simbol simbol bersifat statistically independent. Sumber mengeluarkan simbol dengan kecepatan r simbol/detik. Properti seperti ini didefinisikan sebagai discrete
memoryless source. Nilai kandungan informasi per simbol diberikan oleh rata rata
statistik :
...(2.5)
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
...(2.6)
Dimana R adalah kecepatan transmisi informasi.
Shannon menegaskan bahwa informasi dari suatu sumber diskrit tanpa memori bisa dikodekan dalam digit biner dan ditransmisikan melalui kanal bebas noise dengan kecepatan :
(binit/detik)...(2.7)
2.5 Kanal Komunikasi
Elemen sistem komunikasi (digital biner) bisa dibagi dalam tiga bagian utama, yaitu pemancar, penerima, dan kanal fisik. Istilah kanal komunikasi mempunyai pengertian dan karakteristik yang berbeda, tergantung dari terminasi dan fungsinya, seperti ditunjukkan pada gambar 2.2
Channel Gambar 2.4 Karakteristik Kanal Komunikasi Biner
Antara titik E-F pada gambar 2.4 disebut dengan kanal koding, yang merupakan kanal diskrit. Dalam kanal diskrit, sinyal yang ditransmisikan di dalamnya adalah sinyal diskrit. Kanal Koding menerima sederetan simbol pada inputnya dan juga menghasilkan sederetan simbol pada outputnya.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Kanal antara titik C-E menyediakan hubungan elektrik antara pemancar dan penerima, dimana input dan outputnya adalah berupa gelombang listrik analog. Bagian dari kanal ini disebut juga kanal modulasi. Contoh dari kanal ini adalah sistem telepon, dan sistem radio frekuensi tinggi. Sinyal yang ditransmisikan melalui kanal ini mendapatkan beberapa gangguan yang disebabkan oleh karakteristik kanal yang tidak linear. Kanal juga memberikan redaman yang melemahkan amplitudo sinyal. Selain itu, adanya noise juga menimbulkan kerusakan pada sinyal. Semua pengaruh tersebut mengakibatkan munculnya perbedaan antara sinyal yang dikirim dan yang diterima, sehingga cenderung menimbulkan kesalahan dalam transmisi data.
2.5.2 Kapasitas Kanal Kontinyu
Transfer informasi dalam kanal kontinyu adalah berbentuk gelombang elektromagnetik. Sumber mengeluarkan sinyal x(t), yang pada saat ditransmisikan terkena noise, dan diterima sebagai r(t) pada penerima. Shannon menyatakan bahwa transmisi informasi tanpa error pada kanal komunikasi ber-noise bisa diperoleh selama kecepatan informasi R C, dimana C adalah kapasitas kanal.
Model kanal kontinyu yang paling umum dikenal adalah kanal AWGN ( additive white gaussian noise), yang didefinisikan mempunyai sifat sebagai berikut :
1. Kanal menyediakan transmisi bebas error dalam bandwidth B, dengan memberikan penguat untuk menangani rugi rugi transmisi
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
3. Sinyal yang diterima pada tujuan terkontaminasi oleh penjumlahan dengan white gaussian noise n(t) dengan bandwidth B, dan daya noise N = B. adalah kerapatan spektral daya noise.
4. Sinyal dan noise bersifat independen, sehingga dan
...(2.8)
Pemodelan kanal AWGN ditunjukkan pada gambar 2.5 berikut : Noise n(t)
Sinyal s(t) Sinyal terima r(t)
Gambar 2.5 Kanal AWGN Kapasitas kanal bisa dirumuskan sebagai berikut :
(11)
bps...(2.9) Persamaan diatas dikenal sebagai Hukum Shannon-Hartley. Persamaan ini memberikan batas atas untuk transmisi informasi dalam kanal AWGN pita terbatas, yaitu :
(11) …(2.10)
2.5.3 Kanal Diskrit
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
pada kanal, simbol output bisa berbeda dengan simbol inputnya. Error terutama disebabkan oleh noise pada bagian kanal kontinyu.
Kanal diskrit dimodelkan dengan probabilitas yang dinotasikan sebagai berikut :
P(xi) adalah probabilitas bahwa input kanal adalah simbol ke-i
P(yi) adalah probabilitas bahwa output kanal adalah simbol ke-i
P(yi|xj) adalah probabilitas bersyarat bahwa output adalah simbol ke-i
dengan input kanal adalah simbol ke-j
P(xi|yj) adalah probabilitas bersyarat bahwa input adalah simbol ke-i
dengan output kanal simbol ke-j
Kanal diasumsikan time-invariant dan memoryless. Pemodelan kanal dengan M=2 ditunjukkan pada gambar 2.6.
P(y1|x1)
Gambar 2.6 Model Kanal Diskrit Biner
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
dengan benar, sedangkan lintasan diagonal P(y1|x0) dan P(y0|x1) merupakan simbol diterima salah.
Error terjadi secara acak, tetapi bisa dimodelkan secara statistik dengan memberikan nilai probabilitas pada masing masing lintasan. Probabilitas terjadinya kesalahan adalah :
...(2.11)
Jika , maka kanal seperti ini disebut dengan binary
symmetric channel.
2.6 Dasar Aljabar
Dasar penulisan sub-bab Dasar Aljabar ini adalah untuk memperjelas aljabar dan toeri matematika lainnya yang diperlukan untuk memahami teori pengkodean. Untuk menganalisis teori pengkodean beserta implementasi encoder-decodernya diperlukan pemahaman akan Group, Ring, dan Galois Field.
2.6.1 Group
Sebuah group G adalah sebuah set dengan operasi * pada G sedemikian sehingga aksioma berikut dipenuhi(9):
a. Untuk setiap a, b ∈ G, c = a * b ada dalam G (closure).
b. Untuk setiap a, b, c ∈ G, a * (b * c) = (a * b) * c (hukum asosiatif).
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
d. Untuk setiap a ∈ G, terdapat sebuah elemen a-1 pada G sedemikian sehingga a * a-1 = a-1 * a = e (inverse).
Group merupakan kumpulan dari field. Sebuah group yang memiliki
sejumlah elemen tertentu disebut sebagai sebuah finite field, jika tidak maka disebut sebagai infinite group. Jumlah elemen pada sebuah finite group G disebut sebagai order dari G. Group dengan properti tambahan yaitu a * b = b * a untuk semua a, b ∈ G, disebut sebagai group komutatif (commutative group) atau
abelian group. Dalam sebuah abelian group dengan operasi penjumlahan,
terdapat operasi a + (-a) = (-a) + a = 0, dimana elemen inverse dari a ditulis dengan -a. Dalam kasus ini, elemen identitasnya e = 0. Pada operasi perkalian, elemen identitas e = 1 dan elemen inverse dari a ditulis dengan a-1, sedemikian sehingga a . a-1 = a-1 . a = 1.
Terdapat tiga buah group utama yang sangat disukai oleh para ahli matematika yaitu:
1. Group perkalian dari field bilangan prima : GF(p).
2. Group perkalian dari finite field dari karakteristik 2 : GF(2n). 3. Elliptic Curve Group pada finite field F : EC(F).
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
2.6.2 Ring
Sebuah ring R adalah sebuah set yang memiliki dua buah operasi yang didefinisikan dalam penjumlahan dan perkalian, sedemikian sehingga aksioma berikut dipenuhi(9):
a. Set R adalah sebuah group komutatif ( abelian ) dengan operasi penjumlahan. b. Untuk sembarang a, b ∈ R, hasil perkalian ab adalah dalam R (closure). c. Untuk sembarang a, b, c ∈ R, a(bc) = (ab)c (hukum asosiatif).
d. Untuk sembarang a, b, c ∈ R, a(b + c) = ab + ac dan (b + c)a = ba + ca (hukum distributif).
Operasi penjumlahan selalu bersifat komutatif dalam ring, tetapi operasi perkalian tidak selamanya.
2.6.3 Field
Field adalah kumpulan dari elemen, X dan Y, yang terdapat dalam fungsi.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Bilangan kompleks dapat didefinisikan sebagai b.i + a dengan aturan reduksi t2 + 1 = 0. Untuk melakukan perkalian bilangan kompleks, kita dapat menganggap t sebagai unknown (tak dikenal), mengumpulkan bilangan pangkat dari t dan menerapkan aturan reduksi untuk menyederhanakan hasilnya. Konstruksi ini berlaku untuk aturan reduksi lainnya yang mengandung bilangan pangkat lebih besar dari t. Koefisien dari bilangan pangkat dari t boleh berasal dari semua field, tetapi bila kita mengambil integer modulo p sebagai field-nya, kita mendapatkan sebuah finite field dengan pm elemen, dimana m adalah derajat dari aturan reduksi. Tidak semua aturan reduksi berlaku, kita harus menggunakan polinomial yang tidak dapat direduksi lagi (irreducible polynomial).
Sebagai catatan, ketika mengalikan elemen dari field sebenarnya dua aturan reduksi bekerja secara simultan, yaitu aturan untuk mereduksi koefisien modulo p dan aturan untuk mereduksi pangkat besar dari t. Konstruksi ini bekerja untuk semua p dan m, selama p adalah bilangan prima. Faktanya, setiap finite field dapat dikonstruksikan dengan cara ini. Fakta ini sebenarnya direferensikan kepada
Galois field dengan pm elemen, dengan menggunakan notasi GF(pm). Bilangan prima p merupakan karakteristik dari field.
Representasi field menentukan bit-pattern mana yang akan digunakan untuk merepresentasikan bermacam-macam elemen field. Representasi dipilih untuk membuat operasi aritmatika field menjadi efisien.
2.6.4 Polynomial Ring
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
(6)
…(2.12)
dimana x adalah sebuah variabel sedangkan indeks dan eksponennya adalah integer. Derajat dari f(x) adalah pangkat terbesar dasri x dalam bentuk fn-1 dengan
koefisien bukan bernilai 0. Sebuah polinomial disebut monic jika koefisien dari pangkat tertinggi dari x adalah 1.
Untuk setiap field F, terdapat sebuah ring F(x) yang disebut ring dari polinomial pada F. Sebuah polynomial ring analog dengan sebuah integer ring. Penjumlahan dari dua buah polinomial f(x) dan g(x) pada F(x) adalah sebuah polinomial lain dalam F(x) yang dapat didefinisikan sebagai berikut:
(6)
…(2.13)
dimana derajat dari g(x) ≤ derajat dari f(x), dengan ketentuan bahwa derajat dari polinomial hasil tidak lebih besar daripada derajat terbesar dari kedua polinomial. Hasil perkalian dari dua buah polinomial pada F(x) adalah sebuah polinomial lain pada F(x) sedemikian sehingga:
(6)
…(2.14)
dimana derajat dari g(x) ≤ derajat dari f(x)
Derajat dari polinomial hasil perkalian dari dua buah polinomial sama dengan penjumlahan dari derajat kedua faktor.
Dalam sebuah ring dari polinomial, operasi pengurangan selalu dapat dilakukan, tetapi operasi pembagian tidak selamanya dapat dilakukan. Jika terdapat sebuah polinomial a(x) sedemikian sehingga
(6)
…(2.15)
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
sebuah faktor dari s(x). Sebuah polinomial bukan nol p(x) yang hanya dapat dibagi oleh p(x) itu sendiri disebut sebagai irreducible polynomial (sebuah polinomial yang tidak dapat diperkecil lagi). Sebuah monic irreducible
polynomial disebut sebagai sebuah primitive polynomial. Semua r(x) yang dapat
membagi s(x) dan dapat dibagi oleh s(x), maka :
(6) …(2.16)
Oleh karena itu,
(6)
…(2.17)
dengan ketentuan bahwa a(x) dan b(x) harus memiliki pangkat nol. Jadi,
(6) …(2.18)
dimana adalah sebuah elemen dari field F.
Faktor persekutuan terbesar atau greatest common divisor (GCD) dari dua buah polinomial r(x) dan s(x) dapat dinotasikan dengan GCD[r(x), s(x)], adalah sebuah monic polynomial dari pangkat terbesar yang dapat membagi keduanya. Dua polinomial dikatakan relatif prima apabila GCD dari keduanya adalah sama dengan 1. GCD dari dua buah polinomial r(x) dan s(x) dapat diekspresikan dalam bentuk:
(6)
…(2.19)
Kelipatan persekutuan terkecil atau least common multiple (LCM) dari dua buah polinomial r(x) dan s(x) dapat dinotasikan dengan LCM[r(x), s(x)] adalah sebuah
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Untuk setiap polinomial f(x) dan polinomial bukan nol g(x), terdapat sebuah pasangan unik dari polinomial q(x), polinomial hasil bagi dan s(x), polinomial sisa bagi, sedemikian sehingga
(6)
…(2.20)
dan derajat dari s(x) lebih kecil daripada derajat dari g(x). Sisa hasil bagi s(x) disebut sebagai residu dari f(x) ketika dibagi oleh g(x). Kongruen s(x)f(x) [mod g(x)] berarti bahwa s(x) dan f(x) memiliki sisa hasil bagi yang sama apabila dibagi dengan g(x) tetapi derajat dari s(x) tidak harus sama lebih kecil daripada g(x).
Sebuah elemen a ∈ F adalah sebuah akar dari f(x) ∈ F[x] jika dan hanya jika x – a adalah sebuah faktor dari f(x) pada F[x]. Hal ini dapat dibuktikan melalui penjabaran berikut:
Anggap bahwa f(a) = 0 untuk a ∈ F, maka berdasarkan persamaan 2.15, terdapat q(x), s(x) ∈ F sedemikian sehingga:
(6)
…(2.21) dimana derajat dari s(x) lebih kecil dari 1. Misalkan, diperoleh s(x) = c, untuk c ∈ F, maka: Agar persamaan di atas memiliki hasil, maka c harus sama dengan 0, sehingga diperoleh:
(6)
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Misalkan diberikan dua buah polinomial r(x) dan s(x) pada F[x], maka faktor persekutuan terbesar kedua polinomial tersebut dapat dihitung dengan sebuah aplikasi iteratif dari algoritma pembagian. Jika derajat dari s(x) lebih besar daripada derajat dari r(x), maka perhitungan dari GCD[r(x),s(x)] adalah:
(6)
…(2.25) dimana proses iteratif berhenti ketika diperoleh sisa hasil bagi sama dengan 0. Maka, faktor persekutuan terbesar dari r(x) dan s(x) adalah rn(x) atau
(6)
…(2.26) Misalkan diketahui F[x], ring dari polinomial pada field F. Jika dipilih sembarang monic polynomial p(x) dari F[x], maka dapat ditentukan ring hasil bagi dengan menggunakan p(x) sebagai modulus. Ring dari polinomial modulo p(x) adalah sebuah set dari semua polinomial dengan derajat yang lebih kecil daripada p(x).termasuk hasil dari penjumlahan polinomial dan perkalian polinomial modulo p(x).
Ring dari polinomial modulo p(x) adalah sebuah field jika dan hanya jika
p(x) adalah sebuah primitive polynomial. Oleh karena itu, ketika sebuah primitive
polynomial p(x) dari derajat m pada GF(q) ditemukan, maka dapat
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
2.6.5 Galois Field
Misalkan E adalah sebuah perluasan field dengan derajat m pada sebuah
finite field F. Jika F memiliki q elemen, maka E memiliki qm elemen. Field semula disebut sebagai ground field. Oleh karena itu, field yang dibentuk dengan mengambil polinomial pada finite field F modulo p(x), dimana p(x) adalah sebuah
irreducible polynomial dengan derajat m, disebut sebagai sebuah field perluasan E
dengan derajat m pada F. Untuk beberapa pangkat prima dari q dan integer positif m, GF(qm) adalah sebuah field perluasan dari GF(q) atau GF(q) adalah sebuah
subfield dari GF(qm).
Setiap Galois Field GF(q) memiliki paling sedikit satu elemen primitif (primitive element). Elemen primitif dari GF(q) adalah sebuah elemen sedemikian sehingga setiap elemen field kecuali nol dapat diekspresikan sebagai
perpangkatan dari . Elemen primitif sangat berguna dalam mengkonstruksikan
field, karena dapat diperoleh elemen field dengan melakukan operasi perkalian
terhadap pangkat dari elemen primitif .
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
2.6.6 Primitif Polinomial
Sebuah irreducible polynomial p(x) dengan derajat m dikatakan primitif jika dan hanya jika dapat membagi xn + 1 untuk n yang lebih besar atau sama dengan 2m – 1. Kenyataannya, setiap primitive polynomial biner p(x) dengan derajat m adalah sebuah faktor dari x2 – 1 + 1. Primitive polynomial dari setiap derajat ada pada setiap Galois Field dan setiap Galois Field memiliki sebuah
primitive element . Galois Field GF(q) adalah sebuah field perluasan dari
subfield GF(p) dimana p adalah sebuah bilangan prima. Sebagai contoh, field
biner GF(2) adalah sebuah subfield dari Galois Field GF(2m) dengan q = 2m elemen (m > 1). Subfield dari GF(2) disebut juga sebagai ground field dari GF(2m). Subset {0, 1} membentuk sebuah subfield GF(2) dari GF(2m). Set GF(2m)
= {0, 1, , 2, …, 2 – 1
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Tabel 2.1 Primitive Polynomial pada GF(2)
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Operasi penjumlahan dan perkalian yang didefinisikan pada GF(2m) merupakan operasi penjumlahan dan perkalian modulo 2. Jumlah elemen pada
subfield terkecil dari GF(q) disebut sebagai karakteristik dari GF(q). Setiap Galois
Field memiliki sebuah subfield terkecil yang unik, dimana memiliki jumlah
elemen berupa bilangan prima. Oleh karena itu, GF(pm) adalah sebuah field dari karakteristik p untuk sembarang m. Sebagai contoh, karakteristik dari GF(2m) adalah 2.
2.6.7 Minimal Polinomial
Dalam sebuah finite field (field tertentu / terbatas) GF(q) dengan karakteristik p, maka berlaku:
(6)
…(2.27)
untuk sembarang dua elemen dan pada GF(q).
Teorema di atas dapat digunakan untuk merumuskan ketentuan berikut:
Anggap bahwa karakteristik p dari sebuah finite field GF(q) adalah sebuah
bilangan prima. Jika 1, 2, ..., n ∈ GF(q) dan jika q adalah hasil perpangkatan
dari p, q = pm, maka:
(6)
…(2.28)
Anggap adalah sebuah elemen bukan nol pada finite field GF(q), maka
(6)
…(2.29)
Misalkan diketahui sebuah ground field GF(2) dan sebuah field perluasan GF(2m), serta anggap adalah sembarang elemen field dari GF(2m), maka monic
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
sehingga m( ) = 0 disebut sebagai minimal polynomial dari . Rumusan untuk
menentukan minimal polynomial dari pada GF(2m) adalah sebagai berikut: (6
…(2.30)
Untuk = i
, maka minimal polynomial untuk beberapa nilai i memiliki solusi yang sama seperti ditunjukk an oleh Tabel 2.2(9)
Tabel 2.2 Rincian Minimal Polynomial
E Pangkat Konjugasi Minimal Polynomial
2.7 Kode Block Linear
Asumsikan output dari sebuat sumber informasi merupakan susunan bilangan biner “0” atau “1”. Pada pengkodean blok, susunan bit informasi ini disimpan dalam blok pesan dengan panjang yang tetap, dengan setiap satu blok pesan d menyimpan sebanyak k digit informasi. Jadi, ada total blok sepanjang 2k. Kemudian, encoder akan mentransformasikan setiap d menjadi sebuah set data n-biner c dengan ketentuan n > k. Set data n-biner-n c ini disebut sebagai
code word dari d. Karena ada kemungkinan pesan sebanyak 2k-buah, maka terdapat 2k code word, yang disebut sebagai kode block. Setiap 2k code word
yang dihasilkan haruslah berbeda, oleh sebab itu hubungan antara d dan c berkorespondensi satu-satu.
Untuk setiap kode block dengan 2k code word dan panjang n, kecuali
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
untuk mengkodekan informasi dengan nilai k dan n yang besar. Untuk itu, dilakukan pembatasan struktur kode block yang disebut sebagai linearity.
Sebuah kode block dengan 2k code word dan panjang n dikatakan linear
jika dan hanya jika 2k code word membentuk vektor berdimensi k untuk semua
biner-n GF(2):
kolom menentukan panjang kode n dalam satu blok kode.
Untuk memeriksa apakah kode yang diterima berisikan vektor kode yang benar,diperlukan suatu matrik parity-check H, yaitu sebuah matriks ( n-k ) x m yang didefinisikan sebagai :
(8)
…(2.33) dimana, adalah matriks transposisi dari pada persamaan 2.4. Matriks H ini diperlukan untuk memeriksa code word yang dihasilkan bebas dari error atau tidak, sesuai dengan persamaan:
(8)
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Jika sindrom S yang dihasilkan bernilai nol, maka code word dinyatakan bebas dari error. Jika S ≠ 0, maka telah terjadi error pada code word yang diterima. Posisi error dapat diketahui dengan membandingkan nilai S dengan baris pada
.
2.7.1 Jarak Minimum
Jarak Minimum dmin menentukan kemampuan sebuah kode untuk
mendeteksi error secara acak sekaligus mengoreksi error tersebut. Jarak minimum dapat dihitung sebagai :
(8)
…(2.35)
Supaya sebuah kode linear dapat mengoreksi t error, maka nilai dmin harus
memenuhi persamaan :
(8)
…(2.36) yang berarti, nilai dmin harus selalu satu lebih banyak dari dua kali jumlah error
yang ingin dikoreksi. Semua kode linear (n,k) yang mempunyai jarak minimum sesuai persamaan (2.36) adalah kode yang sempurna.
2.7.2 Kode Siklis
Jika komponent dari sebuah set data-n digeser satu kali ke arah kanan, akan diperoleh sebuah set data-n yang baru:
(9)
…(2.37)
yang disebut sebagai pergeseran siklis V. Demikian juga sebaliknya, jika set
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Sebuah kode linear C (n,k) disebut kode siklis jika setiap vektor kode C
yang digeser juga merupakan vektor kode dari C.
Algoritma pengkodean sebuah kode siklis (n,k) adalah sebagai berikut(9) ;
1. Kalikan sumber informasi u(X) dengan ,
2. Cari digit parity-check, yaitu nilai sisa b(X) yang diperoleh dari membagi dengan generator polinomial g(X),
3. Code word yang diperoleh adalah hasil penjumlahan b(X) dan .
Algoritma pengdekodean sebuah kode sikils (n,k) membutuhkan
perhitungan sindrom pada bagian penerimaan. Pada pengdekodean kode linear,
sindrom adalah vektor (n-k)-bit yang dihasilkan persamaan (2.34). Pada
kode siklis, sindrom polinomial berderajat n – k – 1 atau kurang adalah :
Ide dasar pengkodean Hamming adalah menggunakan metode
parity-checking, yaitu menambahkan satu bit parity pada blok data. Bit parity ini
berfungsi untuk mendeteksi bit yang salah, sekaligus menentukan lokasi kesalahan bit tersebut. Tetapi pengkodean Hamming hanya sebatas mendeteksi dua kesalahan dan mengoreksi satu bit yang salah.
Untuk setiap integer positif m ≥ 3, terdapat parameter sebagai berikut (8): Panjang kode :
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Kapabilitas koreksi kesalahan :
Karena bit parity-check m sama dengan derajat pada generator polinomial, jumlah bit informasi untuk kode hamming dengan panjang n adalah sebesar k-bit. Dengan demikian secara umum, Kode Hamming bisa disebut juga sebagai kode linear ( n,k ).
Algoritma pembentukan kode Hamming dimulai dengan mengambil sebanyak k bit data yang dikalikan dengan generator matriks. Oleh karena itu dalam pengkodean Kode Hamming diperlukan adanya suatu generator matriks G. Bentuk umum generator matriks dari Kode Hamming yang sistematik sesuai persamaan (2.32).
Generator matriks untuk Kode Hamming (n,k) dapat juga dihitung menggunakan primitif polinomial sesuai dengan persamaan(6) :
…(2.39)
dimana,
Berikut langkah langkah untuk mengubah persamaan diatas menjadi persamaan 2.27 yang sistematis:
1. Gunakan g(x) sebagai baris pertama,
2. Untuk menghasilkan baris kedua, lakukan pergeseran bit yang ada di baris pertama sebanyak satu kolom ke kanan, dengan ketentuan kolom ke-( n - k
) harus bernilai 0. Jika kolom ini bernilai 1, tambahkan baris pertama :
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
3. Ulangi langkah kedua, untuk mendapatkan nilai baris selanjutnya. Ulangi proses ini sampai baris ke-( k – 1 ) dicapai.
Sebagai contoh, jika m = 3, maka sesuai parameter Kode Hamming:
, dan
.
Primitif polinomial untuk m = 3 berdasarkan Tabel 2.1 adalah : ,
sehingga Generator matriks sesuai persamaan (2.39) untuk Kode Hamming (7,4) adalah :
Kode Hamming (7,4) dapat dihasilkan sesuai persamaan (2.31). Misalnya, data yang ingin dikirim d = 1000, maka kode yang terbentuk :
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Matriks parity-check H ini ditransposisi menjadi untuk kemudian dikalikan dengan kode yang diterima c , sesuai persamaan (2.34).
Perhitungan sindrom ini untuk mengetahui apakah kode yang diterima benar
atau tidak. Jika sindrom yang dihasilkan bernilai nol, maka tidak ada error yang terdeteksi. Jika sindrom tidak bernilai nol, maka ada error terdeteksi.
Langkah selanjutnya adalah mencari posisi error. Caranya adalah
mentransposisikan sindrom S menjadi ST , dan membandingkan ST yang diperoleh dengan matriks parity-check. Setelah posisi error diketahui, dilakukan
pengoreksian, yaitu dengan cara menukar nilai bit yang ada, bit 1 menjadi bit 0, dan bit 0 menjadi bit 1. Tahap terakhir dari proses pengdekodean adalah
mengeluarkan bit bit parity.
2.9 Kode Reed- Solomon
Pada tahun 1960, Irving Reed dan Gus Solomon menemukan sebuah metode error correcting baru yang sekarang dikenal dengan nama Reed-Solomon (R-S) code. Reed-Solomon merupakan Kode non biner dengan simbol yang terbuat dari rangkaian m-bit, dimana m adalah bilangan integer positif yang memiliki nilai lebih besar dari 2. Terdapat R-S(n, k) code yang terdiri dari m-bit simbol untuk semua n dan k:
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
R-S(n, k) = R-S(2m – 1, 2m – 1 – 2t) (5) ...(2.42) dimana t adalah jumlah maksimum error yang dapat dikoreksi, dan n – k = 2t adalah jumlah simbol pariti.
Untuk kode non biner, jarak antara 2 buah codeword adalah banyaknya jumlah simbol yang berbeda antara kedua buah codeword. Untuk Reed-Solomon
code, jarak minimum code adalah:
dmin = n – k + 1(5) ...(2.43)
dengan kemampuan untuk mengoreksi hingga t error, maka t dapat dinotasikan:
(5)
…(2.44) dimana x berarti bilangan integer terbesar yang tidak melebihi x. Dari persamaan tersebut, dapat disimpulkan R-S code membutuhkan tidak lebih dari 2t simbol pariti untuk mengkoreksi t simbol error.
Metode Reed-Solomon dapat dibagi dalam 2 proses yaitu:
1. Pengkodean, dilakukan dengan merepresentasikan data ke dalam bentuk simbol-simbol yang kemudian diubah menjadi codeword. Proses encoding dimulai dari pembentukan generator polinomial dengan bentuk umum:
g(x) = g0 + g1x + g2x2 + ... + g2t-1x2t-1 + x2t(5) ...(2.45)
Derajat dari generator polinomial sebanding dengan jumlah simbol pariti. Karena generator polinomial memiliki derajat sebesar 2t, maka tepat ada 2t
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
menjadi tanda positif (+) karena pada binary field +1 = -1, maka g(x) dapat diekspresikan sebagai berikut:
g(x) = 3+ 1x + 0x2+ 3x3 + x4(5) …(2.46)
Setelah mendapatkan nilai generator polinomial, data yang akan diproses diubah menjadi simbol-simbol sesuai dengan pemetaan elemen-elemen pada
extension field GF(2m). Setelah itu, data yang telah diubah menjadi simbol, direpresentasikan dalam bentuk polinomial. Polinomial data tersebut kemudian dikalikan dengan xn-k. Hasil perkaliannya dibagikan dengan generator polinomial dan sisa baginya ditambahkan ke dalam polinomial data. Untuk lebih jelasnya dapat dilihat pada persamaan berikut:
xn-k * m(x) = q(x) * g(x) + p(x) (5) …(2.47) dimana m(x) adalah polinomial data, g(x) adalah generator polinomial, q(x) adalah hasil bagi m(x) dengan g(x), dan p(x) adalah sisa bagi dari m(x) dengan g(x). p(x) sebagai sisa bagi merupakan pariti sehingga nantinya codeword yang dihasilkan adalah:
U(x) = p(x) + xn-k * m(x). (5) …(2.48) 2. Pengdekodean, yaitu mengubah kembali codeword menjadi data dengan
memperbaiki error pada codeword terlebih dahulu jika ada. Error yang terjadi dapat direpresenasikan dalam bentuk polinomial:
(5)
…(2.49)
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Sementara pada decoding secara non biner, mengetahui letak error-nya saja tidaklah cukup, tetapi harus juga mengetahui nilai simbol yang sebenarnya pada lokasi tersebut.
Perbedaan utama antara Kode BCH dan Kode RS terletak pada struktur datanya. Jika Algoritma Kode RS berdasarkan simbol, maka Algoritma Kode BCH berdasarkan bit.
Algoritma Reed-Solomon
Simbol 1 Simbol 2 Simbol 3 Simbol 4
Panjang Simbol = 4, panjang kode = 4 Algoritma BCH
Panjang Simbol = 1, panjang kode = 16
Gambar 2.7 Perbedaan Kode BCH dan Kode R-S
2.10Kode Konvolusi
Kode Konvolusi pertama kali diperkenalkan pada tahun 1955 oleh Elias. Kode Konvolusi berbeda dengan Kode Block karena encoder dari kode ini memuat memory dan output encoder n tidak hanya tergantung kepada input k tetapi juga blok input memory sebelumnya m, sehingga dinotasikan dengan ( n, k, m). Oleh sebab itu, Kode konvolusi memiliki struktur yag lebih rumit dibandingkan dengan Kode Block. Di sisi lain, meskipun Kode Konvolusi lebih sulit dianalisis, ia lebih mudah untuk didekodekan.
Ada empat pendekatan untuk melakukan pengkodean Kode Konvolusi: i. Pendekatan generator sekuens dan stage-register
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
iv. Pendekatan polinomial
Sementara, untuk pengdekodean Kode Konvolusi, terdapat tiga pendekatan :
i. Pendekatan Trellis
ii. Pendekatan Pohon / Tree, yang mempergunakan diagram state iii. Pendekatan logik-mayoritas
2.11Metode BCH Code
Metode BCH Code merupakan salah satu metode pendeteksi dan pengoreksi error yang terjadi secara acak yang mampu untuk mengoreksi beberapa kesalahan (multiple error) sekaligus dan merupakan pengembangan dari metode Hamming Code. Metode ini ditemukan oleh Bose dan Ray-Chaudhuri pada tahun 1960 dan secara terpisah juga ditemukan oleh Hocquenghem pada 1959. Pada awalnya, metode ini hanya dapat diterapkan untuk beberapa nilai m pada kode biner dengan panjang 2m – 1. Kemudian, metode ini dikembangkan lagi oleh Gorenstein dan Zierler pada tahun 1961 dengan menggunakan simbol dari
Galois Field (GF).
Metode BCH Code ini dapat diimplementasikan untuk m ≥ 3 dan t < 2m-1 dan memiliki properti sebagai berikut (8):
Panjang blok yang dikirimkan : n = 2m – 1
Bit Informasi : k
Jumlah error maksimal : t
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Secara garis besar, prosedur kerja dari metode BCH Code ini dapat dirincikan sebagai berikut(10):
a. Proses Encoding, yaitu proses pembentukan kumpulan checkbit yang akan dikirimkan bersama informasi.
i. Bentuk Galois Field, GF(2m)
ii. Tentukan 2t – 1 buah minimal polynomial. Karena polinomial pangkat genap merupakan duplikasi dari polinomial pangkat ganjil, maka polinomial pangkat ganjil saja yang diambil.
iii. Bentuk generator polinomial yang merupakan kelipatan persekutuan terkecil dari hasil perkalian semua minimal polynomial yang dipilih.
iv. Tambahkan bit 0 di belakang bit biner dari pesan dengan panjang sebesar derajat dari generator polinomial.
v. Lakukan operasi pembagian biner terhadap gabungan pesan dan bit 0 dengan generator polinomial.
vi. Sisa bagi dari operasi pembagian biner di atas merupakan checkbit. vii. Bit Informasi + Checkbit dikirimkan.
b. Proses Decoding, yaitu proses pendeteksian error dan pengoreksian error apabila ditemukan error.
a. Prosedur pendeteksian kesalahan (error detection).
i. Lakukan operasi pembagian terhadap gabungan dari bit informasi dan checkbit dengan generator polinomial.
ii. Jika sisa pembagian = 0, berarti tidak terdapat error. iii. Jika tidak, berarti terdapat error.
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
i. Tentukan 2t buah minimal polynomial.
ii. Hitung sindrom (S1 … S2t) dari codeword (bit informasi +
checkbit) yang diterima. Dalam hal ini, terdapat 2t
komponen dalam vektor.
iii. Bentuk tabel BCH dengan menggunakan algoritma Peterson-Berlekamp(1) berikut:
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
dimana: adalah koefisien ke-i dari dan
.
iv. Hasil akhir σ(n)(x) merupakan polinomial pendeteksi lokasi
error.
v. Setelah itu, cari akar dari persamaan polinomial tersebut dengan metode trial and error, yaitu dengan mencoba semua elemen dari GF(2m). Nilai tersebut merupakan akar apabila hasil proses perhitungan polinomial = 0.
vi. Kemudian cari nilai kebalikan dari akar-akar tersebut. Nilai ini merupakan posisi bit error.
vii. Tabel BCH dapat juga dibentuk menggunakan Algoritma Berlekamp-Massey(6):
i. Untuk n = 0, terdapat kondisi awal sebagai berikut:
ii. Jika ,maka
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
, dan
…(2.54)
iv. Untuk setiap atau , variansi d berikutnya adalah :
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
BAB III
PEMODELAN KODE BCH
3.1 Algoritma Pengkodean dan Pengdekodean BCH
Metode BCH Code yang ditemukan oleh Bose dan Ray-Chaudhuri pada tahun 1960 dan secara terpisah juga ditemukan oleh Hocquenghem pada 1959 ini menggunakan simbol dari Galois Field (GF) dan dapat diimplementasikan untuk untuk m ≥ 3 dan t < 2m-1. Pada pembahasan kali ini, digunakan m = 5, k = 16 dan t = 3, sehingga:
Panjang blok yang dikirimkan : n = 2m – 1 = 25 – 1 = 31 bit Bit informasi : k = 16 bit
Jumlah error maksimal : t = 3
Checkbit : c = m * t = 5 * 3 = 15 bit
Proses kerja dari metode BCH Code ini dapat dibagi menjadi 2 bagian besar, yaitu:
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Start
End
Bentuk tabel Galois Field GF(2m)
Tentukan 5 buah minimal polynomial m1(x) … m5(x)
Bentuk generator polinomial g(x) = KPK(m1(x), …, m5(x))
Tambahkan 15 buah bit 0 di belakang bit pesan b(x) = p(x) | 000000000000000
Hitung checkbit c(x) = b(x) mod g(x)
Blok bit yang dikirimkan p(x) | c(x)
Gambar 3.1 Proses Encoding pada BCH Code
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Start
Hitung nilai [p(x) | c(x)] mod g(x)
Sisa modulo = 0
Tentukan 6 buah minimal polinomial
m1(x), …, m6(x) Tidak terdapat error Ya
Tidak
Hitung nilai sindrome s1(x), …, s6(x)
Bentuk tabel BCH dengan algoritma Peterson-Berlekamp
Cari akar persamaan polinomial dengan algoritma Trial and Error polinomial pendeteksi lokasi error
O(n)(x)
Cari nilai kebalikan dari akar yang diperoleh Nilai ini merupakan posisi bit error
Perbaiki bit pada posisi error
End
Gambar 3.2 Proses Decoding pada BCH Code
Agar dapat lebih memahami proses kerja dari metode BCH Code diberikan sebuah contoh sederhana berikut:
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
1. Proses Encoding
a. Bentuk tabel Galois Field GF(25)
Berdasarkan tabel 2.1, untuk m = 5, maka primitif polinomial yang dipergunakan adalah :
,
gantikan X dengan : ,
sehingga : ,
Dan diperoleh bentuk polinomial untuk - :
Edy Susanto : Analisis Kinerja Kode BCH, 2010.
Tabel 3.1 Galois Field GF(25)
b. Untuk t=3, terdapat 5 buah minimal polinomial, m1(x) … m5(x)
m1(x) = x5 + x2 + 1
m2(x) = x5 + x2 + 1
m3(x) = x5 + x4 + x3 + x2 + 1
m4(x) = x5 + x2 + 1