028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

19
LAPORAN SISTEM KOMUNIKASI BLUETOOTH Dibuat Oleh: Yogi Adi Chandra (25012.55401.13.028)

description

Komunikasi Data

Transcript of 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

Page 1: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

LAPORAN SISTEMKOMUNIKASI BLUETOOTHDibuat Oleh:

Yogi Adi Chandra

(25012.55401.13.028)

Page 2: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

ENCODER DAN DECODER KODE SIKLIK

1. Tujuan :

Setelah melakukan praktikum, diharapkan mahasiswa dapat:

Membangkitkan generator siklik dan bit informasi yang telah

ditentukan menggunakan matlab.

Menghasilkan codeword dari data informasi yang telah ditentukan

menggunakan generator polinomial tertentu(pengkodean data).

Melakukan proses decoding dari codeword yang diperoleh dari

proses sebelumnya.

Melakukan pengkodean tanpa dan dengan error correction.

2. Dasar Teori

Pengertian Kode Siklik

Menurut defenisinya, siklik berarti putaran. Jadi dikatakan kode siklik

karena kode-kode vektornya merupakan versi putaran kode vector lainnya, misal:

codeword(xn,x0,x1,…,xn-1), maka jika diputar(x0,x1,….,xn-1,xn) juga

merupakan codeword dari kode siklik. Kode siklik digambarkan sebagai deretan

polynomial beserta koefisiennya. Koefisien polinomial inilah yang sangat

membantu dalam pembuatan struktur kode siklik. Kode siklik dibagi menjadi 2

macam, yaitu kode siklik sistematik dan nin sistematik. Dan mempunyai struktur

(n,k) dengan derajat polynomial tertinggi(n-1).

Kode Siklik Sistematik

Dengan generator polynomial g(x) dari sebuah kode siklik, codeword

dapat dibentuk secara matematis dengan rumusan:

C=(γ_0,γ_1,...,γ_(n-k-1),d_0,d_1,…,d_(k-1))

Dari persamaan diatas, informasi polynomial d(x) dan check polynomial γ_((x))

dapat dinyatakan sebagai berikut:

〖d(x)=d〗_0+d_1 x+ … +d_(k-1) x^(k-1)

Page 3: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

〖γ(x)=γ〗_0+γ_1 x+ … +γ_(n-k-1) x^(n-k-1)

Dimana, γ_((x)) adalah sisa pembagian polynomial berderajat n-k-1 atau kurang,

yang diperoleh dari pembagian x^(n-k) d(x) dengan g(x).

x^(n-k) d_((x)):g(x)=q(x)=r(x)

Dengan, q(r) adalah hasil bagi

r(x) adalah sisa pembagian

Kode Siklik Non Sistematik

Pembentukan kode siklik non sistematis lebih mudah dari pada

pembentukan kode silkik sistematik. Dari generator yang telah didapatkan,

dikalikan dengan data informasi untuk mendapatkan codeword non-sistematik.

Perbedaan yang mendasar antara kode siklik sitematik dan non-sistematik

adalah codeword yang dihasilkan oleh encodernya. Pada kode sistematik dan non-

sistematik adalah antara bit-bit informasi dengan bit-bit paritynya, sedankan pada

kode non-sistemarik tidak dapat dibedakan. Karena sifatnya tersebut, maka kode

siklik yang banyak digunakan adalah kode siklik yang sistematis.

Proses Encoding Kode Siklik

Secara blok diagram encoder dengan generator polynomial g(x) = 1+x+x3 dapat

digambarkan pada gambar 1.

Sebuah kode siklik (7,4) mempunyai:

Generator polynomial g(x)=1+x+x3

Urutan informasi yang dikirim d= (1100)

Informasi polynomial d(x)=1+x

Karena n-k=3, maka didapatkan x3, d(x)=x3+x4

Page 4: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

Gambar 1. Encoder kode siklik dengan g(x)=1+x+x3

Pembagian x3+x4 dengan g(x)=1+x+x3, menghasilkan sisa polinomial :

γ(x)=1+x^2

Jadi code polynomial yang didapat adalah:

c(x)=1+x^2+x^3+x^4

sehingga codeword (data yang telah dikodekan) c=(1011100) atau dapat

dinyatakan bahwa:

c(x)=d(x).g(x)=(1+x)(1+x+x^3 )=1+x^2+x^3+x^4

sehingga codeword( data yang telah dikodekan) c=(1011100)

Proses Decoding Kode Siklik

Secara umum decoder kode siklik dapat ditunjukkan dengan blok diagram

seperti gambar 2.

Secara prinsip prosedur koreksi kesalahan pada kode siklik (sesuai dengan

blok diagram diatas) adalah sebagai berikut:

a. Step 1. Vektor yang diterima digeser ke register buffer dan register

syndrome.

b. Step 2. Setelah perhitungan syndrome dan semua bir digeser ke buffer,

isi register syndrome dibaca oleh detector. Bila output detector=1, maka

isi register syndrome berkaitan dengan pole error yang dapat dikoreksi

dengan error terletak dibuffer paling kanan.

Page 5: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

Gambar 2. Blok Diagram Dekoder Kode Siklik

c. Step3. Digit yang diterima pertama keluar, secara bersamaan isi register

syndrome juga digeser keluar, bila bit pertama error output detector

akan 1 yang akan digunakan untuk koreksi error pada bit pertama

tersebut. Output detector juga digeser ke register syndrome untuk

memodifikasi syndrome. Isi syndrome berkaitan dengan isi buffer

berikutnya.

d. Step4. Syndrome yang baru digunakan untuk mengecek apakah ada

kesalahan pada bit kedia seperti hanya pada bit pertama, bika ada,

dilakukan koreksi.

e. Step5. Proses diatas berlangsung digit demi digit sampai semua vector

digeser keluar buffer.

3. Perangkat Yang Digunakan :

a. PC yang berisi program aplikasi matlab

b. Flash disk, memory card

Page 6: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

4. Langkah-langkah Percobaan :

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

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)

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

siklik.”

Page 7: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

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

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

>> [h2,g2]=cyclgen(7,p2)

Page 8: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

“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.”

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

>> [h3,g3]=cyclgen(7,p3)

“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.”

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

Page 9: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

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

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

siklik.”

>> pesan=[0 0 1 1]

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

“Fungsi encode yaitu mengkodekan pesan menggunakan metode koreksi

kesalahan.”

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]

Page 10: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

>> codeword1=encode(pesan1,7,4,'cyclic')

“Fungsi encode yaitu mengkodekan pesan menggunakan metode koreksi

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

“Fungsi decode yaitu mengkodekan kembali pesan dengan teknik dan parameter

yang sesuai pada saat proses mengkodekan sinyal asli.”

Page 11: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

>> cek=[pesan pesan_terima]

>> cek=[pesan' pesan_terima']

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

% Mengeplot pesan tanda noise =

Page 12: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

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

Page 13: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

>> error([5],1)=1

>> code_error=xor(error,codeword')

>> code_noise=fix(code_error)

>> cek=[codeword' code_noise]

Page 14: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

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_noise=decode(code_noise,7,4,'cyclic')

>> cek_pesan=[pesan' pesan_noise]

%mengeplot pesan_terima dengan noise

Page 15: 028 Yogi Adi Chandra Encoder Dan Decoder Kode Siklik Praktikum

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.