Anda di halaman 1dari 7

MODUL 5

Channel Coding (Block Coding)

Setiap sinyal yang dikirimkan melalui saluran transmisi (kabel dan nir kabel)
selalu mengalami gangguan. Gangguan ini bisa menyebabkan perubahan
amplitudo, frekuensi, fase dan sebagainya. Akibatnya informasi yang
ditumpangkan pada sinyal tersebut tidak akan diterima dengan baik. Dalam
komunikasi digital, hal ini berarti bahwa bit-bit informasi yang dikirmkan tidak
dapat dideteksi dengan benar (terjadi bit error). Namun demikian ada banyak
sekali teknik yang dapat digunakan untuk mendeteksi dan membetulkan bit
error yang terjadi. Teknik ini sering disebut dengan Channel coding atau Line
coding atau Error control coding.
Channel coding merupakan cabang ilmu yang sangat luas. Berbeda dengan
Source Coding (kompresi data) yang berusaha merepresentasikan data
dengan jumlah bit sesedikit mungkin, channel coding justru menambahkan
beberapa bit pada data untuk mendeteksi dan/atau mengkoreksi bit error.
Secara umum channel coding dapat diklasifikasikan menjadi 2 bagian besar
yaitu Block coding dan Convolutional coding. Pada modul ini kita akan fokus
mempelajari block coding mulai dari prinsip kerjanya, jenisnya, dan
performansinya.

KATEGORI CHANNEL CODING


Ada beberapa kategori Channel coding berikut:
- Error detection vs. error correction: ada channel coding yang hanya
dirancang untuk mendeteksi adanya kesalahan, ada yang dirancang
untuk mendeteksi adanya kesalahan sekaligus memperbaikinya di
penerima.
- Random, burst, catastrophic: random error itu jika letak kesalahan
berpindah-pindah secara acak; burst error jika kesalahan bit terjadi
secara berurutan dalam jangka waktu tertentu; catastrophic jika
kesalahan bit benar-benar mengganggu sistem komunikasi secara
keseluruhan (tidak terjadi komunikasi yang benar antara pemancar dan
penerima)
- Block vs. convolutional: pada block coding setiap blok data yang
masuk dikodekan dan tidak ada ketergantungan antara blok yang satu
dengan yang lain; pada convolutional coding output saat ini sangat
tergantung dari input sekarang dan sebelumnya.
- Algebraic vs. Probabilistic decoder: untuk mendeteksi apakah bit
yang dikirim tersebut 1 atau 0 dapat digunakan metode aljabar
(perhitungan matematik) atau metode probablitas.

PARAMETER CHANNEL CODING


- Message: data yang ingin dikodekan.
- Message length: panjang data yang ingin dikodekan (k)
- Codeword: output dari encoder
- Codeword length: panjang data dari codeword (n)
- Number of codewords: jumlah codeword yang valid (M)

Sistem Telekomunikasi Digital Page 1 of 7


Copyright © JTEUS, 2008
By Djuwari 20/04/18
- Hamming distance: jumlah bit yang berbeda antar codeword.
Hamming distance dari codeword [1 1 1 0 0 1] dan codeword [0 1 1 0 1
1] adalah 2.
- Minimum Hamming distance (d*): nilai terkecil dari Hamming
distance dalam satu set codeword. Contoh, satu set codeword terdiri
atas 3 buah codeword berikut: [1 1 1 0 0 1], [0 1 1 0 1 1] dan [ 0 0 1 0 1
0]. Hamming distance antara codeword 1 dan 2 adalah 2; antara
codeword 1 dan 3 adalah 4; antara codeword 2 dan 3 adalah 2. Jadi
minimum Hamming distance untuk satu set codeword tersebut adalah
2.
- Error detecting ability (e): kemampuan sebuah encoder untuk
mendeteksi jumlah kesalahan bit yang terjadi (e = d* - 1).
- Error correcting ability (t): kemampuan sebuah encoder untuk
mengkoreksi jumlah kesalahan bit yang terjadi (t ≤ ½(d* - 1) atau t ≤
e/2).
- Code rate (R): kecepatan aliran data akibat Channel coding.
- Generator Matrix: matrix pada encoder yang digunakan untuk
mengkodekan message menjadi codeword.
- Parity-check matrix: matrix pada decoder yang digunakan untuk
mendeteksi kesalahan pada codeword yang diterima.
- Generator polynomial: berfungsi sama seperti generator matrix
namun berbasis polinomial dan biasanya digunakan pada cyclic code.

