Encoding dan Decoding dengan Trellis Diagram

12
Encoding dan Decoding dengan Trellis Diagram Ahmad Farisi (1406595930) I. Pendahuluan Dalam teori informasi dan teori pengkodean di bidang ilmu komputer dan telekomunikasi, error detection dan error correction atau error control merupakan teknik yang memungkinkan reliabilitas pengiriman data digital melalui jalur komunikasi (channel) yang tidak reliabel. Dalam sistem komunikasi digital, error yang terjadi pada transmisi pesan dari sender kepada receiver disebabkan oleh noise pada channel. Selama transmisi tersebut berlangsung, error yang terjadi dapat dikenali dengan teknik error control. Error detection memungkinkan deteksi kesalahan, sementara error correction memungkinkan rekonstruksi pesan asli setelah melalui noissy channel. Error correction bertujuan untuk mengurangi kemungkinan terjadi error pada penerimaan pesan dengan menambahkan digit redundant (data tambahan) pada pesan yang dikirim. Hal ini dapat memungkinkan receiver mendeteksi dan mengkoreksi error tanpa perlu meminta sender untuk mengirimkan kembali pesan yang dikirim tadi. Error correction secara umum dapat dilakukan dengan dua cara yang berbeda sebagai berikut. 1. Automatic Repeat Request (ARQ) ARQ kadang disebut juga dengan Backward Error Correction. Ini adalah teknik error control dimana skema dari error detection dikombinasikan dengan permintaan pengiriman ulang pesan yang error. Setiap blok pesan yang diterima akan diperiksa, jika pemeriksaan tersebut gagal, maka transmisi ulang dari pesan tersebut dilakukan. Ini dapat dilakukan berulang-ulang sampai pesan dapat diverifikasi. 2. Forward Error Correction (FEC) 1 | Page

description

Step by Step untuk melakukan proses Encoding dan Decoding terhadap binnary code dengan menggunakan Trellis Diagram

Transcript of Encoding dan Decoding dengan Trellis Diagram

Encoding dan Decoding dengan Trellis DiagramAhmad Farisi (1406595930)

I. Pendahuluan

Dalam teori informasi dan teori pengkodean di bidang ilmu komputer dan telekomunikasi, error detection dan error correction atau error control merupakan teknik yang memungkinkan reliabilitas pengiriman data digital melalui jalur komunikasi (channel) yang tidak reliabel. Dalam sistem komunikasi digital, error yang terjadi pada transmisi pesan dari sender kepada receiver disebabkan oleh noise pada channel. Selama transmisi tersebut berlangsung, error yang terjadi dapat dikenali dengan teknik error control. Error detection memungkinkan deteksi kesalahan, sementara error correction memungkinkan rekonstruksi pesan asli setelah melalui noissy channel.

Error correction bertujuan untuk mengurangi kemungkinan terjadi error pada penerimaan pesan dengan menambahkan digit redundant (data tambahan) pada pesan yang dikirim. Hal ini dapat memungkinkan receiver mendeteksi dan mengkoreksi error tanpa perlu meminta sender untuk mengirimkan kembali pesan yang dikirim tadi.

Error correction secara umum dapat dilakukan dengan dua cara yang berbeda sebagai berikut.1. Automatic Repeat Request (ARQ)ARQ kadang disebut juga dengan Backward Error Correction. Ini adalah teknik error control dimana skema dari error detection dikombinasikan dengan permintaan pengiriman ulang pesan yang error. Setiap blok pesan yang diterima akan diperiksa, jika pemeriksaan tersebut gagal, maka transmisi ulang dari pesan tersebut dilakukan. Ini dapat dilakukan berulang-ulang sampai pesan dapat diverifikasi.

2. Forward Error Correction (FEC)Pada FEC, pengirim melakukan encoding terhadap pesan yang akan dikirim dengan menggunakan error correcting code sebelum transmisi. Informasi tambahan (redundancy) yang ditambahkan oleh code tersebut digunakan oleh receiver untuk me-recover pesan asli. Secara umum, pesan yang direkonstruksi adalah apa yang dianggap sebagai most likely (kemungkinan besar) pesan asli.

