Laporan Sementara Praktikum kode siklik

October 16, 2017 | Author: Hamidatul Izza | Category: N/A
Share Embed Donate


Short Description

teknik koding, kode siklik, PENS...

Description

Laporan Sementara Praktikum 2 ENCODER DAN DECODER KODE SIKLIK Oleh Hamidatul Izzah / 1210121056 / 3D4 TB A. Polinomial, matriks generator, dan matriks parity kode siklik A.1 Membangkitkan polinomial kode siklik (7,4) dengan Matlab >> p=cyclpoly(7,4)

Fungsi cyclpoly yaitu menghasilkan polinomial generator kode siklik dengan menentukan nilai (n,k) dengan panjang codeword(n) dan panjang pesan(k).

p= 1

0

1

1

1. Kode siklik (n,k) dibutuhkan generator dengan derajat polinomial tertinggi (nk). Untuk kode siklik (7,4) derajat polinomial generator tertinggi yang diperoleh dari percobaan adalah 3. Berdasarkan teori derajat polinomial tertinggi dapat diperoleh dengan (n-k), sehingga pada percobaan nilai generator tertinggi bernilai 3, sesuai seperti teori yang telah ada. A.2 Membangkitkan matrik parity dan matrik generator kode siklik (7,4) dengan Matlab >> [h,g]=cyclgen(7,p)

Fungsi cyclgen yaitu menghasilkan parity-check dan matrik generator kode siklik

h= 1

0

0

1

1

1

0

0

1

0

0

1

1

1

0

0

1

1

1

0

1

1

0

1

1

0

0

0

1

1

1

0

1

0

0

1

1

0

0

0

1

0

0

1

1

0

0

0

1

g=

2. Mengulangi langkah A.2 dengan polinomial p yang lain >>p1 = 1

0

1

1

0

>> [h1,g1]=cyclgen(7,p1)

Pada polinomial p1, nilai h1 dan g1 dapat diketahui hasilnya dengan fungsi cyclgen karena nilai polinomial p1 masih memenuhi syarat polinomial generator pada kode siklik yang memiliki derajat (n-k).

h1 = 1 0 0 0 g1 = 1 1 0

0 1 0 0

0 0 1 0

0 0 0 1

1 1 1 0

1 1 0 0

0 1 1 0

1 1 1

1 0 1

0 0 0

1 0 0

0 1 0

0 0 1

>> p2=[1 1 0 1 1 0]

Pada polinomial p2 dan polinomial p3 terjadi error pada saat pemanggilan fungsi cyclgen, hal ini terjadi karena nilai yang dibangkitkan melebihi batas syarat n-k.

p2 = 1

1

0

1

1

0

>> [h2,g2]=cyclgen(7,p2) ??? Error using ==> cyclgen at 47 The generator polynomial P cannot produce a cyclic code generator matrix. Berdasarkan teori yang ada, nilai p adalah nilai polinomial generator, h dan g merupakan sebuah matrik yang didalamnya terdapat matrik generator polinomial dan matrik parity.

>> p3=[1 0 1 1 1 0] p3 = 1

0

1

1

1

0

>> [h3,g3]=cyclgen(7,p3) ??? Error using ==> cyclgen at 47 The generator polynomial P cannot produce a cyclic code generator matrix. B. Enkoding dan dekoding kode siklik (tanpa error) B.1 Mengamati hasil pengkodean (encoding) kode siklik >> p=cyclpoly(7,4)

Fungsi cyclpoly yaitu menghasilkan polinomial generator kode siklik dengan menentukan nilai (n,k) dengan panjang codeword(n) dan panjang pesan(k).

p= 1

0

1

1

>> [h,g]=cyclgen(7,p)

Fungsi cyclgen yaitu menghasilkan parity-check dan matrik generator kode siklik

h= 1

0

0

1

1

1

0

0

1

0

0

1

1

1

0

0

1

1

1

0

1

1

0

1

1

0

0

0

1

1

1

0

1

0

0

1

1

0

0

0

1

0

0

1

1

0

0

0

1

g=

>> pesan=[0 0 1 1] pesan = 0

0

1

1

>> codeword=encode(pesan,7,4,'cyclic') Fungsi

encode yaitu mengkodekan pesan menggunakan metode koreksi kesalahan.

codeword = 1

0

1

0

0

1

1

