• Tidak ada hasil yang ditemukan

KODE SIKLIK (CYCLIC CODES)

N/A
N/A
Protected

Academic year: 2021

Membagikan "KODE SIKLIK (CYCLIC CODES)"

Copied!
20
0
0

Teks penuh

(1)

1

Pengantar Teori Pengkodean (Coding Theory)

KODE SIKLIK

(CYCLIC CODES)

Dosen Pengampu : Al. Sutjiana DISUSUN OLEH: Nama : M. Zaki Riyanto Nim : 02/156792/PA/08944 Program Studi : Matematika

JURUSAN MATEMATIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS GADJAH MADA

DAERAH ISTIMEWA YOGYAKARTA

2006

(2)

2

CYCLIC CODES 1.1 Pendahuluan

Salah satu bahasan yang paling penting pada linear codes adalah cyclic codes (kode siklik). Secara umum kode ini lebih mudah untuk diimplementasikan dan mempunyai aplikasi yang luas. Dilihat dari sudut pandang teori aljabar, kode ini sangat menarik untuk dipelajari. Banyak dari kode-kode yang diturunkan dari cyclic code. Kita mulai dengan membahas tentang pendefinisian suatu cyclic subspace.

Definisi

Suatu subruang S atas V F disebut n( ) cyclic subspace (subruang siklik) jika

(

a a1, ,...,2 an−1,an

)

S, maka

(

a a an, , ,...,1 2 an−1

)

S.

Dengan kata lain, S merupakan suatu subspace dan untuk setiap vektor a S∈ ,

setiap cyclic shift (pergeseran siklik) juga berada di dalam S.

Definisi

Suatu linear code C disebut cyclic codes (kode siklik) jika C merupakan cyclic

subspace.

Karena cyclic code merupakan linear code, maka suatu cyclic code mempunyai codeword 0 dan tertutup terhadap operasi penjumlahan.

Contoh 1.

1) S=

{

(

0000

)

}

V Z4

( )

2 merupakan cyclic subspace.

2) S=

{

(

0000 , 1111

) (

)

}

V Z4

( )

2 merupakan cyclic subspace.

3) S=

{

(

0000000 , 1011100 , 0101110 , 0010111 , 1110010 , 0111001 ,

) (

) (

) (

) (

) (

)

(3)

3

4) Subset di bawah ini bukan merupakan cyclic subspace atas V Z4

( )

2 .

(

) (

) (

) (

) (

) (

) (

) (

)

{

0000 , 1001 , 1100 , 0110 , 0011 , 0111 , 1011 , 1101 .

}

S=

Setiap cyclic shift (pergeseran siklik) dari codeword (0111) tidak berada di dalam

S. S juga bukan merupakan subspace, sebab di dalam S tidak tertutup terhadap penjumlahan.

1.2 Rings dan Ideals Definisi

Suatu ring komutatif dengan unity

(

R, ,+ ∗

)

adalah suatu struktur aljabar yang terdiri dari suatu himpunan R dan dua operasi biner yang dinotasikan dengan + dan * yang memenuhi sifat-sifat untuk semua , ,a b c R∈ .

1)

(

R,+

)

merupakan grup abelian dengan elemen identitas e. 2)

(

a b c a b c* *

)

= * *

(

)

.

3)

(

a b c a c b c+

)

* = * + * dan c a b*

(

+ =

)

c a c b* + * .

4) Terdapat suatu elemen 1 R∈ sehingga *1 1*a = a a= . 5) *a b b a= * .

Contoh 2.

1) Himpunan semua bilangan bulat terhadap operasi penjumlahan dan perkalian

membentuk suatu ring

(

Z, ,*+

)

, dinotasikan dengan Z.

2) Himpuan semua bilangan bulat positif modulo n merupakan ring, dinotasikan

dengan .Z n

3) Himpunan semua polynomial dengan koefisiennya adalah elemen suatu field

(lapangan) F atas ring R. Ring ini dinotasikan dengan F[x]. Dua operasinya adalah penjumlahan dan perkalian polynomial.

(4)

4

