Error Corecting Code Menggunakan Kode Low Density Parity Check (LDPC).

(1)

i

Universitas Kristen Maranatha

Error Correcting Code Menggunakan

Kode Low Density Parity Check (LDPC)

Kristy Purba (0722012)

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. Drg. Suria Sumantri 65

Bandung 40164, Indonesia E-mail : [email protected]

ABSTRAK

Kebutuhan akan adanya komunikasi yang semakin meningkat menuntut berkembangnya kemampuan teknologi pengiriman data yang dapat diandalkan. Dalam bidang telekomunikasi, data atau pesan yang dikirim sering mengalami gangguan atau noise. Sehingga pada sisi penerima, pesan yang didapat tidak dapat merepresentasikan pesan yang sesungguhnya hendak disampaikan.

Dalam Tugas Akhir ini, secara umum dilakukan simulasi proses error

correction yang bertujuan untuk meningkatkan keandalan data yang diterima.

Cara untuk melakukan error correction adalah dengan melakukan pengodean pada data. Pada Tugas Akhir ini, kode yang digunakan adalah kode Low Density

Parity Check (LDPC) dengan algoritma error correction menggunakan algoritma Sum-Product.

Dari hasil simulasi didapatkan bahwa blok kode semakin panjang maka performansi LDPC akan semakin baik namun waktu yang dibutuhkan untuk melakukan proses decoding semakin lama, terutama pada panjang kode 1600 yang mana membutuhkan waktu yang cukup besar dibandingkan dengan panjang kode 800, 400, dan 200. Selain itu simulasi menunjukkan apabila jumlah iterasi pada proses error correction ditambah maka akan didapatkan performansi yang lebih baik, namun waktu proses juga bertambah. Dari hasil simulasi diperoleh bahwa jumlah iterasi yang cukup baik dari segi waktu dan performansi adalah sebanyak 10 kali.


(2)

ii

Universitas Kristen Maranatha

Error Correcting Code Using

Low Density Parity Check (LDPC) Code

Kristy Purba (0722012)

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jalan Prof. Drg. Suria Sumantri 65

Bandung 40164, Indonesia E-mail : [email protected]

ABSTRACT

Demand of communication that growing higher prosecute development of data transmission technology that can be reliable. In telecommunications field, datas or messages sent frequently get interference or noise. Because of that, at the receiver, the given messages can't represent the real messages that would be delivered.

This final project, in generally is performed simulation of error correction process that aims to increase the reliability of data received. The way to perform error correction is by doing coding on data. In this final project, the code used is the Low Density Parity Check (LDPC) code with error correction algorithm using the Sum-Product algorithm.

From the simulation result using the Sum-Product algorithm showed that the longer block codes will get the better LDPC performance but the time needed to perform the decoding process is longer, especially on the code length 1600 which requires long enough time compared to the code length 800, 400, and 200. Moreover, simulation show if the number of iterations on the error correction is added it will get better performance, but the time process is increased too. From the simulation found that the number of iterations are good enough in terms of time and performance is 10 times.


(3)

v

Universitas Kristen Maranatha

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... viii

DAFTAR TABEL ... xi

BAB I PENDAHULUAN 1.1Latar Belakang Masalah ... 1

1.2Identifikasi Masalah ... 2

1.3Perumusan Masalah ... 2

1.4Tujuan ... 2

1.5Pembatasan Masalah ... 2

1.6Sistematika Penulisan ... 3

BAB II LANDASAN TEORI 2.1Komunikasi Digital ... 4

2.2Teorema Shannon ... 5

2.3Error Correction ... 5

2.4Kode Hamming ... 6


(4)

vi

Universitas Kristen Maranatha

2.4.2 Kode Single-Error-Correcting ... 7

2.5Minimum Distance pada Kode Blok ... 9

2.6Kode Low Lensity Parity Check ... 10

2.7Reprensentasi Kode LDPC ... 11

2.8Proses Encoding LDPC ... 13

2.9Algoritma Message-Passing ... 15

2.9.1 Message-Passing pada Binary Erasure Channel (BEC) ... 15

2.9.2 Algoritma Bit Flipping ... 20

2.9.3 Algoritma Sum-Product ... 24

2.9.3.1.Tahap Inisialisasi ... 25

2.9.3.2.Komputasi Pesan ... 25

2.9.3.2.1 Horizontal Step... 25

2.9.3.2.2 Vertical Step ... 26

2.9.3.3.Soft Decision ... 26

2.10 Modulasi BPSK ... 31

BAB III PERANCANGAN SISTEM 3.1Membangkitkan Matrik Parity Check ... 34

3.2Membangun Matrik Generator ... 36

