Analisa Kinerja Pengkoreksi Error Dengan Metoda Vector Symbol Decoding.

(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

DAFTAR PUSTAKA... 40 LAMPIRAN : M-File Matlab


(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 29 Gambar 4.1 Hasil proses kode inner data 1000 bit, IA= 10bit, SNR -6db.... 30

Gambar 4.2 Hasil proses kode inner data 1000 bit, IA= 100bit, SNR -6db.. 30

Gambar 4.3 Hasil proses kode inner data 1000 bit, IA= 1000bit, SNR -6db 31 Gambar 4.4 Hasil proses kode inner data 100 bit, IA= 10bit, SNR -6db... 31

Gambar 4.5 Hasil proses kode inner data 100 bit, IA= 100bit, SNR -6db.... 32

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

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 transitions = [1, 1, 0, 0, 0; 1, 2, 1, 1, 1; 2, 1, 1, 1, 0; 2, 2, 0, 0, 1];

% 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

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

else

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

end;

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

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

else

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

end;

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(length(llrs) ~= length(bits))

error('Must have same number of llrs and bits!');

end

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

if(llrs(bit_index) ~= -Inf && llrs(bit_index) ~=

Inf)

if(bits(bit_index) == 0)

llr_0_mean = llr_0_mean+llrs(bit_index);

else

llr_1_mean = llr_1_mean+llrs(bit_index);

end

end

end

llr_0_mean = llr_0_mean/llr_0_noninfinite_count; llr_1_mean = llr_1_mean/llr_1_noninfinite_count;

llr_0_variance = 0.0; llr_1_variance = 0.0;

for bit_index = 1:length(bits)

if(llrs(bit_index) ~= -Inf && llrs(bit_index) ~=

Inf)

if(bits(bit_index) == 0)

llr_0_variance = llr_0_variance + (llrs(bit_index) - llr_0_mean)^2;

else

llr_1_variance = llr_1_variance + (llrs(bit_index) - llr_1_mean)^2;

end

end

end

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

if(bin_width > 0.0)

bin_offset = floor(min(llr_0_min, llr_1_min)/bin_width)-1;

temp = max(llr_0_max, llr_1_max)/bin_width-bin_offset+1;

bin_count = ceil(temp);

if(bin_count == temp)

bin_count = bin_count+1;

end

else

bin_offset = -1; bin_count = 3;


(14)

A.7

end

lots_of_bins = true;

else

lots_of_bins = false; bin_count = 4;

end

histogram = zeros(2,bin_count);

for bit_index = 1:length(bits)

if(llrs(bit_index) == -Inf)

histogram(bits(bit_index)+1,1) = histogram(bits(bit_index)+1,1)+1;

elseif(llrs(bit_index) == Inf)

histogram(bits(bit_index)+1,bin_count) = histogram(bits(bit_index)+1,bin_count)+1;

else

if(lots_of_bins == true)

if(bin_width > 0.0)

histogram(bits(bit_index)+1,floor(llrs(bit_index)/bin_width)-bin_offset+1) = histogram(bits(bit_index)+1,floor(llrs(bit_index)/bin_width)-bin_offset+1)+1; else histogram(bits(bit_index)+1,2) = histogram(bits(bit_index)+1,2)+1; end else histogram(bits(bit_index)+1,bits(bit_index)+2) = histogram(bits(bit_index)+1,bits(bit_index)+2)+1; end end end

pdf = zeros(2,bin_count);

pdf(1,:) = histogram(1,:)/bit_0_count; pdf(2,:) = histogram(2,:)/bit_1_count;

mutual_information = 0.0;

for bit_value = 0:1

for bin_index = 1:bin_count

if(pdf(bit_value+1,bin_index) > 0.0)

mutual_information = mutual_information +

0.5*pdf(bit_value+1,bin_index)*log2(2.0*pdf(bit_value+1,bin_index)/( pdf(1,bin_index) + pdf(2,bin_index)));

end

end

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

IA(IA_index) = measure_mutual_information_histogram(apriori_uncoded_llrs, uncoded_bits); else IA(IA_index) = measure_mutual_information_averaging(apriori_uncoded_llrs); 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

IE(IA_index) = measure_mutual_information_histogram(extrinsic_uncoded_llrs, uncoded_bits); else IE(IA_index) = measure_mutual_information_averaging(extrinsic_uncoded_llrs); end % Hasil % figure

plot(IA,IE); xlim([0 1]); ylim([0 1]);

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 %

if histogram

IA(IA_index) =

(measure_mutual_information_histogram(apriori_encoded1_llrs, encoded1_bits) +

measure_mutual_information_histogram(apriori_encoded2_llrs, encoded2_bits))/2;

else

IA(IA_index) =

(measure_mutual_information_averaging(apriori_encoded1_llrs) + measure_mutual_information_averaging(apriori_encoded2_llrs))/2;


(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

IE(IA_index) = (measure_mutual_information_histogram(extrinsic_encoded1_llrs, encoded1_bits) + measure_mutual_information_histogram(extrinsic_encoded2_llrs, encoded2_bits))/2; else IE(IA_index) = (measure_mutual_information_averaging(extrinsic_encoded1_llrs) + measure_mutual_information_averaging(extrinsic_encoded2_llrs))/2; end;

% 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

semilogy(IA,BER); xlim([0 1]);

ylim([min(100/bit_count,0.1) 1]);

xlabel('I_a');

ylabel('BER');

figure plot(IE,IA); xlim([0 1]); ylim([0 1]);

xlabel('I_e');

ylabel('I_a');

% 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

Bagaimana menganalisa kinerja pengkoreksi error dengan menggunakan algoritma BCJR (Bahl-Cocke_Jelinek-Raviv) untuk vector symbol decoding?


(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

Bab ini berisikan tentang data dan penjelasan yang diperoleh dari hasil program simulasi.


(21)

Bab I Pendahuluan 3

Universitas Kristen Maranatha BAB V KESIMPULAN DAN SARAN

Bab ini berisikan kesimpulan dan saran yang diperoleh dari hasil Tugas Akhir yang telah dilakukan.


(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

1. Metoda pengkoreksian error pada vector symbol decoding dapat menerapkan algoritma yang lainnya pada kode inner dan kode outernya sehingga dapat mengkoreksi error lebih baik, contohnya pada kode inner dapat diterapkan algoritma viterbi dan pada kode outer dapat diterapkan kode reed solomon.


(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,

IEEE Transactions on Communications Vol.51,No.3, March 2003.


(1)

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

IE(IA_index) = (measure_mutual_information_histogram(extrinsic_encoded1_llrs, encoded1_bits) + measure_mutual_information_histogram(extrinsic_encoded2_llrs, encoded2_bits))/2; else IE(IA_index) = (measure_mutual_information_averaging(extrinsic_encoded1_llrs) + measure_mutual_information_averaging(extrinsic_encoded2_llrs))/2; end;

% 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

semilogy(IA,BER); xlim([0 1]);

ylim([min(100/bit_count,0.1) 1]); xlabel('I_a');

ylabel('BER');

figure

plot(IE,IA); xlim([0 1]); ylim([0 1]); xlabel('I_e'); ylabel('I_a');

% Menampikan area bawah dari fungsi outer %

annotation('textbox','String',{['Area = ', num2str(1-area)]},'LineStyle','none','Position',[0.7 0.1 0.2 0.1]);


(2)

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

Bagaimana menganalisa kinerja pengkoreksi error dengan menggunakan algoritma BCJR (Bahl-Cocke_Jelinek-Raviv) untuk vector symbol decoding?


(3)

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

Bab ini berisikan tentang data dan penjelasan yang diperoleh dari hasil program simulasi.


(4)

Bab I Pendahuluan 3

Universitas Kristen Maranatha

BAB V KESIMPULAN DAN SARAN

Bab ini berisikan kesimpulan dan saran yang diperoleh dari hasil Tugas Akhir yang telah dilakukan.


(5)

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

1. Metoda pengkoreksian error pada vector symbol decoding dapat menerapkan algoritma yang lainnya pada kode inner dan kode outernya sehingga dapat mengkoreksi error lebih baik, contohnya pada kode inner dapat diterapkan algoritma viterbi dan pada kode outer dapat diterapkan kode reed solomon.


(6)

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,

IEEE Transactions on Communications Vol.51,No.3, March 2003.