Dari 3) dapat dikonstruksikan suatu ring dengan elemen yang berhingga sebagai berikut. Diberikan sebarang polynomial tidak nol f x( )∈F x[ ],didefinisikan dua polynomial ( ), ( )h x g xF x[ ], h(x) dan g(x) disebut kongruen atas polynomial modulo f(x) jika dan hanya jika f(x) membagi h(x) – g(x), yaitu h(x) dan g(x) mempunyai sisa yang sama apabila dibagi dengan f(x). Kongruensi ini membentuk relasi ekuivalensi dan membentuk partisi-partisi, dengan klas-klas ekuivalensi memuat g(x) yang dinotasikan dangan [g(x)] kemudian didefinisikan sebagai

{

}

[ ( )]g x = h x h x( ) : ( )≡g x( ) (mod ( )) .f x

Diberikan R F x= [ ]/( ( ))f x =

{

[ ( )]: ( )g x g xF x[ ] .

}

Didefinisikan operasi penjumlahan dan perkalian pada klas-klas ekuivalensi sebagai berikut

[ ( )] [ ( )] [ ( )g x + h x = g x +h x( )] dan

[ ( )]*[ ( )] [ ( )* ( )].g x h x = g x h x

Maka

(

R, ,*+

)

merupakan ring dan disebut dengan ring polynomial atas F modulo f(x). Definisi

Diberikan ring

(

R, ,*+

)

. Suatu subset tak kosong I ⊆ disebut ideal dari ring R R

jika

1)

( )

I,+ merupakan grup, dan

2) *i r I∈ untuk setiap i I∈ dan setiap r R∈ .

Ideal memainkan peran yang penting di dalam mempelajari cyclic subspace atas ( )V F . Pada subbahasan 1.3 akan dipelajari pembentukan korespondensi 1-1 antara n

ideals dari ring polynomial atas F modulo xn − dan cyclic subspace atas ( )1

n

V F .

Salah satu cara untuk mengkonstruksi suatu ideal adalah sebagai berikut. Ambil sebarang g R g∈ , ≠ dan bentuk 0

(5)

5

{

* :

}

.

I = g r r R

Mudah untuk menunjukkan bahwa I adalah ideal. I dsebut dengan ideal yang dibangun oleh g. Tetapi tidak selalu mungkin untuk mengkonstruksi semua ideal dari suatu ring dengan cara seperti itu. Apabila ring R mempunyai sifat bahwa untuk sebarang ideal I atas R terdapat suatu elemen g I∈ sehingga I =

{

g r r R* : ∈

}

, maka R disebut dengan

principal ideal ring.

Teorema 1.1

F[x] merupakan suatu principal ideal ring.

Teorema 1.2

F[x]/(f(x)) merupakan suatu principal ideal ring.

Contoh 3.

Diberikan R Z x= 2[ ]/( ( ))f x dengan f x( )=x6− dan himpunan 1

{

0,1 2 4, 3 5,1 2 3 4 5

}

.

I = + +x x x x+ +x + + + + +x x x x x

I merupakan suatu ideal dari R. Mudah untuk membuktikan bahwa ( , )I + merupakan grup.

Ideal I tersebut dibangun oleh g x( ) 1= + + . x2 x4

1.3 Ideal dan Cyclic Subspace

Telah kita ketahui bahwa V F merupakan grup abelian terhadap operasi n( ) penjumlahan vektor. Akan kita pelajari sifat-sifat dari suatu ring dengan mendefinisikan suatu operasi perkalian antara dua vektor. Cara yang paling mudah adalah dengan mengasiosikan suatu polynomial pada F[x] dengan setiap vektor pada V F . Jika n( )

0 1 1 ( ... n ) v= a a a , kemudian diberikan 1 0 1 1 ( ) ... n . n v x a a x a x − − = + + +

(6)

6

Selanjutnya, untuk mendefinisikan suatu operasi perkalian vektor, kita pilih polynomial

( ) n 1 [ ]

f x =x − ∈F x . Kemudian, untuk v v1, 2∈ ( )V F , diberikan n v x v x1( ) ( )2 =v x( )dimana