BLOCK CODING
Prinsip kerja dari Block coding ini digambarkan oleh diagram blok berikut ini.

Aliran data m dipecah-pecah menjadi blok-blok dengan panjang data k lalu


dijadikan input dari encoder. Output dari encoder adalah codeword c dengan
panjang data n yang merupakan gabungan dari blok data m dan parity p.
Teknik untuk menghitung p ini yang bervariasi. Dalam modul ini kita hanya
akan mempelajari beberapa saja yang paling sering digunakan.

Sistem Telekomunikasi Digital Page 2 of 7


Copyright © JTEUS, 2008
By Djuwari 20/04/18
Linear Block Code (LBC)
- Biasanya ditulis dalam bentuk (n,k) LBC.
- Pesan yang akan dikodekan m terdiri atas k simbol/bit yaitu m0,m1,...,
mk-1. Pesan ini menjadi input dari encoder.
- Codeword yang dihasilkan c terdiri atas n simbol/bit yaitu c0, c1,...,cn-1.
Codeword ini merupakan output dari encoder.
- Proses pengkodean dilakukan dengan mengalikan pesan m dengan
generator matrix G menurut operasi di Galois Field GF(2). Bentuk dari
generator matrix G adalah:
G = [pk,n-k Ik,k]

Contoh generator matrix untuk (7,4) LBC adalah

1 1 0 1 0 0 0
0 1 1 0 1 0 0
G = 
1 1 1 0 0 1 0
 
1 0 1 0 0 0 1

- Contoh perhitungan menggunakan generator matrix di atas adalah:


m = 1 0 0 0
1 1 0 1 0 0 0
0 1 1 0 1 0 0
c = m * G = 1 0 0 0 * 
1 1 1 0 0 1 0
=
 
1 0 1 0 0 0 1
1 1 0 1 0 0 0
Tabel lengkap:

- Minimum Hamming distance (d*) = 3; mampu mendeteksi maksimum 2


kesalahan bit/simbol; mampu mengkoreksi maksimum 1 kesalahan bit.
- Parity check matrix H digunakan oleh penerima untuk mendeteksi
terjadinya kesalahan pada codeword yang diterima. Bentuk dari parity
check matrix H adalah:
H = [In-k,n-k pT]

Sistem Telekomunikasi Digital Page 3 of 7


Copyright © JTEUS, 2008
By Djuwari 20/04/18
1 1 0 1 0 0 0
0 1 0 0 1 0 1 1
1 1 0 1 0 0 
Jika G =  , maka H = 0 1 0 1 1 1 0

1 1 1 0 0 1 0
  0
 0 1 0 1 1 
1
1 0 1 0 0 0 1

Dengan demikian G*HT = [0 0 0]T. Karena c = m*G, maka c*HT =


m*G*HT= [0 0 0]T. Jadi untuk mengetahui codeword yang diterima
mengalami kesalahan atau tidak, maka codeword tersebut dikalikan
dengan parity check matrix. Jika hasilnya tidak sama dengan [0 0 0] T,
maka telah terjadi kesalahan bit.
Minimum Hamming distance (d*) sama dengan jumlah minimum kolom
dari matrix H yang jika dijumlahkan akan menghasilkan [0 0 0] T. Kolom
pertama, ketiga dan ketujuh jika dijumlahkan menghasilkan [0 0 0] T.
Hasil yang sama tidak dapat diperoleh dengan menjumlahkan hanya
dua kolom saja dari matrix H.