3.3Error Correction dengan Algoritma Sum-Product ... 38

BAB IV DATA PENGAMATAN DAN ANALISIS 4.1Analisis BER untuk data yang dikodekan dengan LDPC dan yang tidak dikodekan... ... 40


(5)

vii

Universitas Kristen Maranatha

4.2 Analisis kode LDPC dengan jumlah iterasi yang berbeda ... 41 4.3 Analisis BER untuk data yang dikodekan dengan LDPC dan dengan panjang kode yang berbeda ... 46 BAB V KESIMPULAN DAN SARAN

5.1 Kesimpulan ... 48 5.2 Saran ... 49 DAFTAR PUSTAKA ... 50 LAMPIRAN A: LIST PROGRAM ... A-1


(6)

viii

Universitas Kristen Maranatha

DAFTAR GAMBAR

Gambar 2.1 Sistem Komunikasi Digital ... 4

Gambar 2.2 Matrik Parity-Check regular ... 10

Gambar 2.3 Matrik Parity-Check Irregular ... 10

Gambar 2.4 (a) Matriks Parity Check (b) Grafik Tanner Kode LDPC ... 11

Gambar 2.5 Matriuk Parity-Check menggunakan metode Gallager ... 12

Gambar 2.6 Matrik Parity-Check menggunakan metode Mackay dan Neal ... 13

Gambar 2.7 (a) Matrik LDPC dengan wc = 2, wr = 3 (b) Grafik Tanner dari Matrik LDPC dengan wc = 2, wr = 3 ... 16

Gambar 2.8 Node bit mengirimkan pesan Mi kepada node cek untuk dilakukan proses pengecekan ... 17

Gambar 2.9 Proses Node cek mengirimkan pesan kepada node bit yang menyebabkan node bit ke-4 dan 5 mengalami perubahan nilai ... 18

Gambar 2.10 Tahap iterasi kedua node cek mengirimkan pesan kepada node bit sehingga menyebabkan node bit ke-6 mengalami perubahan nilai ... 19

Gambar 2.11 Node bit mengirimkan pesan kepada node cek untuk dilakukan proses pengecekan ... 21

Gambar 2.12 (a) Node cek mengirimkan pesan kepada node bit ke-1 dan 2 sehingga akan terjadi perubahan nilai terhadap node bit yang mengalami error (b) Nilai node bit yang sudah terupdate ... 23

Gambar 2.13 Proses alir pesan dari node bit ke node cek dan dari node cek ke node bit... ... 24


(7)

ix

Universitas Kristen Maranatha

Gambar 2.15 Aliran pesan pada Grafik Tanner untuk mencari nilai r17(0) ... 29

Gambar 2.16 Aliran pesan pada Grafik Tanner untuk mencari nilai q36(1) ... 30

Gambar 3.1 Blok Diagram dari tahapan Error Correction menggunakan kode LDPC... 33

Gambar 3.2 Diagram alir Error Correction menggunakan LDPC ... 34

Gambar 3.3 Diagram alir membangun matrik H ... 35

Gambar 3.4 Short Cycle pada grafik Tanner ... 36

Gambar 3.5 Diagram alir pembentukan matrik Generator... 37

Gambar 3.6 Letak bit parity dan bit message pada codeword ... 37

Gambar 3.7 Diagram alir proses error correction menggunakan algoritma Sum-Product.... ... 38

Gambar 4.1 Kurva BER terhadap SNR antara yang terkode (dengan jumlah iterasi yang berbeda) dan yang tidak dengan data sebanyak 105 bit ... 40

Gambar 4.2 Hasil Pengodean (200,100) LDPC dengan jumlah iterasi yang berbeda dan data sebanyak 106 bit ... 41

Gambar 4.3 Hasil Pengodean (400,200) LDPC dengan jumlah iterasi yang berbeda dan data sebanyak 106 bit ... 42

Gambar 4.4 Hasil Pengodean (400,200) LDPC dengan jumlah iterasi yang berbeda dan data sebanyak 105 bit ... 43

Gambar 4.5 Hasil Pengodean (200,100) LDPC dengan jumlah iterasi yang berbeda dan data sebanyak 105 bit ... 44


(8)

x

Universitas Kristen Maranatha

Gambar 4.7 Kurva BER terhadap SNR antara LDPC yang memiliki panjang blok kode yang berbeda... 46 Gambar 4.8 Pengaruh panjang blok data terhadap waktu pendekodean data .. 47


(9)

xi

Universitas Kristen Maranatha

DAFTAR TABEL

Tabel 2.1 Single-Error-Correcting Kode Hamming ... 8 Tabel 2.2 Modulasi BPSK... 32