( )

v x merupakan polynomial dengan derajad yang lebih kecil dari klas-klas ekuivalensi

1 2

[ ( ) ( )]v x v x atas [ ]/( ( ))F x f x . Dengan kata lain, ( )v x adalah sisa dari polynomial ketika

1( ) ( )2

v x v x dibagi oleh ( )f x .

Dengan operasi perkalian yang telah didefinisikan di atas, dan dengan bentuk pengasosiasian antara polynomial-polynomial dan vektor-vektor, dapat kita perhatikan bentuk dari V F dan [ ]/( ( ))n( ) F x f x . Suatu elemen dari V F dapat disajikan sebagai n( )

suatu n-tuple atas F atau suatu polynomial dengan derajad paling besar adalah n-1 atas F. Komponen-komponen dari n-tuple merepresentasikan koefisien-koefisien dari polynomial, dari order yang kecil ke order yang lebih besar.

Akan kita pelajari bagaimana memilih polynomial ( )f x =xn− yang digunakan 1 untuk mendefinisikan operasi perkalian. Diberikan v=(a a a0 1... n1)∈V Fn( ).

1 0 1 1 ( ) ... n n v x a a x a x − − = + + + 2 0 1 1 ( ) ... n. n xv x =a x a x+ + +a x

Kemudian apabila xn− ≡1 0 mod ( )

(

f x

)

berakibat xn 1 mod ( )

(

f x

)

. Sehingga

2 1 1 0 1 2 ( ) ... n n n xv x a a x a x a x − − − = + + + + = (a a a an1 0 1... n2),

dan dapat kita lihat bahwa mengalikan dengan x dapat membentuk korespondensi pada suatu cyclic shift dari v. Dengan observasi ini kita dapat membentuk suatu teorema yang sangat mendasar dan penting dalam mempelajari cyclic code.

Teorema 1.3

Suatu subset tak kosong S atas ( )V F merupakan suatu cyclic subspace jika dan n

hanya jika himpunan polynomial I yang diasosiasikan dengan S merupakan suatu ideal dari ring R atas polynomial yang diasosiasikan dengan ( )V F . n

(7)

7

Teorema 1.4

Diberikan ideal I tak nol pada V F dan diberikan monic polynomial ( )n( ) g x dengan derajad yang merepresentasikan suatu klas-klas dari I, maka [ ( )]g x (sering ditulis

( )

g x ) membangun I dan ( )g x membagi ( )f x =xn− . 1

Teorema 1.5

Terdapat dengan tunggal suatu monic polynomial dengan derajad lebih kecil yang membangun suatu ideal tak nol I atas ( )V F . n

Teorema 1.6

Diberikan monic polynomial ( )h x yang membagi f x( )=xn− . Maka ( )1 h x merupakan generator polynomial (polynomial pembangun) dari ideal

{

( ) ( ) : ( )

}

I = a x h x a xR atas R F x x= [ ]/( n1).

Teorema 1.7

Terdapat suatu korespondensi 1-1 antara cyclic subspace dari V F dan monic n( ) polynomial ( )g xF x[ ] yang membagi ( )f x =xn− . 1

Contoh 4.

Diberikan V Z dan 7( )2 f x( )=x7− . Faktorisasi dari ( )1 f x adalah 7 1 ( 1)( 3 2 1)( 3 1).

x − = +x x + +x x + + x

(8)

8 1 2 3 2 3 3 4 3 2 5 3 6 3 2 3 7 8 ( ) 1 ( ) 1 ( ) 1 ( ) 1 ( ) ( 1)( 1) ( ) ( 1)( 1) ( ) ( 1)( 1) ( ) ( ). g x g x x g x x x g x x x g x x x x g x x x x g x x x x x g x f x = = + = + + = + + = + + + = + + + = + + + + = 5( )

g x membangun cyclic subspace

S =

{

(

0000000 , 1011100 , 0101110 , 0010111 , 1001011 , 1100101 ,

)

(

) (

) (

) (

) (

)

(

1110010 , 0111001 .

) (

)

}

7( )