II. Error Correcting Code

Error correcting code (ECC) atau forward error correction (FEC) dibedakan menjadi dua bagian sebagai berikut.1. Convolutional codesConvolutional codes diproses secara bit-by-bit. Pengkodean ini sangat cocok untuk diimplementasikan pada hardware.2. Block codesBlock codes diproses secara block-by-block. Contoh awal dari block code ini adalah repetition codes, Hamming codes, dan multidimensional parity-check codes. Kemudian pengkodean tersebut diikuti oleh sejumlah code yang efisien, seperti Reed-Solomon Code, low density-parity-codes, dan turbo codes.

III. Convolutional Code

Dalam convolutional encoder, kode yang dihasilkan melalui encoder tidak hanya tergantung dari blok pesan yang dikirimkan pada waktu tersebut saja, namun juga tergantung dari blok pesan yang dikirimkan sebelumnya. Convolutional code dapat dirancang untuk melakukan error detection dan error correction. Proses encoding dari convolutional code dapat dilakukan menggunakan beberapa metode berikut ini.1. Shift Register2. State Diagram3. Trellis Diagram

Sementara proses decoding dapat juga dilakukan dengan trellis diagram.

IV. Tujuan Penulisan

Dalam paper ini, penulis menjelaskan langkah-langkah proses encoding dan decoding dari convolutional code melalui beberapa metode yang telah disebutkan di atas. Adapun encoding dan decoding yang akan dilakukan dalam paper ini adalah encoding dan decoding terhadap binary code yang direkonstruksi melalui shift register untuk kemudian dilanjutkan dengan state diagram dan trellis diagram.

V. Metodologi

Tahapan-tahapan yang dilakukan penulis dalam proses encoding dalam paper ini adalah sebagai berikut.1. Membuat shift register dengan input value 0 dan 1 yang menghasilkan nilai current status, input value, output value, dan next status.2. Menerjemahkan shift register ke dalam bentuk state diagram.3. Melakukan encoding dengan contoh input bit stream acak menggunakan trellis diagram.

Dengan menggunakan output bit yang dihasilkan dari proses encoding, maka proses decoding dilakukan juga menggunakan diagram trellis dengan asumsi tanpa dan dengan error.

VI. Shift Register

Register adalah sebuah rangkaian digital yang memiliki dua fungsi utama, yaitu data storage dan data movement. Shift register menyediakan fungsi untuk data movement. Shift register adalah sekelompok flip flop yang dipasang secara linear dengan masukan dan keluaran yang saling disambungkan satu dengan yang lain, sehingga data akan digeser dari satu alat ke alat yang lain ketika rangkaian tersebut diaktifkan.

Dalam tulisan ini, shift register merupakan bentuk paling dekat dari implementasi fisik dari encoder. Shift register yang digunakan dalam tulisan ini hanya menggunakan pergeseran 2 bit register.

Berikut ini adalah shift register dengan input value 0 untuk current status 00, 01, 10, dan 11

Gambar 1. Shift Register dengan input value 0 untuk current status 00

Dari shift register dengan input value 0 untuk current status 00 di atas, didapatkan data berikut ini. Current Status= 00(warna biru pada shift register kiri) Input Value= 0 (warna merah pada shift register kiri) Output Value= 00 (warna hijau pada shift register kiri) Next status= 00 (warna biru pada shift register kanan)

Gambar 2. Shift Register dengan input value 0 untuk current status 01

Dari shift register dengan input value 0 untuk current status 01 di atas, didapatkan data berikut ini. Current Status= 01(warna biru pada shift register kiri) Input Value= 0 (warna merah pada shift register kiri) Output Value= 11 (warna hijau pada shift register kiri) Next status= 00 (warna biru pada shift register kanan)

Gambar 3. Shift Register dengan input value 0 untuk current status 10

Dari shift register dengan input value 0 untuk current status 10 di atas, didapatkan data berikut ini. Current Status= 10(warna biru pada shift register kiri) Input Value= 0 (warna merah pada shift register kiri) Output Value= 10 (warna hijau pada shift register kiri) Next status= 01 (warna biru pada shift register kanan)