(10)

LAMPIRAN A

LIST PROGRAM


(11)

A-1 LAMPIRAN A

Listing Program Utama clc; clear all

% Insialisasi Masukan %

% --- %

blocklength=200; %Panjang kode

bit_message=100; %Jumlah bit message

wc=3;%weight of column

Iterasi=15;

% Membangun Matrik H %

% --- %

[H,Rj,Ci]=MembuatH(blocklength,bit_message,wc)

% Membangun Matrik G %

% --- %

[G,NewCol]=MembuatG(H);

SNR=[0 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5] No=1;%Rapat spektral daya satu sisi dari noise

var=No/2; %Variansi dari noise % Membangkitkan bit message %

% --- % for z=1:100 message=round(rand(bit_message,1)); message_temp(z,:)=message'; Codeword=LDPCencode(G,NewCol,message); %Modulasi codeword%

dataout_uncode=BPSK(message); %Data yang tidak dikodekan

dataout=BPSK(Codeword);

DATA_uncode(z,:)=dataout_uncode; DATA(z,:)=dataout;

end

% Penerima %

% --- % for i=1:length(SNR) err_un=0; err=0; for k=1:100 Received_uncode=awgn(DATA_uncode(k,:),SNR(i),'measured'); Received=awgn(DATA(k,:),SNR(i),'measured'); RxMessage_uncode=demodBPSK(Received_uncode);


(12)

A-2 [RxMessage,Jumlah_Iterasi,Sukses]=SPADecode(H,Rj,Ci,Received,v ar,Iterasi,NewCol) [num_un rate_un]=biterr(RxMessage_uncode,message_temp(k,:)); [num rate]=biterr(RxMessage,message_temp(k,:)); err_un=err_un+num_un; err=err+num; end %Menghitung BER BER_Uncode(i)=err_un/(nummessagebits*k) BER(i)=err/(nummessagebits*z) end Fungsi MembuatH function [H,Rj,Ci]=MembuatH(blocklength,bit_message,wc);

%Fungsi untuk membangun matrik H dengan input : %Blocklength : Panjang data

%bit_message : Jumlah bit message %wc :weight of column

rows=blocklength-bit_message; cols=blocklength; wr=ceil(cols*wc/rows); counter(1:rows,1:wr)=0; rowcount(1:rows)=0; %Generate H for i=1:1:cols for k=1:1:wc common(1)=2; while(max(common)>=2) common(1:rows)=0; randnum=round(rand*(rows-1))+1; while((rowcount(randnum)>wr)||length(find(counter(randnum,:) ==i))>=1) randnum=round(rand*(rows-1))+1; end countertemp=counter(randnum,:); countertemp(rowcount(randnum)+1)=i;

%menjamin agar tidak terjadi 4 cycle

for j=1:1:rows if(j~=randnum) for l=1:1:wr if(length(find(counter(j,:)==countertemp(l)))>=1 && countertemp(l)~=0) common(j)=common(j)+1; end end end end end


(13)

A-3 counter(randnum,rowcount(randnum)+1)=i; rowcount(randnum)=rowcount(randnum)+1; colcounter(i,k)=randnum; ParCheck(randnum,i)=1; end end

Rj=counter %menunjukan letak bit 1 pada baris matrik H

Ci=colcounter %menunjukan letak bit 1 pada kolom matrik H

Fungsi MembuatG function [G,newcol]=MembuatG(mat1) [rows,cols]=size(mat1); tempH=mat1; for i=1:rows NewColPosition(i)=0; end %Operasi Gauss-Jordan for i=1:1:rows if tempH(i,i)==0 for k=(i+1):1:cols if (tempH(i,k)==1) spot=k; break; end end tempcol=tempH(:,spot); tempH(:,k)=tempH(:,i); tempH(:,i)=tempcol; tempcol=mat1(:,spot); mat1(:,k)=mat1(:,i); mat1(:,i)=tempcol; NewColPosition(i)=spot; end for j=1:1:rows if j~=i if tempH(j,i)==1 tempH(j,:)=xor(tempH(i,:),tempH(j,:)); end end end end augmat(1:rows,1:rows)=mat1(1:rows,1:rows); B(1:rows,1:(cols-rows))=mat1(1:rows,(rows+1):cols); clear('mat1'); clear('tempH'); newcol=NewColPosition;

%Masukan matrik Identitas

for i=1:1:rows for j=1:1:rows


(14)

A-4 if(i==j) augmat(i,j+rows)=1; end if(i~=j) augmat(i,j+rows)=0; end end end %Proses Inversi for i=1:1:rows