g x membangun cyclic subspace

S =

{

(

0000000 , 1111111 .

) (

)

}

7( )2

V Z mempunyai tepat 8 cyclic subspace.

Teorema 1.8 Diberikan f x( )=xn− dengan 1 1 2 1 2 ( ) a ( ) a ( )... at( ) t f x = p x p x p x dengan ( ) ( ) i j

p xp x untuk i≠ adalah irreducible (tak dapat difaktorkan) monic polynomial j

atas F, dan a merupakan bilangan bulat positif, 1i ≤ ≤ Maka ( )t i. V F memuat sebanyak n

1 2

(a +1)(a +1)...(at + 1) cyclic subspace.

Teorema 1.9

Diberikan monic polynomial ( )g x yang membagi ( )f x =xn− atas F yang 1 mempunyai derajad n-k. Maka ( )g x merupakan generator polynomial untuk suatu cyclic subspace ( )V F yang mempunyai dimensi k. n

(9)

9

Contoh 5.

Misalkan akan kita konstruksikan suatu binary cyclic (7,4)-code. Karena g x( )= + + x3 x 1

adalah monic yang membagi x7− , ( )1 g x membangun suatu cyclic subspace pada

7( )2

V Z

yang mempunyai dimensi 4.

Contoh 6.

Misalkan kita akan mengkonstruksi suatu binary cyclic (15,9)-code. Karena

2 4

( ) (1 )(1 )

g x = + +x x + +x x adalah monic yang membagi x15− atas 1 2

Z dan ( )g x

mempunyai derajad 6, ( )g x membangun suatu cyclic subspace yang berdimensi 9.

1.4 Matriks Generator dan Matriks Parity-Check

Diberikan ( )g x sebagai generator dari suatu cyclic (n,k)-code C atas F. Dari pembahasan sebelumnya, dapat diketahui bahwa ( )g x mempunyai derajad n-k, dan setiap codeword di C mempunyai bentuk ( ) ( )a x g x . Berdasarkan Teorema 1.9, kita asumsikan deg ( )a x ≤ − Kemudian diberikan suatu message space (ruang message) yang terdiri k 1. dari semua polynomial atas F yang mempunyai derajad kurang dari atau sama dengan k-1. Kemudian message ( )a x dikodekan menjadi codeword ( ) ( )a x g x . Karena ( ) ( )a x g x

mempunyai derajad yang paling besar adalah n-1, maka tidak perlu mereduksi dengan modulo ( )f x =xn− . Suatu matriks generator untuk C diberikan sebagai berikut 1

1 2 1 ( ) ( ) ( ) : ( ) k g x x g x G x g x x g x− =

(10)

10

Contoh 7.

Diketahui f x( )=x71. g x( ) 1= + + membangun suatu (7,4)-cyclic code atas x x3 2.

Z

Message space yang terdiri dari semua polynomial atas Z dengan derajad terbesar adalah 2

3. Misalkan kita mempunyai polynomial a x( ) 1= + + , maka ( )x2 x3 a x dikodekan menjadi

codeword polynomial a x g x( ) ( ) 1= + + + + + + . Pada vektor biner, message x x2 x3 x4 x5 x6

4-tuple (1011) dikodekan menjadi codeword (1111111). Matriks generatornya adalah

1 2 3 ( ) 1 1 0 1 0 0 0 ( ) 0 1 1 0 1 0 0 0 0 1 1 0 1 0 ( ) 0 0 0 1 1 0 1 ( ) g x x g x G x g x x g x = = .

Untuk menkodekan a=(1011), hitung aG=(1111111).

Setelah kita megetahui polynomial yang membangun suatu cyclic code C, bagaimana dengan polynomial yang membangun dari dual code C dari C. Akan kita lihat

bahwa jika C adalah cyclic code, maka C juga merupakan cyclic code.

Misalkan ( )h x = f x g x( ) / ( ) dengan ( )f x =xn− dan ( )1 g x merupakan monic polynomial yang membagi ( )f x , dan ( )g x membangun C. jika deg ( )g x = − , maka n k

