LAPORAN TEKNIK PENGKODEAN METODE DETEKSI DAN KOREKSI PADA KODE SIKLIK
Disusun Oleh : Inggi Rizki Fatryana (1210147002)
Teknik Telekomunikasi - PJJ PENS Akatel Politeknik Negeri Elektro Surabaya 2014-2015
Teknik Pengkodean – Metode Deteksi dan Koreksi Pada Kode Siklik 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 menggunakan matlab.
Menghasilkan codeword dari data informasi yang telah ditentukan menggunakan generator polinomial CRC-12.
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 lanjut. Error 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 bukan. Bila hasil perhitungan sindrom adalah nol maka word r
Inggi Rizki Fatryana - 1210147002
2
Teknik Pengkodean – Metode Deteksi dan Koreksi Pada Kode Siklik 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 :
Inggi Rizki Fatryana - 1210147002
3
Teknik Pengkodean – Metode Deteksi dan Koreksi Pada Kode Siklik 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+x 5+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) = x6(1000000) = (0000001) Jadi codeword yang benar dapat diperoleh dari : c(x) = r(x) – e(x) = (1100011) – (0000001) = (1100010) Inggi Rizki Fatryana - 1210147002
4
Teknik Pengkodean – Metode Deteksi dan Koreksi Pada Kode Siklik 3. CRC (Cyclic Redundancy Ceck)
4. TUGAS DALAM PRAKTIKUM : Buatlah program (m-file) kode siklik untuk kode CRC-12 pada permasalahan dibawah ini : 1. Bangkitkan pesan secara random integer (banyak bit pesan sesuai dengan CRC-12). 2. Kodekan pesan tersebut menggunakan kode siklik dengan struktur sesuai dengan CRC-12. 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.
Contoh permasalahan sindrom : Sebuah kode siklik (7,4) mempunyai generator polinomial g(x) = 1+x+x 3. 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.
Inggi Rizki Fatryana - 1210147002
5
Teknik Pengkodean – Metode Deteksi dan Koreksi Pada Kode Siklik Jawab : Codeword : r ( x) d ( x).g ( x) s( x)
Listing Program p=cyclpoly(20,8) [h,g]=cyclgen(20,p) pesan=[1 1 0 0 1 0 1 0] codeword=encode(pesan,20,8,'cyclic') pesan_terima=decode(codeword,20,8,'cyclic'); n=length(codeword); error=zeros(n,1); %error([7],1)=1; error([1:5],1)=1; error' code_error=xor(error,codeword'); code_noise=fix(code_error); code_noise' cek=[codeword' code_noise] pesan_terima=decode(code_noise,20,8,'cyclic'); pesan_terima' sindrom=mod(code_noise,p) subplot(3,1,1) stem(pesan,'b') title('Pesan Yang Dikirim') subplot(3,1,2) stem(code_noise,'m') ylabel('Codeword Dengan 3 Bit Error') subplot(3,1,3) stem(pesan_terima,'r') xlabel('Pesan Yang Diterima')
Inggi Rizki Fatryana - 1210147002
6
Teknik Pengkodean – Metode Deteksi dan Koreksi Pada Kode Siklik
Hasil Keluaran
Inggi Rizki Fatryana - 1210147002
7
Teknik Pengkodean – Metode Deteksi dan Koreksi Pada Kode Siklik
Inggi Rizki Fatryana - 1210147002
8
Teknik Pengkodean – Metode Deteksi dan Koreksi Pada Kode Siklik
Inggi Rizki Fatryana - 1210147002
9
Teknik Pengkodean – Metode Deteksi dan Koreksi Pada Kode Siklik
Inggi Rizki Fatryana - 1210147002
10