TEORI INFORMASI DAN PENGKODEAN “Diagram Trellis”
OLEH : Dzul Fatuh Aprianto D411 14 025
DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS HASANUDDIN 2017
1
DAFTAR ISI DAFTAR ISI.....................................................................................................................................................ii BAB I PENDAHULUAN...............................................................................................................................1 1.1
Latar Belakang Masalah...................................................................................................................1
1.2
Rumusan Masalah.............................................................................................................................2
1.3
Batasan Masalah...............................................................................................................................2
1.4
Tujuan Penulisan...............................................................................................................................2
BAB II PEMBAHASAN.................................................................................................................................1 2.1
Channel Coding Dan Decoding........................................................................................................1
2.2
Convolutional Code..........................................................................................................................5
2.3.
Parameterisasi.................................................................................................................................10
2.4.
Struktur Kode Konvolusi................................................................................................................11
2.5.
Pengertian diagram Trellis...............................................................................................................12
2.6.
Langkah-Langkah Dalam Menggunakan Diagram Trellis:.............................................................12
BAB III PENUTUP.......................................................................................................................................20 III.1. Kesimpulan......................................................................................................................................20 III.2.
Saran...............................................................................................................................................20
DAFTAR PUSTAKA......................................................................................................................................21
2
BAB I PENDAHULUAN
1.1
Latar Belakang Masalah Komunikasi pada dasarnya proses untuk menyampaikan pesan dari suatu
tempat ke tempat yang lain, Komunikasi yang dikehendaki berupa data atau bit informasi yang dikirim sama dengan data atau bit informasi yang diterima. Suatu hal yang harus diperhatikan dalam proses pengiriman bit informasi adalah error yang sering timbul pada saat pengiriman bit informasi. Kemungkinan terjadinya error pada saat pengiriman cukup besar, sehingga dapat mengakibatkan bit informasi yang dikirimkan tidak sama dengan bit informasi yang diterima. Teori ini ditemukan oleh Claude E. Shannon (1916-2001) dia dikenal sebagai bapak dari teori informasi dengan konsep informasi dan information entropy. Cara
memperbaiki
error
tersebut
yaitu
dengan
menggunakan
Convolutional Code yang merupakan salah satu code yang bisa mendeteksi dan mengkoreksi error secara otomatis. Pengoreksi error ini lebih ditujukan pada sistem komunikasi digital, dimana informasi yang diolah dalam bentuk bit ini dikirimkan melalui suatu kanal. Suatu convolutional coding ini akan menghasilkan output yang nilainya bergantung
pada
input
bit
informasi
sebelumnya,
sehingga
dalam
implementasinya memerlukan memori. Decoding memproses urutan kata sandi yang diterima sehingga dihasilkan urutan perkiraan informasi yang diharapkan sama dengan urutan informasi asli. Salah satu teknik decoding pada convolutional 1
adalah dengan menggunakan struktur code trellis dan menentukan perkiraan kemiripan maksimum dari urutan yang ditransmisikan yang mempunyai matrik terkecil.
1.2
Rumusan Masalah Berdasarkan
latar
belakang
di
atas
maka
penulis
merumuskan
permasalahannya yaitu ingin mengetahui lebih jauh mengenai Diagram trellis digunakan dalam convolutional coding
1.3
Batasan Masalah Dalam tugas akhir ini pembahasan dibatasi pada hal-hal sebagai berikut :
1. Teknik channel coding dengan menggunakan convolutional coding 2. Convolutional code menggunakan trellis diagram.
1.4
Tujuan Penulisan Adapun tujuan pada tugas akhir ini adalah untuk mengetahui performansi
teknik channel coding dan decoding menggunakan convolutional code dan Diagram Trellis
2
BAB II PEMBAHASAN
2.1
Channel Coding Dan Decoding Untuk mengirimkan suatu informasi dari pengirim ke penerima, dilakukan
beberapa proses dahulu terhadap informasi tersebut. Salah satunya adalah proses channel coding. Tahapan proses channel coding dalam sistem transmisi dapat dilihat dalam diagram blok sistem transmisi berikut : Sumber informasi
Source Coding
Analog atau digital
Channel Coding
Modulator
Simbol digital
bandpass
Channel Analog atau digital Tujuan Informasi
Source Decoding
Baseband atau
Noise
Simbol digital Channel Demodulator Decoding
Gambar 2.1 Diagram Blok Sistem Transmisi
Channel coding berfungsi untuk menjaga informasi atau data digital dari error yang mungkin terjadi selama proses transmisi dengan cara menambahkan bit redundansi (tambahan) ke dalam data yang akan dikirimkan. Channel code yang digunakan untuk mendeteksi error disebut error detection code, sedangkan yang mampu untuk mengoreksi error disebut error correction code.
TRANSMITTER
x(t) for example, speech signal
Source Encoder
bits
Channel Coder
for example, 101
bits
Modulator
for example, 101110
s(t) sent across channel
Gambar 2.2 Channel Coding
Tujuan utama dari teknik error deteksi dan koreksi ini adalah untuk memperbaiki performansi sistem transmisi data digital. Dengan menambahkan bit redundansi ke dalam data yang akan dikirim maka akan meningkatkan rate transmisi atau dengan kata lain menambah bandwidth yang dibutuhkan jika data rate dari data aslinya diinginkan tetap. Channel coding beroperasi pada data digital dengan mengkodekan sumber informasi ke dalam urutan kode untuk ditransmisikan melalui kanal. Ada dua macam tipe dasar channel coding yaitu block code dan convolutional code. 1. Block Code
Block Code merupakan salah satu kode yang bersifat FEC (Forward Error Correction) yang mampu untuk mendeteksi dan mengkoreksi error tanpa meminta proses transmisi ulang. 2. Convolutional Code
Convolutional Code merupakan jenis kode yang memiliki perbedaan mendasar dari block code dimana urutan bit informasi tidak dikelompokkelompokkan dalam blok-blok yang berbeda sebelum dikodekan.
Channel Decoding berfungsi untuk memperkirakan input dari coding (informasi yang dikirimkan) dengan menggunakan aturan atau metoda tertentu yang menghasilkan kemungkinan jumlah error paling minimum. Dengan mengingat bahwa urutan bit kode memiliki hubungan khusus satu-satu dengan urutan bit informasinya. Urutan bit informasi dan kodenya secara unik dapat direpresentasikan pada trellis diagram.
RECEIVER
Demodulator bits
received from channel r(t) = s(t) + n(t)
Channel Decoder
for example, 101110
bits
Source Decoder
for example, 101
^x(t) speech signal
Gambar 2.3 Channel Decoding
2.2
Convolutional Code Convolutional code merupakan salah satu jenis kode yang bisa mendeteksi
dan mengoreksi error secara otomatis dan memiliki perbedaan mendasar dari block code dimana urutan bit informasi tidak dikelompok-kelompokkan dalam blok-blok yang berbeda sebelum dikodekan. Convolutional Code berbeda dari Block Code yaitu Convolutional Code dengan n output pengkode pada suatu waktu tertentu tidak hanya tergantung pada k input pada waktu itu tetapi tergantung juga m blok masukan sebelumnya. Convolutional Code (n, k, m) bisa diimplementasikan dengan suatu rangkaian linear k (input), n (output) dan m (memory). n dan k adalah bilangan bulat kecil
dengan rate kode yang didefinisikan R = k/n atau k < n, tetapi memory harus dibuat cukup besar untuk mencapai kemungkinan error terkecil. Dalam masalah khusus ketika k = 1, urutan pesan tidak dibagi menjadi blok-blok dan bisa diproses dengan terus-menerus. Convolutional code dengan batas panjang (constraint length) nA terdiri dari m tingkat shift register, n penjumlah modulus dua dan multiplekser untuk menserialkan keluaran pengkode menjadi urutan kode tunggal. Input data ke pengkode disebut urutan pesan, digeser ke dalam dan sepanjang shift register k bit satu kali waktu, dan output pengkode diperoleh dengan melakukan convolutional dari urutan pesan dan urutan pembangkit kode. Jumlah bit output untuk tiap k bit input adalah n bit, dengan kode ratenya Rc = k/n. Parameter N disebut panjang constraint dan menunjukkan jumlah bit data input. Convolutional Code ini dibentuk dengan menambah informasi tambahan (parity) berdasarkan bit inputan (
u u1 , u 2 ,...u i )
dan diconvolutionalkan dengan generator g
(i)
yang
sedang
diproses
untuk m kode data sebelumnya,
dimana m adalah panjang memory atau shift register dari kode. Jika panjang memory m, m maka jumlah state memory (isi memori) adalah 2 . Coding dalam convolutional ini merupakan suatu metode penyandian yang diterapkan pada data, dimana data tersebut mempunyai peluang untuk terganggu oleh Gaussian noise. Gaussian noise adalah suatu noise yang mempunyai distribusi normal. Convolutional coding menggunakan suatu shift register yang berhubungan dengan logika kombinatorial dengan menggunakan penjumlahan modulus dua.
Tabel 2.1 Tabel kebenaran penjumlahan modulus dua Input A
Input B
Output
0
0
0
0
1
1
1
0
1
1
1
0
Beberapa istilah dalam convolutional code adalah sebagai berikut :
1. Generator Matriks
Generator matriks untuk convolutional code adalah semi-finite karena panjang input adalah semi-finite.
2. Generator polynomial
Berfungsi untuk membangkitkan polynomial sesuai dengan urutan bit data input.
3. Logic Table
Tabel kebenaran berfungsi untuk menunjukan output dari coding jika diberi urutan bit input. 4. State Diagram
State diagram digunakan untuk merepresentasikan proses pengkodean yang berbentuk diagram sederhana. Diagram ini akan menunjukkan kemungkinan keadaan dan transisinya dari satu keadaan ke keadaan lainnya.
5. Tree Diagram
Menunjukan struktur coding dalam bentuk diagram pohon dengan cabangcabangnya menunjukan variasi keadaan dan output yang mungkin terjadi. 6. Trellis Diagram
Merupakan bentuk penyederhaan dari diagram pohon yang merupakan representasi dari output encoder jika diberi input secara lebih kompak. Pada convolutional code ini, bit data diberikan pada laju k = 1 bit per satuan waktu. Simbol output pada laju m = 2k = 2 simbol per satuan waktu. Bit input-nya akan stabil selama siklus pengkodean. Sebuah gambar akan membuatnya lebih jelas, jadi perhatikanlah Gambar 2.4 di bawah ini :
Convolutional coder
Block of k = 1 bit comes in
Block of n = 2 bits comes out stores current incoming bit
holds m = 2 previous bit sets of k = 1 bit
Gambar 2.4 Contoh pada Convolutional Code [carl, 2001].
Panah pada tampilan sebelah kiri dimana bit input dengan k = 1, bit input dalam 1 bit per satuan waktu. Kotak dengan garis petunjuk k = 1 bit berjalan ke dalam yang artinya untuk menampilkan 3 bit shift register. Rangkaian convolutional code di atas menggunakan pola C (2, 1, 2) dengan kode rate R = ½.
Time
Input bit
0
-
1
1
2
Shift register Contents
0
0
0
1
0
0
0
0
1
3
1
1
4
0
5
0
Output bits bit 1 bit 2
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
Gambar 2.5 Contoh Sistem Kerja Convolutional Code [carl, 2001]
Pada Gambar 2.5 sebelum dimulai pada time 0 di shift register-nya diberi bit 0 seluruhnya, untuk time 1 dimana input bit 1 diletakkan di posisi pertama pada shift register, selanjutnya 0 0 pada posisi kedua dan ketiga, jadi shift register-nya yaitu 1 0 0. Untuk hasil bit output pertama adalah 1 + 0 + 0 (Modulus 2) = 1 dan bit output kedua adalah 1 + 0 (modulus 2) = 1, jadi hasil bit output-nya 1 1, begitu seterusnya pada time berikutnya. Decoding dalam convolutional berfungsi untuk memperkirakan input dari coding (informasi yang dikirimkan) dengan menggunakan aturan atau
metoda tertentu yang menghasilkan kemungkinan jumlah error
(kesalahan) paling minimum. Dengan mengingat bahwa urutan bit kode memiliki hubungan khusus satu-satu dengan urutan bit informasinya. Urutan bit informasi dan kodenya secara unik dapat direpresentasikan pada
trellis diagram. Suatu data diconvolutionalkan kemudian ditransmisikan ke dalam noisy channel. Kode konvolusi merupakan kode non-blok dan lebih tepat untuk disebut dengan kode sekuensial. Karena sifatnya yang non-blok, kode ini sesuai untuk informasi yang panjang frame-nya tidak tentu (tidak terdefinisi). Nama kode konvolusi diambil dengan pertimbangan bahwa proses pengkodean dapat dianalogikan sebagai proses konvolusi dan dekoder akan melakukan proses dekonvolusi. Untuk merealisasikan fungsi konvolusi, sebagai konvolutor sering digunakan rangkaian “shift register” linear yang inputnya akan tergantung pada deretan sinyal input. Dari gam bar 1, ditunjukkan bahwa operasi dari encoder konvolusi sangat bergantung pada panjang bit yang mengubah output pada setiap periode (information frame), panjang register yang digunakan sebagai buffer (constrain length) dan rangkaian logika yang menentukan operasi pengkodeannya. Output proses tersebut adalah frame atau simbol yang telah dikodekan. Salah satu cara analisis sinyal pada kode konvolusi adalah menggunakan diagram pohon ( tree diagram) dimana akhirnya dekoder harus bisa melakukan pencarian untuk menemukan sinyal yang mempunyai pola runtutan yang melalui cabang yang seharusnya. Salah satu contoh pengkodean dengan cara itu adalah Viterbi.
2.3. Parameterisasi Agar mampu bekerja dengan kode konvolusi, maka diperlukan pemahaman tentang beberapa definisi dasar yang nantinya merupakan kunci pengembangan kode tersebut a. Sebuah kode tree(no,ko) adalah pemetaan dari elemen-elemen semi-finite (agak tak terbatas) GF(q) kepada dirinya sendiri,
sedemikian hingga untuk tiap N, bila dua deret semi-finite cocok dengan komponen Nko, maka peta dari deret tersebut juga akan cocok dengan komponen Nno. no= output frameword dan ko=input frame. b. Nk disebut dengan constrain length boleh terbatas dan boleh tidak terbatas. c. Kode mempunyai sifat time invariant, jika fungsinya tidak berubah karena adanya pergeseran waktu. d. Kode mempunyai sifat linear jika fungsi dari dua sequence merupakan pemjumlahan dari fungsi masing-masing sequence. e. Kode
disebut
systematic
jika
kode
tersebut
setiap
frame
informasinya terlihat tidak berubah sepanjang simbol pertama (ko) dari frame codeword (output) yang dihasilkannya.
2.4. Struktur Kode Konvolusi Struktur kode konvolusi (n,k,m), dimana n adalah output encoder, k adalah input dan m adalah memori. Jadi struktur kode konvolusi (n,k,m) dapat diimplementasikan dalam bentuk encoder dengan k jumlah masukan, n keluaran rangkaian sequensial linier dengan panjang memori m. Dimana n dan k adalah bilangan bulat kecil dengan k < n, sementara m harus dibuat besar untuk mencapai probability error yang rendah. Pada kondisi k = 1, deretan informasinya tidak diproses secara blok-blok melainkan dapat diproses secara kontinyu.
2.5. Pengertian diagram Trellis
Trellis
diagram juga merupakan salah satu cara untuk
merepresentasikan proses encoder. Diagram ini biasanya digunakan untuk
memudahkan
dalam proses
decoding.
Gambar
2.12
menunjukkan skema trellis diagram untuk rangkaian pada Gambar 2.10. Input encoder untuk bit ‘1’ ditandai dengan garis putus-putus (dash line) sedangkan input bit ‘0’ ditandai dengan garis penuh (solid line). Output encoder pada interval waktu tertentu dinyatakan oleh nilai 2 bit yang berada pada garis tersebut. Dari Gambar 2.2 tampak bahwa untuk input 0 atau 1 pada interval waktu ke-n dimana
n >
K , encoder akan menghasilkan output antara 00 atau 11, 11 atau 00, 10 atau 01, dan 01 atau 10. Output yang dihasilkan tergantung pada bit input sebelumnya, yaitu saat interval waktu ke n-1.
2.6. Langkah-Langkah Dalam Menggunakan Diagram Trellis: Ada banyak cara yang berbeda untuk mewakili proses untuk kode convolutional akan tetapi berikut tiga metode adalah representasi paling umum yang sering digunakan dalam setiap proses encoding / decoding.
Bergeser Register
Negara Diagram
Trellis Diagram
Tentukan Shift Register
Nilai Register Nilai dalam register geser = 00 (Diagram di sebelah kiri ) Nilai masukan= 0 (Diagram di sebelah kiri - Red) Nilai output= 00 (Diagram di sebelah kiri - Hijau) Nilai dalam register geser setelah encoding= 00 (Diagram di sebelah kanan Biru)
Setelah itu lakukan penggesar register dengan nilai berbeda : Nilai dalam register geser= 01 (Diagram di sebelah kiri - Blue) Nilai masukan= 0 (Diagram di sebelah kiri - Red)
Nilai output= 11 (Diagram di sebelah kiri - Hijau) Nilai dalam register geser setelah encoding 00 (Diagram di sebelah kanan Biru)
Sama halnya dengan langkah di atas namun nilai dalam rgister berbeda : Nilai dalam register geser= 10 (Diagram di sebelah kiri - Blue) Nilai masukan= 0 (Diagram di sebelah kiri - Red) Nilai output= 10 (Diagram di sebelah kiri - Hijau) Nilai dalam register geser setelah encoding =01 (Diagram di sebelah kanan Biru)
Nilai dalam register geser= 11 (Diagram di sebelah kiri - Blue) Nilai masukan= 0 (Diagram di sebelah kiri - Red) Nilai output= 01 (Diagram di sebelah kiri - Hijau) Nilai dalam register geser setelah encoding= 01 (Diagram di sebelah kanan Biru)
Nilai dalam register geser = 00 (Diagram di sebelah kiri - Blue) Nilai masukan = 1 (Diagram di sebelah kiri - Red) Nilai output = 11 (Diagram di sebelah kiri - Hijau)
Nilai dalam register geser setelah encodin= 10 (Diagram di sebelah kanan Biru)
Nilai dalam register geser = 01 (Diagram di sebelah kiri - Blue) Nilai masukan= 1 (Diagram di sebelah kiri - Red) Nilai output = 00 (Diagram di sebelah kiri - Hijau) Nilai dalam register geser setelah encoding =10 (Diagram di sebelah kanan Biru)
Nilai dalam register geser = 10 (Diagram di sebelah kiri - Blue) Nilai masukan = 1 (Diagram di sebelah kiri - Red) Nilai output = 01 (Diagram di sebelah kiri - Hijau)
Nilai dalam register geser setelah encoding)? -> 11 (Diagram di sebelah kanan - Biru)
Nilai dalam register geser = 11 (Diagram di sebelah kiri - Blue) Nilai masukan = 1 (Diagram di sebelah kiri - Red) Nilai output = 10 (Diagram di sebelah kiri - Hijau) Nilai dalam register geser setelah encoding)? -> 11 (Diagram di sebelah kanan - Biru)
Buat Diagram State
Setelah dua adalah proses encoding yang sama. (Deskripsi adalah transisi) di bagian sebelumnya)
Setelah dua adalah proses encoding yang sama. (Deskripsi adalah transisi e) di bagian sebelumnya)
Setelah itu terbantuklah Tabel kebenaran
Jika di beri Input = 0
Jika di beri Input= 1
Next State ( Output)
Next state (Output)
Cuurent state
00
00(00)
10(11)
01
00(11)
10(00)
10
01(10)
11(01)
11
01(01)
11(10)
Setelah itu buatlah diagram state
Diagram teralis
Pada dasarnya Trellis Diagram terdiri dari matriks node (Blue diisi lingkaran yang ditunjukkan di bawah). Setiap node mewakili setiap status dalam diagram status. Setiap kolom node mewakili semua status yang mungkin pada waktu tertentu. Misalnya, kolom pertama (Colum paling kiri mewakili semua status mungkin pada status awal (t = 0) dari StateMachine tersebut. Kolom kedua mewakili semua th Status mungkin saat t = 1. Kolom ketiga mewakili semua th mungkin status saat t = 2 dan seterusnya.
Masing-masing node dapat memiliki dua kemungkinan jalan untuk pindah ke status di samping. Salah satu jalan adalah jalan transisi ketika bit masukan adalah 0 dan jalan lainnya adalah jalan transisi ketika bit input 1. jalan ketika bit input = 0 ditandai di garis merah dan jalan ketika bit input = 1 adalah ditandai dengan garis biru.
Jika StateMachine dimulai dengan '00', semua kemungkinan keadaan transisi dapat direpresentasikan sebagai berikut. Ikuti setiap panah hijau (garis putusputus) dan mencoba untuk assosicate yang StateMachine dan diagram Teralis.
Untuk mewakili proses dengan cara sederhana, mari kita mengambil contoh dari transisi single pertama. langkah-langkah penafsiran di Q & bentuk A. Kita berasumsi bahwa Diagram state adalah pada t = 0 (status awal) dan bit statusnya adalah '00'.
Apa bit status? -> 00 (mengikuti garis hijau ditandai sebagai (1))
Apa bit input? -> '1' (Input bit pada t = 0 diberikan sebagai '1' ditampilkan di bagian bawah di kotak merah).
Ada dua jalan keluar status '00'. Jalan yang harus kita ikuti? -> Ikuti jalan ditandai panah hijau (mengikuti garis hijau ditandai sebagai (2))-.>
Apa output dari transisi ini 11. (mengikuti garis hijau ditandai sebagai (3))
Apa adalah status berikutnya? -> 10 (mengikuti garis hijau ditandai sebagai (4))
BAB III PENUTUP III.1. Kesimpulan Berdasarkan uraian di atas dapat di tarik kesimpulan :
Channel coding berfungsi untuk menjaga informasi atau data digital dari error yang mungkin terjadi selama proses transmisi dengan cara menambahkan bit redundansi (tambahan) ke dalam data yang akan
dikirimkan Convolutional code merupakan salah satu jenis kode yang bisa mendeteksi
dan mengoreksi error secara otomatis Trellis diagram juga merupakan salah satu cara untuk merepresentasikan proses encoder. Diagram ini biasanya digunakan untuk memudahkan
dalam proses decoding Ada banyak cara yang berbeda untuk mewakili proses untuk kode convolutional Yaitu :Shift Register, Negara Diagram, Trellis Diagram
III.2. Saran Menyadari bahwa penulis masih jauh dari kata sempurna, kedepannya penulis akan lebih fokus dan details dalam menjelaskan tentang makalah di atas dengan sumber - sumber yang lebih banyak yang tentunya dapat di pertanggung jawabkan.
DAFTAR PUSTAKA Emiyati, Islam dan suhermanto, ”Penggunaan Convolutional Coding pada Telemetry Channel Coding", TIS 123-131, Lembaga Penerbangan dan Antariksa Nasional, Jakarta, 2005Fatryana, inggi rizki . 2013. Teknik pengkodean encoder dan decoder kode konvolusi. Surabaya: Poltek Negeri Srabaya. G Lin, Shu, & Costello, Jr., Daniel J. 1983. Error Control Coding: Fundamentals and Applications. Englewood Cliffs, New Jersey: Prentice-Hall.
Purnamirza Teddy, ST, MEng . 2007. Channel Coding dan DecodingConvolutional Coding. Malang : Ar-Ruz Media Rina, Riati. 2010. Tugas Akhir Analisa Kinerja Kode Konvolusi Pada Sistem Successive Interference Cancellation Multi User Detection CDMA Berbasis Lunak. Surabaya : PENS-ITS.