Laporan Sementara Praktikum kode siklik

8
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) p = 1 0 1 1 1. Kode siklik (n,k) dibutuhkan generator dengan derajat polinomial tertinggi (n-k). 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) h = 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1 1 0 1 g = 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 Fungsi cyclpoly yaitu menghasilkan polinomial generator kode siklik dengan menentukan nilai (n,k) dengan panjang codeword(n) dan panjang Fungsi cyclgen yaitu menghasilkan parity-check dan matrik generator kode siklik

description

teknik koding, kode siklik, PENS

Transcript of Laporan Sementara Praktikum kode siklik

Page 1: Laporan Sementara Praktikum kode siklik

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)

p =

1 0 1 1

1. Kode siklik (n,k) dibutuhkan generator dengan derajat polinomial tertinggi (n-k). 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)

h =

1 0 0 1 1 1 0

0 1 0 0 1 1 1

0 0 1 1 1 0 1

g =

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

2. Mengulangi langkah A.2 dengan polinomial p yang lain

>>p1 =

1 0 1 1 0

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

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

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

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).

Page 2: Laporan Sementara Praktikum kode siklik

1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 1 0 0 0g1 = 1 1 1 0 1 0 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1

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

p2 =

1 1 0 1 1 0

>> [h2,g2]=cyclgen(7,p2)??? Error using ==> cyclgen at 47The generator polynomial P cannot produce a cyclic code generator matrix.

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

p3 =

1 0 1 1 1 0

>> [h3,g3]=cyclgen(7,p3)??? Error using ==> cyclgen at 47The 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)

p =

1 0 1 1

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

h =

1 0 0 1 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.

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.

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

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

Page 3: Laporan Sementara Praktikum kode siklik

0 1 0 0 1 1 1

0 0 1 1 1 0 1

g =

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

>> pesan=[0 0 1 1]

pesan =

0 0 1 1

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

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 = 0 0 1 1 1>> codeword1=encode(pesan1,7,4,'cyclic')codeword1 = 1 0 1 0 0 1 1 1 0 1 1 0 0 0Pengkodean 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]

Fungsi encode yaitu mengkodekan pesan menggunakan metode koreksi kesalahan.

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

Fungsi encode yaitu mengkodekan pesan menggunakan metode koreksi kesalahan.

Page 4: Laporan Sementara Praktikum kode siklik

cek =

0 0 1 1 0 0 1 1

>> cek=[pesan' pesan_terima']

cek =

0 0

0 0

1 1

1 1

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

number =

0

ratio =

0

%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');

1 1.5 2 2.5 3 3.5 40

0.5

1Pesan yang dikirim

1 2 3 4 5 6 70

0.5

1

Cod

ewor

d T

anpa

Err

or

1 1.5 2 2.5 3 3.5 40

0.5

1

Pesan yang Diterima

Page 5: Laporan Sementara Praktikum kode siklik

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

error =

0

0

0

0

1

0

0

>> code_error=xor(error,codeword')

code_error =

1

0

1

0

1

1

1

>> code_noise=fix(code_error)

code_noise =

1

0

1

0

1

1

1

>> cek=[codeword' code_noise]

cek =

1 1

0 0

1 1

0 0

0 1

1 1

Page 6: Laporan Sementara Praktikum kode siklik

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_noise,7,4,'cyclic')

pesan_terima =

0

0

1

1

>> cek_pesan=[pesan' pesan_terima]

cek_pesan =

0 0

0 0

1 1

1 1

%mengeplot pesan_terima dengan noisesubplot(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');

Page 7: Laporan Sementara Praktikum kode siklik

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.