Algoritma Pengkodean dan Pengdekodean BCH

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 2 m-1 . Pada pembahasan kali ini, digunakan m = 5, k = 16 dan t = 3, sehingga: Panjang blok yang dikirimkan : n = 2 m – 1 = 2 5 – 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: 1. Proses Encoding, yaitu proses perhitungan checkbit yang akan disisipkan ke dalam pesan. Proses ini memiliki input berupa kumpulan bit biner pesan px. Proses ini dapat dijabarkan seperti terlihat pada gambar 3.1: Edy Susanto : Analisis Kinerja Kode BCH, 2010. Start End Bentuk tabel Galois Field GF2 m Tentukan 5 buah minimal polynomial m 1 x … m 5 x Bentuk generator polinomial gx = KPKm 1 x, …, m 5 x Tambahkan 15 buah bit 0 di belakang bit pesan bx = px | 000000000000000 Hitung checkbit cx = bx mod gx Blok bit yang dikirimkan px | cx Gambar 3.1 Proses Encoding pada BCH Code 2. Proses Decoding, yaitu proses pendeteksian error pada blok bit yang diterima dan apabila ditemukan error maka dilakukan proses pengoreksian error. Proses ini dapat dijabarkan seperti terlihat pada gambar 3.2: Edy Susanto : Analisis Kinerja Kode BCH, 2010. Start Hitung nilai [px | cx] mod gx Sisa modulo = 0 Tentukan 6 buah minimal polinomial m 1 x, …, m 6 x Tidak terdapat error Ya Tidak Hitung nilai sindrome s 1 x, …, s 6 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 Proses pendeteksian error Proses pengoreksian error Gambar 3.2 Proses Decoding pada BCH Code Agar dapat lebih memahami proses kerja dari metode BCH Code diberikan sebuah contoh sederhana berikut: Misalkan diketahui bit pesan px adalah: 0000000001000001. Maka proses perhitungannya adalah sebagai berikut: Edy Susanto : Analisis Kinerja Kode BCH, 2010. 1. Proses Encoding a. Bentuk tabel Galois Field GF2 5 Berdasarkan tabel 2.1, untuk m = 5, maka primitif polinomial yang dipergunakan adalah : , gantikan X dengan : , sehingga : , Dan diperoleh bentuk polinomial untuk - : Untuk lebih jelasnya, perhatikan Tabel 3.1 Edy Susanto : Analisis Kinerja Kode BCH, 2010. Tabel 3.1 Galois Field GF2 5 b. Untuk t=3, terdapat 5 buah minimal polinomial, m 1 x … m 5 x m 1 x = x 5 + x 2 + 1 m 2 x = x 5 + x 2 + 1 m 3 x = x 5 + x 4 + x 3 + x 2 + 1 m 4 x = x 5 + x 2 + 1 m 5 x = x 5 + x 4 + x 2 + x + 1 Edy Susanto : Analisis Kinerja Kode BCH, 2010. c. Bentuk generator polinomial gx. gx = KPKm 1 x, …, m 5 x gx = m 1 x m 3 x m 5 x gx = x 5 + x 2 + 1 x 5 + x 4 + x 3 + x 2 + 1 x 5 + x 4 + x 2 + x + 1 gx = x 15 + x 11 + x 10 + x 9 + x 8 + x 7 + x 5 + x 3 + x 2 + x + 1 gx = 1000111110101111 d. Tambahkan 15 buah bit 0 di belakang bit pesan: bx = 0000000001000001000000000000000 e. Hitung nilai checkbit: cx = 0000000001000001000000000000000 mod 1000111110101111 cx = 100101000100010 f. Blok bit yang dikirimkan: vx = px | cx = 0000000001000001 | 100101000100010 2. Proses Decoding 10 : Misalkan terdapat gangguan pada saat transmisi data, sehingga blok bit yang diterima berubah menjadi: vx = 0001000011000001 | 100100000100010 Maka, proses pendeteksian dan pengoreksian error yang dilakukan adalah sebagai berikut: a. Hitung nilai modulus [px | cx] mod gx vx = 0001000011000001100100000100010 mod 1000111110101111 vx = 1111110111010 Edy Susanto : Analisis Kinerja Kode BCH, 2010. b. Nilai modulus tidak sama dengan nol, berarti terdapat error. Lanjutkan perhitungan proses pengoreksian error. c. Tentukan 6 buah minimal polinomial: m 1 x = x 5 + x 2 + 1 = 100101 m 2 x = x 5 + x 2 + 1 = 100101 m 3 x = x 5 + x 4 + x 3 + x 2 + 1 = 111101 m 4 x = x 5 + x 2 + 1 = 100101 m 5 x = x 5 + x 4 + x 2 + x + 1 = 110111 m 6 x = x 5 + x 4 + x 3 + x 2 + 1 = 111101 d. Hitung sindrome dari keenam minimal polinomial tersebut: s 1 x = vx mod m 1 x s 1 x = 0001000011000001100100000100010 mod 100101 s 1 x = 100 = x 2 s 2 x = vx mod m 2 x s 1 x = 0001000011000001100100000100010 mod 100101 s 1 x = 100 = x 2 s 3 x = vx mod m 3 x s 1 x = 0001000011000001100100000100010 mod 111101 s 1 x = 11011 = x 4 + x 3 + x + 1 s 4 x = vx mod m 4 x s 1 x = 0001000011000001100100000100010 mod 100101 s 1 x = 100 = x 2 s 5 x = vx mod m 5 x s 1 x = 0001000011000001100100000100010 mod 110111 Edy Susanto : Analisis Kinerja Kode BCH, 2010. s 1 x = 10010 = x 4 + x s 6 x = vx mod m 6 x s 1 x = 0001000011000001100100000100010 mod 111101 s 1 x = 11011 = x 4 + x 3 + x + 1 e. Substitusikan ke dalam persamaan sindrome di atas. s 1 = 2 s 2 2 = 2 2 = 4 s 3 3 = 3 4 + 3 3 + 3 + 1 = 12 + 9 + 3 + 1 = 14 s 4 4 = 4 2 = 8 s 5 5 = 5 4 + 5 = 20 + 5 = 29 s 6 6 = 6 4 + 6 3 + 6 + 1 = 24 + 18 + 6 + 1 = 28 f. Buat tabel BCH dengan menggunakan algoritma Peterson-Berlekamp. Tentukan nilai awal kondisi, yaitu : σ -1 x = 1; σ x = 1; l -1 = 0; l = 0; d -1 = 1; d = s 1; Untuk n = 0, , sehingga kita pilih m = -1 dan sesuai persamaan 2.46 dan persamaan 2.47 : Karena = 0, maka dipakai persamaan 2.45, sehingga untuk n = 1 : Edy Susanto : Analisis Kinerja Kode BCH, 2010. , sehingga untuk n = 2, dan m = 0, n = 3, d4 ≠ 0 , n = 4, m = 2, = 0, n =6, dan error-locator polinomial nya adalah : Edy Susanto : Analisis Kinerja Kode BCH, 2010. Hasil perhitungan di atas kemudian dimasukkan ke dalam Tabel 3.2 Tabel 3.2 Tabel dari Algoritma Peterson-Berlekamp n - 1 1 -1 1 1 1 2 1 1 3 2 1 4 2 2 5 3 2 6 - - - g. Error locator polynomial yang diperoleh adalah 27 x 3 + 11 x 2 + 2 x + 1. h. Dengan menggunakan algoritma trial and error, yaitu mengganti nilai persamaan point g dengan field element yang ada pada GF2 5 , , dengan ketentuan 0 ≤ k ≤ 31, dan , diperoleh 3 buah akar polinomial yaitu: 4 , 9 , 22 . i. Maka posisi bit yang error adalah nilai kebalikan dari ketiga nilai akar di atas: Kebalikan dari 4 = 31-4 = 27  posisi bit ke 27 Kebalikan dari 9 = 31-9 = 22  posisi bit ke 22 Kebalikan dari 22 = 31-22 = 9  posisi bit ke 9 j. Perbaiki bit pada posisi error dengan membalikkan nilai bit pada posisi tersebut. 30 27 23 19 15 11 7 3 0 000 1000 0110 0000 1100 1000 0010 0010 000 0000 0010 0000 1100 1010 0010 0010 Edy Susanto : Analisis Kinerja Kode BCH, 2010.

3.2 Model Sistem