deg ( )h x = Karena ( )k. g x monic, maka ( )h x juga monic. Akibatnya ( )h x membangun suatu cyclic code C yang berdimensi n-k. Misalkan ' c x1( )=a x g x1( ) ( )∈ dan C

2( ) 2( ) ( ) '

c x =a x h x ∈ . Maka C

(

)

1( ) ( )2 1( ) ( ) ( ) ( )2 1( ) ( ) ( ) 0 mod ( )2

c x c x =a x g x a x h x =a x a x f xf x .

Dengan perkalian polynomial mod ( )f x , sebarang codeword dari C dikalikan dengan sebarang codeword dari 'C menghasilkan polynomial 0 yang berkorespondensi dengan

codeword 0. Apakah ini mengakibatkan 'C adalah dual code dari C? Jawabannya adalah

tidak, sebab jika hasil perkalian dua polynomial di dalam [ ]/( ( ))F x f x adalah 0 tidak mengakibatkan vektor yang berkorespondensi di V F orthogonal, yaitu mempunyai n( )

(11)

11

inner product 0 atas F. Akan kita tunjukkan bahwa kode C'dan C saling berhubungan

yaitu keduanya merupakan kode yang ekuivalen. Misal diberikan dua vektor

0 1 1 ( ... n ) a= a a a C dan 0 1 1 ( ... n ) ', b= b b bC

dan hasil perkalian

(

)

1 1 1 0 0 0 ( ) ( ) n i n i n i mod n 1 i i i i i i a x b xa xa xc x x = = = = ≡ −

untuk suatu ci∈ Konstanta dari hasil perkalian adalah F.

0 0 0 1 n 1 2 n 2 ... n 1 1,

c =a b +a b +a b + +a b

Karena xn 1 mod ( )

(

f x

)

, maka 0

c dapat ditulis sebagai inner produk

0

c = ⋅a b,

dimana b adalah n-tuple yang diperoleh dari b dengan cyclically shifting (menggeser secara siklik) b satu posisi ke arah kiri dan kemudian menukar urutan komponen-komponen dari b. Dengan memperhatikan perkalian 1

0 n i i i c x − = dengan xn t akan

mengakibatkan ct menjadi konstantanya, dan merupakan konstanta dari hasil perkalian

( )( n t ( ))

a x x b x.

Akibatnya

t

c = ⋅a b,

dengan b menjadi suatu n-tuple yang diasosiasikan dengan polynomial x b xn t− ( ). Melihat bentuk dari ( ),b x b merupakan vektor yang diperoleh dengan menggeser secara siklik vektor b sebanyak t+1 posisi ke arah kiri dan menukar urutan komponen-komponennya.

(12)

12

Contoh 8.

Misal diberikan n = 3, dan vektor a=(a a a0 1 2), b=(b b b0 1 2). Kemudian dengan modulo

3 1 x − , ( ) ( ) a x b x = 2 2 0 1 2 0 1 2 (a +a x a x b+ )( +b x b x+ ) = 2 0 0 1 2 2 1 0 1 1 0 2 2 0 2 1 1 2 0 (a b +a b +a b) (+ a b a b+ +a b x) +(a b +a b a b x+ ) . Koefisien dari x0 adalah

0 2 1

( ).

a b b b⋅ (b b b0 2 1) diperoleh dari b dengan menggeser b secara siklik sebanyak 3 – 0 – 1 = 2 posisi dari (b b b1 2 0) dan menempatkan koefisien terakhir ke koefisien pertama, sehingga diperoleh (b b b0 2 1).

Karena a x b x( ) ( ) 0 mod

(

xn− , koefisien dari setiap 1

)

xi haruslah 0. Hal ini

mengakibatkan a c⋅ = (yaitu a dan c saling orthogonal) dimana c adalah sebarang cyclic 0 shift dari vektor yang diperoleh dari b dengan menukar komponen b. Karena ( )h x

membangun 'C , maka

{

h x xh x( ), ( ),...,xn k− −1h x( )

}

merupakan basis untuk 'C dan 1 1 ( ) ( ) ' : ( ) n k h x x h x G x − −h x =