Gambar 4. Shift Register dengan input value 0 untuk current status 11

Dari shift register dengan input value 0 untuk current status 11 di atas, didapatkan data berikut ini. Current Status= 11(warna biru pada shift register kiri) Input Value= 0 (warna merah pada shift register kiri) Output Value= 01 (warna hijau pada shift register kiri) Next status= 01 (warna biru pada shift register kanan)Dari shift register dengan input value 0 di atas, data-data yang didapatkan tersebut dikelompokkan ke dalam tabel berikut ini.

Tabel 1. Tabel shift register dengan input value 0Current StateNext State ( Output Value )

0000 ( 00 )

0100 ( 11 )

1001 ( 10 )

1101 ( 01 )

Selanjutnya, berikut ini adalah shift register dengan input value 1 untuk current status 00, 01, 10, dan 11.

Gambar 5. Shift Register dengan input value 1 untuk current status 00

Dari shift register dengan input value 1 untuk current status 00 di atas, didapatkan data berikut ini. Current Status= 00(warna biru pada shift register kiri) Input Value= 1 (warna merah pada shift register kiri) Output Value= 11 (warna hijau pada shift register kiri) Next status= 10 (warna biru pada shift register kanan)

Gambar 6. Shift Register dengan input value 1 untuk current status 01

Dari shift register dengan input value 1 untuk current status 01 di atas, didapatkan data berikut ini. Current Status= 01(warna biru pada shift register kiri) Input Value= 1 (warna merah pada shift register kiri) Output Value= 00 (warna hijau pada shift register kiri) Next status= 10 (warna biru pada shift register kanan)

Gambar 7. Shift Register dengan input value 1 untuk current status 10

Dari shift register dengan input value 1 untuk current status 10 di atas, didapatkan data berikut ini. Current Status= 10(warna biru pada shift register kiri) Input Value= 1 (warna merah pada shift register kiri) Output Value= 01 (warna hijau pada shift register kiri) Next status= 11 (warna biru pada shift register kanan)

Gambar 8. Shift Register dengan input value 1 untuk current status 11

Dari shift register dengan input value 1 untuk current status 11 di atas, didapatkan data berikut ini. Current Status= 11(warna biru pada shift register kiri) Input Value= 1 (warna merah pada shift register kiri) Output Value= 10 (warna hijau pada shift register kiri) Next status= 11 (warna biru pada shift register kanan)

Dari shift register dengan input value 1 di atas, data-data yang didapatkan tersebut dikelompokkan ke dalam tabel berikut ini.

Tabel 2. Tabel shift register dengan input value 1Current StateNext State ( Output Value )

0010 ( 11 )

0110 ( 00 )

1011 ( 01 )

1111 ( 10 )

VII. State Diagram

State diagram merupakan diagram yang digunakan untuk merepresentasikan state sebuah objek dengan tanda panah untuk menunjukkan perpindahan dari satu state ke state lainnya. Pada proses encoding, state yang digunakan dalam state diagram ini adalah current state, baik dengan input value 0 ataupun 1. Sementara tanda panah menunjukkan arah perpindahan state.

Sebelum membuat state diagram, state yang telah dihasilkan melalui shift register terlebih dahulu dirangkum menjadi satu untuk memudahkan proses pembuatan state diagram.

Tabel 3. Tabel shift register dengan input value 0 dan 1Current StateNext State ( Output Value )

If input value = 0If input value = 1

0000 ( 00 )10 ( 11 )

0100 ( 11 )10 ( 00 )

1001 ( 10 )11 ( 01 )

1101 ( 01 )11 ( 10 )

Dari tabel di atas, state diagram yang dihasilkan adalah sebagai berikut.

Gambar 9. State diagram dari binary code

Pada gambar di atas, perpindahan dilakukan dari current state menuju next state. Yang dituliskan pada garis perpindahan adalah input value / output value, artinya, jika pada garis tertulis 0/11, berarti input value = 0 dan output value = 11.VIII. Trellis Diagram Encoding