if(augmat(i,i)==0 && i~=rows) swflag=0; for k=i+1:1:rows if(augmat(k,i)==1) temp=augmat(i,:); augmat(i,:)=augmat(k,:); augmat(k,:)=temp; swflag=1; break; end end

if(swflag==0 || (i==rows && augmat(rows,rows)==0)) disp('Matrik tidak invertable -> Singular') done=0;

break; end

end

for j=1:1:rows

if(augmat(j,i)==1 && j~=i)

augmat(j,:)=xor(augmat(i,:),augmat(j,:)); end end end Ainv(1:rows,1:rows)=augmat(1:rows,(rows+1):2*rows) G=BinaryMultiply(Ainv,B); for i=1:1:(cols-rows) for j=1:1:(cols-rows) if(i==j) Gprime(rows+i,j)=1; end if(i~=j) G(rows+i,j)=0; end end end clear('augmat'); Fungsi LDPCencode function [Codeword]=LDPCencode(G,NewCol,bit_message)


(15)

A-5

%Fungsi untuk mendapatkan nilai codeword dengan input : %G : matrik Generator

%NewCol : Posisi kolom yang baru pada matrik H akibat dari operasi Gauss-Jordan

%bit_message : bit pesan

CodewordTemp=BinaryMultiply(G,bit_message); %Codeword

rows=length(NewCol);

%Peletakan posisi bit berdasarkan nilai NewCol

for i=rows:-1:1 if(NewCol(i)~=0) TempBit=CodewordTemp(i); CodewordTemp(i)=CodewordTemp(NewCol(i)); CodewordTemp(NewCol(i))=TempBit; end end Codeword=CodewordTemp; clear('Temp'); clear('CodewordTemp'); Fungsi BPSK function [dataout]=BPSK(datain) for k=1:length(datain) b0=datain(k); if b0==0 phase=1; elseif b0==1 phase=-1; end dataout(k)=phase; end end Fungsi SPAdecode function[RxMessage,Jumlah_iterasi,Success]=SPADecode(H,Rj,Ci,Recei ved,var,Iterasi,Newcol)

%Fungsi untuk melakukan algoritma decoding the Sum-Product

sizeofH=size(H); rows=sizeofH(1); cols=sizeofH(2); var=var; Success=0; factor=1; factor1=1; %Inisialisasi for i=1:1:cols for k=1:1:size(Ci,2) Pi(Ci(i,k),i)=1/(1+exp(-2*Received(i)/var)); Pi(Ci(i,k),i)=1-Pi(Ci(i,k),i); qmn(0)(Ci(i,k),i)=1-Pi(Ci(i,k),i); qmn(1)(Ci(i,k),i)=Pi(Ci(i,k),i); end


(16)

A-6 end %proses decoding for count=1:1:Iter

%menghitung pesan dari node cek ke node bit

for j=1:1:rows

for kp=1:1:size(Rj,2) if(Rj(j,kp)~=0) temp=0.5;

for k=1:1:size(Rj,2)

if(Rj(j,k)~=0 && Rj(j,k)~=Rj(j,kp)); temp=temp*(1-2*qmn(1)(j,Rj(j,k))); end end rmn(0)(j,Rj(j,kp))=0.5+temp; rmn(1)(j,Rj(j,kp))=1-rmn(0)(j,Rj(j,kp)); end end end

%menghitung pesan dari node bit ke node cek

for i=1:1:cols for kp=1:1:size(Ci,2) temp0=1; temp1=1; for k=1:1:size(Ci,2) if(Ci(i,k)~=Ci(i,kp)) temp0=temp0*rmn(0)(Ci(i,k),i); temp1=temp1*rmn(1)(Ci(i,k),i); end end temp0=temp0*(1-Pi(Ci(i,kp),i)); temp1=temp1*Pi(Ci(i,kp),i); factor1(i)=temp0+temp1; temp0=temp0/factor1(i); temp1=temp1/factor1(i); qmn(0)(Ci(i,kp),i)=temp0; qmn(1)(Ci(i,kp),i)=temp1; end end %soft decision for i=1:1:cols temp0=1; temp1=1; for k=1:1:size(Ci,2) temp0=temp0*rmn(0)(Ci(i,k),i); temp1=temp1*rmn(1)(Ci(i,k),i); end temp0=temp0*(1-Pi(Ci(i,1),i)); temp1=temp1*(Pi(Ci(i,1),i)); factor(i)=temp0+temp1; temp0=temp0/factor(i); temp1=temp1/factor(i); Qi(i)=temp1; if Qi(i)>0.5


(17)

A-7 CodeEst(i)=1;

else

CodeEst(i)=0; end

end