adalah matriks generator untuk 'C . Akibatnya 'G membangun kode 'C , dengan dimensi

'

C adalah n-k yang juga sama dengan dimensi dari C. Dengan menggunakan ( )b x di

atas menjadi ( )h x , akan kita lihat bahwa dengan menukar kolom terakhir dari 'G ke

kolom pertama, kita akan memperoleh suatu matriks H yang membangun C, dan matriks

ini merupakan matriks parity-check untuk C.

Contoh 9.

Misalkan kita akan mengkonstruksikan suatu matriks generator dan matriks parity-check untuk suatu (7,4)-binary cyclic code. Karena g x( ) 1= + + membagi x x3 f x( )=x7 − , 1

(13)

13

maka ( )g x membangun (7,4)-cyclic code tersebut. h x( )= f x g x( ) / ( ) 1= + + + x x2 x4

membangun suatu (7,3)-cyclic code 'C . Matriks generator untuk C adalah

1 2 3 ( ) 1 1 0 1 0 0 0 ( ) 0 1 1 0 1 0 0 0 0 1 1 0 1 0 ( ) 0 0 0 1 1 0 1 ( ) g x x g x G x g x x g x = = .

Matriks generator untuk 'C adalah

1 2 ( ) 1 1 1 0 1 0 0 ' ( ) 0 1 1 1 0 1 0 0 0 1 1 1 0 1 ( ) h x G x h x x h x = = .

Dengan menukar kolom terakhir ke kolom pertama dari 'G , diperoleh matriks generator

untuk C yaitu

0 1 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 1 1 0 0

H = .

Dapat ditunjukkan bahwa GHT = 0.

Karena C' dan C dapat diperoleh dengan menukar komponen-komponen pada semua

vektor, maka C' dan C merupakan kode yang ekuivalen. Jadi Cmerupakan dual code

dari C . ( )h x dikatakan membangun dual code yang juga membangun dari kode yang

ekuivalen dengan dual codenya. Dengan mudah dapat dilihat dari konstruksi H bahwa C

(14)

14 Definisi Diberikan polynomial 0 ( ) k i i i h x a x =

= dengan derajad k (ak ≠ . Didefinisikan 0)

reciprocal polynomial ( )h x dari ( )R h x dengan

0 ( ) k i R k i i h x a x = =

Dapat dilihat bahwa ( ) k (1 )

R

h x = ⋅x h x , dengan k =deg ( )h x .

Teorema 1.10

Diberikan ( )g x monic yang membagi ( )f x =xn− (atas F) dengan derajad n - k 1 yang menjadi generator untuk cyclic (n,k)-code. Diberikan h x( )= f x g x( ) ( ). Maka ( )h x R

adalah reciprocal polynomial dari ( )h x yang membangun C.

Polynomial h(x) sering disebut dengan parity-check polynomial.

1.5 Encoding Cyclic Codes

Diberikan polynomial ( )g x yang membangun suatu cyclic (n,k)-code C atas F.

Suatu matriks generator untuk C dengan bentuk

[ ]

R Ik yang dikonstruksikan sebagai

berikut. Bagilah xn k i− + dengan ( )g x untuk 0≤ ≤ − Diperoleh i k 1.

( ) ( ) ( )

n k i

i i

x − + =q x g x +r x

dengan deg ( ) deg ( )r xi < g x = − atau ( ) 0.n k r xi = Maka

( ) ( ) ( ) .

n k i

i i

x − + r x =q x g x C

Jika kita mengambil vektor-vektor koefisien yang berkorespondensi dengan n k i ( )

i

x − + r x

sebagai baris-baris dari suatu matriks, maka kita akan memperoleh suatu matriks generator dengan bentuk

[ ]

R Ik , dimana baris-baris dari R berkorespondensi dengan

( ), 0 1.

i

r x i k

(15)

15

Contoh 10.

Misal diberikan binary cyclic (7,4)-code seperti contoh 9, yang dibangun oleh

3

( ) 1

g x = + + . Dengan algoritma pembagian, diperoleh x x

