Channel Coding dan Decoding- Block Coding By Teddy Purnamirza, ST, MEng
Diagram pengirim dan Penerima
Single Parity Block Coder K bit menjadi k+1 bit Total penjumlahan modulo 2 seluruh k+1 bit harus 0 (disebut pariti genap) Total penjumlahan modulo 2 seluruh k+1 bit harus 1 (disebut pariti ganjil) Misal dikirim bit 101, digunakan pariti genap maka dihasilkan bit 1010 karena 1+0=1+1=0+0=0 Tidak bisa mendeteksi posisi error (tidak bisa mengkoreksi error)
Con’t Pada channel decoder akan dilihat apakah bit yang diterima memiliki penjumlahan modulo 2 bernilai 0 atau tidak Jika 0 maka tidak ada bit yang salah, jika 1 maka terdapat bit yang salah Misal diterima bit 1011 maka 1+0=1+1=0+1=1, berarti bit mengalami error Single parity check bit hanya bisa mendeteksi error yang yang berjumlah ganjil dan tidak bisa untuk error yang berjumlah genap
Latihan Tentukan output dari parity check bit dengan input 3 bit dan output 4 bit, asumsikan bit input adalah 001110, jika terjadi error pada bit pertama dan kedua, bisakah penerima mendeteksi terjadinya error?
Rectangular code Mengubah serial bit menjadi bentuk matrik Bit pariti kemudian diberikan untuk tiap baris dan kolom, selanjutnya bit dikirim secara serial kembali Misalkan:
Con’t Pada penerima, deretan bit serial kemudian diubah menjadi matrik kembali Dilakukan perhitungan modulo 2 untuk tiap baris dan tiap kolom, jika terjadi error maka hasil penjumlahan modulo 2 adalah 1 sedangkan jika tidak ada error maka hasil penjumlahan modulo 2 adalah 0 Dapat ditentukan posisi error dengan melihat baris dan kolom yang error Misalnya:
Latihan Tentukan bit yang dihasilkan oleh rectangular code 4x4 untuk bit 1110101000011101, jika terjadi kesalahan pada bit ke 5, perlihatkan bagaimana rectangular decoder dapat menentukan posisi bit yang salah
Linear Block Code Salah satu bentuk channel coder 3 bit ke 6 bit Bentuk lain channel coder 3 bit ke 6 bit
Cont’ Linear block code adalah satu kelompok block coder yang mengikuti aturan mengenai kelompok output yang digunakan Defenisi: misalkan untuk block coder (6,3): Vn kelompok semua kemungkinan 6 bit ( ada 64 kemungkinan) U kelompok dari delapan kemungkinan output 6 bit Aturannya adalah: U harus berisikan {000000} Melakukan penjumlahan modulo 2 setiap komponen U dengan komponen U akan menghasilkan komponen U yang lain
Cont’ Apakah berikut ini linear block coder Terdapat komponen {000000} pada U Penjumlahan modulo 2 dua komponen U akan menghasilkan komponen lain, misalnya komponen U ke 3 dengan ke 7 akan menghasilkan komponen U ke 5
Latihan Apakah berikut ini merupakan linear block code?
Cont’ Yang perlu dilakukan hanya sederhana yaitu mengacu kepada sebuah tabel look up Tetapi bagaimana jika kita melakukan linear block code untuk 92 bit input menjadi 127 bit Tentu saja kita memerlukan 292 kemungkinan bit input sehingga memerlukan tabel look up yang sangat besar dan mahal Cara lain adalah dengan menggunakan matrik, dimana U dapat dihasilkan dari perkalian m dengan sebuah matrik generator, misal m (101) dapat menghasilkan u (011101) dengan melakukan u=mG
Cont’ Misalkan dimiliki Misalkan m=(101) Maka U= mG = Jika kita bandingkan input memiliki nilai yang sama dengan 3 bit output terakhir
Cont’ Tidak semua linear block code memiliki sifat diatas Jika memiliki sifat ini, maka disebut systematic linear block code Lebih diinginkan menggunakan systematic linear block code karena murah dan sederhana U=mG, jika kita tahu 3 bit input maka kita dengan mudah dapat mengetahui G yaitu: Ini berarti yang perlu disimpan hanya nilai matrik P
Latihan Benar atau salah pernyataan berikut: G diatas merupakan G untuk tabel linear block code diatas
Jawaban Ya benar, karena setiap input m, menggunakan generator G diatas kita mendapatkan output u yang sesuai dengan tabel diatas
Decoding untuk linear block Misalkan untuk linear block code berikut: Misalnya dikirim bit 011101 (bit informasi 101), ini bisa tiba di decoder dalam keadaan benar (011101) atau error (misalnya 111101) Tugas decoder adalah menemukan 3 bit informasi, (dalam contoh ini 101), jika ada error maka tugasnya bertambah untuk memperbaiki error, dan menemukan 3 bit informasi
Cont’ Bagaimana decoder bekerja? Misalkan yang diterima decoder adalah data salah 111101, decoder memeriksa kedalam tabel, karena tidak terdapat didalam tabel maka dianggap data error, kemudian decoder akan memeriksa 8 data dalam tabel yang paling mendekati 111101, akan didapatkan data 011101 (karena cuma beda 1 bit), dengan ini decoder dapat menentukan bit informasi adalah 101 Cara kerja decoder diatas dapat direpresentasikan dalam matematika Disamping generator matrik G juga terdapat istilah parity matrik H, dimana memiliki hubungan GH=0 Karenanya: Coba cek apakah GH=0 ?
Cont’ Misalnya kita kirimkan u = mG =011101 Kasus 1 tidak ada error, maka data diterima v=u=mG=011101,dalam kasus ini didapat: vH=uH=mGH=m0=0 Kasus 2 terjadi error,dimana data terima v=111101, v=u+e, u=011101, e=100000,maka vH=uH+eH=mGH+eH=m0+eH=0+eH=eH= (100000) H, dimana hasilnya tidak 0 Maka disimpulkan jika vH= 0 maka tidak ada error, jika vH tidak sama dengan 0 maka terjadi error
Latihan Tentukan apakah G berikut adalah benar untuk H berikut: Jawab Karena hasil GH=0 maka G diatas benar untuk H diatas
Bagaimana koreksi error? Misalkan dikirim u=(011101), dan terdapat error e=(100000), mengakibatkan data diterima dipenerima v=(111101), maka vH=(100) Maka hasil kali vH=(100) berhubungan dengan error e=(100000) Dengan kata lain jika kita dapat mencocokkan error dengan hasil kali vH, maka kita dapat melakukan koreksi error Maka didefenisikan syndrom error sebagai vH=S
Cont’ Berikut adalah yang harus dilakukan oleh channel decoder: Untuk masing-masing kemungkinan e, tentukan error yang mana yang terjadi, lakukan hal ini seperti berikut, (menggunakan contoh (6,3)) 1.a Nilai S=(000) berarti tidak terjadi error, ini berarti terdapat 8-1=7 kemungkinan error 1.b Mulai dengan error yang paling sering terjadi, dalam hal ini adalah 1 bit error, e1=(100000), e2=(010000), e3=(001000), e4=(000100), e5=(000010), e6=(000001), untuk masing2 error ini temukan nilai S nya, maka didapatkan S1, S2, S3… S6. 1.c Masih terdapat satu S untuk dua error yang terjadi, misalnya e7=101000, menghasilkan S7
Cont’ Dihasilkan tabel berikut Misal:dikirim u=101110,diterima v=u+e=u+(100000)=(001110), dihitung vH=S=(100), dengan melihat tabel diatas bisa ditentukan bahwa error e adalah (100000), dan decoder dengan mudah dapat menentukan 3 bit informasi yaitu 110
Latihan
Jawaban Kasus I, tidak ada error, e=(0000) Kasus 2, terdapat 1 error, e=(0001) Kasus 3, terdapat 1 error, e=(0010) Kasus 4, terdapat 1 error, e=(0100) Kita dapatkan hubungan sindrom error (S) dan error (e) seperti berikut:
Unjuk Kerja block coder Pm adalah kemungkinan channel decoder gagal mendeteksi error P adalah kemungkinan channel decoder gagal mengkoreksi error Pada Single Parity check bit, bit yang diterima n= k+1, akan selalu gagal mendeteksi error jika jumlah bit error genap Maka P(j,n) adalah kemungkinan memiliki j bit error dari blok n bit Menggunakan statistika kita dapatkan Dimana adalah , dimana p adalah kemungkinan bit error ketika bit keluar dari channel coder sampai ke channel decoder Karena metode single parity check bit tidak bisa mengkoreksi error maka kemungkinan P=1
Cont’ Rectangular check code hanya bisa mengkoreksi 1 error bit, tidak bisa lebih Maka Linear block code: jumlah bit yang bisa dikoreksi adalah t Dimana Dimana dmin adalah salah satu dari kemungkinan output yang memiliki jumlah bit 1 paling sedikit, dan [ ] adalah nilai yang dibulatkan kenilai integer terdekat
Cont’ Contoh chanel coder : Output dgn bit 1 paling sedikit adalah 000111 Maka dmin=3, maka t=[(3-1)/2]=1, ini berarti selalu mampu mengkoreksi 1 bit error, mungkin saja mampu mengkoreksi 2 error tapi tidak selalu mampu Kemungkinan tidak mampu mengkoreksi error :
Contoh Dalam sebuah sistem komunikasi, kemungkinan terjadi error adalah 1%, hitung: Hitung Pm untuk parity check coder ¾ Hitung P untuk linear block code 5/10 (asumsi t=2)
Jawaban Untuk parity bit coder Untuk linear block coder
Keuntungan dan Harga block coder Keuntungannya kita dapat mendeteksi dan mengkoreksi error Adakah harga yang harus dibayar? Lihat diagram berikut
Cont’ Tanpa channel coder bandwidth sinyal BW=1/T Dengan menggunakan channel coder maka BW=2/T Maka channel coder memperlebar BW sinyal Maka kemampuan deteksi dan koreksi error dibayar dengan melebarnya bandwidth sinyal
PR
PR