val=sum(BinaryMultiply(H,transpose(CodeEst))); if(val==0 && sum(CodeEst)~=0)

Jumlah_iterasi=count; Success=1;

break end end

%Jika tidak sukses

if(Success==0)

NumIterationsPerformed=Iter; end

%Pesan yang didapatkan

RxMessage=GetMessage(CodeEst,Newcol,cols-rows); Fungsi DemodBPSK

function Rx_uncode=demodBPSK(datain) Nbpsc=1;

Rx_uncode=zeros(1,length(datain)); for i=1:length(datain)

s=datain(1,i); if real(s)<0 s=1;

elseif real(s)>=0 s=0;

end

Rx_uncode(1,i)=s; end


(18)

1 Universitas Kristen Maranatha

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Pada saat ini telekomunikasi merupakan salah satu bagian yang sangat penting. Melalui komunikasi segala macam informasi dapat dikirim atau dibagikan terhadap orang lain. Dengan semakin berkembangnya zaman maka kebutuhan akan perkembangan teknologi komunikasi juga semakin meningkat.

Dalam sistem komunikasi proses pengiriman dan penerimaan data menjadi salah satu hal yang amat dipertimbangkan proses perencanaannya. Tidak dapat dipungkiri pada komunikasi jarak jauh banyak sekali kendala-kendala yang didapati ketika hendak melakukan pengiriman data. Satu yang menjadi kendala utama adalah mengenai noise. Noise atau yang biasa disebut derau merupakan suatu sinyal gangguan bersifat acak yang hadir dalam suatu sistem dan merupakan sinyal yang tidak diinginkan.

Pada transmisi data semakin jauh jarak antara pengirim dan penerima maka noise yang mengganggu akan semakin banyak. Hal ini dapat menyebabkan data yang hendak dikirim akan rusak atau cacat sehingga tidak dapat digunakan oleh penerima. Ada beberapa solusi untuk menyelesaikan permasalahan ini yaitu menggunakan media yang lebih baik, membangun stasiun perantara antara pengirim dan penerima data. Salah satu solusi lain adalah dengan mencoba memperbaiki data yang telah rusak akibat noise. Solusi ini merupakan suatu sistem yang mampu mengenali kerusakan data sampai pada batasan tertentu dan memperbaikinya sehingga data menjadi benar kembali. Keuntungan dari solusi ini adalah dengan kondisi infrastruktur dan sistem pengiriman data yang sudah ada, data yang seharusnya tidak dapat terpakai lagi masih dapat digunakan tanpa perlu menambah infrastruktur yang baru atau yang mahal.

Ada beberapa jenis pengodean ketika hendak melakukan proses error


(19)

BAB I PENDAHULUAN 2

Universitas Kristen Maranatha

(LDPC). Kode ini pertama kali diperkenalkan oleh Gallager. Ketika pertama kali ditemukan kode ini dianggap tidak praktis akibat keterbatasan kemampuan komputasi pada saat itu, sehingga kode ini sempat tidak digunakan selama beberapa puluh tahun. Saat ini ketika performa komputer sudah semakin berkembang pesat maka kode ini mulai diperkenalkan kembali sebagai salah satu kode yang cukup baik dengan hasil yang mendekati Shannon Limit.

1.2 Identifikasi Masalah

Berdasarkan latar belakang di atas, masalah utama yang akan diangkat pada tugas akhir ini adalah dapat melakukan proses error correction pada suatu sinyal informasi yang telah mengalami kerusakan data akibat noise.

1.3 Perumusan Masalah

Permasalahan yang akan dibahas dalam Tugas Akhir ini meliputi :

1. Bagaimana mensimulasikan proses error correction menggunakan kode LDPC pada suatu sinyal yang terkena noise ?

2. Bagaimana kinerja dari kode LDPC ? 1.4 Tujuan

Tujuan yang ingin dicapai oleh mahasiswa pada Tugas Akhir ini adalah : 1. Melakukan simulasi proses error correction menggunakan teknik

pengodean LDPC.

2. Menganalisa kinerja sistem pengodean LDPC dalam melakukan koreksi kesalahan.

1.5 Pembatasan Masalah

1. Model kanal yang digunakan adalah kanal Additive White Gaussian Noise (AWGN).


(20)

BAB I PENDAHULUAN 3

Universitas Kristen Maranatha

3. Algoritma error correction yang digunakan menggunakan algoritma

Sum-Product.

4. Parameter kinerja sistem yang dianalisis adalah Bit Error Rate (BER). 5. Jenis matrik Parity Check LDPC yang digunakan adalah matrik irregular. 6. Simulasi dilakukan dengan menggunakan software MATLAB.