Dari state diagram, proses encoding dilanjutkan dengan menggunakan trellis diagram. Trellis diagram berbeda dengan state diagram, karena pada trellis diagram, perpindahan state disusun berdasarkan waktu t. Pada dasarnya trellis diagram dibangun menggunakan matriks dari simpul. Setiap simpul merepresentasikan masing-masing status pada state diagram. Setiap kolom dari simpul merepresentasikan semua kemungkinan status pada waktu tertentu. Sebagai contoh, kolom pertama (paling kiri) merepresentasikan semua kemungkinan status pada state awal (t=0) dari statemachine. Kolom kedua merepresentasikan semua kemungkinan status pada state t=1. Kolom ketiga merepresentasikan semua kemungkinan status pada state t=2. Dan seterusnya.

Setiap simpul dapat memiliki dua jalur yang mungkin untuk pindah ke status selanjutnya. Satu jalur adalah jalur transisi ketika input bit-nya 0 dan jalur lainnya adalah jalur transisi ketika input bit-nya 1.

Dengan menerapkan prosedur yang telah dijelaskan di atas, maka proses encoding akan dilakukan dengan contoh input bit stream 11011 dimasukkan ke dalam encoder. Berikut ini adalah trellis diagram yang dibuat untuk meng-encode input bit stream 11011

Gambar 10. Trellis Diagram untuk input bit stream 11011Proses encoding di atas dimulai dengan asumsi bahwa state pertama dimulai dengan nillai a=00. Penjelasan dari status pada setiap langkah trellis diagram di atas adalah sebagai berikut.

Langkah 1 :Current status : a = 00Encoding Rule: 0 --> 00, 1 --> 11Input to the status : 1 (1 bit)Output bit (sesuai dengan Econding Rule) : 11 (2 bits)Output Status : b = 10Langkah 2:Current status : b = 10 (hasil dari langkah sebelumnya)Encoding Rule: 0 --> 10, 1 --> 01Input to the status : 1 (1 bit)Output (sesuai dengan Econding Rule) : 01 (2 bits)Output Status : d= 11Langkah 3:Current status : d= 11 (hasil dari langkah sebelumnya)Encoding Rule: 0 --> 01, 1 --> 10Input to the status : 0(1 bit)Output (sesuai dengan Econding Rule) : 01 (2 bits)Output Status : c= 01Langkah 4:Current status : c= 01 (hasil dari langkah sebelumnya)Encoding Rule: 0 --> 11, 1 --> 00Input to the status : 1(1 bit)Output (sesuai dengan Econding Rule) : 00 (2 bits)Output Status : b= 10Langkah 5:Current status : c= 10 (hasil dari langkah sebelumnya)Encoding Rule: 0 --> 10, 1 --> 01Input to the status : 1(1 bit)Output (sesuai dengan Econding Rule) : 01(2 bits)Output Status : d= 01Econded Bits nya adalah gabungan dari output bits dari setiap langkah = 1101010001

IX. Trellis Diagram Decoding

Melalui trellis diagram, decoding dilakukan untuk mendapatkan input bit yang digunakan saat proses encoding. Adapun langkah-langkahnya adalah sebagai berikut.1. Mengasumsikan bahwa initial state dari encoder adalah 002. Dengan tetap memperhatikan state diagram untuk binary code, terdapat beberapa jalur kemungkinan, satu untuk input 0 dan satu untuk input 1.3. Jalur yang dihasilkan memberikan nilai received bit sesuai dengan output bit yang dihasilkan pada fase encoding. Setelah mendapatkan nilai received bit, maka langkah selanjutnya adalah memutuskan input bit mana yang menghasilkan output bit tersebut.

X. ReferensiLustenberger, F., Helfenstein, M., Moschytz, G., Loeliger, H., & Tarkoy, F. (n.d.). Allanalog decoder for a binary (18, 9, 5) tailbiting trellis code. Solid-State Circuits Conference, 1999. ESSCIRC99. Proceedings of the 25th European, 362365. Retrieved from http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1471171

10 | Page

00

01

10

11

1/11

1/01

0/01

0/11

1/00

0/10

0/00

1/10