- Misalkan codeword yang dikirimkan oleh pemancar adalah 1 0 1 0 0 0


1 dan diterima oleh penerima menjadi 1 0 1 0 1 1 1, maka penerima
mengetahui bahwa codeword yang diterima telah mengalami
kesalahan karena codeword yang diterima tidak termasuk dalam tabel
lengkap di atas tetapi penerima tidak tahu bit mana saja yang salah.
Jika codeword yang diterima tadi dikalikan dengan HT akan
menghasilkan
T
1 0 0 1 0 1 1
1 0 1 0 1 1 1 * 0 1 0 1 1 1 0
 = 1 0 0

0 0 1 0 1 1 1

Hasil di atas tidak sama dengan [0 0 0] yang berarti telah terjadi


kesalahan bit.

- Hasil perkalian c dengan HT menghasilkan syndrome vector s = [s1 s2


s3]. Syndrome vector ini dapat digunakan untuk mengetahui letak
kesalahan bit dari codeword yang diterima.

- Misalkan codeword yang dikirimkan oleh pemancar adalah 1 0 1 0 0 0


1 dan diterima oleh penerima menjadi 1 0 1 0 1 0 1, maka penerima
mengetahui bahwa codeword yang diterima telah mengalami
kesalahan karena codeword yang diterima tidak termasuk dalam tabel
lengkap di atas dan penerima tahu bit mana saja yang salah dan dapat
mengkoreksinya.

Sistem Telekomunikasi Digital Page 4 of 7


Copyright © JTEUS, 2008
By Djuwari 20/04/18
T
1 0 0 1 0 1 1
1 0 1 0 1 0 1 * 0 1 0 1 1 1 0
 = 0 1 1

0 0 1 0 1 1 1

Mengacu pada tabel error pattern di atas, maka penerima mengetahui


bahwa telah terjadi kesalahan pada bit ke-lima dan membetulkannya
dengan cara menjumlahkan codeword yang diterima dengan error
pattern yang sebaris dengan syndrome vector.

- Untuk Linear Block Coding sistematik seperti pada contoh di atas,


proses decoding cukup sederhana. Langkah pertama adalah
mendeteksi terjadinya error dengan mengalikan codeword yang
diterima dengan parity check matrix H. Jika tidak terjadi error, maka k
bit yang terakhir dari codeword adalah pesan m yang dikirimkan.

Hamming Code
Salah satu bentuk LBC yang paling banyak digunakan adalah Hamming
Code. Hamming code mempunyai karakteristik sebagai berikut:
- panjang codeword: n = 2m - 1
- panjang pesan: k = 2m - m – 1
- panjang parity check: m = n – k , m  3
- LBC yang dijelaskan di atas sebenarnya adalah Hamming Code
dengan m = 3.
- Kemampuan koreksi error = 1; kemampuan deteksi error = 2; d* = 3.

Cyclic Code
Salah satu bentuk unik dari LBC adalah Cyclic Code. Sebuah (n,k) cyclic
code mempunyai karakteristik sebagai berikut:
- Setiap cyclic shift dari sebuah codeword adalah codeword yang lain.
Tetapi ini tidak berarti bahwa seluruh codeword bisa didapatkan hanya
dengan menggeser bit saja.
Contoh:

- Cyclic code dapat diperoleh dengan mengalikan pesan m (yang


dinyatakan dalam polinomial dalam bentuk m(x)) dengan generator
polinomial g(x)

Sistem Telekomunikasi Digital Page 5 of 7


Copyright © JTEUS, 2008
By Djuwari 20/04/18
Non sistematik: c(x) = m(x)*g(x).
Sistematik: c(x) = xn-k*m(x) - Rg(x)( xn-k*m(x)). Suku yang terakhir Rg(x)
adalah sisa pembagian dari (xn-k*m(x))/ g(x).
- Generator polinomial g(x) merupakan faktor dari polinomial xn+1
- Orde dari generator polinomial g(x) adalah n-k.
- Sebuah cyclic code mempunyai generator polinomial g(x) yang
merupakan pembagi bagi setiap codeword.
- Parity check polinomial h(x) = (xn+1)/g(x) merupakan polinomial orde k.