3 (1)( 3 1) (1 ) x = x + + + + x x 4 ( )( 3 1) ( 2) x = x x + + + +x x x 5 ( 2 1)( 3 1) (1 2) x = x + x + + + + +x x x 6 ( 3 1)( 3 1) (1 2). x = x + +x x + + + +x x

Matriks generator untuk kode tersebut adalah

[ ]

4 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 G= = R I dengan 1 1 0 0 1 1 1 1 1 1 0 1 R= .

Baris-baris dari R berkorespondensi dengan polynomial 1+x x x, + 2,1+ + dan x x2 1 x+ . 2

Suatu message m=(1011) dikodekan menjadi c = mG = (100 1011).

Pandang suatu message polynomial

1 0 ( ) k i i i a xa x = = .

Telah kita ketahui bahwa ( ) ( )a x g x adalah suatu codeword tetapi dengan menggunakan

( ) ( )

a x g x information symbols menjadi tidak jelas. Jika G=

[ ]

R Ik adalah matriks

generator untuk C, maka message symbols (a a a0 1... k−1) ternyata berada di k posisi terakhir

(16)

16

dengan melakukan operasi perhitungan sebagai berikut. Bagilah x a xn k− ( ) dengan ( )g x untuk mendapatkan ( ) ( ) ( ) ( ) n k x a x=q x g x +t x atau ( ) ( ) ( ) n k ( ) q x g x = −t x +x a x,

dengan ( ) 0t x = atau deg ( ) deg ( )t x < g x = − Maka ( ) ( )n k. q x g x adalah suatu codeword dengan information symbols sebanyak k yaitu (a a a0 1... k−1) yang menjadi k komponen

terkahir, dan n – k parity-check symbols, koefisien dari ( )t x merupakan n – k komponen pertama.

Contoh 11.

Diberikan g x( ) 1= + + yang membangun suatu binary cyclic (7,4)-code. Misalkan kita x x3

ingin mencari suatu codeword c yang mempunyai information symbols (1011) pada 4 posisi terakhir. Ambil a x( ) 1= + + . Kemudian x2 x3 x a x dibagi dengan ( )3 ( ) g x ,

3 ( ) ( 3 2 1) ( ) 1

x a x = x + + +x x g x +

dan

3 2 3 5 6

(x + + +x x 1) ( ) 1g x = + + + . x x x

Oleh karena itu c = (100 1011) merupakan codeword dengan information symbols (1011) dengan posisi teratas.

Diberikan suatu cyclic (n,k)-code dengan generator polynomial

1 0 1 1 ( ) ... n k n k n k g x g g x g x − − x − − − = + + + +

dan matriks generator G=

[ ]

R Ik . Baris-baris R adalah negated coefficients dari polynomial sisa yaitu ( ),0r xi ≤ ≤ − dimana i k 1

( ) ( ) ( )

n k i

i i

(17)

17

deg ( ) deg ( )r xi < g x atau r xi( ) 0= . Kemudian n – k parity-check symbols untuk

information symbols (a a a0 1... k1) diberikan sebagai

1 0 ( ) k i i i a r x − = .

Pada kasus biner, kita dapat mengkodekan dengan suatu algoritma yang sederhana dan efisien, dan mudah untuk diimplementasikan pada hardware (perangkat keras). Algoritma ini digunakan untuk mengkodekan suatu pesan m =(a a a0 1... k1) menjadi codeword c =(s s s0 1... n k− −1 0 1a a a... k−1).

Encoding Algorithm for Binary Cyclic Codes. Let gˆ (= g g g0 1... n k− −1).

Let Message symbols (a a a0 1... k1).

Let Parity-check symbols s=(s s s0 1... n k− −1).

(1) Set sj =0,0≤ ≤ − − j n k 1. (2) Set i = 1.

(3) If ak i =sn k− −1 then

For j from n – k – 1 to 1, set sj =sj1.

s0 = . 0 Otherwise

For j from n – k – 1 to 1, set sj =sj−1+ . gj

s0 = . g0

(4) i = i + 1

(18)

18

