PERCOBAAN V
METODE DETEKSI DAN KOREKSI
PADA KODE SIKLIK
1. Tujuan :
Setelah melakukan praktikum, diharapkan mahasiswa dapat :
Membangkitkan generator siklik dan bit informasi untuk kode CRC-12
dan CRC-16 menggunakan matlab.
Menghasilkan codeword dari data informasi yang telah ditentukan
menggunakan generator polinomial CRC-12 dan CRC-16.
Melakukan proses decoding dari codeword yang diperoleh dari proses
sebelumnya dengan menambahkan error pada codeword tsb.
Melakukan error correction pada proses pengkodean siklik.
2. Teori Penunjang :
2.1 Metode Deteksi Error
Secara umum dikenal 2 metode pendeteksian error yang sederhana, yaitu :
Vertical Redundancy Check (VCR) dan Longitudinal Redundancy Check
(LCR), kedua sistem ini menggunakan bit parity untuk mendeteksi kesalahan.
2.2 Metode Koreksi Error
Sistem perbaikan error atau yang dikenal dengan istilah error control adalah
mengupayakan agar data yang telah berubah dalam transmisi diperbaiki
sebelum diproses lebih [Link] dapat dikoreksi dengan 2 prinsip metode,
yaitu : Sistem Automatic Repeat Request (ARQ) dan Sistem Forward Error
Correction (FEC). Pada kode siklik digunakan sistem FEC dalam mengoreksi
kesalahan. Sistem ini perbaikan akan dilakukan oleh decoder tanpa melakukan
transmisi balik, selain itu juga akan menentukan lokasi dan perbaikan error
yang terjadi. Dengan sistem ini dapat dicapai efisiensi karena tidak terdapat
delay seperti pada sistem ARQ. Metode deteksi dan koreksi pada kode siklik,
akan dilakukan dengan cara menghitung sindrom, untuk mengetahui apakah
word r (received word) yang diterima merupakan codeword c yang sesuai atau
41
bukan. Bila hasil perhitungan sindrom adalah nol maka word r merupakan
codeword yang dikirimkan. Sebaliknya jika hasil perhitungan sindrom bukan
nol, berarti word r mengandung error yang membutuhkan proses koreksi.
2.3 Perhitungan Sindrom Kode Siklik
Perhitungan sindrom dapat dilakukan dengan menggunakan persamaan-
persamaan berikut :
r ( x) d ( x).g ( x) s ( x)......... .......... .......... .......... .......... .......... .......... ..(1)
dengan,
r(x) adalah word r yang diterima.
g(x) adalah generator matriks
s(x) adalah sisa pembagian (merupaka sindrom s yang dicari)
atau dapat dinyatakan dengan :
s(x) = r(x) mod g(x)
= s0+s1x+…+sn-k-1xn-k-1 ……………………………………......(2)
Dari persamaan tersebut, nilai s(x)=0 apabila nilai r(x)=c(x) dan apabila nilai
s(x) tidak sama dengan 0 maka r(x) bukan merupakan codeword c(x) yang
diharapkan karena masih terdapat error e(x).
r(x) = c(x) + e(x) ……………………………………………..….....(3)
Contoh 1 :
Sebuah kode siklik (7,4) mempunyai generator polinomial g(x) = 1+x+x3,
maka matrik generator ditunjukkan seperti persamaan berikut :
1101000
0110100
G
0011010
1010001
Sedangkan parity check matriknya adalah :
1001011
H 0101110
0010111
Apabila word yang diterima adalah r = (1011011), maka dapat dihitung :
42
s H * rT
1
0
1001011 1
0101110 .1 (001)
0010111 0
1
1
Jadi polinomial sidrom s(x)=x2 merupakan sisa pembagian dari r(x) dengan
g(x) :
r ( x) (1 x 2 x 3 x 5 x 6 ) /(1 x x 3 )
( x 3 x 2 x 1) g ( x) x 2
Contoh 2 :
Contoh proses decoding untuk kode siklik C(7,4) dengan generator polinimial
g(x)= 1+x2+x3, dengan assumsi bahwa si(x) menunjukkan sindrom dari xir(x).
Data/informasi awal d(x)= 1+x+x2, maka diperoleh codeword c(x) = 1+x+x5.
Setelah codeword tersebut dikirimkan, ternyata yang diterima adalah word
r(x)= 1+ x+x5+x6. Untuk mendeteksi dan mengoreksi error yang muncul maka
dilakukan perhitungan :
r(x)=(x3+1)g(x)+(x+x2)
maka, s(x)= x+x2
Karena w(s(x)>1 (sindrom hasil siklik), maka dihitung sindrom s1(x) dengan
cara :
Word r(x) = (1100011) digeser secara siklik menjadi (1110001).
r(x) = (1+ x+x2+x6)/( 1+x2+x3)
= (x3+x2+x)g(x)+1
maka, s(x) = 1
Kemudian dicari nilai t (error trapping) dengan :
deg s(x)=2=n-k-1, maka t = x.s(x)-sn-k-1.g(x) = x2+x3 –1(1+x2+x3) = 1
Sekarang w(s(x) 1, sehingga pola error dapat diketahui :
e(x) = xn-1(si,0) = x7-1(si,0)
43
= x6(1000000) = (0000001)
Jadi codeword yang benar dapat diperoleh dari :
c(x) = r(x) – e(x)
= (1100011) – (0000001)
= (1100010)
3. CRC (Cyclic Redundancy Ceck)
4. TUGAS DALAM PRAKTIKUM :
Buatlah program (m-file) kode siklik untuk kode CRC-12 dan CRC-16 pada
permasalahan dibawah ini :
1. Bangkitkan pesan secara random integer (banyak bit pesan sesuai dengan
CRC-12 dan CRC-16).
2. Kodekan pesan tersebut menggunakan kode siklik dengan struktur sesuai
dengan CRC-12 dan CRC-16.
3. Tambahkan noise dengan cara menambahkan 2 bit(1) error, 3 bit(1) error dan
5 bit (1) error pada codeword
4. Kodekan kembali codeword yang sudah ditambah dengan noise
5. Tampilkan code hasil encoding dan pesan hasil decoding, baik sebelum
ditambah noise maupun setelah ditambah dengan noise 2 bit, 3bit dan 5 bit
error.
6. Deteksi error pada codeword yang telah ditambah dengan noise pada point 3,
dengan cara menghitung sindrom sesuai persamaan (2).
7. Beri analisa tentang deteksi error tersebut diatas dan berapa bit error
maksimum yang dapat diperbaiki.
44
Contoh permasalahan sindrom :
Sebuah kode siklik (7,4) mempunyai generator polinomial g(x) = 1+x+x3.
Jika diketahui, Codeword : r = (1 0 1 1 0 1 1) r ( x) 1 x 2 x 3 x 5 x 6
Tentukan informasi yang dikirim dan apakah ada sindrom (error) didalam codeword
r(x) tersebut.
Jawab :
Codeword : r ( x) d ( x).g ( x) s ( x)
45