Contoh: Kodekan pesan m = [1 0 0 1] menggunakan (7,4) cyclic code!


Generator polinomial g(x) adalah faktor dari x7 + 1 dan merupakan
polinomial orde 3. Dalam GF(2), x7 + 1 = (x + 1)( x3 + x + 1)( x3 + x2 +
1). Maka salah satu generator polinomial yang mungkin adalah x3 + x
+ 1. Pesan m dinyatakan dalam polinomial menjadi m(x) = x3 + 1.
Dengan pengkodean sistematik:
c(x) = xn-k*m(x) - Rg(x)( xn-k*m(x))
= x3* (x3 + 1) - Rg(x)( x3* (x3 + 1))
= x6 + x3 – sisa((x3* (x3 + 1))/ ( x3 + x + 1))
= x6 + x3 + x2 + x
c = [1 0 0 1 1 1 0].

Cara lain adalah menggunakan pembagian:


m = 1 0 0 1 dan g = 1 0 1 1
Tambahkan sebanyak n-k 0 dibelakang m  1 0 0 1 0 0 0
Lalu bagi bilangan tersebut dengan g  cari sisa pembagiannya!
1011 1001000
1011
1000
1011
110
Codeword c = 1 0 0 1 0 0 0 + 1 1 0 = 1 0 0 1 1 1 0 (kode ke-16 dari
tabel di atas)

- Proses decoding pada cyclic code sama dengan pada LBC. Untuk
pengkodean sistematik, bagi codeword yang diterima dengan
generator polinomial g(x). Jika hasilnya 0, berarti tidak ada error (ingat
semua codeword habis dibagi g(x)). Jika hasilnya tidak sama dengan
0, maka sisa hasil pembagian tersebut menjadi syndrome vector yang
akan digunakan untuk menentukan bit mana yang salah.

Cotoh: Jika codeword yang diterima adalah 1 0 0 1 1 1 1, gunakan


proses decoding untuk menentukan pesan yang sesungguhnya
dikirimkan oleh pemancar.

1011 1001111
1011
1011

Sistem Telekomunikasi Digital Page 6 of 7


Copyright © JTEUS, 2008
By Djuwari 20/04/18
1011
001
Syndrome vector 0 0 1 menunjukkan bahwa bit yang ke-7 mengalami
error. Hal ini dapat dilihat dari tabel berikut:

Error Pattern Syndrome vector


0000001 001
0000010 010
0000100 101
0001000 011
0010000 110
0100000 100
1000000 111

BCH Code
BCH code adalah generalisasi dari Hamming Cyclic Code. BCH(n,k) code
mempunyai karakteristik sebagai berikut:
- panjang codeword: n = 2m – 1,
- panjang pesan: k < n
- panjang parity check: mt  n – k , m  3 dan t  2m - 1
- Kemampuan koreksi error = t; d*  2t + 1.

Tabel pasangan (n,k) dan t yang mungkin untuk BCH encoder dapat dilihat di
buku-buku tentang error control coding atau di penjelasan dari perintah
bchenc di Matlab Help.

Reed-Solomon Code (RS Code)


Prinsip:
- Message atau data yang akan dokodekan harus dalam bentuk simbol
yang terdiri atas m bit. Di Matlab nilai m ini antara 3 – 16.
- Untuk (n,k) RS Code, message harus mempunyai k kolom dan
codeword yang terbentuk akan mempunyai n kolom.
- Nilai k harus lebih kecil dari n
- n-k = 2t (n-k harus bilangan genap)
- n = 2m-1 (nilai dari n harus antara 3 sampai 2m-1)
- Mampu mengoreksi t kesalahan (t = (n-k)/2).

Sistem Telekomunikasi Digital Page 7 of 7


Copyright © JTEUS, 2008
By Djuwari 20/04/18

Anda mungkin juga menyukai