1.6 Sistematika Penulisan

Penyusunan laporan Tugas Akhir ini terdiri dari lima bab sebagai berikut:

 BAB I. Pendahuluan

Pada bab ini akan dibahas mengenai Latar Belakang Masalah, Perumusan Masalah, Identifikasi Masalah, Tujuan, Pembatasan Masalah, dan Sistematika Penulisan.

 BAB II. Landasan Teori

Pada bab ini akan dibahas teori-teori pendukung untuk membangun kode LDPC beserta gambaran secara umum kode LDPC dapat memperbaiki kesalahan.

 BAB III. Perancangan Sistem

Pada bab ini dijelaskan cara kerja dari sistem kode LDPC melakukan pengoreksian error.

 BAB IV. Data Pengamatan

Pada bab ini berisi tentang hasil pengamatan terhadap bit-bit data yang telah terkena noise dan dibandingkan hasilnya antara bit yang telah mengalami pengodean dengan yang tidak serta pengaruh Iterasi dan panjang Blok kode terhadap performansi dari LDPC.

 BAB V. Kesimpulan dan Saran

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk pengembangan mengenai LDPC di masa mendatang.


(21)

48 Universitas Kristen Maranatha

BAB V

KESIMPULAN DAN SARAN

Pada bab ini akan disampaikan kesimpulan dari hasil analisis dan saran yang berkaitan dengan topik Tugas Akhir ini.

5.1. Kesimpulan

Dari hasil simulasi, Pengodean menggunakan LDPC (dengan algoritma

Sum-Product) memiliki kinerja sebagai berikut :

 Dengan panjang kode yang semakin besar maka performansi yang didapatkan juga semakin baik. Namun antara panjang kode 1600, 800, dan 400 tidak memiliki perbedaan performansi yang begitu besar, hal ini terlihat pada hasil analisa yang terdapat pada bab sebelumnya. Selain itu waktu yang dibutuhkan seiring dengan peningkatan panjang kode juga semakin bertambah. Terutama pada panjang kode 1600 terjadi peningkatan waktu yang cukup besar dibandingkan dengan panjang kode 800, 400, dan 200. Sehingga pemilihan panjang kode harus dipilih sesuai dengan kebutuhan komunikasi yang hendak dilakukan. Misalkan komunikasi yang dilakukan membutuhkan keakuratan data dan waktu yang tidak begitu besar maka panjang data 800 atau 400 merupakan pilihan yang baik karena waktu yang diperlukan untuk melakukan proses pendekodean tidak sebanyak panjang kode 1600 namun performansi yang didapatkan tidak begitu berbeda.

 Jumlah iterasi semakin bertambah maka performansi juga semakin baik namun waktu yang dibutuhkan untuk pendekodean data juga semakin banyak terutama ketika melakukan pendekodean dengan bit data sebanyak 106 bit yang mana terjadi peningkatan waktu yang

besar seiring dengan penambahan jumlah iterasi. Simulasi juga menunjukkan iterasi 15 kali tidak memiliki perbedaan performansi


(22)

BAB V KESIMPULAN DAN SARAN 49

Universitas Kristen Maranatha

yang signifikan terhadap performansi dengan iterasi 10 kali. Sehingga iterasi yang cukup baik dari segi waktu dan performansi adalah sebanyak 10 kali.

5.2. Saran

 Membandingkan kinerja dari LDPC dengan menggunakan matrik

Parity Check yang regular dan irregular.

Melakukan analisis performansi LDPC dengan algoritma error

correction yang berbeda seperti bit flipping.

 Membandingkan kinerja pengodean menggunakan kode LDPC dengn jenis kode yang lain seperti Turbo code.


(23)

50 Universitas Kristen Maranatha

DAFTAR PUSTAKA

1. Dechene, Dan and Peets, Kevin. Simulated Performance of Low Density

Parity Check Codes, Lakehead University-Faculty of Engineering,2006.

2. Gallager, R.G. 1963. Low-Density Parity-Check Codes.

3. Johnson, Sarah. J. Introducing Low-Density Parity-Check Codes.

4. Kien Nguyen, Chi.Low-Density Parity-Check Codes Construction and

Performance Evaluation,School of Electrical Engineering and Telecommunications, The University of New South Wales,Australia,August 2002.

5. Mackay, D.J.C. and R.M. Neal.Near Shannon limit performance of low

density parity check codes, ELECTRONICS LETTERS 29th August 1996

Vol.32 No.18.

6. Moura, José M.F., Jin Lu, and Haotian Zhang. Structured Low-Density

Parity-Check Codes, IEEE SIGNAL PROCESSING MAGAZINE, January 2004.