Penjelasan singkat tentang algoritma. Dengan menggunakan matriks generator

[ ]

k

G= R I , kemudian, seperti pada penjelasan sebelumnya, n – k parity-check symbols berkorespondensi dengan suatu message ( )a x yaitu koefisien-koefisien dari ( )t x dimana

( ) ( ) ( ) ( )

n k

x a x=q x g x +t x .

Untuk menghitung ( )t x , kita hitung x a xn k− ( )(mod ( ))g x . Karena

1 0 1 1 ( ) ... k k a x a a x a x − − = + + + . diperoleh 1 1 0 1 1 ( ) ... n k n k n k n k x a xa xa x − + a x − − = + + + .

Dengan memperhatikan proses perkaliannya, hal ini sama halnya dengan menghitung

(

)

(

)

(

)

(

... a xk−1 n kx a x+ k−2 n kx a x+ k−3 n kx+...

)

+a x0 n k− .

Setiap ekspresi dalam kurung, mulai dari yang paling dalam, berkorespondensi dengan suatu iterasi sesuai dengan algoritma. Reduksi dengan modulo ( )g x pada setiap iterasi

akan diambil dan pada penjumlahan pada tiap iterasi tersebut yang berkorespondensi dengan s, yaitu suatu polynomial dengan derajad terbesar adalah n – k – 1.

Selama iterasi ke-i berlangsung, s dikalikan dengan x, dan dijumlahkan

n k k i

a x

. Maka s akan mempunyai derajad n – k, sebab bentuk xn k− diperoleh dari

proses-proses pergeseran atau penjumlahan. Untuk mengambil sisa dari modulo ( )g x , xn k

direduksi dengan menghilangkannya dan menjumlahkan kembali ˆ( )g x =g x( )xn k

(karena xn kg xˆ( )(mod ( ))g x ). Jika

1 1

n k

s − − = sebelum s digeser, maka pergeseran

menghasilkan suatu xn k, akan memerlukan perhitungan ulang kembali. Jika 1

k i

(19)

19

maka hal ini memerlukan perhitungan ulang kembali (necessitates feedback). Jika keduanya sn k− −1 dan ak i− adalah 1, maka xn k− +xn k− ≡0 (mod 2), dan akan mengakhiri

perhitungan yang lainnya.

Oleh karena itu perhitungan ulang (feedback) diperlukan dalam melakukan iterasi i jika dan hanya jika sn k− −1ak i. Setelah iterasi ke-k, suatu (n,k)-tuple s

berkorespondensi dengan x a xn k− ( ) (mod ( ))g x , dan menghasilkan n – k parity-check symbols.

Untuk menggunakan skema pengkodean ini, matriks generator G=

[ ]

R Ik tidak

harus disajikan secara ekplisit.

Contoh 12.

Pada contoh 11, g x( ) 1= + + membangun suatu binary cyclic (7,4)-code. Kita akan x x3

mengkodekan message m = (1011) sabagai berikut. Kita mempunyai gˆ (= g g g0 1 2) (110)= ,

0 1 2 3

(a a a a ) (1011)= , dan kita mulai dengan (s s s0 1 2) (000)= .

i s ak i− 0 000 1 110 1 2 101 1 3 100 0 4 100 1

Diperoleh parity-check symbols adalah (100). Maka message m = (1011) tersebut dikodekan menjadi codeword c = (100 1011).

(20)

20

Contoh 12.

Diberikan g x( ) 1= + + + + generator untuk suatu binary (15,7)-code C. Akan x4 x6 x7 x8

kita kodekan suatu message m = (1011011) sebagai berikut. Kita mempunyai ˆ (1000 1011) g = . i s ak i− 0 0000 0000 1 1000 1011 1 2 0100 0101 1 3 1010 1001 0 4 0101 0100 1 5 1010 0001 1 6 1101 1011 0 7 0110 1101 1

Message m dikodekan menjadi codeword c = (0110 1101 1011 011).

DAFTAR PUSTAKA

Vanstone, Scott A. and van Oorschot, Paul C., 1989, An Introduction to Error Correcting

Referensi

Dokumen terkait