Block Coding
KOMUNIKASI DATA
OLEH :
PUTU RUSDI ARIAWAN (0804405050)
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS UDAYANA
DENPASAR
Block Coding
Block coding adalah salah satu kode yang mempunyai sifat forward error correction (FEC) yang bisa mendeteksi dan mengkoreksi error tanpa meminta proses transmisi ulang. Dalam sistem encoding terdapat tiga teknik encoding, salah satunya adalah 4B/5B yang disebut juga Block Coding, dimana setiap 4 bit data diterjemahkan menjadi 5 bit data. 5 bit simbol yang dihasilkan selalu mempunyai 2 buah kode ‘1’.
Block Coding dapat digunakan untuk meningkatkan performansi sistem komunikasi jika cara lain seperti dengan meningkatkan daya atau menggunakan demodulator yang rumit dan mahal menjadi tidak praktis lagi. Pada block coding, sejumlah bit pariti ditambahkan pada bit informasi sehingga terbentuk sebuah codeword atau code block.
Pada bagian pengirim, sejumlah k bit informasi dikodekan kedalam n code bit. Dengan demikian jumlah bit redundansi yang ditambahkan pada data informasinya ada sebanyak n-k bit untuk digunakan pada proses deteksi dan koreksi error yang mungkin terjadi. Hasil blok coding yang berupa Block code dapat direpresentasikan dalam bentuk (n,k) code, dan rate dari kode tersebut adalah sebesar Rc = k/n yang sebanding dengan rate transmisi dibagi dengan rate
kanal. Kemampuan block code untuk mengkoreksi error yang timbul merupakan fungsi dari jarak kode (code of a distance). Selain kedua parameter code rate dan jarak terdapat juga kode rate dan jarak yang lainnya yaitu weight of a code.
a. Distance of a code (jarak kode)
Jarak dari code word adalah jumlah elemen diantara dua codeword Ci dan Cj
dimana d adalah jarak codeword, q adalah jumlah kemungkinan nilai dari Ci,
dan Cj. Jika menggunakan kode biner, jarak tersebut dikenal sebagai jarak
Hamming. Jarak minimum (dmin) adalah jarak terkecil diantara dua kode
tersebut dan dinyatakan dengan :
dmin = Min{d(Ci,Cj)}
b. Weight of a code (bobot kode)
Weight of a code adalah nilai bobot dari code word yaitu jumlah elemen bukan nol sepanjang code word. Untuk kode biner, maka weight of code adalah 1 dalam code word tersebut.
Sifat-sifat block code adalah sebagai berikut: 1) Linearity
Misalkan Xi dan Xj adalah dua code word didalam (n,k) block code. Ambil
a 1 dan a 2 adalah dua nilai sembarang. Kode dikatakan linier jika dan
hanya a 1X1+a 2 X2 juga adalah code word.
2) Systematic
Suatu kode dikatakan sistematik apabila salah satu diantara bit-bit paritinya berfungsi sebagai penanda akhir dari suatu deretan informasi yang dikirimkan. Untuk (n,k) code, k bit pertama identik dengan bit informasi, dan n-k bit tiap code wordnya adalah kombinasi linier dari k bit informasinya.
3) Cyclic
Cyclic code ialah bagian dari kode linier yang mengikuti sifat cyclic shift. Jika X = (Xn-1,Xn-2,....,X0) adalah codeword dari suatu cyclic code, maka
(Xn-2, Xn-3,....,X0,Xn-1) yang merupakan cyclic shift dari X adalah juga
codeword. Karena itu semua cyclic shift dari X adalah codeword.
1. Teknik-teknik coding yang sudah dikenal dapat dijelaskan secara singkat berikut ini:
a. Hamming Code
Hamming code adalah kode nontrivial untuk koreksi error yang pertama kali diperkenalkan. Kode ini dan variasinya telah lama digunakan untuk error control pada sistem komunikasi digital. Hamming code ini ada dua macam yaitu binary dan nonbinary Hamming code. Binary Hamming code dapat direpresentasikan dalam bentuk persamaan berikut :
(n,k) = (2m-1, 2m-1-m) (1.7)
dimana k adalah jumlah bit informasi yang membentuk n bit codeword, dan m adalah bilangan bulat positif. Jumlah bit paritinya adalah sejumlah m = n-k bit.
b. Hadamard Code
Hadamard code merupakan teknik coding dengan cara memilih baris dari matriks Hadamard sebagai codeword. Matriks Hadamard A adalah matriks NxN dimana jumlah bit 1 dan 0 untuk tiap barisnya berbeda dari baris lainnya pada N/2 lokasi. Satu baris dari matriks ini terdiri 0 semua sedangkan sisanya terdiri dari 0 untuk N/2 baris dan 1 untuk N/2 baris. Untuk N = 2, maka matriks Hadamard-nya adalah :
c. Golay Code
Golay code merupakan kode biner linier yang mempunyai jarak kode minimum (dmin) sebesar 7 dan memiliki kemampuan untuk mengkoreksi
error sebanyak 3 bit untuk setiap codeword-nya. d. Cyclic Code
Cyclic code adalah jenis kode linier yang memenuhi sifat cyclic seperti telah dijelaskan diatas. Cyclic code dapat dihasilkan dengan menggunakan generator polinomial dengan orde (n-k). Generator polinomial (n,k) Cyclic code adalah faktor pn + 1 dan memiliki bentuk umum :
g(p) = pn-k + gn-k-1 pn-k-1 + ...+ g1p + 1 (1.9)
sedangkan informasi yang dibawa dapat dinyatakan dalam bentuk polinomial x(p) :
x(p)= xk-1pk-1 + ...+ x1p + x0 (1.10)
dimana (xk-1, ..., x0) menunjukkan k bit-bit informasinya. Maka
codeword yang dihasilkan adalah c(p) = x(p)g(p) (1.11)
dimana c(p) adalah polinomial yang memiliki orde lebih kecil dari n. Sebagai pembangkit pariti biasanya adalah digunakan linier feedback shift register.
e. BCH Code
BCH code adalah merupakan jenis block code yang penting karena mampu bekerja pada rentang rate yang lebar dan memiliki coding gain yang besar. Panjang dari block code ini adalah n = 2m-1 untuk m ³ 3 dan jumlah error yang dapat dikoreksi berada pada nilai t < (2m-1)/2. Kode biner BCH juga dapat digunakan untuk membuat jenis kode nonbiner yang
menggunakan m bit persimbolnya. Salah satu jenis kode nonbiner BCH yang paling terkenal adalah kode Reed Solomon. Kode Reed Solomon ini pertama kali digunakan pada U.S. Cellular Digital Packet Data (CDPD) yang menggunakan m = 6 bit untuk setiap simbolnya.
f. Reed Solomon Code
Kode Reed Solomon merupakan jenis kode nonbiner yang mampu mengkoreksi error yang muncul secara acak dan tak terduga (bursty) dan biasanya digunakan pada sistem koding gandeng. Panjang block code ini adalah n = 2m-1. Panjang kode ini dapat dinaikkan menjadi 2m atau 2m+1. Jumlah simbol pariti yang harus ditambahkan untuk mengkoreksi sejumlah error e adalah n-k = 2e. Jarak minimum kode ini adalah dmin =
2. Teknik - teknik Encoding a. 4B/5B Encoding
Disebut juga blok coding yaitu setiap 4 bit data diterjemahkan menjadi 5 bit data. 5 bit symbol yang dihasilkan selalu mempunyai 2 buah kode ‘1’. 5 bit symbol tersebut kemudian diencode dengan metode NRZ-I. Persentase efisiensi encoding 80%. Digunakan dalam FDDI. Bentuk sinyal dari teknik ini dapat dilihat pada tabel di bawah ini :
Data Input (4 bit)
Code Group (5 bit)
NRXI pattern Interpolation
0000 11110 Data 0 0001 01001 Data 1 0010 10100 Data 2 0011 10101 Data 3 0100 01010 Data 4 0101 01011 Data 5 0110 01110 Data 6 0111 01111 Data 7 1000 10010 Data 8 1001 10011 Data 9
1010 10110 Data A 1011 10111 Data B 1100 11010 Data C 1101 11011 Data D 1110 11100 Data E 1111 11101 Data F 11111 Idle 11000 Start of Stream delimiser part 1 10001 Start of Stream delimiser part 2 01101 End of Stream delimiser part 1 00111 End of Stream delimiser part 2 00100 Transmit Error
other Invalid other
b. 8B/10B Encoding
Mengubah 8 bit data menjadi 10 bit data. 8 bit data dipisah menjadi 3 most significant bit dan 5 least significant bit. Diterjemahkan ke desimal dengan least significant bit sebagai angka pertama. 10 bit yang dihasilkan harus terdiri dari:
5 buah ‘1’ dan 5 buah ‘0’ 4 buah ‘1’ dan 6 buah ‘0’ 6 buah ‘1’ dan 4 buah ‘0’
Syarat di atas untuk sinkronisasi clock. Di sini juga perlu ada DC balancing, karena itu dilakukan Running Disparity, yaitu untuk menjaga agar jumlah ‘0’ dan ‘1’ yang ditransferkan sama besar.
Fungsi Utama dari 8B/10B Encoding adalah : Mendeteksi Error
Frame delimination dari transparansi data Clock recovery, DC voltage balancing
Kemampuan untuk mengimplementasikan Fiber Optic, Wireless, atau ATM
Keuntungan 8B/10B Encoding adalah: mempermudah sinkronisasi bit
menyederhanakan desain transmitter dan receiver peningkatan mutu pendeteksian error
8B/10B Encoding digunakan dalam: Gigabit Ethernet
IBM’s SNA
c. 8B/6T Encoding
8B/6T adalah pengiriman 8 bit data sebagai 6 ternary(1 dari 3 level tegangan) sinyal. Arus data yang datang dibagi menjadi model 8 bit.setiap data bermodel 8 bit dengan dua level tegangan(0,V) diuji. Model 8 bit dikonversikan menjadi 6 bit tetapi dengan menggunakan 3 level tegangan(-V,0,V), jadi setiap model 8 bit memiliki sebuah kode 6T yang unik. Contoh : sebuah model bit 0000 0000 (0x00) menggunakan kode +-00+- dan bit 0000 1110 (0x)E) menggunakan kode -+0-0+. Sehingga ada 36=729 model symbol yang mungkin.
Aturan simbol adalah harus ada setidaknya 2 transisi tegangan dan rata-rata tegangan DC harus 0, ini disebut DC balance yaitu tegangan DC yang dijumlahkan hingga menjadi 0V.
3. Perbandingan Bipolar, Polar dan Block Coding a. Bipolar
- Kekurangan
Dalam penggunaannya line coding bipolar membutuhkan biaya yang sangat besar dalam pengoperasiannya.
Untuk Teknik pengkodeannya ada 3 yaitu AMI (Alternate Mark Inversion), B-8ZS (Bipolar 8-Zero Substitution), dan HDB3 (High Density Bipolar 3). Ketiganya ini dibuat untuk saling melengkapi satu sama lainnya. Teknik AMI memiliki kekurangan yaitu memiliki deret biner 0 yang panjang dan hal ini bisa menyebabkan hilangnya sinkronisasi sinyal.
- Kelebihan
Dalam pentransmisian sinyalnya teknik Bipolar ini bisa membangkitkan pensinyalan dengan level yang tinggi dengan rate data yang tinggi pula sehingga sangat cocok untuk aplikasi komunikasi jarak jauh.
Selain itu juga dalam line coding bipolar ini tidak ada DC komponen karena peyimpangan sinkronisasi sinyal tersebut sudah dikonversi oleh sistem HDB3 (High Density Bipolar 3).
b. Polar
- Kekurangan
Bandwidth untuk kode biphase lebih besar dan lebar dibanding bandwidth untuk kode biner lainnya.
- Kelebihan
Karena terdapat transisi yang dapat diprediksikan sebelumnya sepanjang setiap satuan waktu bit waktu, receiver menjadi sinkron pada transisi tersebut. Untuk alasan ini, kode-kode biphase dikenal sebagai kode swadetak
Tanpa Komponen DC
kode-kode biphase tidak memiliki komponen Dc Pendeteksian kesalahan
BIODATA PENULIS
Nama : Putu Rusdi Ariawan
TTL : Denpasar. 19 April 1990
Agama : Hindu
Mahasiswa Teknik Elektro Unv. Udayana Email : turusdi.info@gmail.com