7. OHTSUKI, Tomoaki.LDPC Codes in Communications and Broadcasting, IEICE TRANS.COMMUN.,VOL.E90-B,NO.3 MARCH 2007.

8. Wicker, B. Stephen. Error Control Systems for Digital Communication and

Storage, Prentice-Hall,Inc, 1995.

9. William E.R., 2003, An Introduction to LDPC Codes, Tuczon, The University of Arizona.


(1)

1 Universitas Kristen Maranatha

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Pada saat ini telekomunikasi merupakan salah satu bagian yang sangat penting. Melalui komunikasi segala macam informasi dapat dikirim atau dibagikan terhadap orang lain. Dengan semakin berkembangnya zaman maka kebutuhan akan perkembangan teknologi komunikasi juga semakin meningkat.

Dalam sistem komunikasi proses pengiriman dan penerimaan data menjadi salah satu hal yang amat dipertimbangkan proses perencanaannya. Tidak dapat dipungkiri pada komunikasi jarak jauh banyak sekali kendala-kendala yang didapati ketika hendak melakukan pengiriman data. Satu yang menjadi kendala utama adalah mengenai noise. Noise atau yang biasa disebut derau merupakan suatu sinyal gangguan bersifat acak yang hadir dalam suatu sistem dan merupakan sinyal yang tidak diinginkan.

Pada transmisi data semakin jauh jarak antara pengirim dan penerima maka noise yang mengganggu akan semakin banyak. Hal ini dapat menyebabkan data yang hendak dikirim akan rusak atau cacat sehingga tidak dapat digunakan oleh penerima. Ada beberapa solusi untuk menyelesaikan permasalahan ini yaitu menggunakan media yang lebih baik, membangun stasiun perantara antara pengirim dan penerima data. Salah satu solusi lain adalah dengan mencoba memperbaiki data yang telah rusak akibat noise. Solusi ini merupakan suatu sistem yang mampu mengenali kerusakan data sampai pada batasan tertentu dan memperbaikinya sehingga data menjadi benar kembali. Keuntungan dari solusi ini adalah dengan kondisi infrastruktur dan sistem pengiriman data yang sudah ada, data yang seharusnya tidak dapat terpakai lagi masih dapat digunakan tanpa perlu menambah infrastruktur yang baru atau yang mahal.

Ada beberapa jenis pengodean ketika hendak melakukan proses error correction, salah satunya adalah menggunakan Low Density Parity Check


(2)

BAB I PENDAHULUAN 2

(LDPC). Kode ini pertama kali diperkenalkan oleh Gallager. Ketika pertama kali ditemukan kode ini dianggap tidak praktis akibat keterbatasan kemampuan komputasi pada saat itu, sehingga kode ini sempat tidak digunakan selama beberapa puluh tahun. Saat ini ketika performa komputer sudah semakin berkembang pesat maka kode ini mulai diperkenalkan kembali sebagai salah satu kode yang cukup baik dengan hasil yang mendekati Shannon Limit.

1.2 Identifikasi Masalah

Berdasarkan latar belakang di atas, masalah utama yang akan diangkat pada tugas akhir ini adalah dapat melakukan proses error correction pada suatu sinyal informasi yang telah mengalami kerusakan data akibat noise.

1.3 Perumusan Masalah

Permasalahan yang akan dibahas dalam Tugas Akhir ini meliputi :

1. Bagaimana mensimulasikan proses error correction menggunakan kode LDPC pada suatu sinyal yang terkena noise ?

2. Bagaimana kinerja dari kode LDPC ?

1.4 Tujuan

Tujuan yang ingin dicapai oleh mahasiswa pada Tugas Akhir ini adalah : 1. Melakukan simulasi proses error correction menggunakan teknik

pengodean LDPC.

2. Menganalisa kinerja sistem pengodean LDPC dalam melakukan koreksi kesalahan.

1.5 Pembatasan Masalah

1. Model kanal yang digunakan adalah kanal Additive White Gaussian Noise (AWGN).


(3)

BAB I PENDAHULUAN 3

Universitas Kristen Maranatha

3. Algoritma error correction yang digunakan menggunakan algoritma Sum-Product.

4. Parameter kinerja sistem yang dianalisis adalah Bit Error Rate (BER). 5. Jenis matrik Parity Check LDPC yang digunakan adalah matrik irregular. 6. Simulasi dilakukan dengan menggunakan software MATLAB.

1.6 Sistematika Penulisan

Penyusunan laporan Tugas Akhir ini terdiri dari lima bab sebagai berikut:  BAB I. Pendahuluan

