ANALISIS KONSTRUKSI DAN SIFAT
BCH CODE
A
CHMADF
AHRUROZI,
M.S
I1,2,
S
RIM
ARDIYATI,
M.K
OM21
Universitas Gunadarma Depok, [email protected] 2
Universitas Indonesia Depok, [email protected]
Abstract
Pada makalah ini, akan dibahas suatu metode pengkodean, dimana ketika pesan-pesan yang berbentuk k-tuple akan dikirim, maka pesan-pesan tersebut diubah menjadi code yang merupakan kumpulan n-tuple codeword, dengan
n
>
k
. Codeword tersebut terdiri dari k simbol yang merupakan pesan yang berkorespondensi dengan codeword tersebut, dan (n-k) simbol yang disebut bit parity check. Simbol yang digunakan adalah elemen-elemen dari suatu lapangan hingga GF q q( ), =2 ,m m∈N. Untuk memperoleh bit parity check ini, digunakan algoritma BCH code, dimana code yang dihasilkan mampu mendeteksi dan mengkoreksi error yang terjadi pada proses pengiriman pesan-pesan. Kemampuan suatu code dalam mengontrol error (mendeteksi dan atau mengkoreksi error) tergantung pada jarak minimum antar codeword dalam code tersebut.Kata kunci: pesan, lapangan hingga, codeword, code, jarak minimum. 1. Pendahuluan
Pengkodean informasi adalah suatu cara yang digunakan untuk melindungi informasi yang dikirim dari gangguan yang mungkin terjadi pada media pengiriman. Untuk melakukan ini, sebelum dikirim, informasi yang berupa huruf, karakter ataupun suara diubah terlebih dahulu menjadi pesan-pesan yang berbentuk k-tuple, dimana komponen-komponennya adalah anggota lapangan hingga. Pesan-pesan tersebut kemudian diubah menjadi kumpulan n-tuple yang disebut codeword melalui proses encoding. Hasil dari metode pengkodean informasi tersebut disebut code. Gagasan mengenai cara pengkodean informasi sehingga suatu kesalahan dapat dideteksi dan juga dapat diperbaiki pertama kali dikembangkan oleh ilmuwan bernama R.W. Hamming.
Dalam perkembangannya, muncul berbagai cara pengkodean informasi yang berbeda-beda, yang memiliki proses konstruksi dan sifat yang berbeda satu dengan lainnya. Berbagai jenis code yang dihasilkan tersebut tidak hanya diaplikasikan pada komputer saja, tetapi bermanfaat untuk berbagai aspek kehidupan sehari-hari, khususnya teknologi komunikasi digital. Salah satu jenis atau kelompok code yang mempunyai nilai kegunaan yang baik adalah cyclic code. Pada makalah ini akan dibahas mengenai konstruksi BCH
2. Teori Coding
Untuk membahas kemampuan suatu code dalam mendeteksi sekaligus mengkoreksi error yang terjadi, diperlukan beberapa pengertian yang berkaitan dengan suatu code C. Berikut diberikan pengertian tentang jarak Hamming dan bobot Hamming dalam suatu
code C.
(i) Jarak Hamming antara dua codeword berbentuk n-tuple x=( ,x x1 2,…,xn) dan 1 2
( , , , n)
y= y y … y dalamC, dilambangkan d x y( , ), adalah banyaknya koordinat dalam x dan y yang berbeda.
(ii) Bobot Hamming dari codeword berbentuk n-tuple x=( ,x x1 2,…,xn) dalam C, dilambangkanw x( ), adalah banyaknya koordinat xi yang tak-nol.
Jarak minimum suatu code C, dilambangkandmin( )C , atau juga sering disingkat dmin, didefinisikan sebagai [5] min min ( , )u v C, u v d d u v ∈ ≠ =
Misal C adalah code dengan dmin =d. Maka C memiliki kemampuan kontrol error: mengkoreksi maksimum 1
2
d t= ⎢⎢ − ⎥⎥
⎣ ⎦ error dan mendeteksi maksimum
d
−
1
error [5]. Suatu code C yang merupakan (n,k)-blok code disebut grup code jika C merupakan subruang dari GF q( )n, dimana GF q( )n
menyatakan suatu ruang vektor berdimensi n atas lapangan hingga GF q( ) sekaligus merupakan lapangan perluasan dari lapangan
( )
GF q . Sehingga proses encoding suatu grup code secara umum dapat juga dipandang sebagai sebuah transformasi dari ruang vektor GF q( )k
ke ruang vektor GF q( )n
. Sehingga proses encoding suatu code dapat melibatkan matriks generator G yang berukuran
n k
x
. Berikut ini adalah sifat yang dimiliki oleh suatu grup code:Teorema 1: Misalkan dmin adalah jarak minimum dari suatu grup code C. Maka dmin
adalah minimum dari bobot Hamming semua codeword tak-nol dalam C. Ditulis
( )
{
}
min
min
| 0
d
=
w x
≠ ∈
x
C
[7]Suatu code dapat pula dibangun dengan mencari solusi dari persamaan
Hx
T=
0
, dimana H disebut matriks parity check yang berbentukH
=
(
A I
|
n k−)
, dimana A adalah sebarang matriks berukurann k
−
x
k
dan In k− adalah matriks identitas berukuranx
n k
−
n k
−
. Code yang dibangun tersebut disebut linier code. Suatu linier code juga merupakan suatu grup code.Suatu linier (n,k) code C dikatakan suatu cyclic code jika untuk setiap codeword 1 2
( ,a a ,....,an) dalam C, maka pergantian secara siklik menjadi n-tuple
2 3 1
(a a, ,....,a an, ) juga merupakan codeword dalam C [5].
Suatu cyclic code dapat dibangun dari suatu polinomial generator g x membagi ( ) xn− 1 dalam GF q x . ( )[ ] Berikut adalah sifat yang dimiliki oleh suatu cyclic code C:
Teorema 2: Misal
C
=
g x
( )
adalah cyclic code dan misalkan α adalah akar primitif ke-n dari unit atas Z2. Jika s buah pangkat berurutan dari α adalah akar dari g x( ),3. Konstruksi BCH code
BCH code adalah suatu contoh binary code, yang diperkenalkan oleh dua orang ilmuwan, R. C. Bose dan D. V. Ray-Chaudhuri mengacu pada penemuan A. Hocquenghem. Sistem komunikasi dan informasi Eropa dan trans-Atlantik menggunakan BCH code yang berbentuk (255,231)-blok code [5].
Berikut diberikan algoritma konstruksi BCH code: 1. Tentukan panjang codeword n=2m−1
, untuk suatu
m
∈
N
dan tentukan juga jarak BCHd
∈
N
dan d ≤(n−1) / 2.2. Cari minimum polinomial untuk
α
i, dilambangkan m xi( ), dimanaα
adalah akar primitif ke-n dari unit dan i=1, 2,..., 2r3. Tentukan polinomial generator g x( ), yaitu
[
1 2 2]
( )
( ),
( ),...,
r( )
g x
=
lcm m x m x
m
x
4. Bentuk polinomial u x( )=xn k− m x( ) mod ( )g x , dimana
1 2
1 2
( ) k k ...
k
m x =a x − +a x − + +a adalah polinomial yang berkorespondensi dengan pesan
m
=
(
a a
1,
2,...,
a
k)
, ai∈Z25. Sehingga diperoleh codeword c yang berkorespondensi dengan polinomial
( ) n k ( ) ( ) c x = x− m x +u x .
Dalam algoritma tersebut, dapat dianalisa beberapa hal, yaitu • Polinomial minimal untuk
α
iditentukan dengan menggunakan teorema berikut: Teorema 3: Misal
ξ
adalah elemen GF p( m) dan misal mξ menyatakan polinomial minimal dariξ
. Misalkanα
adalah elemen primitif dalam GF p( m) dan misalkani
ξ α
= . Jika i ada dalam cyclotomic coset Ci, maka(
)
i j j C mξ x
α
∈ =∏
− [7] . • Pada Langkah 3, karena polinomial generatorg x
( )
=
lcm m x m x
[
1( ),
2( ),...,
m
2r( )
x
]
dimana m xi( ) adalah polinomial minimal untuk
α
i, maka polinomial generator tersebut dijamin memiliki paling sedikit 2r akar berurutan, yaituα α
, 2,...,α
2r. Selain itu, karena α adalah akar primitif ke-n dari unit, maka polinomial generator( )
g x juga dijamin membagi xn−1.
• Pada Langkah 4, dapat dilihat bahwa polinomial u x( )=xn k− m x( ) mod ( )g x akan berderajat kurang dari derajat g x( ). Sehingga, jika deg ( )g x =s, maka
deg ( )u x ≤ −s 1. Karena BCH code adalah suatu cyclic code yang dibangun oleh
( )
g x maka diperoleh hubungan
s
= −
n k
, s=deg ( )g x (1) • Andai deg ( )u x = −s 1, maka koefisien dalam u x( )=u0+u x1 + +... us−1xs−1 akanlangsung menjadi n-k komponen terakhir pada codeword yang dihasilkan. Jika
deg ( )u x = < −v s 1, maka u x( )akan ditulis sebagai
1 2 1
1 ( 1)
( ) 0 s 0 s ... v v ...
s v s v s v v s
u x = x − + x − + +u − x +u − +x − + +u− + − x+u ,
yang dimaksudkan untuk menjamin koefisien u x( ) selalu menjadi
s
= −
n k
1 2
1 2
( ) n k ( ) ( ) n n ... n
c x =x − m x +u x =c x − +c x − + +c , maka codeword yang dihasilkan adalah adalah
c
=
(
c c
1,
2,...,
c c
k,
k+1,...,
c
n)
, dimana(
c c
1,
2,...,
c
k)
=
m
dan(
c
k+1,...,
c
n−1,
c
n)
=
u
.• Sedangkan pada Langkah 5, perkalian xn k− m x( )
adalah suatu manipulasi agar pesan
m berada pada k komponen pertama dalam codeword yang dihasilkan.
Teorema berikut memberikan hubungan antara jarak d yang ditentukan pada definisi BCH code dan jarak minimum pada BCH code tersebut.
Teorema 4: BCH code yang dibangun dengan polinomial generator g x( ) seperti di atas memiliki jarak minimum dmin ≥d [5].
Teorema 5: Suatu BCH code dengan panjang n=2m−1 dan jarak minimum paling sedikit
d
=
2
r
+
1
, memiliki bit parity check maksimum sebanyakmr
. Dengan kata lain,n k
− ≤
mr
[8].Lebih lanjut, karena jarak minimum dmin ≥ =d 2r+1 dan karena kemampuan koreksi
error min 1
2 d t= ⎢⎢ − ⎥⎥
⎣ ⎦, maka jelas bahwa t≥r. Jadi, berdasarkan Teorema 5 diperoleh:
n k
− ≤
mt
Misalkan suatu BCH code adalah linier (n,k) code, maka berikut ini diberikan hubungan antara panjang code (n), panjang pesan (k), dan kemampuan koreksi error maksimum (t) yang dimiliki oleh BCH code tersebut.
Tabel 1. Hubungan n, k dan t pada BCH (n,k) code dengan n=7, 15, 31, 63 dan 255 n k t n k t n k t n k t n k t n k t 7 4 1 63 57 1 255 247 1 255 163 12 255 139 15 255 55 31 15 11 1 51 2 239 2 155 13 131 18 47 42 7 2 45 3 231 3 147 14 123 19 45 43 5 3 39 4 223 4 139 15 115 21 37 45 31 26 1 36 5 215 5 131 18 107 22 29 47 21 2 30 6 207 6 123 19 99 23 21 55 16 3 24 7 199 7 115 21 91 25 13 59 11 5 18 10 191 8 107 22 87 26 9 63 6 7 16 11 187 9 99 23 79 27 10 13 179 10 155 13 71 29 7 15 171 11 147 14 63 30
Pada tabel terlihat bahwa panjang pesan yang dapat dikirm (k) dan kemampuan koreksi maksimum (t) berubah-ubah secara tak teratur. Hal ini dipengaruhi oleh bentuk polinomial generator dari BCH code. Karena polinomial generator
[
1 2 2]
( )
( ),
( ),...,
r( )
g x
=
lcm m x m x
m
x
, maka bentuknya bergantung pada polinomialminimal dari
α
k yang besar pangkatnya bergantung pada jumlah elemen dalam suatucyclotomic coset. Sebagai contoh, misal diambil n = 15. Perhatikan bahwa terdapat 5
{ }
00
C
=
C
3=
{
3, 6,12, 9
}
C
7=
{
7,14,13,11
}
{
}
11, 2, 4,8
C
=
C
5=
{
5,10
}
Maka akan terdapat 5 buah polinomial minimal berbeda, masing-masing untuk
0 3 5
, , ,
α α α α
danα
7. Jika dipilih d = 3, maka perlu dicari polinomial minimal untukα
danα
2. Karena 1, 2∈C1, maka polinomial minimal untukα
danα
2 sama, yaitu polinomial primitif, dan karena jumlah elemen C1 adalah 4, maka polinomial generator akan berderajat empat. Sehingga berdasarkan persamaan (1), panjang pesan yang dapat dikirim adalah 15 – 4 = 11. Sedangkan jika dipilih d = 5, perlu dicari polinomial minimal untukα α α
, 2, 3 danα
4, dimana hanya akan terdapat dua polinomial minimal yang berbeda, yaitu polinomial minimal untuk α dan polinomial minimal untukα
3. Karena anggota cyclotomic cosetC
1=
{
1, 2, 4,8
}
danC
3=
{
3, 6,12, 9
}
total berjumlah 8, maka derajat dari polinomial generator adalah 8 (polinomial generator g x( ) adalah hasil perkalian dari dua buah polinomial minimal berderajat empat). Sehingga panjang pesan yang dapat dikirim adalah 15 – 8 = 7.Sedangkan jika dipilih d =7, maka perlu dicari polinomial minimal untuk 2 3 4 5
, , , ,
α α α α α
danα
6, dimana akan terdapat tiga polinomial minimal yang berbeda, yaitu polinomial minimal untukα α
, 3 danα
5. Karena anggota cyclotomic coset{
}
1
1, 2, 4,8
C
=
,C
3=
{
3, 6,12, 9
}
, danC
5=
{
5,10
}
berjumlah total 10, maka derajat dari polinomial generator adalah 10. Sehingga menyebabkan panjang pesan yang dapat dikirim adalah 15 – 10 = 5. Jadi, saat jarak BCH d yang dituju berturut-turut dipilih 3, 5 dan 7, nilai k yang diperoleh adalah 11, 7 dan 5, dimana terlihat bahwa polanya tidak teratur (dalam hal ini, berarti tidak memiliki selisih yang tetap).Kemampuan koreksi error maksimum juga memiliki pola perubahan yang tidak teratur untuk d yang berbeda-beda. Penjelasan untuk hal tersebut adalah karena saat kita menetapkan jarak BCH d pada algoritma encoding, maka kadangkala jarak minimum dari BCH code yang terbentuk lebih besar dari d. Sebagai contoh, untuk n = 31, jika dipilih d = 7, maka dapat dihitung jarak minimum dari BCH code yang terbentuk adalah 7, sehingga kemampuan koreksi error maksimum adalah t = 3. Sedangkan jika dipilih d = 9, maka jarak minimum dari code yang terbentuk adalah 11. Perhatikan contoh berikut. Untuk d = 5, polinomial generator yang terbentuk adalah
[
]
2
( )
1( ),
2( ),
3( ),
4( )
1( )
3( )
g x
=
lcm m x m x m x m x
=
m x m x
Untuk d = 7, polinomial generator yang terbentuk adalah
[
]
3
( )
1( ),
2( ),...,
6( )
g x
=
lcm m x m x
m x
Karena cyclotomic coset (mod 31)
C
5=
{
5,10, 20,9,18
}
,C
6=
{
6,12, 24,17, 3
}
,{
}
7
7,14, 28, 25,19
C
=
danC
8=
{
8,16,1, 2, 4
}
, maka polinomial minimal 6( ) 3( )m x =m x . Sehingga
[
]
3
( )
1( ),
2( ),
3( ),
4( ) .
5( )
2( )
5( )
g x
=
lcm m x m x m x m x
m x
=
g x m x
Sedangkan untuk d = 9, polinomial generator yang terbentuk adalah
[
]
4
( )
1( ),
2( ),...,
8( )
g x
=
lcm m x m x
m x
sedangkan polinomial minimal m x8( )=m x4( ). Sehingga
[
]
4
( )
1( ),
2( ),...,
6( ) .
7( )
3( ).
7( )
Sedangkan untuk d = 11, polinomial generator yang terbentuk adalah
[
]
5
( )
1( ),
2( ),...
9( ),
10( )
g x
=
lcm m x m x
m x m
x
Karena
C
9=
{
9,18, 7,14, 28
}
=
C
7 danC
10=
{
10, 20,9,18, 5
}
=
C
5, maka polinomial minimal m x9( )=m x7( ) dan m10( )x =m x5( ). Sehingga[
]
[
]
5 1 2 9 10 1 2 8 4( )
( ),
( ),...,
( ),
( )
( ),
( ),...,
( )
( )
g x
lcm m x m x
m x m
x
lcm m x m x
m x
g x
=
=
=
Terlihat bahwa, untuk d = 9 dan d = 11, polinomial generator yang terbentuk adalah sama, sehingga jika dipilih d = 9, BCH code yang terbentuk akan sama dengan BCH code yang terbentuk jika dipilih d = 11. Sehingga
C
=
g x
4( )
=
g x
5( )
dan memiliki kemampuan koreksi error maksimum t = 5.Lebih lanjut, dapat diperhatikan bahwa: Untuk d = 13, g x6( )=g x m5( ) 11( )x Untuk d = 15, g x7( )=g x6( )
Sehingga untuk d = 9 dan d = 11, polinomial generator dari code yang terbentuk adalah sama. Begitu juga untuk d = 13 dan d =15, code yang terbentuk memiliki polinomial generator yang sama. Sedangkan untuk d lainnya, polinomial generator dari code yang terbentuk berbeda-beda. Kemudian perhatikan pada tabel, untuk n = 31, terjadi lompatan nilai t dari 2, 3, kemudian 5, dan kemudian 7. Nilai t = 4 dan t = 6 dilompati berkaitan dengan kesamaan pada g x5( )=g x4( ) dan g x7( )=g x6( ). Jadi, dapat ditemukan pola saat gi+1( )x =g xi( ), sedangkan g xi( )≠gi−1( )x dan gi+2( )x ≠ gi+1( )x maka nilai t akan lompat dari
t
= −
i
1
ket
= +
i
1
.Dapat dianalisa pola yang lebih umum, yaitu bahwa pada saat
1
( )
( )
...
( )
i j i j i j v
g
+x
=
g
+ −x
= =
g
+ −x
, untuk suatu i j v, , ≥1 dan berlaku1
( )
( )
i j v i j v
g
+ −x
≠
g
+ − −x
dang
i j+ +1( )
x
≠
g
i j+( )
x
, maka akan terjadi lompatan nilai t pada tabel dari t= + − −i j v 1 ke t= + +i j 1.4. Hasil Simulasi
Berikut diberikan output dari contoh konstruksi BCH code. Pertama, dipilih dahulu panjang code n=2m−1 dengan cara menentukan nilai untuk
m
. Lalu dipilih d yang diinginkan, dimana d yang dipilih harus merupakan bilangan ganjil dan memiliki batas bawah 3 (karena bentuk jarak BCH d yang dipilih adalah dBCH =2r+1, sehingga polinomial generator terdefinisi untuk r≥1). Sedangkan batas atas untuk nilai d yang bisa dipilih adalah 2m−1−1 . Hal ini karena untuk d =2m−1+1, maka panjang pesan adalah 1, dan hal tersebut tidak diperbolehkan dalam MATLAB. Dalam aplikasinya, jika panjang pesan hanya 1, maka hanya mungkin dikirimkan 2 simbol, dan code dengan panjang pesan 1 tidak pernah digunakan. Sedangkan untuk d ≥2m−1+3, BCH code tidak terdefinisi.masukan nilai pangkat yang diinginkan! m =5
Panjang code adalah n = 31.
masukkan nilai d yang diinginkan, dengan syarat d ganjil dan <= 15! d =11
Polinomial generator dari BCH code yang terbentuk adalah: g = GF(2) array.
Array elements =
1 0 1 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 memiliki kemampuan koreksi maksimum 5 error
masukkan pesan msg = [1 1 1 1 0 0 0 0 1 1 0] code = GF(2) array. Array elements = Columns 1 through 22 1 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 Columns 23 through 31 0 1 0 0 1 1 1 0 0
Output MATLAB contoh konstruksi BCH code
Pada output, akan ditampilkan panjang pesan k yang dapat dikirimkan serta kemampuan
error maksimum dari BCH code yang terbentuk setelah n dan d ditentukan. Pada contoh,
jika nilai k cukup besar, maka user dapat memasukkan contoh pesan secara acak, dengan menggunakan perintah randint(1,k) pada MATLAB. Output terakhir dari program tersebut adalah codeword yang bersesuaian dengan pesan yang dimasukkan oleh user.
5. Kesimpulan
BCH code dibangun oleh suatu polinomial generator yang merupakan least common
multiple dari
2
r
= −
d
1
polinomial minimal untukα
s,s=1, 2,...., 2r.Untuk
m
∈
N
,m
≥
3
dapat dibentuk BCH code yang memiliki parameter sebagai berikut:1. n=2m−1
2.
n k
− ≤
mt
3. dmin ≥dDalam konstruksi BCH code, terlebih dahulu ditentukan nilai d, yang mengakibatkan panjang pesan yang dapat dikirim terbatasi. Hal ini dikarenakan dalam konstruksi BCH
code, sebenarnya yang dilakukan adalah “memilih” 2k buah n-tuple yang “tersedia” dalam GF q( )n untuk menjadi codeword dalam BCH code yang dikehendaki sedemikian sehingga jarak minimum antar codeword tersebut lebih besar atau sama dengan d yang ditentukan di awal.
Jarak minimum dari BCH code yang terbentuk kadangkala lebih besar daripada d yang ditentukan pada awal konstruksi. Hal tersebut dikarenakan polinomial generator untuk nilai d yang berbeda dapat berbentuk sama.
Kedua hal tersebut (keterbatasan panjang code yang dikirim dan jarak minimum BCH
code yang terbentuk) berkaitan dengan bentuk cyclotomic coset (mod n) yang
mempengaruhi bentuk polinomial minimal untuk
α
s, dimana s=1, 2,...,d−1. Referensi:[1] Adams, Sarah S. (2008). Introduction to Algebraic Coding Theory. Juli 19, 2011. < http://www.math.niu.edu/~beachy/courses/523/coding_theory.pdf>
[2] Bhattacharya, P.B., S.K. Jain & S.R. Nagpaul. 1994. Basic Abstract Algebra, second edition. Cambridge University Press., Cambridge: 281-311.
[3] Berlekamp, E. R. (1972). A Survey of Coding Theory. Journal of the Royal Statistical Society. Serie A (General), Vol. 135, No. 1, pp. 44- 73.
[4] Herstein, I. N. (1996). Abstract Algebra, 3nd edition. Prentice-Hall Inc., New Jersey: 40-223.
[5] Judson, Thomas W. (1997). Abstract Algebra Theory and Applications. VCU Mathematics Textbook Series.
[6] Koblitz, Neil. (1997). Algebraic Aspects of Cryptography, volume 3. Springer- Verlag, Berlin: 53-60.
[7] Lidl, R. & G. Pilz. (1997). Applied Abstract Algebra, second edition. Springer- Verlag, Berlin: 117-131.
[8] Vermani, Lekh R. (1996). Elements of Algebraic Coding Theory. Chapman & Hall, 2-6 Boundary Row, London SE1 8HN, UK.
[9] Wallace, Hank. (2001). Error Detecting and Correcting Using the BCH Code. September 28, 2011. http://www.aqdi.com/bch.pdf.