3. Pola dari hasil pengkodean yaitu bit parity ditambah dengan pesan kaitannya dengan struktur kode siklik yaitu d(x).g(x) , dimana fungsi d(x) adalah informasi polinomial dan g(x) adalah generator polinomial. Pada percobaan diatas sudah memenuhi struktur kode siklik yaitu dengan 0011 adalah pesan dan 101 adalah parity. 4. Mengulangi langkah B.1 dengan mengganti pesan menjadi msg=[00111]. >> pesan1=[0 0 1 1 1] pesan1 = Fungsi encode yaitu mengkodekan pesan 0 0 1 1 1 menggunakan metode koreksi kesalahan. >> codeword1=encode(pesan1,7,4,'cyclic') codeword1 = 1 0 1 0 0 1 1 1 0 1 1 0 0 0 Pengkodean dari pesan1 diatas berjumlah 5 bit, berbeda dari percobaan sebelumnya yang berjumlah 4 bit. Berdasarkan teori, pesan1 tersebut terdiri dari bit parity dan pesan informasi yang disampaiakan B.2 Mengamati hasil pengkodean kembali (decoding) kode siklik >> pesan_terima=decode(codeword,7,4,'cyclic') pesan_terima = 0

0

1

1

>> %gunakan perintah pengecekan >> cek=[pesan pesan_terima] cek =

Fungsi decode yaitu mengkodekan kembali pesan dengan teknik dan parameter yang sesuai pada saat proses mengkodekan sinyal asli.

0

0

1

1

0

0

1

1 >> cek=[pesan' pesan_terima']

>> [number,ratio]=biterr(pesan',p esan_terima')

cek =

number =

0

0

0

0

0

ratio =

1

1

0

1

1

%mengeplot pesan tanda noise subplot(3,1,1); stem(pesan,'b'); title('Pesan yang dikirim'); subplot(3,1,2); stem(codeword,'m'); ylabel('Codeword Tanpa Error') subplot(3,1,3); stem(pesan_terima,'r'); xlabel('Pesan yang Diterima');

Pesan yang dikirim

1 0.5

Codeword Tanpa Error

0

1

1.5

2

2.5

3

3.5

4

1

2

3

4

5

6

7

1

1.5

2

3.5

4

1 0.5 0

1 0.5 0

2.5 3 Pesan yang Diterima

5. Mengecek hasil pesan yang dikirim dengan pesan yang diterima setelah mengalami proses coding dan decoding, hasilnya yaitu pesan diterima sama dengan pesan yang dikirim yang juga telah melalaui proses encode dan decode. Hal tersebut terjadi karena pada saat decoding terjadi proses deteksi dan koreksi tiap bit informasi , dimana sebelumnya pada proses encoding terjadi penambahan parity dan pesan.

C. Enkoding dan dekoding kode siklik (Ditambah dengan error) >> %untuk mempermudah pengamatan,codeword tanpa error diambil dari percobaan sebelumnya >> %tambahkan error pada bit ke 5 pada codeword sebelumnya >> error=zeros(7,1); >> error([5],1)=1

1

error = 0 0

>> code_noise=fix(code_error)

0

code_noise =

0

1

1

0

0

1

0

0

>> code_error=xor(error,codeword ') code_error =

1 1 1

1 0 1 0 1 1

>> cek=[codeword' code_noise] cek = 1

1

0

0

1

1

0

0

0

1

1 1

1 1

6. Mengecek hasil code dan code terima , setelah ditambah dengan error, hasilnya pada bit ke 5 terjadi perbedaan pada bagian codeword . Peristiwa tidak samanya codeword ini disebabkan karena penambahan error

>> pesan_terima=decode(code_noi se,7,4,'cyclic') pesan_terima = 0 0 1

>> cek_pesan=[pesan' pesan_terima] cek_pesan = 0

0

0

0

1

1

1

1 %mengeplot pesan_terima dengan noise subplot(3,1,1); stem(pesan,'b'); title('Pesan yang Dikirim'); subplot(3,1,2); stem(code_terima,'m'); ylabel('Codeword dengan 3 bit Error'); subplot(3,1,3); stem(pesan_terima_noise,'r'); xlabel('Pesan yang Diterima');

1

7. Mengecek pesan sebelum dikodekan maupun setelah dikodekan , hasil perbandingan tersebut adalah pesan sebelum dan setelah dikodekan tidak terpengaruh oleh bit error yang ditambahkan pada informasi yang diterima. Hal tersebut terjadi karena pada proses decoding terdapat proses koreksi kesalahan. Sehingga hasil yang dikirim dan yang diterima sama.

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF