• Tidak ada hasil yang ditemukan

Analisa Kinerja Pengkoreksi Error Dengan Metoda Vector Symbol Decoding.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Analisa Kinerja Pengkoreksi Error Dengan Metoda Vector Symbol Decoding."

Copied!
23
0
0

Teks penuh

(1)

Universitas Kristen Maranatha

ANALISA KINERJA PENGKOREKSI ERROR DENGAN

METODA VECTOR SYMBOL DECODING

Albert Daniel HT/ 0322151

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia

Email: AlbertTampubolon@gmail.com

ABSTRAK

Masalah yang sering dijumpai dalam pengiriman sinyal adalah sering terjadi adanya error sinyal pada saat diterima, sehingga data yang dikirim tidak selalu sama dengan data yang diterima. Data dalam bidang telekomunikasi dapat diwakili dengan kode. Kode tersebut ada yang berbentuk biner dan non biner.

Metode yang digunakan untuk mengatasi permasalahan dalam penerimaan sinyal yaitu menggunakan algoritma BCJR (Bahl-Cocke_Jelinek-Raviv) untuk Vector Symbol Decoding.

Pada Tugas Akhir ini dilakukan analisa kinerja dekoding menggunakan algoritma BCJR untuk metoda vector symbol decoding, serta hasilnya yang disimulasikan pada program Matlab 7. Hasil yang didapat dari Tugas Akhir ini adalah suatu nilai perbandingan apriori dari informasi input dan nilai aposteriori dari informasi output pada dekoder inner dan outer, yang bertujuan untuk mengestimasikan data yang dikirim dengan data yang diterima.

(2)

Universitas Kristen Maranatha

ERRORS CORRECTIONS DECODING ANALYSIS USING

VECTOR SYMBOL DECODING

Albert Daniel HT/ 0322151

Majority of Electrical Engineering, Faculty of Engineering Maranatha Christian University

Jl. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia Email: AlbertTampubolon@gmail.com

ABSTRACT

The problems at transmiting the signal is usually being lossed in transmission. So, the signal is not the same between transmitted and received. The signal in telecommunication can be presented by code. The code are binary and non binary.

The method to solve the problem in transmitting signal correctly by using BCJR (Bahl-Cock_Jelinek-Raviv algorithm for Vector Symbol Decoding.

On this final project, it was done performance analysis decoding by using BCJR algorithm for Vector Symbol Decoding, include the result of simulation by Matlab 7. The results from this final project are compare value apriori mutual informations input and aposterirori mutual output of inner and outer decoder, with aim to estimate data sent with data received.

(3)

Universitas Kristen Maranatha

DAFTAR ISI

Halaman

ABSTRAK………. i

ABSTRACT………... ii

KATA PENGANTAR……….. iii

DAFTAR ISI………. Vi DAFTAR GAMBAR……… Viii BAB I PENDAHULUAN 1.1. Latar Belakang………... 1

1.2. Identifikasi Masalah………... 1

1.3. Tujuan………... 2

1.4. Pembatasan Masalah………... 2

1.5. Sistematika Pembahasan………... 2

BAB II LANDASAN TEORI 2.1 Sumber Informasi……… 4

2.2 Galois Field………. 4

2.3 Klasifikasi Pengkodean………... 5

2.3.1 Pengkodean dengan Kode Blok……… 5

2.3.2 Pengkodean dengan Kode Konvolusi………... 7

2.3.2.1 Proses Enkoding………. 8

2.3.2.2 Proses Proses Dekoding……….. 10

2.4 Algoritma Viterbi……….. 11

2.5 Algoritma Dekoding MAP (Maximum a posteriori)... 17

2.5.1 Algoritma BCJR... 18

BAB III SIMULASI PADA BAGIAN INNER DAN OUTER 3.1 Vector Symbol Decoding... 20

(4)

Universitas Kristen Maranatha 3.3 Kode Outer... 24 3.4 Subrutin Program... 27

BAB IV DATA PENGAMATAN

4.1 Data pengamatan pada kode inner... 30 4.2 Data pengamatan pada kode outer... 34

BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan... 39 5.2 Saran... 39

(5)

Universitas Kristen Maranatha

DAFTAR GAMBAR

Halaman

Gambar 2.1 Diagram enkoder sederhana……….. 5

Gambar 2.2 Diagram denkoder sederhana... 6

Gambar 2.3 Diagram enkoder konvolusi (2,1,2)... 8

Gambar 2.4 Trellis diagram1... 9

Gambar 2.5 State diagram... 10

Gambar 2.6 Trellis diagram2... 10

Gambar 3.1 Diagram Pengkodean bertingkat... 20

Gambar 3.2a Gambar 3.2b Diagram alir program utama kode inner... Diagram alir program utama lanjutan kode inner………. 21 22 Gambar 3.3a Diagram alir program utama kode outer... 24

Gambar 3.3b Diagram alir program utama lanjutan... 25

Gambar 3.4 Diagram alir subrutin kode konvolusi... 27

Gambar 3.5 Diagram alir subrutin informasi rata-rata... 27

Gambar 3.6 Diagram alir subrutin membangkitkan LLRs... 28

Gambar 3.7 Gambar 3.8 Diagram alir subrutin histogram... Diagram alir interupsi algoritma BCJR……… 28

Gambar 4.7 Hasil proses kode inner data 1000 bit, IA= 100bit, SNR -2db.. 33

Gambar 4.8 Hasil proses kode inner data 1000 bit, IA=10bit, SNR -2db... 33

Gambar 4.9 Hasil proses kode outer untuk data 1000 bit, IA=10bit... 34

Gambar 4.10 Perbandingan IA= 10 bit dengan BER pada data 1000 bit... 34

(6)

Universitas Kristen Maranatha Gambar 4.12 Perbandingan IA= 100 bit dengan BER pada data 1000 bit... 35 Gambar 4.13 Hasil proses kode outer untuk data 1000 bit, IA=1000bit……. 36 Gambar 4.14 Perbandingan IA= 1000 bit dengan BER pada data 1000 bit... 36 Gambar 4.15 Hasil proses kode outer untuk data 100 bit, IA=10bit………... 37 Gambar 4.16 Perbandingan IA= 100 bit dengan BER pada data 10bit... 37 Gambar 4.17 Hasil proses kode outer untuk data 100 bit, IA=100bit... 38 Gambar 4.18 Perbandingan IA= 100 bit dengan BER pada data 100 bit... 38

(7)

LAMPIRAN

(8)

A.1

%---% %--- algoritma BCJR ---% %---% function [aposteriori_uncoded_llrs, aposteriori_encoded1_llrs, aposteriori_encoded2_llrs] = bcjr_decoder(apriori_uncoded_llrs, apriori_encoded1_llrs, apriori_encoded2_llrs)

if(length(apriori_uncoded_llrs) ~= length(apriori_encoded1_llrs) ||

length(apriori_encoded1_llrs) ~= length(apriori_encoded2_llrs))

error('LLR sequences must have the same length');

end;

% Matrik untuk menggambarkan trellis %

% Tiap baris menggambarkan suatu transisi dari trelis % % Tiap state dialokasikan pada indeks 1,2,3 ... %

% FromState, ToState, UncodedBit, Encoded1Bit,Ecoded2Bit

% Cari State terbesar pada matrik transisi %

state_count = max(max(transitions(:,1)),max(transitions(:,2)));

% Hitung apriori transisi log-confidences dengan menjumlahkan % log-confidences yang disatukan dengan tiap nilai bit yang dituliskan %

gammas=zeros(size(transitions,1),length(apriori_uncoded_llrs));

for bit_index = 1:length(apriori_uncoded_llrs)

for transition_index = 1:size(transitions,1)

if transitions(transition_index, 3)==0

gammas(transition_index, bit_index) = gammas(transition_index, bit_index) +

apriori_uncoded_llrs(bit_index)/2;

else

gammas(transition_index, bit_index) = gammas(transition_index, bit_index) -

apriori_uncoded_llrs(bit_index)/2; end;

(9)

A.2

gammas(transition_index, bit_index) = gammas(transition_index, bit_index) +

apriori_encoded1_llrs(bit_index)/2;

else

gammas(transition_index, bit_index) = gammas(transition_index, bit_index) -

apriori_encoded1_llrs(bit_index)/2; end;

if transitions(transition_index, 5)==0

gammas(transition_index, bit_index) = gammas(transition_index, bit_index) +

apriori_encoded2_llrs(bit_index)/2;

else

gammas(transition_index, bit_index) = gammas(transition_index, bit_index) -

apriori_encoded2_llrs(bit_index)/2; end;

end; end;

% bagian Forward recursive %

alphas=zeros(state_count,length(apriori_uncoded_llrs)); alphas=alphas-inf;

alphas(1,1)=0; % merupakan awal state %

for state_index = 2:state_count

alphas(state_index,1)=-inf; % merupakan state selanjutnya %

end;

for bit_index = 2:length(apriori_uncoded_llrs)

for transition_index = 1:size(transitions,1)

alphas(transitions(transition_index,2),bit_index) =

jac(alphas(transitions(transition_index,2),bit_index),alphas(transit ions(transition_index,1),bit_index-1) + gammas(transition_index, bit_index-1));

end; end;

% Bagian Backwards recursive %

betas=zeros(state_count,length(apriori_uncoded_llrs)); betas=betas-inf;

for state_index = 1:state_count

betas(state_index,length(apriori_uncoded_llrs))=0; % bagian

State Terakhir % end;

for bit_index = length(apriori_uncoded_llrs)-1:-1:1

for transition_index = 1:size(transitions,1)

betas(transitions(transition_index,1),bit_index) =

(10)

A.3

ns(transition_index,2),bit_index+1) + gammas(transition_index, bit_index+1));

end; end;

% Menghitung aposteriori llrs transisi %

deltas=zeros(size(transitions,1),length(apriori_uncoded_llrs));

for bit_index = 1:length(apriori_uncoded_llrs)

for transition_index = 1:size(transitions,1)

deltas(transition_index, bit_index) =

alphas(transitions(transition_index,1),bit_index) + gammas(transition_index, bit_index) +

betas(transitions(transition_index,2),bit_index); end;

end;

aposteriori_uncoded_llrs = zeros(1,length(apriori_uncoded_llrs));

for bit_index = 1:length(apriori_uncoded_llrs)

prob0=-inf; prob1=-inf;

for transition_index = 1:size(transitions,1)

if transitions(transition_index,3)==0

aposteriori_uncoded_llrs(bit_index) = prob0-prob1; end;

aposteriori_encoded1_llrs = zeros(1,length(apriori_uncoded_llrs));

for bit_index = 1:length(apriori_uncoded_llrs)

prob0=-inf; prob1=-inf;

for transition_index = 1:size(transitions,1)

if transitions(transition_index,4)==0

aposteriori_encoded1_llrs(bit_index) = prob0-prob1; end;

aposteriori_encoded2_llrs = zeros(1,length(apriori_uncoded_llrs));

(11)

A.4

prob0=-inf; prob1=-inf;

for transition_index = 1:size(transitions,1)

if transitions(transition_index,5)==0

prob0 = jac(prob0, deltas(transition_index,bit_index));

else

prob1 = jac(prob1, deltas(transition_index,bit_index)); end;

end;

aposteriori_encoded2_llrs(bit_index) = prob0-prob1; end;

%---% %--- mengkodekan dengan Konvolusi ---% %---%

function [encoded1_bits, encoded2_bits] = convolutional_encoder(uncoded_bits)

% Bit Sistematik %

encoded1_bits = uncoded_bits;

% Bit Parity %

encoded2_bits=zeros(1,length(uncoded_bits)); encoded2_bits(1) = uncoded_bits(1);

for i = 2:length(uncoded_bits)

encoded2_bits(i) = mod(encoded2_bits(i-1)+uncoded_bits(i),2);

(12)

A.5

%---% %--- Membangkitkan LogLikelihood Ratio ---% %---%

function llrs = generate_llrs(bits, mutual_information)

if(mutual_information < 0 || mutual_information >= 1)

error('mutual_information must be in the range [0,1)');

end

%---% %--- Memastikan Mutual informasi Rata-rata ---% %---%

function mutual_information =

measure_mutual_information_averaging(llrs) P0 = exp(llrs)./(1+exp(llrs));

P1 = 1-P0;

entropies = -P0.*log2(P0)-P1.*log2(P1); mutual_information =

1-sum(entropies(~isnan(entropies)))/length(entropies);

%---% %---Memastikan histogram mutual informasi---% %---%

function mutual_information =

measure_mutual_information_histogram(llrs, bits)

if(llr_0_noninfinite_count > 0 && llr_1_noninfinite_count > 0 && llr_0_min <= llr_1_max && llr_1_min <= llr_0_max)

llr_0_mean = 0.0;

llr_1_mean = 0.0;

(13)

A.6

(llrs(bit_index) - llr_0_mean)^2;

else

llr_0_variance = llr_0_variance/llr_0_noninfinite_count; llr_1_variance = llr_1_variance/llr_1_noninfinite_count;

bin_width =

0.5*(3.49*sqrt(llr_0_variance)*(llr_0_noninfinite_count^(-1.0/3.0)) + 3.49*sqrt(llr_1_variance)*(llr_1_noninfinite_count^(-1.0/3.0)));

(14)

A.7

pdf(1,bin_index) + pdf(2,bin_index)));

end

end

end

(15)

A.8

%---% %---Program Inner Kode---% %---%

% Menentukan banyak bit untuk dikodekan % bit_count=10000;

% Jumlah dari apriori mutual informasi yang dipertimbangkan % IA_count=11;

% Apakah menggunakan metode histogram untuk memastikan mutual informasinya%

histogram=0;

% Kanal Sinyal Noise Ratio dalam dB % SNR = -6;

% Membangkitkan beberapa bit secara acak % uncoded_bits = round(rand(1,bit_count));

% Mengkodekan menggunakan kode konvolusi rekursiv yang sistematik R =1/2 %

[encoded1_bits, encoded2_bits] = convolutional_encoder(uncoded_bits);

% modulasi dengan BPSK %

tx1 = -2*(encoded1_bits-0.5); tx2 = -2*(encoded2_bits-0.5);

% demodulasi dengan BPSK %

apriori_encoded1_llrs = (abs(rx1+1).^2-abs(rx1-1).^2)/N0; apriori_encoded2_llrs = (abs(rx2+1).^2-abs(rx2-1).^2)/N0;

(16)

A.9

requested_IA = 0.999*(0:1/(IA_count-1):1);

% Mempertimbangkan tiap apriori mutual informasi %

for IA_index = 1:IA_count

% Membangkitkan apriori LLRs yang memiliki informasi a priori mutual yang dipertimbangkan %

apriori_uncoded_llrs = generate_llrs(uncoded_bits, requested_IA(IA_index));

% Memastikan mutual informasi dari LLRs yang dibangkitkan %

if histogram

[aposteriori_uncoded_llrs, aposteriori_encoded1_llrs,

aposteriori_encoded2_llrs] = bcjr_decoder(apriori_uncoded_llrs, apriori_encoded1_llrs, apriori_encoded2_llrs);

% Memastikan mutual informasi dari extrinsic LLRs

if histogram

xlabel('Mutual Informasi I_A pada Input dari enkoder');

ylabel('Mutual Informasi I_E pada Output dari enkoder');

title(['Funsi Inner pada SNR = ', num2str(SNR), ' dB']);

% Menampilkan area bawah dari fungsi inner %