Pada bab ini akan dibahas mengenai Latar Belakang Masalah, Perumusan Masalah, Identifikasi Masalah, Tujuan, Pembatasan Masalah, dan Sistematika Penulisan.

 BAB II. Landasan Teori

Pada bab ini akan dibahas teori-teori pendukung untuk membangun kode LDPC beserta gambaran secara umum kode LDPC dapat memperbaiki kesalahan.

 BAB III. Perancangan Sistem

Pada bab ini dijelaskan cara kerja dari sistem kode LDPC melakukan pengoreksian error.

 BAB IV. Data Pengamatan

Pada bab ini berisi tentang hasil pengamatan terhadap bit-bit data yang telah terkena noise dan dibandingkan hasilnya antara bit yang telah mengalami pengodean dengan yang tidak serta pengaruh Iterasi dan panjang Blok kode terhadap performansi dari LDPC.

 BAB V. Kesimpulan dan Saran

Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk pengembangan mengenai LDPC di masa mendatang.


(4)

BAB V

KESIMPULAN DAN SARAN

Pada bab ini akan disampaikan kesimpulan dari hasil analisis dan saran yang berkaitan dengan topik Tugas Akhir ini.

5.1. Kesimpulan

Dari hasil simulasi, Pengodean menggunakan LDPC (dengan algoritma Sum-Product) memiliki kinerja sebagai berikut :

 Dengan panjang kode yang semakin besar maka performansi yang didapatkan juga semakin baik. Namun antara panjang kode 1600, 800, dan 400 tidak memiliki perbedaan performansi yang begitu besar, hal ini terlihat pada hasil analisa yang terdapat pada bab sebelumnya. Selain itu waktu yang dibutuhkan seiring dengan peningkatan panjang kode juga semakin bertambah. Terutama pada panjang kode 1600 terjadi peningkatan waktu yang cukup besar dibandingkan dengan panjang kode 800, 400, dan 200. Sehingga pemilihan panjang kode harus dipilih sesuai dengan kebutuhan komunikasi yang hendak dilakukan. Misalkan komunikasi yang dilakukan membutuhkan keakuratan data dan waktu yang tidak begitu besar maka panjang data 800 atau 400 merupakan pilihan yang baik karena waktu yang diperlukan untuk melakukan proses pendekodean tidak sebanyak panjang kode 1600 namun performansi yang didapatkan tidak begitu berbeda.

 Jumlah iterasi semakin bertambah maka performansi juga semakin baik namun waktu yang dibutuhkan untuk pendekodean data juga semakin banyak terutama ketika melakukan pendekodean dengan bit data sebanyak 106 bit yang mana terjadi peningkatan waktu yang besar seiring dengan penambahan jumlah iterasi. Simulasi juga


(5)

BAB V KESIMPULAN DAN SARAN 49

Universitas Kristen Maranatha

yang signifikan terhadap performansi dengan iterasi 10 kali. Sehingga iterasi yang cukup baik dari segi waktu dan performansi adalah sebanyak 10 kali.

5.2. Saran

 Membandingkan kinerja dari LDPC dengan menggunakan matrik Parity Check yang regular dan irregular.

Melakukan analisis performansi LDPC dengan algoritma error correction yang berbeda seperti bit flipping.

 Membandingkan kinerja pengodean menggunakan kode LDPC dengn jenis kode yang lain seperti Turbo code.


(6)

DAFTAR PUSTAKA

1. Dechene, Dan and Peets, Kevin. Simulated Performance of Low Density Parity Check Codes, Lakehead University-Faculty of Engineering,2006. 2. Gallager, R.G. 1963. Low-Density Parity-Check Codes.

3. Johnson, Sarah. J. Introducing Low-Density Parity-Check Codes.

4. Kien Nguyen, Chi.Low-Density Parity-Check Codes Construction and

Performance Evaluation,School of Electrical Engineering and

Telecommunications, The University of New South Wales,Australia,August 2002.

5. Mackay, D.J.C. and R.M. Neal.Near Shannon limit performance of low density parity check codes, ELECTRONICS LETTERS 29th August 1996 Vol.32 No.18.

6. Moura, José M.F., Jin Lu, and Haotian Zhang. Structured Low-Density Parity-Check Codes, IEEE SIGNAL PROCESSING MAGAZINE, January 2004. 7. OHTSUKI, Tomoaki.LDPC Codes in Communications and Broadcasting,

IEICE TRANS.COMMUN.,VOL.E90-B,NO.3 MARCH 2007.

8. Wicker, B. Stephen. Error Control Systems for Digital Communication and Storage, Prentice-Hall,Inc, 1995.

9. William E.R., 2003, An Introduction to LDPC Codes, Tuczon, The University of Arizona.