TUGAS AKHIR ANALISA PERFORMANSI PENGKODEAN REED SOLOMON DAN KONVOLUSIONAL PADA SINYAL VIDEO DI KANAL ADDITIVE WHITE GAUSSIAN NOISE (AWGN) Diajukan Guna Melengkapi Sebagian Syarat Dalam Mencapai Gelar Sarjana Strata Satu (S1)
Disusun Oleh : Nama NIM Jurusan Peminatan Pembimbing
: : : : :
Nurokhmah 4140411-030 Teknik Elektro Telekomunikasi Dr. Ing. Mudrik Alaydrus
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2007 i
LEMBAR PERNYATAAN
Yang bertandatangan di bawah ini,
Nama
: Nurokhmah
NIM
: 4140411-030
Jurusan
: Teknik Elektro
Fakultas
: Teknik Industri
Judul Skripsi : Analisa Performansi Pengkodean Reed Solomon Dan Konvolusional Pada Sinyal Video Di Kanal Additive White Gaussian Noise (AWGN)
Dengan ini menyatakan bahwa hasil penulisan Skripsi yang telah saya buat ini merupakan hasil karya sendiri dan benar keasliannya. Apabila ternyata di kemudian hari penulisan Skripsi ini merupakan hasil plagiat atau penjiplakan terhadap karya orang lain, maka saya bersedia mempertanggungjawabkan sekaligus bersedia menerima sanksi berdasarkan aturan tata tertib di Universitas Mercu Buana.
Demikian pernyataan ini saya buat dalam keadaan sadar dan tidak dipaksakan.
Penulis,
[Nurokhmah]
ii
LEMBAR PENGESAHAN
ANALISA PERFORMANSI PENGKODEAN REED SOLOMON DAN KONVOLUSIONAL PADA SINYAL VIDEO DI KANAL ADDITIVE WHITE GAUSSIAN NOISE (AWGN)
Disusun Oleh : Nama NIM Program Studi Peminatan
: : : :
Nurokhmah 4140411-030 Teknik Elektro Telekomunikasi
Menyetujui,
Koordinator TA
Pembimbing
(Dr. Ing. Mudrik Alaydrus)
(Yudhi Gunardi, ST, MT)
Mengetahui, Ketua Program Studi Teknik Elektro
(Ir. Budi Yanto, MSc) iii
ABSTRAK Pengiriman sinyal video pada kanal radio akan menimbulkan error random yang bersifat burst dan terdistribusi secara acak. Pemakaian kode konvolusi yang memungkinkan transmisi ulang dalam pengoreksian kesalahan hal itu masih sering digunakan untuk meminimalisasi tingkat kesalahan. Penambahan block code Reed Solomon sebagai salah satu kode yang bersifat Forward Error Control mampu untuk mendeteksi dan mengkoreksi error yang muncul secara acak dan tak terduga (bursty) dan biasanya digunakan pada sistem koding gandeng. Pada Tugas Akhir ini akan dilakukan pengamatan performansi pengiriman sinyal video AVI pada kanal AWGN terhadap pemakaian gabungan block code Reed Solomon dengan kode Konvolusional, sedangkan teknik modulasi yang digunakan yaitu modulasi QPSK. Simulasi menggunakan program MATLAB 7.1
iv
DAFTAR ISI Halaman Judul ………………………………………………………....... Halaman Pernyataan …………………………………………………….. Halaman Pengesahan ……………………………………………………. Abstrak …………………………………………………………………... Kata Pengantar …………………………………………………………… Daftar Isi …………………………………………………………………. Daftar Gambar …………………………………………………………… Daftar Tabel ……………………………………………………………… BAB I
PENDAHULUAN 1.1 Latar Belakang ……………………………………………... 1.2 Tujuan ……………………………………………………… 1.3 Perumusan Masalah ……………………………………….. 1.4 Batasan Masalah …………………………………………… 1.5 Metode Penelitian Masalah ………………………………... 1.6 Sistematika Penulisan ……………………………………...
BAB II DASAR TEORI 2.1 Sinyal Video ………………………………………………. 2.1.1 Video AVI …………………………………………… 2.2 Channel Coding ………………………………………….... 2.2.1 Block Code ………………………………………….. 2.2.1.1 Hamming Code ……………………………… 2.2.1.2 Hadamard Code ……………………………… 2.2.1.3 Golay Code ………………………………….. 2.2.1.4 Cyclic Code …………………………………. 2.2.1.5 BCH Code …………………………………... 2.2.1.6 Reed Solomon Code ………………………… 2.2.2 Convolutional Code ………………………………… 2.2.3 Algoritma Viterbi …………………………………… 2.2.4 Teknik Modulasi QPSK …………………………….
i ii iii iv v vii ix x
1 1 1 2 2 3
4 4 5 7 9 9 9 10 10 11 12 14 15
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI 3.1 Konsep Kode Reed Solomon …………………………….. 18 3.1.1 Aritmatika Galois Field …………………………….. 19 3.1.2 Pembentukan GF(2m) ………………………………. 19 3.1.3 Enkode Reed Solomon ……………………………... 20 3.1.4 Dekode Reed Solomon …………………………….. 22 3.1.4.1 Komputasi Sindrom ………………………… 22 3.1.4.2 Penentuan Polinomial Lokasi Kesalahan …… 22
vii
3.1.4.3 Menentukan Posisi Kesalahan ……………… 3.1.4.4 Menghitung Mgnitude ……………………… 3.1.4.5 Koreksi Kesalahan …………………………. 3.2 Konsep Kode Konvolusi …………………………………. 3.2.1 Encoder Konvolusional ……………………………. 3.2.2 Decoder Konvolusional ……………………………. 3.3 Konsep Interleaver ………………………………………. 3.4 Perhitungan Bit Error Rate ……………………………….
22 23 23 24 24 26 27 27
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB 4.1 Perancangan Sistem ……………………………………… 28 4.2 Simulasi Program ………………………………………… 30 4.2.1 Bagian Pengiriman Data …………………………… 30 4.2.2 Kanal Radio ………………………………………… 31 4.2.3 Bagian Penerimaan Data …………………………… 32 4.3 Analisa Performansi Channel Coding …………………… 33 4.3.1 Tanpa Menggunakan Channel Coding …………….. 34 4.3.2 Menggunakan Pengkodean Konvolusional ………... 35 4.3.3 Menggunakan Pengkodean Reed Solomon ……….. 35 4.3.4 Menggunakan Pengkodean Reed Solomon dan Konvolusional ……………………………………… 37 4.4 Simulasi Pengiriman Sinyal Video AVI ………………… 38 BAB V KESIMPULAN ………………………………………………
45
DAFTAR PUSTAKA ………………………………………………….
xi
LAMPIRAN
viii
DAFTAR GAMBAR
Halaman Gambar 2.1
Diagram Blok Sistem Transmisi
5
Gambar 2.2
Struktur sebuah codeword
11
Gambar 3.1
Sebuah codeword Reed Solomon
18
Gambar 3.2
Struktur encoder konvolusional C(2,1,2), rate ½
24
Gambar 3.3
Struktur Diagram Trellis untuk konvolusi C(2,1,2)
25
Gambar 3.4
Proses code rate ½
26
Gambar 3.5
Proses Interleaving
27
Gambar 4.1
Flowchart Program
29
Gambar 4.2
Grafik Eb/No terhadap BER pada kanal AWGN tanpa channel coding
Gambar 4.3
Grafik Eb/No terhadap BER pada kanal AWGN Menggunakan pengkodean konvolusional
Gambar 4.4
35
Grafik Eb/No terhadap BER pada kanal AWGN Menggunakan pengkodean Reed Solomon
Gambar 4.5
34
36
Grafik Eb/No terhadap BER pada kanal AWGN Menggunakan pengkodean Reed Solomon dan Konvolusional
37
Gambar 4.6
Simulasi video AVI tanpa channel coding
39
Gambar 4.7
Simulasi video AVI menggunakan kode konvolusional 40
Gambar 4.8
Simulasi video AVI menggunakan kode Reed Solomon 42
Gambar 4.9
Simulasi video AVI menggunakan kode Reed Solomon dan Konvolusional
43
ix
DAFTAR TABEL
Halaman Tabel 2.1
Field AVI (Audio Video Interleave)
4
Tabel 2.2
Parameter Reed Solomon
12
Table 3.1
Berbagai representasi sebuah elemen GF(23)
20
Tabel 4.1
Parameter video AVI pada simulasi
38
Table 4.2
Perhitungan BER jika tanpa channel coding
39
Table 4.3
Perhitungan BER jika menggunakan pengkodean Konvolusional
Table 4.4
Perhitungan BER jika menggunakan pengkodean Reed Solomon
Table 4.5
41
41
Perhitungan BER jika menggunakan pengkodean Reed Solomon dan Konvolusional
43
x
BAB I PENDAHULUAN 1.1
Latar Belakang Unjuk kerja suatu sistem komunikasi dapat dievaluasi dari jumlah error
yang timbul pada saat pengiriman informasi. Error ini mungkin timbul akibat derau, dan interferensi yang merusak data informasi yang dikirimkan. 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 codes, sedangkan yang juga mampu untuk mengkoreksi kesalahan tersebut disebut error correction code. 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.2
Tujuan Tugas Akhir ini disusun untuk menganalisa performansi channel coding,
yaitu gabungan kode Reed Solomon, sebagai block code dan Convolutional code pada pengiriman data video. Simulasi penginterferensi diwakili oleh AWGN dengan menggunakan software Matlab 7.1.
1.3
Perumusan Masalah Pengiriman video digital melalui jaringan paket switch dipastikan akan
mengalami penurunan kualitas, seperti paket loss dan bit error. Teknik pengkodean Reed Solomon yang banyak digunakan untuk mengatasi gangguan propagasi pada sistem transmisi digital, belum sepenuhnya melindungi data video dari paket loss maupun bit error. Permasalahan ini dapat diminimalisasi dengan menggabungkan skema pengkodean Forward error correction (FEC), yaitu Reed-Solomon (RS) dan
BAB I PENDAHULUAN
Convolutional Code. Channel coding tersebut diharapkan mampu mengatasi random error yang muncul yang diakibatkan oleh gangguna kanal. Sedangkan untuk mengatasi burst error karena multipath fading biasanya convolutional code masih perlu digandengkan dengan rangkain interleaver.
1.4
Batasan Masalah
Agar analisa lebih terarah dan tujuan penulisan bisa tercapai, maka dalam tugas akhir ini perlu adanya batasan masalah yaitu sebagai berikut : 1. Format data informasi yang dipakai yaitu video avi 2. Tidak membahas kompresi dan dekompresi file video.. 3. Mendefinisikan bit error yang muncul di jalur komunikasi dari sisi transmisi sampai ke penerima 4. Informasi akan dilewatkan pada Kanal Additive White Gaussian Noise (AWGN) sebagai pengukur tingkat error yang muncul. 5. Modulasi dan demodulasi menggunakan QPSK dan dilakukan secara koheren.
1.5
Metode Penelitian Masalah
Dalam penulisan dan analisa ini penulis menggunakan beberapa metode untuk menyelesaikan masalah yang ada, antara lain : 1. Studi literatur Merupakan kegiatan pembelajaran materi melalui berbagai sumber pustaka baik berupa buku maupun jurnal ilmiah. 2. Tahap pembuatan model simulasi Pada tahapan ini dilakukan pembuatan model sistem berdasarkan referensi yang diperoleh dari tahapan pertama. 3. Simulasi Pada tahap ini dilakukan simulasi sistem dengan parameter yang telah ditentukan. Simulasi menggunakan software M-FILE Matlab 7.
2
BAB I PENDAHULUAN
4. Analisis Hasil Simulasi Pada tahapan ini dilakukan analisis dari hasil simulasi sehingga didapatkan kesimpulan.
1.6
Sistematika Penulisan Sistematika penulisan tugas akhir sebagai berikut : BAB I
PENDAHULUAN Bab ini membahas secara singkat latar belakang permasalahan, perumusan masalah, batasan masalah, maksud dan tujuan, metode penelitian, dan sistematika penulisan.
BAB II DASAR TEORI Bab ini berupa penjelasan teori dasar secara umum mengenai Konsep data video AVI, kode Reed-Solomon, interleaver, kode konvolusi, dan modulasi serta demodulasi QPSK.
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI Bab ini membahas konsep penggabungan kode Reed-Solomon serta konvolusi pada transmisi sinyal video serta penerapannya pada sistem.
BAB IV ANALISIS HASIL SIMULASI Bab ini membahas perancangan program, serta analisis dari hasil simulasi
BAB V PENUTUP Bab ini berisi kesimpulan dan saran.
3
BAB II DASAR TEORI
2.1 Sinyal Video Ada dua konsep pengiriman video melalui internet, yaitu pengiriman file video download dan video streaming. Konsep pertama file streaming di-download ke mesin lokal kemudian dapat dimainkan dengan menggunakan program aplikasi standar. Hal itu hanya memerlukan mekanisme pengiriman yang sederhana, contohnya Transmission Control Protocol.
Konsep ini memerlukan media
penyimpanan yang mungkin cukup besar dan tentunya waktu pengiriman yang tidak semestinya. Konsep kedua yaitu video streaming dimana proses pengiriman data terusmenerus secara simultan dan dilakukan secara broadcast melalui Internet untuk ditampilkan oleh aplikasi streaming pada klien. Paket-paket data yang dikirimkan telah dikompresi untuk memudahkan pengirimannya melalui Internet. Data tersebut dapat dimainkan selama proses pengiriman tanpa disimpan terlebih dahulu.
2.1.1
Video AVI Audio Video Interleave adalah suatu format file RIFF (Resource
Interchange File Format) yang diperkenalkan oleh microsoft. Dalam satu file video AVI tersusun atas beberapa blok atau frame. Masing-masing blok tersusun atas field. Program MATLAB akan membaca file video AVI dalam field cdata dan field colormap, Isi field tersebut tergantung tipe gambarnya,seperti sebagai berikut : Tabel 2.1 : Field AVI Tipe gambar
cdata
Colormap
Truecolor
Panjang x lebar x 3
Kosong
indexed
Panjang x lebar
m x 3, m=indeks
BAB II DASAR TEORI
Untuk mentransmisikan suatu video AVI, field yang berupa kode ASCII dikonfersikan terlebih dahulu ke dalam bentuk binary. Dimana format 8-bit untuk tipe gambar indexed atau grayscale, 16-bit untuk grayscale, dan 24-bit untuk truecolor. 2.2 Channel Coding Dalam komunikasi sistem digital, 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 Encoder
Channel Encoder
Noise Penerima Informasi
Source Decoder
Channel Decoder
Modulator
Kanal Demodulator
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 codes, sedangkan yang juga mampu untuk mengkoreksi kesalahan tersebut disebut error correction code. Menurut Shannon, error yang terjadi akibat induksi kanal ataupun media penyimpanan yang bersifat noisy dapat ditekan mencapai level tertentu tanpa mengorbankan rate transmisi informasi atau rate penyimpanan dengan menerapkan suatu mekanisme pengkodean pada informasi. Teori Shannon ini dapat direpresentasikan dalam formula :
5
BAB II DASAR TEORI
C = B log2 (1 + P/NoB ) = B log2 ( 1 + S/N )
(2.1)
dimana C adalah kapasitas kanal (bps), B adalah bandwidth transmisi (Hz), P adalah daya sinyal yang diterima (watt), dan No adalah single sided noise power density (watt/Hz). Daya yang diterima oleh receiver adalah sebesar : P = EbRb
(2.2)
dimana Eb adalah energi rata-rata tiap bit, dan Rb adalah bit rate transmisi. Dengan mensubstitusikan persamaan (2) ke persamaan (1) maka akan didapat : C/B = log2 (1 + EbRb/NoB )
(2.3)
dimana C/B adalah efisiensi bandwidth. Tujuan utama dari teknik error deteksi dan koreksi ini adalah untuk memperbaiki performansi sistem transmisi data digital. Dengan menambahkan bit redundansi kedalam 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. Hal ini berarti akan mengurangi efisiensi bandwidth jika kondisi SNR yang diinginkan tetap tinggi. Tetapi dengan channel coding, akan dihasilkan BER (bit error rate) yang baik pada kondisi SNR yang rendah. Inilah yang menjelaskan teori Shannon, yaitu bagaimana caranya memperbaiki error tanpa mengorbankan bit rate yaitu dengan bekerja pada SNR yang cukup rendah tetapi BER yang dihasilkan tetap baik (kecil). Channel coding beroperasi pada data digital dengan mengkodekan sumber informasi ke dalam urutan kode untuk ditransmisikan melalui kanal. sedangkan untuk mengatasi burst error karena multipath fading biasanya channel coding digandengkan dengan rangkaian interleaver. Ada dua macam tipe dasar channel coding yaitu block code dan convolutional code.
6
BAB II DASAR TEORI
2.2.1
Block Code Block code merupakan salah satu kode yang bersifat forward error
correction (FEC) yang mampu untuk mendeteksi dan mengkoreksi error tanpa meminta proses transmisi ulang. Block Code dapat digunakan untuk meningkatkan performansi sistem komunikasi jika cara lain seperti dengan meningkatkan daya atau menggunakan demodulator yang rumit dan mahal menjadi tidak praktis lagi. Pada block code, sejumlah bit pariti ditambahkan pada bit informasi sehingga terbentuk sebuah codeword atau kode block. Pada bagian pengirim, sejumlah k bit informasi dikodekan kedalam n code bit. Dengan demikian jumlah bit redundansi yang ditambahkan pada data informasinya ada sebanyak n-k bit untuk digunakan pada proses deteksi dan koreksi error yang mungkin terjadi. Block code yang dihasilkan dapat direpresentasikan dalam bentuk (n,k) code, dan rate dari kode tersebut adalah sebesar Rc = k/n yang sebanding dengan rate transmisi dibagi dengan rate kanal. Kemampuan block code untuk mengkoreksi error yang timbul merupakan fungsi dari jarak kode (code of a distance). Selain kedua parameter code rate dan jarak kode, parameter penting lainnya adalah weight of a code. •
Distance of a code (jarak kode)
Jarak dari codeword adalah jumlah elemen diantara dua codeword Ci dan Cj yang berbeda.
(2.4) dimana d adalah jarak codeword, q adalah jumlah kemungkinan nilai dari Ci, dan Cj. Jika menggunakan kode biner, jarak tersebut dikenal sebagai jarak Hamming. Jarak minimum (dmin) adalah jarak terkecil diantara dua kode tersebut dan dinyatakan dengan :
7
BAB II DASAR TEORI
dmin = Min{d(Ci,Cj)} •
(2.5)
Weight of a code (bobot kode)
Weight of a code adalah nilai bobot dari codeword yaitu jumlah dari elemen bukan nol sepanjang codeword. Untuk kode biner, maka weight of code adalah jumlah bit 1 dalam codeword tersebut.
(2.6) Sifat-sifat block code adalah sebagai berikut: a. Linearity Misalkan Ci dan Cj adalah dua codeword didalam (n,k) block code. Ambil a
1
dan a
2
adalah dua nilai sembarang. Kode dikatakan linier jika dan
hanya jika a 1C1+a 2C2 juga adalah codeword. b. Systematic Suatu kode dikatakan sistematik jika satu diantara bit-bit paritinya berfungsi sebagai penanda akhir dari suatu deretan informasi yang dikirimkan. Untuk (n,k) code, k bit pertama identik dengan bit informasi, dan n-k bit tiap codewordnya adalah kombinasi linier dari k bit informasinya. c. Cyclic Cyclic code adalah bagian dari kode linier yang mengikuti sifat cyclic shift. Jika C = (Cn-1,Cn-2,....,C0) adalah codeword dari suatu cyclic code, maka (Cn-2, Cn-3,....,C0,Cn-1) yang merupakan cyclic shift dari C adalah juga codeword. Karena itu semua cyclic shift dari C adalah codeword.
8
BAB II DASAR TEORI
Beberapa teknik pengkodean block code yang sudah dikenal dapat dijelaskan secara singkat berikut ini. 2.2.1.1 Hamming Code Hamming code merupakan kode nontrivial untuk koreksi error yang pertama kali diperkenalkan. Kode ini dan variasinya telah lama digunakan untuk error control pada sistem komunikasi digital. Hamming code ini ada dua macam yaitu binary dan nonbinary Hamming code. Binary Hamming code dapat direpresentasikan dalam bentuk persamaan berikut : (n,k) = (2m-1, 2m-1-m) (1.7)
(2.7)
dimana k adalah jumlah bit informasi yang membentuk n bit codeword, dan m adalah bilangan bulat positif. Jumlah bit paritinya adalah sejumlah m = n-k bit.
2.2.1.2 Hadamard Code Hadamard code adalah teknik coding dengan cara memilih baris dari matriks Hadamard sebagai codeword. Matriks Hadamard A adalah matriks NxN dimana jumlah bit 1 dan 0 untuk tiap barisnya berbeda dari baris lainnya pada N/2 lokasi. Satu baris dari matriks ini terdiri 0 semua sedangkan sisanya terdiri dari 0 untuk N/2 baris dan 1 untuk N/2 baris.
Untuk N = 2, maka matriks Hadamard-nya adalah :
(2.8) 2.2.1.3 Golay Code Golay code merupakan kode biner linier yang mempunyai jarak kode minimum (dmin) sebesar 7 dan memiliki kemampuan untuk mengkoreksi error sebanyak 3 bit untuk setiap codeword-nya.
9
BAB II DASAR TEORI
2.2.1.4 Cyclic Code Cyclic code adalah jenis kode linier yang memenuhi sifat cyclic seperti telah dijelaskan diatas. Cyclic code dapat dihasilkan dengan menggunakan generator polinomial dengan orde (n-k). Generator polinomial (n,k) Cyclic code adalah faktor pn + 1 dan memiliki bentuk umum : g(p) = pn-k + gn-k-1 pn-k-1 + .........+ g1p + 1
(2.9)
sedangkan informasi yang dibawa dapat dinyatakan dalam bentuk polinomial x(p) : x(p)= xk-1pk-1 + .......+ x1p + x0
(2.10)
dimana (xk-1, ........, x0) menunjukkan k bit-bit informasinya. Maka codeword yang dihasilkan adalah
c(p) = x(p)g(p)
(2.11)
dimana c(p) adalah polinomial yang memiliki orde lebih kecil dari n. Sebagai pembangkit pariti biasanya adalah digunakan linier feedback shift register.
2.2.1.5 BCH Code BCH code adalah merupakan jenis block code yang penting karena mampu bekerja pada rentang rate yang lebar dan memiliki coding gain yang besar. Panjang dari block code ini adalah n = 2m-1 untuk m = 3 dan jumlah error yang dapat dikoreksi berada pada nilai t < (2m-1)/2. Kode biner BCH juga dapat digunakan untuk membuat jenis kode nonbiner yang menggunakan m bit persimbolnya. Salah satu jenis kode nonbiner BCH yang paling terkenal adalah kode Reed Solomon. Kode Reed Solomon ini pertama kali digunakan pada U.S. Cellular Digital Packet Data (CDPD) yang menggunakan m = 6 bit untuk setiap simbolnya.
10
BAB II DASAR TEORI
2.2.1.6 Reed Solomon Code Kode Reed Solomon merupakan jenis kode nonbiner yang mampu mengkoreksi error yang muncul secara acak dan tak terduga (bursty) dan biasanya digunakan pada sistem koding gandeng. Panjang block code ini adalah n = 2m-1. Panjang kode ini dapat dinaikkan menjadi 2m atau 2m+1. Jumlah simbol pariti yang harus ditambahkan untuk mengkoreksi sejumlah error t adalah n-k = 2t. Jarak minimum kode ini adalah dmin = 2t+1. Kode Reed Solomon banyak digunakan pada sistem karena efisiensi dan kemampuan mengkoreksi tidak hanya kesalahan acak tetapi juga kesalahan burst, antara lain pada perngkat penyimpanan (misal tape, Compact Disc, DVD, barcode, dll), komunikasi bergerak (termasuk komunikasi seluler), komunikasi satelit, televisi digital (DVB), dan modem kecepatan tinggi seperti ADSL, dan xDSL. Kode Reed Solomon adalah sub kelas dari kode BCH nonbiner dan merupakan kode siklis yang berbasis simbol. Bagian struktur sebuah codeword Reed Solomon :
Gambar 2.2 Struktur sebuah codeword
Untuk membentuk sebuah kode Reed Solomon dengan spesifikasi RS (n,k) terlebih dahulu menetukan parameter-parameternya :
11
BAB II DASAR TEORI
Tabel 2.2 : Parameter Reed Solomon n
= 2m - 1
Panjang kode dalam simbol
k
= n – 2t
Jumlah simbol informasi
n–k
= 2t
Jumlah simbol paritas
do
= 2t + 1
dmin, jarak minimum
t
Jumlah simbol yang dikoreksi
P (x)
Minimal polinomial
m
Jumlah bit dalam satu simbol
Sebuah codeword Reed Solomon adalah sebuah blok yang terdiri n simbol. Setiap simbol terdiri atas m-bit dan merupakan elemen dari Galois Field GF(2m) yang dibangkitkan dari polinomial minimal P(x). Jumlah simbol yang dikoreksi menentukan komposisi jumlah simbol informasi dan paritas dalam satu codeword. Jarak minimum d antar codeword adalah jumlah posisi dimana terdapat simbol yang berbeda, tidak memperhitungkan jumlah bit yang berbeda antar simbol satu dengan yang lainnya. Efisiensi yang tinggi dari kode ini terlihat dari parameter-parameter diatas. Untuk mengkoreksi kesalahan sebanyak t simbol hanya diperlukan 2t simbol paritas.
2.2.2
Convolution Code Convolutional code adalah jenis kode yang memiliki perbedaan mendasar
dari block code dimana urutan bit informasi tidak dikelompok-kelompokkan dalam blok-blok yang berbeda sebelum dikodekan. Proses yang terjadi adalah bit informasi sebagai masukan secara kontinyu di-mapping kedalam urutan bit output encoder. Teknik ini mampu meningkatkan coding gain yang lebih besar dibandingkan jika digunakan block coding dengan kompleksitas yang sama. Pada pengkodean konvolusi ini, tiap codeword selain bergantung pada message yang bersesuaian juga tergantung pada m blok message sebelumnya. Satu set codeword dengan k input, n output dan tingkat memori m disebut dengan kode konvolusi (n,k,m). Rate kode didefinisikan R = k/n. Karena pengkodean
12
BAB II DASAR TEORI
konvolusi memiliki tingkat memori maka harus diimplementasikan dengan rangkaian logika sequensial. Convolutional code ini dihasilkan dengan cara melewatkan urutan bit informasi melalui sejumlah tingkat shift register. Pada umumnya shift register terdiri dari N(k bit) tingkat dan m generator polinomial seperti pada gambar 1.2. Data masukan digeser sepanjang k bit shift register pada satu kali waktu. Jumlah bit keluaran untuk tiap k bit masukan adalah n bit, dengan kode ratenya Rc = k/n. Parameter N disebut panjang constraint dan menunjukkan jumlah bit data masukan. Beberapa istilah dalam convolutional code adalah sebagai berikut : •
Generator Matriks
Generator matriks untuk convolutional code adalah semi-finite karena panjang masukan adalah semi-finite. •
Generator Polinomial
Berfungsi untuk membangkitkan polinomial sesuai dengan urutan bit data masukan. •
Logic Table
Tabel kebenaran berfungsi untuk menunjukkan keluaran dari encoder jika diberi urutan bit masukan. •
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.
13
BAB II DASAR TEORI
•
Tree Diagram
Menunjukkan struktur encoder dalam bentuk diagram pohon dengan cabangcabangnya menunjukkan variasi keadaan dan keluaran yang mungkin terjadi. •
Trellis Diagram
Merupakan bentuk penyederhanaan dari diagram pohon yang merupakan representasi dari keluaran encoder jika diberi masukan secara lebih kompak. Decoder berfungsi untuk memperkirakan masukan dari encoder (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 diagram trellis. Teknik convolutional code ini ada banyak macamnya, salah satu metoda yang paling populer adalah algoritma Viterbi. Algoritma ini pertama kali diperkenalkan oleh A.J. Viterbi. 2.2.3
Algoritma Viterbi Jika kita nyatakan keadaan Sj pada waktu i pada node diagram trellis
sebagai Sj,i maka setiap node pada diagram trellis dapat ditunjukkan oleh nilai V(Sj,i). Nilai-nilai node pada diagram trellis dapat dihitung dengan cara berikut : 1.
Tentukan nilai V(S0,0) = 0 dan i = 1
2.
Pada waktu i, hitunglah nilai dari bagian jalur untuk semua jalur yang masuk ke semua node.
3.
Tentukan V(Sj,i) sebesar nilai bagian jalur terkecil yang masuk ke node yang berkorespondensi dengan keadaan Sj pada waktu i.
4.
Jika i < L+m, dimana L adalah jumlah masukan segmen kode (k bit untuk tiap segmen) dan m adalah panjang dari shift register encoder
14
BAB II DASAR TEORI
yang terpanjang, maka nilai berubah menjadi i = i+1 dan kembali ke langkah 2.
Selain kedua jenis teknik channel coding diatas, pada akhir dekade '80-an setelah melalui penelitian panjang diperkenalkan teknik koding baru. Teknik koding ini berbeda dengan kedua teknik koding diatas, tetapi masih ada hubungan erat dengan teknik yang dipakai pada pengkodean konvolusi. Teknik pengkodean baru ini disebut sebagai turbo coding. Turbo code ini berdasar pada algoritma kode gandeng secara paralel. Kelebihan teknik turbo coding ini, selain memiliki coding gain yang besar, juga memiliki kinerja yang baik pada nilai SNR yang rendah. Karena itu teknik coding ini sangat baik diterapkan pada kondisi operasi signal to noise ratio yang sangat rendah.
2.2.4
Teknik Modulasi QPSK (Quadrature Phase Shift Keying) Modulasi QPSK adalah teknik modulasi M-ary dimana M=4 (karenanya
dinamakan “quaternary” yang berarti “4”). M-ary adalah suatu bentuk turunan dari kata “binary”, sedangkan M berarti digit yang mewakili banyaknya kondisi yang mungkin. Menggunakan 2 bit ada empat kondisi yang mungkin, yaitu : 00, 01, 10, dan 11 Modulasi QPSK mempunyai dua kali efisiensi bandwidth dari BPSK, karena 2 bit ditransmisikan dalam simbol modulasi tunggal. Phasa dari carrier diperoleh pada 1 dari 4 harga ruang, seperti 0, π/2, π, dan 3π/2, dimana harga dari phasa korespon ke pasangan unik dari message bit. Sinyal QPSKuntuk simbol ini dapat didefenisikan sebagai: SQPSK (t) = √(2Es/Ts) cos[2πfct + (i-1) π/2] ; 0≤ t≤ Ts i=1,2,3,4
(2.13)
Dimana Ts adalah durasi simbol dan ekivalen dengan dua kali perioda bit. Dengan menggunakan identitas trigonometri, persamaan di atas dapat ditulis untuk interval 0 ≤ t≤ Ts sebagai:
15
BAB II DASAR TEORI
SQPSK (t) = √(2Es/Ts). cos [(i-1) π/2]cos(2πfct) - √(2Es/Ts) .sin [(i-1) π/2]sin(2πfct) (2.14) Jika fungsi basis φ1(t) = √(2Es/Ts).cos(2πfct) , φ2(t) = √(2Es/Ts).sin(2πfct) adalah didefenisikan pada interval 0≤t≤Ts untuk himpunan sinyal QPSK, kemudian empat sinyal dalam himpunan ini dapat diekspresikan dalam sinyal basis sebagai berikut: SQPSK (t)={√Es. cos [(i-1) π/2].φ1(t)-√Es.sin [(i-1) π/2].φ2(t)}; i=1,2,3,4
(2.15)
Berdasarkan representasi ini, sebuah sinyal QPSK dapat dibuat dengan menggunakan sebuah dua dimensi diagram konstelasi dengan empat point. Dari digram konstelasi sinyal QPSK, dapat dilihat bahwa jarak antara titik adjacent adalah √2Es. Karena tiap simbol koresponden dengan dua bit, kemudian Es = 2 Eb, kemudian jarak antara dua titik tetangga dalam konstelasi QPSK adalah ekivalen dengan 2√Eb. Dengan mensubsitusikan persamaan ini, rata-rata probability bit error dalam additive white Gaussian noise (AWGN) channel adalah diperoleh sebagai:
Pe,QPSK = Q(√(2Eb/No))
(2.16)
Sebuah terjangan mengakibatkan probabilitas error bit pada QPSK adalah identik dengan BPSK, tapi dua kali sebagaimana banyak data dapat dikirimkan dalam bandwidth yang sama. Seterusnya ketika dibandingkan ke BPSK, QPSK menyediakan dua kali efisiensi spektral dengan nyata efisiensi energi sama. Sama dengan BPSK, QPSK dapat juga di kodekan secara diferensial untuk membolehkan deteksi non koheren. Dalam sebuah transmiter QPSK tipikal, aliran message binary unipolar mempunyai bit rate Rb dan yang pertama dikonversikan ke dalam no-return-tozero (NRZ) menggunakan sebuah konverter unipolar ke bipolar.
16
BAB II DASAR TEORI
Aliran bit m(t) adalah kemudian split ke dalam dua aliran bit mI(t) dan mQ(t) (aliran in-phase dan quadrature), tiapnya mempunyai bit rate Rs = Rb/2. Aliran bit mI(t) disebut aliran “even” dan mQ(t) disebut aliran “odd”. Dua deret binary adalah dimodulasi sebagian dua carrier φ1(t) dan φ2(t), yang adalah dalam quadrature. Dua sinyal yang dimodulasi, tiap yang mana dapat dipertimbangkan menjadi sinyal BPSK, adalah dibuat memproduksi sinyal QPSK. Filter output dari modulasi meringkas power spektrum sinyal QPSK dengan band yang dialokasikan.
17
BAB III KONSEP GABUNGAN REED-SOLOMON DAN KONVOLUSI 3.1
Konsep Kode Reed Solomon Kode Reed Solomon adalah sub kelas dari kode BCH nonbiner dan
merupakan kode blok linier yang berbasis simbol. Sebuah Kode Reed Solomon dispesifikasikan sebagai
RS(n, k) dengan m-bit simbol.
(3.1)
Artinya bahwa encoder Reed Solomon mengambil sebanyak k simbol dari n data dari masing-masing m bit dan menambahkan simbol paritas untuk membuat sebuah codeword simbol. Ada n-k simbol paritas dari masing-masing m bit. Dan di sisi penerima decoder Reed Solomon dapat membetulkan kesalahan hingga sampai t simbol yang memuat kesalahan pada codeword, dimana 2t = n-k. Parameter-parameter tersebut seperti pada Tabel 2.2. Gambar 3.1 menunjukan sebuah codeword Reed Solomon, atau dikenal sebagai kode sistematik karena data disebelah kiri tanpa perubahan sementara ditambah simbol paritas.
Gambar 3.1 Sebuah codeword Reed Solomon Dengan panjang codeword maksimum, yaitu n = 2m – 1. Kode Reed Solomon bisa diperkecil secara konsep dengan meambahkan sejumlah simbol data nol (kosong) pada encoder, tanpa mentransmisinya, dan kemudian dimasukan kembali di sisi decoder-nya.
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI
Sebagai contoh kode Reed Solomon RS(255, 233) dengan 8-bit simbol. Masing-masing codeword memuat 255 byte codeword, dimana 233 byte adalah data dan 32 byte adalah paritas. Untuk kode tersebut : n = 255, k = 223 , 2t = 32, t = 16 Secara otomatis decoder dapat membetulkan 16 kesalahan simbol pada codeword. Jika kode Reed Solomon tersebut akan dipersingkat menjadi RS(200, 168), encoder mengambil blok dari 168 byte data, dan secara konsep menambahkan 55 byte kosong sehingga menciptakan codeword (255, 223) dan hanya mentransmisikan 168 byte data dan 32 byte paritas.
3.1.1
Aritmatika Galois Field Aritmatika Galois Field merupakan dasar seluruh proses komputasi dalam
kode Reed Solomon. Pemahaman mengenai hal ini akan membantu dalam proses konstruksi rangkaian logika dari persamaan matematis dan penyederhanaannya. Field adalah tempat dimana kita bisa menjumlahkan, mengurangkan, mengalikan, dan membagi. Pada proses aritmatika biasa dilakukan dalam field yang disebut infinite field karena jumlah elemen di dalamnya tak terbatas. Pada kode Reed Solomon proses aritmatika dilakukan Finite Field atau juga biasa disebut Galois Field (GF) yang jumlah elemen-elemennya terbatas.
3.1.2
Pembentukan GF(2m) Pembentukan GF(2m) diperlukan untuk mengetahui elemen-elemen yang
terdapat di dalamnya. Sebuah GF(2m) mempunyai 2m elemen (m>1). Sebuah symbol dalam kode Reed Solomon pasti merupakan elemen GF(2m) ini. Dalam sebuah galois field, ada tiga macam representasi sebuah elemen yaitu representasi pangkat, polynomial, dan m-tuple. Representasi inilah yang merupakan konstruksi dari galois field yang diperlukan untuk memudahkan proses aritmatika di dalamnya. Berikut ini representasi elemen-elemen dari GF(23) untuk p(x) = 1 + x + x3.
19
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI
Tabel 3.1 Berbagai representasi sebuah elemen GF(23) Representasi pangkat Representasi polynomial Representasi m-tuple 0
0
000
1
1
100
α
α
010
α2
α2
001
α3 α4 α5 α6
1+
α
+
α
110
α2
011
α
+
1+
α2
1+
α2
111 101
Proses aritmatika dalam GF(2m) mengikuti kaidah sebgai berikut :
Untuk proses perkalian, seluruh elemen dinyatakan dalam representasi pangkat:
α a + α b = α a +b
(3.2)
α 1 ⋅ α 4 = α 1+ 4 = α 5 α 3 ⋅ α 6 = α 3+ 6 = α 9 = α 2 (1 + α ) ⋅ (α + α 2 ) = α 3 ⋅ α 4 = α 3+ 4 = α 7 = α 0
Untuk proses penjumlahan dalam GF(2m), seluruh elemen dinyatakna dalam representasi polynomial: 1+α +α 2 = α 5
(3.3)
α 6 + α 8 = (1 + α 2 ) + 1 = α 2
Untuk proses pencarin invers sebuah elemen GF(2m) dilakukan dengan pesamaan:
α − j = α 2m− j 3.1.3
(3.4)
Enkode Reed-Solomon Sebuah codeword Reed Solomon dibentuk melalui proses encoding yaitu
menambahkan simbol-simbol paritas ke informasi yang dikirimkan. Simbolsimbol paritas merupakan sisa dari proses pembagian polynomial informasi
20
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI
terhadap generator polynomial. Codeword inilah yang akan dikirimkan ke penerima. Generator polynomial dari sebuah kode Reed Solomon dengan t koreksi kesalahan dan panjang 2m-1 adalah : g ( x) = ( x + α )( x + α 2 )...( x + α 2t )
(3.5)
= g 0 + g 1 x + g 2 x 2 + ... + g 2t −1 x 2t −1 + x 2t
Dimana α adalah sebuah elemen dari GF(2m). Kode yang dibangkitkan oleh g(x) adalah sebuah siklis (n,n-2t). sebuah codeword Reed Solomon dinyatakan sebagai berikut : V(x) = u(x) + c(x)
(3.6)
Dimana : n −1
V ( x) = ∑ vi x i , polynomial codeword Reed Solomon i =0
U ( x) =
n −1
∑u x
i = nk
C ( x) =
i
, polynomial informasi
i
, polynomial paritas
i
n − k −1
∑c x i =0
i
Dan vi, ci, dan ui adalah elemen dari GF(2m). Sehingga sebuah vector dengan n symbol (v0, v1, ….. vn )adalah sebuah codeword RS jika dan hanya jika representasi polinomialnya v(x) adalah perkalian dari generator polynomial g(x) Metode umum enkode sebuah kode siklis yaitu dengan mencari c(x) dari u(x) dan g(x), yaitu dengan cara : 1. mengalikan polynomial informasi u(x) dengan xn-k 2. membagi xn-k u(x) dengan g(x) untuk memperoleh sisa hasil bagi c(x). 3. membentuk codeword c(x) xn-k +u(x) Ketiga langkah ini dapat diimplementasikan dengan menggunakan n-k tingak Linier Feedback Shift Register (LFSR) berdasarkan generator polynomial g(x).
3.1.4
Dekode Reed Solomon
21
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI
Proses decode secara umum dari sebuah kode siklis, terdiri atas tiga tahap, yaitu komputasi sindrom, menentukan error pattern berdasarkan harga sindrom, dan koreksi kesalahan. Sedangkan pada Reed Solomon terdiri atas lima tahap yaitu komputasi sindrom, komputasi koefisien polynomial lokasi kesalahan, komputasi lokasi kesalahan, komputasi magnitude kesalahan, dan koreksi kesalahan.
3.1.4.1 Komputasi Sindrom Komputasi sindrom dilakukan untuk mengetahui apakah telah terjadi error pada codeword yang diterima. Jika sindrom bernilai nol, maka tak terjadi error. Misalkan kode yang diterima r ( x ) = rn −1 x n −1 + rn − 2 x n − 2 + ... + r2 x 2 + r1 x + r0
Maka: S i = r (α i ), i=1, 2, …., 2t
(3.7)
Dimana Si = komponen sindrom ke-i
3.1.4.2 Penentuan Polynomial Lokasi Kesalahan Proses ini merupakan inti dan yang paling rumit dari proses dekode, dan banyak algoritma yang dikembangkan antara lain yang sering digunakan yaitu algoritma Modified Berlekamp Massey.
3.1.4.3 Menentukan Posisi Kesalahan Penentuan posisi kesalahan dilakukan dengan mencari akar dari polynomial lokasi kesalahan λ ( x) = λ0 + λ1 x + λ 2 x 2 + ... + λt x t yang diperoleh dari tahap sebelumnya. Prosedur ini bisa dilakukan dengan algoritma Chien Search, yaitu dengan mengalikan koefisien polynomial lokasi kesalahan dengan elemen GF(2m). jika hasil perkaliannnya sama dengan nol maka telah terjadi kesalahan pada lokasi tersebut
3.1.4.4 Menghitung Magnitude Kesalahan
22
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI
Perhitungan magnitude kesalahan dilakukan untuk mengetahui pola kesalahan yang terjadi pada urutan symbol yang ditunjukan oleh lokasi kesalahan. Dalam hal ini algoritma Forney bisa digunakan.
Z 2 t Ω( Z ) Y =− Z ⋅ λ ' (Z )
(3.8)
Ω( X k−1 ) = λ ( x )[1 + S ( x)]
(3.9)
λ ' ( x) = λ1 + λ3 z + .. + t − 1 ⋅ λt −1 z t − 2
(3.10)
Dimana : Z
: ( X i−1 ) invers lokasi kesalahan
Ω(x) : polynomial error kesalahan
S(x)
: polynomial sindrom
Y
: error magnitude (error value)
λ ' ( x ) : formal derivative dari λ (x )
3.1.4.5 Koreksi Kesalahan Pada tahap koreksi kesalahan dilakukan koreksi terhadap codeword yang diterima sesuai dengan pola kesalahan yang diperoleh dari algoritma Forney dan lokasi kesalahan yang diperoleh dari Chien Search. Codeword yang valid diperoleh dari persamaan : V(x) = R(x) + E(x) (3.11) Dimana :
3.2
V(x)
: polynomial kode yang dikirimkan
R(x)
: polynomial kode yang diterima
E(x)
: polynomial pola kesalahan
Konsep Kode Konvolusional
23
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI
3.2.1
Encoder Konvolusional Kode konvolusional adalah kode yang dibentuk dengan menambah
informasi tambahan (parity) berdasarkan bit inputan u = u1 , u 2 ,...u i
(3.12)
yang sedang diproses dikonvolusi dengan generator g (i ) untuk m kode data sebelumnya, dimana m adalah panjang memori atau shift register dari kode. Jika panjang memori m , maka jumlah state memorinya (isi memori) adalah 2 m . Secara matematis kode konvolusi dapat dinyatakan dengan C (n, k, m)
(3.13)
dimana : k = input n = output m = memori Struktur kode konvolusional dengan pola C (2,1,2) ditunjukkan pada Gambar 3.2 Encoder tersebut terdiri atas m (shift register) =2 , n (output)=2, k(input) = 1, generator g(1) = (1 0 1) g(2) = (1 1 1), satu modulo adder dan satu multiplexer untuk menserialkan keluaran encoder, untuk lebih jelasnya dapat dilihat pada Gambar 3.2 berikut ini :
⊕ (1)
m
Shift Register ke-1
Shift Register ke-2
⊕
C(1)
C(2)
Gambar 3.2 Struktur encoder konvolusi C(2,1,2), rate = ½
Output konvolusi dapat ditentukan dengan beberapa cara yaitu dengan diagram kondisi atau dengan diagram trellis. Dalam tugas akhir ini kita menggunakan diagram trellis.
24
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI
Gambar 3.3 Struktur Diagram Trellis untuk konvolusi C(2,1,2)
Tiap bit masukan yang diberikan akan memberikan hasil dua bit keluaran, masing-masing dari C(1) dan C(2). Encoder yang digambarkan menggunakan code rate ½. Konsep code rate itu sendiri adalah untuk menyamakan rate output konvolusi yang variable sebelum masuk ke proses Interleaving, sehingga : Data rate 1
: tanpa mengalami pengulangan
Data rate ½
: mengalami pengulangan 2x
Data rate ¼
: mengalami pengulangan 4x
Data rate 1/8
: mengalami pengulangan 8x
10101010
1010101 0 1
0
1
0
PENGULANG
11001100 INTERLEAVER
1
0
11110000
1
11111111
T
T Gambar 3.4 Proses code rate ½
3.2.2
Decoder Konvolusional
25
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI
Fungsi dari decoder adalah untuk menentukan deretan bit keluaran yang paling mirip (most likely) dari aliran bit masukan yang diberikan dan pengetahuan dari encoder yang digunakan pada sumber. Prosedur decoding equivalen dengan membandingkan deretan bit yang diterima dengan semua kemungkinan deretan bit yang mungkin diperoleh dari hasil encoder dan memilih deretan bit yang paling dekat dengan deretan bit yang diterima. Untuk menentukan deretan bit yang paling dekat dengan bit yang diterima adalah dengan cara menghitung jarak Hamming nya, deretan bit yang memiliki jarak Hamming paling minimum yang dipilih untuk deretan bit tersebut. Pada dasarnya diagram trellis selalu mempunyai dua buah path untuk tiap node. Path-path yang tidak terputus merupakan survivor path yang berguna untuk menentukan decoding path dalam diagram trellis. Path yang dipilih sebagai path hasil decoding adalah path yang tidak terputus sepanjang trellis diagram dan memiliki aggregate Hamming distance minimum. Algoritma pencarian path seperti ini disebut algoritma Viterbi, sedangkan decoder yang berfungsi untuk menemukan path yang paling mirip dengan deretan bit yang telah diterima dikenal dengan nama maximum-likelihood decoder. Decoding viterbi ini berfungsi untuk melakukan deteksi sekaligus koreksi terhadap kesalahan yang terjadi selama perjalanan mulai dari output konvolusi sampai keinput decoder viterbi. Error terbesar biasanya terjadi dikanal karena gangguan propagasi.
3.3
Konsep Interleaver Untuk mengatasi burst error karena multipath fading kode konvolusi akan
digandengkan dengan rangkaian interleaver dan deinterleaver. Proses interleaving ini bertujuan untuk mendistribusikan burst error, dengan cara mengacak terjadinya error sehingga mirip dengan error random. . Pada pengirim, deretan bit diatur sedemikian rupa untuk memastikan agar bit-bit yang bersebelahan terpisah sejauh beberapa bit setelah interleaving, sehingga memungkinkan dikoreksi oleh decoder Viterbi. Ilustrasi interleaving adalah sbb.
26
BAB III KONSEP GABUNGAN REED SOLOMON DAN KONVOLUSI
kolom
1
2
3
4
5
6
5 9 13 17 6 10 14 18 7 11 15 19 8 12 16 20
21 22 23 24
baris 1 2 3 4
1 2 3 4
Gambar 3.5 Proses Interleaving
Pengisian matrik dilakukan kolom per kolom, sedangkan proses kirim dilakukan baris per baris. Hal sebaliknya dilakukan di sisi penerima.
3.4
Perhitungan Bit Error Rate Bit Error Rate (BER) merupakan salah satu tolak ukur untuk menentukan
baik tidaknya suatu sistem pengiriman sinyal data dari pemancar / pengirim sampai ke penerima. Data yang diterima di sisi penerima bisa mengalami kesalahan dari data yang dikirimkan. Dengan membandingkan data yang dikirimkan dengan data yang yang diterima akan dapat dihitung BER. Jika nilai bit di sisi penerima mengalami banyak perubahan maka nilai BER akan tinggi dan dapat dikatakan sistem tersebut memiliki performansi yang jelek. Nilai BER dapat dihitung dengan persamaan sebagai berikut : BER =
Jumlah data yang salah
(3.14)
Jumlah data yang dikirim BER nilainya tergantung pada tingkat noise yang diterima Eb/No. Dimana Eb merupakan energi per bit dan No merupakan noise power density. Dalam hal ini kita gunakan signal to noise ratio (SNR)
27
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB 4.1
Perancangan Sistem Pengamatan ini menggunakan simulasi dengan program Matlab, dengan
mengirimkan data berupa file video dengan kompresi AVI. File AVI memiliki tingkat kompresi yang bisa dibaca oleh Matlab sehingga memudahkan untuk mengekstraknya menjadi bit-bit.
Dalam proses pengirimannya dari stasiun
pemancar ke stasiun penerima akan dilewatkan gangguan berupa AWGN. Konsep pengukuran performansinya adalah sebagai berikut :
Menghitung total kesalahan bit-nya.
Hal itu ditampilkan dalam bentuk grafik BER terhadap SNR atau Eb/N0 (dB) untuk nilai yang berbeda dengan teknik modulasi yang dipilih yaitu QPSK.
Sebagai perbandingan dilakukan juga simulasi dengan tanpa melibatkan kode Reed Solomon dan juga tanpa memakai teknik pengkodean sama sekali.
Berikut diagram flowchart lengkap yang menggambarkan proses simulasi programnya.
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
Pengiriman Data Inisialisasi
Input Data
Reed Solomon Code
Convolutional Encoder
Blok Interleaver
QPSK Modulation
Kanal Radio Kanal AWGN
Estimasi Kanal
Penerimaan Data QPSK Demod
Deinterleaver
Viterbi Decoder
Reed Solomon Decoder
Perhitungan BER
Gambar 4.1 Flowchart Program
29
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
4.2
Simulasi Program Simulasi dalam Tugas Akhir ini membahas transmisi sinyal video AVI
pada blok channel coding, dan tidak membahas kompresi dan dekompresi sinyal video itu sediri mulai dari sebleum masuk ke channel coding maupun setelahnya.
4.2.1
Bagian Pengiriman Data
1. Inisialisasi snr
= 0 sampai 30 , noise to ratio nilainya dapat ditentukan bebas
orde_mod = 2, tipe modulasi yang dipilih QPSK. Hal ini bisa diganti dengan orde modulasi yang lain. Pecah
= 864, merupakan nilai pembilang data input pada blok Reed Solomon
2. Input Data Data kirim yang disimulasikan merupakan data video AVI. Dengan menggunakan fungsi aviread pada Matlab 7.1 untuk membaca file AVI ke dalam movie MATLAB dan diperoleh informasi struktur AVI sebagai berikut : NumFrames: 34 FramesPerSecond: 5 Width: 96 Height: 96 ImageType: 'truecolor' VideoCompression: 'Cinepak' Quality: 100 NumColormapEntries: 0
Berdasarkan Tabel 2.1 struktur video diproses sehingga diperoleh data binary. Dari informasi struktur data input tersebut setiap iterasi program akan mengirimkan data sebesar 96x96x3x8 bit untuk setiap frame dengan total frame 34 frame, sehingga total bit input seluruhnya 7520256 bit.
30
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
3. Kode Reed Solomon Pengkodean Reed Solomon yang dipakai yaitu RS(40,36) dengan m = 6. Sementara panjang data yang akan ditransmisikan setiap iterasi sejumlah 221184 bit, sedangkan blok RS(40,36) dengan m=6 digunakan untuk panjang data 864 sehingga dibutuhkan suatu iterasi agar memenuhi blok RS(40,36) dengan paritas 4 bit sesuai rumus (3.1). Selanjutnya dilakukan proses pembentukan GF mengikuti kaidah (3.2) dan (3.3).
Untuk menentukan generator polynomial menggunakan fungsi rsenc pada MATLAB 7.1 untuk menjalankan proses seperti yang dijelaskan pada rumus (3.5) dan (3.6).
4. Encoder Konvolusional Pola pengkodean konvolusional yang digunakan C (2,1,6), dengan panjang batas = 7 dimana generator polinom (octal) g0= 171 dan g1=133.
5. Blok Interleaver Interleaver yang digunakan dalam simulasi adalah tipe interleaver blok, dimana bit-bit keluaran encoder konvolusional disusun kolom per kolom dan dibaca baris per baris.
6. Modulasi QPSK Pada proses ini, dereten bit serial hasil Interleaver akan dibentuk menjadi simbol-simbol kompleks sesuai dengan konstelasi QPSK seperti yang dijelaskan pada point 2.2.4
4.2.2
Kanal Radio Kanal radio transmisi yang digunakan pada simulasi yaitu kanal AWGN
(Additive White Gaussian Noise), suatu pola noise yang didefinisikan oleh Gaussian yang bersifat additive atau berubah - ubah. Sinyal hasil modulasi terlebih dahulu melewati kanal random. Pemodelan kanal AWGN dilakukan
31
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
dengan
menggunakan
fungsi
sinyal_terima=awgn(output_kanal,
awgn snr,
pada
MATLAB
'measured')
dimana
7.1
yaitu:
‘output_kanal’
menunjukkan sinyal hasil modulasi yang ditransmisikan yang melewati random channel, ‘snr’ menunjukkan nilai SNR yang diinginkan dalam dB, dan ‘measured’ menunjukkan adanya pengukuran daya sinyal ditambah noise. Keluaran kanal AWGN diestimasi berdasarkan jumlah kanal yang telah dilewati. Sinyal terima estimasi ini lah yang nantinya masuk ke blok receiver. Sinyal pada input receiver setelah diganggu oleh AWGN secara sistematis dapat ditulis sebagai berikut : r(t) = s(t) + n(t)
(4.1)
s(t) = sinyal yang ditransmisikan n(t) = White Gaussian Noise r(t) = sinyal yang diterima n(t) merupakan fungsi dari AWGN yang dipengaruhi oleh nilai Eb/No dimana Eb merupakan energi per bit dan No merupakan noise power density.
4.2.3
Bagian Penerimaan Data Pada bagian penerima transmisi sinyal video AVI yang melewati kanal
radio, terdiri dari : 1. Demodulasi QPSK Data kompleks yang diterima dari proses transmisi kemudian dapat langsung dikonversi lagi menjadi data serial sesuai dengan konstelasi QPSK yang digunakan pada pengirim.
2. Deinterleaver Proses deinterleaver merupakan kebalikan dari interleaver. Deretan bit masuk ke block deinterleaver per baris dan keluar atau dibaca per kolom.
3. Decoder Viterbi Dekoder viterbi yang digunakan adalah hard decision viterbi decoder. Prinsip kerja dari dekoder viterbi adalah berdasarkan prinsip Hamming
32
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
distance decoding dan pengetahuan akan diagram trellis enkoder di pengirim.
4. Decoder Reed Solomon Data biner keluaran decoder viterbi akan didekode dengan kode Reed Solomon yang sama dengan kode Reed Solomon yang dikirim yaitu RS(40, 36).
Pada proses ini juga akan dilakukan penentuan apakah telah terjadi error pada penerimaan codeword, penentuan lokasi dan posisi kesalahan, menghitung jumlah kesalahan bit pada codeword, serta mengkoreksi kesalahan seperti dijelaskan pada point 3.1.4,
pada proses decoding Reed Solomon selain dapat mengkoreksi kesalahan juga melakukan penghapusan. Penghapusan terjadi jika posisi kesalahan ditemukan. Decoder dapat mengkoreksi kesalahan sampai t error atau 2t penghapusan.
5. Perhitungan Bit Error Rate Metoda perhitungan BER dengan membandingkan data kirim terhadap data terima, dilakukan perhitungan kesalahan bit, akumulasi total kesalahan kemudian dibagi dengan total data bit yang terkirim
4.3
Analisa Performansi Channel Coding Simulasi dilakukan dengan menggunakan data input sinyal video AVI
dengan menggunakan beberapa metode pengkodean agar dapat dilihat performansi dari masing-masing pemakaian blok pengkodean yang digunakan dalam Tugas Akhir ini. Hasil simulasi akan ditampilkan dalam bentuk grafik perbandingan Bit Error rate terhadap SNR sebagai parameter performansi dari setiap sistem. Masing-masing simulasi menggunakan modulasi QPSK dengan jumlah inputan bit yang sama untuk iterasi sebanyak 10.
33
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
4.3.1
Tanpa Menggunakan Channel Coding Pada gambar 4.2, simulasi yang dilakukan pada kanal AWGN hanya
melewati modulasi QPSK dan tanpa melewati channel coding sama sekali, dapat dilihat bahwa untuk harga BER 10-3 pada kanal AWGN dibutuhkan Eb/No ≈ 11 dB. Nilai Eb/No yang dibutuhkan pada kanal AWGN ini hanya dipengaruhi oleh noise termal yang ada di sisi pengirim dan penerima saja atau menganggap bahwa sinyal yang diterima oleh penerima adalah line of side atau langsung tanpa adanya pengaruh dari kanal radio propagasi disekitar penerima. Performansi Data Video AVI
-1
10
Modulasi QPSK without coding
-2
BER
10
-3
10
-4
10
-5
10
0
5
10
15
Eb/No
Gambar 4.2 Grafik Eb/No terhadap BER pada kanal AWGN tanpa channel coding
34
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
4.3.2
Menggunakan Pengkodean Konvolusional Performansi Data Video AVI
-1
10
Mod QPSK use Convolutional coding
-2
BER
10
-3
10
-4
10
-5
10
0
1
2
3
4
5
6
7
8
9
Eb/No
Gambar 4.3 Grafik Eb/No terhadap BER pada kanal AWGN menggunakan pengkodean konvolusional
Gambar 4.3 tersebut merupakan grafik perbandingan BER terhadap Eb/No dengan modulasi QPSK, dimana inputan sinyal video dilewatkan terlebih dahulu melalui kode konvolusional dan rangkain interleaver. Simulasi dilakukan pada kanal AWGN, terilhat bahwa untuk harga BER 10-3 dibutuhkan Eb/No sekitar 8 dB. Konfigurasi ini lebih baik bila tanpa melewati pengkodean sama sekali.
4.3.3
Menggunakan Pengkodean Reed Solomon Pada simulasi ini sinyal video dengan jumlah inputan bit yang sama
disetiap iterasinya dilewatkan terlebih dahulu melalui block code Reed Solomon dengan modulasi QPSK.
35
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
Performansi Data Video AVI
-1
10
Mod QPSK use Reed Solomon Coding
-2
BER
10
-3
10
-4
10
0
2
4
6 Eb/No
8
10
12
Gambar 4.4 Grafik Eb/No terhadap BER pada kanal AWGN menggunakan pengkodean Reed Solomon Pada gambar 4.4 dapat dilihat bahwa untuk harga BER 10-3 pada kanal AWGN dibutuhkan Eb/No lebih dari 10 dB. Terlihat bahwa jika hanya menggunakan pengkodean Reed Solomon saja dia hanya mampu mengkoreksi kesalahan acak dan terduga tanpa meminta proses transmisi ulang seperti yang dilakukan oleh konvolusional.
Hal ini tentunya tidak lebih baik jika
menggunakan kode konvolusional.
36
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
4.3.4
Menggunakan Pengkodean Reed Solomon dan Konvolusional Performansi Data Video AVI
-1
10
Mod QPSK use Reed Solomon & Convolutional code
-2
BER
10
-3
10
-4
10
-5
10
0
1
2
3
4
5
6
7
8
9
Eb/No
Gambar 4.5 Grafik Eb/No terhadap BER pada kanal AWGN menggunakan
pengkodean
Reed
Solomon
dan
Konvolusional
Simulasi terakhir yaitu menggunakan channel coding lengkap dengan menggabungkan block code Reed Solomon sebagai forward error correction (FEC) yang mampu untuk mendeteksi dan mengkoreksi error yang cenderung membangkitkan burst error, dan kode konvolusional diharapkan mampu mengkoreksi pola error yang terdistribusi secara acak dan cenderung tidak bersifat burst. Dari hasil simulasi terlihat pada gambar 4.5 diatas dapat dilihat performansi sistem pada kanal AWGN dengan menggunakan pengkodean Reed Solomon dan Konvolusinal, bahwa untuk mencapai BER = 10-3 dibutuhkan Eb/No sekitar 7.1 dB. Penambahan Forward Error Control pada sistem dapat melakukan koreksi kesalahan bit dipenerima dengan syarat masih dalam batas kemampuan pengkodean dalam melakukan koreksi kesalahan. Kasus kanal radio yang
37
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
menyebabkan terjadinya burst error atau kesalahan simbol yang berurutan Untuk mengatasi hal tersebut digunakan teknik interleaver yang akan membuat bit-bit yang bersebelahan akan dipisahkan dengan jarak tertentu sehingga error menjadi bersifat acak (tidak burst) dengan teknik ini maka diharapkan dipenerima dapat dilakukan proses koreksi dengan maksimal.
4.4
Simulasi Pengiriman Sinyal Video AVI Parameter sinyal video yang digunakan untuk simulasi yaitu sebagai
berikut : Table 4.1 parameter video AVI pada simulasi File AVI
96 x 96
Jumlah bit per frame
96 x 96 x 3 x 8 = 221184 bit
Jumlah bit simulasi per frame
864
Jumlah iterasi
256 kali
Jumlah frame
34
38
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
SNR = 3dB
SNR = 6dB
SNR = 8dB
SNR = 9dB
SNR = 12dB
Gambar 4.6 Simulasi video AVI tanpa channel coding
Hasil simulasi pengiriman sinyal video AVI tanpa menggunakan channel coding dapat dilihat pada gambar 4.6 dengan nilai BER pada tabel 4.2. Tabel 4.2 Perhitungan BER jika tanpa channel coding snr
BER
3 dB
2.0x10-1
6 dB
1.07x10-1
8 dB
5.6x10-2
9 dB
3.76x10-2
12 dB
6.9x10-3
39
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
Dengan SNR = 8 dB dan 9 dB terlihat hasil video yang dihasilkan terlihat banyak kerusakan di beberapa frame yang ditampilkan seperti terlihatnya bintik-bintik warna yang pudar pada setiap frame-nya. Sebaliknya jika hanya menggunakan pengkodean konvolusional akan dihasilkan video AVI seperti pada gambar 4.7 dan tabel 4.3
SNR = 3dB
SNR = 6dB
SNR = 8dB
SNR = 9dB
SNR = 12dB
Gambar 4.7 Simulasi video AVI menggunakan kode konvolusional
40
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
Tabel 4.3 Perhitungan BER jika menggunakan pengkodean Konvolusional snr
BER
3 dB
3.28x10-1
6 dB
6.3x10-2
8 dB
5.5x10-3
9 dB
9.8x10-4
12 dB
9.4x10-6
dimana ketika menggunakan SNR = 8 dB munculnya kerusakan lebih sedikit bila dibandingkan tanpa menggunakan channel coding sama sekali. Jika sinyal video AVI yang dikirimkan pada kanal radio hanya menggunakan pengkodean Reed Solomon akan dihasilkan nilai BER seperti pada tabel 4.4 dan sinyal video AVI seperti gambar 4.8
Tabel 4.4 Perhitungan BER jika menggunakan pengkodean Reed Solomon snr
BER
3 dB
1.99x10-1
6 dB
1.07x10-1
8 dB
5.5x10-2
9 dB
3.5x10-2
12 dB
4.4x10-3
41
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
SNR = 3dB
SNR = 6dB
SNR = 8dB
SNR = 9dB
SNR = 12dB
Gambar 4.8 Simulasi video AVI menggunakan kode Reed Solomon
Simulasi tersebut ternyata menunjukan hasil yang lebih buiruk jika dibandingkan menggunakan pengkodean konvolusional. Simulasi terakhir yaitu metoda yang diajukan dalam tugas Akhir ini, yaitu menggabungkan kode Reed Solomon dan Konvolusional. Sinyal video AVI yang dihasilkan dapat dilihat pada gambar 4.9 dengan nilai BER yang dihasilkan pada tabel 4.5.
42
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
SNR = 3dB
SNR = 6dB
SNR = 8dB
SNR = 9dB
SNR = 12dB
Gambar 4.9 Simulasi video AVI menggunakan gabungan kode Reed Solomon dan kode Konvolusional
Tabel 4.5 Perhitungan BER jika menggunakan pengkodean Reed Solomon dan kode Konvolusional snr
BER
3 dB
3.1x10-1
6 dB
5.9x10-2
8 dB
2.9x10-3
9 dB
3.3x10-4
12 dB
0
43
BAB IV ANALISA HASIL SIMULASI DENGAN PROGRAM MATLAB
Yaitu ketika mengggunakan SNR = 8 dB mulai menunjukan hasil video yang dihasilkan lebih baik dari menggunakan metoda pengkodean yang sebelumnya, dimana munculnya kerusakan atau bintik-bintik pada video hanya terlihat pada sedikit frame. Bahkan tidak muncul kerusakan bit sama sekali ketika SNR = 12 dB.
44
BAB V KESIMPULAN Berdasarkan hasil penelitian dan analisa yang telah dilakukan tersebut, maka dapat diambil beberapa kesimpulan sebagai berikut : 1.
Jika sistem hanya memakai block kode Reed Solomon, terlihat memiliki perbandingan nilai BER terhadap tingkat noise yang diterima lebih buruk jika sistem menggunakan pengkodean konvolusi, tetapi lebih baik jika dibandingkan tanpa menggunakan channel coding sama sekali.
2.
Jika menggunakan kombinasi kedua sistem pengkoedean, block code Reed Solomon dan Konvolusi akan dihasilkan BER (bit error rate) yang baik pada kondisi SNR yang rendah. Inilah yang menjelaskan teori Shannon, yaitu bagaimana caranya memperbaiki error tanpa mengorbankan bit rate yaitu dengan bekerja pada SNR yang cukup rendah tetapi BER yang dihasilkan tetap baik (kecil).
3.
Mulai nilai SNR = 6 dB, terlihat pada grafik analisa bahwa menggunakan kombinasi pengkodean Reed Solomon dan Konvolusional lebih baik jika dibandingan pada sistem yang hanya memakai kode konvolusional atau bahkan pada sistem yang tidak mengunakan channel coding sama sekali. Demikian juga dari hasil tampilan video yang dihasilkan, dimana mulai SNR = 8 dB hasil tampilan video yang dihasilkan menunjukan mulai terlihat jelas dari pemakaian pengkodean yang lain.
DAFTAR PUSTAKA
1. Castineira, Jorge and Patrick Guy Farrel, “Essential of Error Control Coding”, John Wiley & Sons, Ltd, 2006. 2. Hanselmat, Duane & Bruce Littlefield, “MATLAB Bahasa Komputasi Teknis”, ANDI, Yogyakarta, 2000. 3. Kurniawan, Uke, “Modul Perkuliahan Sistem Komunikasi Digital” Bandung, 2006. 4. Shu Lin. J.Costello Daniel, JR, “Error Control Coding Fundamental and Applications” Prentice Hall, New Jersey,1983.
xi