annotation('textbox','String',{['Area = ',

(17)

A.10

%---% %---Program Kode Outer---% %---% % Menentukan banyak bit untuk dikodekan %

bit_count=100;

% Jumlah dari apriori mutual informasi yang dipertimbangkan % IA_count=11;

% Apakah menggunakan metode histogram untuk memastikan mutual informasinya%

histogram=0;

% Mempertimbangkan tiap-tiap apriori mutual informasi

for IA_index = 1:IA_count

% Membangkitkan apriori LLRs yang memiliki informasi a priori mutual

% yang dipertimbangkan %

apriori_encoded1_llrs = generate_llrs(encoded1_bits, requested_IA(IA_index));

apriori_encoded2_llrs = generate_llrs(encoded2_bits, requested_IA(IA_index));

% Tidak ada apriori informasi untuk bit yang tidak dikodekan saat proses pada bagian outer %

apriori_uncoded_llrs = zeros(1,length(uncoded_bits));

% Memastikan mutual informasi dari LLRs yang dibangkitkan %

(18)

A.11

end;

% Proses algoritma BCJR %

[aposteriori_uncoded_llrs, aposteriori_encoded1_llrs,

aposteriori_encoded2_llrs] = bcjr_decoder(apriori_uncoded_llrs, apriori_encoded1_llrs, apriori_encoded2_llrs);

% Memastikan mutual informasi dari extrinsic LLRs %

if histogram

% Memperbaharui daerah bawah dari fungsi kode outer % if(IA_index > 1)

area = area + (IE(IA_index)+IE(IA_index-1))*(IA(IA_index)-IA(IA_index-1))/2;

end end

% menampilkan Hasil % figure

% Menampikan area bawah dari fungsi outer %

annotation('textbox','String',{['Area = ',

num2str(1-area)]},'LineStyle','none','Position',[0.7 0.1 0.2 0.1]);

(19)

1 Universitas Kristen Maranatha

BAB I

PENDAHULUAN

1.1 Latar Belakang

Sistem digital saat ini berkembang sangat pesat. Seiring dengan itu maka kebutuhan akan kehandalan suatu sistem digital menjadi syarat utama dalam perancangannya. Salah satu kriteria untuk menilai kehandalan suatu sistem digital adalah dari kemampuannya menghadapi error setelah data ditransmisikan, yang merupakan suatu gejala alami yang dihadapi dalam implementasinya. Maka kebutuhan akan adanya error control menjadi sangat penting untuk memproses data dalam jumlah besar pada sistem komunikasi.

Penelitian mengenai pengkodean untuk mengkoreksi error pada awalnya dimotivasi oleh masalah-masalah yang timbul pada sistem komunikasi, sebagai contoh bahwa setiap sistem komunikasi memiliki keterbatasan pada daya transmisinya sehingga pengkodean untuk mengkoreksi error menjadi sangat penting dalam mengurangi kebutuhan daya transmisi karena keandalan sistem komunikasi tetap dapat tercapai walaupun informasi yang dikirim hanya diterima dengan daya yang rendah.

Teknik error control secara garis besar dapat diklasifikasikan menjadi dua yaitu menggunakan kode Blok (Block Code) dan kode konvolusi, teknik error kontrol ini melakukan dua fungsi, yaitu deteksi error dan koreksi error. Sebuah kode (baik biner maupun non biner) memiliki kemampuan untuk mendeteksi error dan mengoreksi error yang tergantung kepada panjang kodenya.

Dalam tugas akhir ini akan dianalisa kinerja pengkoreksian error menggunakan metoda vector symbol decoding.

1.2 Identifikasi Masalah

(20)

Bab I Pendahuluan 2

Universitas Kristen Maranatha 1.3 Tujuan

Tujuan tugas akhir ini adalah menganalisa kinerja pengkoreksi error menggunakan algoritma BCJR (Bahl-Cocke_Jelinek-Raviv) untuk vector symbol decoding.

1.4 Pembatasan Masalah

Dalam tugas akhir ini akan diambil beberapa batasan masalah, yaitu : 1. Data yang dimasukkan merupakan jumlah panjang data.

2. Error pada kanal dapat diatur

3. Pengkodean dilakukan dengan dua skema pengkodean, yaitu bagian inner dan bagian outer

4. Pemrograman menggunakan Matlab 7

1.5 Sistematika Pembahasan

Sistematika pembahasan dari tugas akhir ini sebagai berikut : BAB I PENDAHULUAN

Bab ini berisikan latar belakang masalah, identifikasi masalah, tujuan, pembatasan masalah, dan sistematika penulisan.

BAB II LANDASAN TEORI

Bab ini berisikan mengenai teori-teori Algoritma BCJR (Balh-Cocke_Jelinek-Raviv) dan Kode Konvolusi

BAB III SIMULASI PADA BAGIAN INNER DAN BAGIAN OUTER Bab ini berisikan proses kerja kode inner dan kode outer.

BAB IV DATA PENGAMATAN DAN PENJELASAN

(21)

Bab I Pendahuluan 3

Universitas Kristen Maranatha BAB V KESIMPULAN DAN SARAN

(22)

Universitas Kristen Maranatha  39

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Berdasarkan hasil pengamatan dan analisa yang telah dilakukan, dapat disimpulkan bahwa:

1. Pada kode inner dan outer, jumlah dari apriori mutual informasi mempengaruhi tingkat kesuksesan decoding. Semakin panjang bit yang diambil sebagai apriori mutual informasi maka hasil dekoding akan semakin tidak bagus.

2. Pada kode inner, SNR yang kecil membuat akan membuat nilai perbandingan apriori mutual informasi IA terhadap nilai aposteriori mutual informasi IE menjadi semakin kecil.

5.2. Saran

Adapun saran yang dapat berguna bagi pengembangan Tugas Akhir ini selanjutnya adalah sebagai berikut

(23)

Universitas Kristen Maranatha

40

DAFTAR PUSTAKA

[ 1 ]

Todd K. Moon, Error Correction Coding Mathematical Methods and

Algorithms, Wiley Interscience, A John Wiley and Sons,Inc.,Publication,2005.

[

2] Man Young Rhee, Error Correcting Coding Theory, McGraw-Hill,

Singapore, 1989.

[3]

Franz Volker, Anderson B Jhon, Concantenated Decoding with a

Reduced-Search BCJR Algorithm, IEEE Transactions on Communications Vol. 16 No.2,

Februari 1998.

[4]

Metzner J John, Vector Symbol Decoding With List Inner Symbol Decisions,

Referensi

Dokumen terkait

Mampu menetapk Mampu menetapkan an Diagnosa Keperawatan Diagnosa Keperawatan tentang gangguan tentang gangguan Sistem Sistem Integumen Furunkel di Rumah Sakit Umum Daerah

cara,mengucapkannya.Oleh karena itu,berbagai penelitian psikologi perkembangan mengatakan bahwa secara umum perkembangan bahasa lebih cepat dari perkembangan

Auditor juga bertanggung jawab untuk menilai apakah terdapat kesangsian besar terhadap kemampuan perusahaan dalam mempertahankan kelangsungan hidupnya (going concern) dalam

masyarakat ini diharapkan pembelajaran karawitan di PGSD UNS tidak berhenti pada persoalan menabuh gamelan, lebih dari itu pembelajaran karawitan juga menyentuh

Merupakan hasil akhir output dari suatu sistem informasi akuntansi dan merupakan alat yang digunakan untuk mempertanggungjawabkan suatu tugas, informasi ini dapat

Berdasarkan uraian tersebut, maka penulis mengajukan penelitian dengan judul: “PENGARUH KAPASITAS SUMBER DAYA MANUSIA, PEMANFAATAN TEKNOLOGI INFORMASI, KOMITMEN

Tujuan penelitian ini adalah (1) meningkatkan pembelajaran IPA tentang perubahan kenampakan bumi dengan model MURDER dan media gambar pada siswa kelas IV SD Negeri 1

Efektifitas adalah hasil akhir dari suatu tujuan yang direncanakan sebelumnya. Adapun nilai efektifitas, yaitu perbandingan antara outcome dengan output. Selanjutnya akan