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 : kristypurba@gmail.com
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.
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 : kristypurba@gmail.com
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.
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
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
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
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
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
x
Universitas Kristen Maranatha
Gambar 4.7 Kurva BER terhadap SNR antara LDPC yang memiliki panjang blok
kode yang berbeda... 46
xi
Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 2.1 Single-Error-Correcting Kode Hamming ... 8
LAMPIRAN A
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; 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;
Received_uncode=awgn(DATA_uncode(k,:),SNR(i),'measured'); Received=awgn(DATA(k,:),SNR(i),'measured');
A-2 [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
%menjamin agar tidak terjadi 4 cycle
A-3
Rj=counter %menunjukan letak bit 1 pada baris matrik H
Ci=colcounter %menunjukan letak bit 1 pada kolom matrik H
Fungsi MembuatG
%Masukan matrik Identitas
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
%Fungsi untuk melakukan algoritma decoding the Sum-Product
A-7
val=sum(BinaryMultiply(H,transpose(CodeEst))); if(val==0 && sum(CodeEst)~=0)
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
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).
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
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
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.
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.