Universitas Kristen Maranatha
METODE UNTUK MENGKOREKSI KESALAHAN (ERROR)
DENGAN MENGGUNAKAN MATRIKS JARANG
Daud Andreaw / 0222198
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha Jln. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia
Email : gallagher_fetch22@yahoo.co.id
ABSTRAK
Terkadang, pada saat pengirim menyampaikan informasi (data) ke penerima pada proses komunikasi terdapat beberapa kesalahan-kesalahan yang terjadi. Kesalahan (error) tersebut dapat terjadi karena noise, interferensi,
jamming, atau adanya gangguan sinyal lain. Ada dua strategi dasar untuk
mengetahui terjadinya error, yaitu dengan cara mendeteksi error dan mengkoreksi error.
Metode yang digunakan untuk merancang suatu pengkoreksi error yang baik yaitu menggunakan algoritma Bit Flip (BF) dengan matriks jarang (sparse
matrix) pada kode Gallager. Kode Gallager atau disebut juga Low-Density Parity-Check Codes (LDPC codes) dengan beberapa rate dan panjang blok dapat
membentuk spesifikasi matriks parity-check jarang yang acak. Dan karena kebenaran suatu codeword adalah benar jika memiliki parity-checks.
Kode LDPC merupakan kode yang baik dari rentetan kode yang ada ketika proses dekoding mencapai optimal sehingga mampu mendekati batas kapasitas Shannon daripada menggunakan kode Turbo, serta performansi kode ini tidak hanya menampilkan untuk kanal biner simetris saja, tetapi juga mampu untuk beberapa model kanal yang lain.
Universitas Kristen Maranatha
AN ERROR-CORRECTION METHOD BY USING
A SPARSE MATRIX
Daud Andreaw / 0222198
Departement of Electrical Engineering, Faculty of Techniques Maranatha Christian University
Jln. Prof. Drg. Suria Sumantri 65, Bandung 40164, Indonesia Email : gallagher_fetch22@yahoo.co.id
ABSTRACT
Sometimes, there are some errors occurs when the transmitter sends information (data) to the receiver at the process of communication. Those errors are due to noise, interference, jamming, or the other signal disturbances. There are two ways to find out when errors occurs, using an detection and an error-correction.
A method for designing a good error-correcting codes using a Bit Flip (BF) algorithm with a sparse matrix of Gallager codes. The Gallager codes also called as a Low-Density Parity-Check Codes (LDPC codes) with any rate and blocklength can be created simply by specifying the shape of a sparse random parity-check matrix. And, because the validity of a codeword is validated if its parity-checks.
LDPC codes are “very good,” in that sequences of codes exist when optimally decoded, achieve information rates up to the Shannon limit as that of Turbo codes, and these codes performs not only for the binary-symmetric channel performance but also be able for any other channel models.
Universitas Kristen Maranatha
DAFTAR ISI
Halaman
ABSTRAK………. i
ABSTRACT……….. ii
KATA PENGANTAR……….. iii
DAFTAR ISI………. v
DAFTAR GAMBAR……… vii
DAFTAR TABEL………. ix
BAB I PENDAHULUAN 1.1 Latar Belakang.………... 1
1.2 Identifikasi Masalah.………... 1
1.3 Tujuan……….………... 2
1.4 Pembatasan Masalah………... 2
I.5 Sistematika Pembahasan.………... 2
BAB II LANDASAN TEORI 2.1 Low-Density Parity-Checks codes (LDPC codes)..…….………... 3
2.2 Matriks generator G dan matriks A parity-check…………... 4
2.3 Kode LDPC reguler……...………..……….……. 5
2.4 Konstruksi matriks parity-check……….………..……….. 6
2.5 Teorema matriks jarang (sparse matrix)……...……….. 8
2.6 .Grafik Tanner (Tanner Graphs)………..………... 8
2.7 Proses enkoding pada kode LDPC...………... 9
2.8 Transmisi yang melewati kanal Gaussian (Gaussian channel)….. 12
2.9 Teknik proses dekoding untuk kode LDPC…………...…………. 15
2.10 Kanal biner dengan symmetric stationary ergodic noise……….... 18
2.11 Kanal biner simetris (Binary Symmetric Channel/BSC)...……... 18
Universitas Kristen Maranatha 2.13 Kode Turbo……….
2.14 Kode Mackay-Neal……….……. 2.15 Pencapaian untuk dekoding yang optimal….…………...
19 20 21
BAB III PROSES DAN CARA KERJA
3.1 Algoritma pengulangan pada proses dekoding LDPC... 22 3.1.1 Langkah horisontal……….……….... 3.1.2 Langkah vertikal……...………. 3.1.3 Inisialisasi dan akhir dari algoritma proses dekoding...
23 24 28 3.2.1 Formula rasio dekoder log likelihood……… 31
BAB IV ANALISA HASIL SIMULASI
4.1 Perangkat Lunak untuk kode LDPC... 37 4.2 Data Pengamatan dan Analisa………...…….. 37
BAB V KESIMPULAN DAN SARAN
5.1 Kesimpulan……….………... 43
5.2 Saran……….………... 43
DAFTAR PUSTAKA………..…… LAMPIRAN A : Fungsi M-File Matlab……… LAMPIRAN B : Percobaan dengan algoritma Bit Flip (BF) untuk
proses dekoding... LAMPIRAN C: Percobaan pada data pengamatan dan analisa untuk
kode LDPC... 44 A
B
Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 4.1 Pengamatan Proses Dekoding dengan Ga,Hs,10,5,.5 ... 38
Tabel 4.2 Bit error BF pada Percobaan 1 ... 38
Tabel 4.3 Pengamatan Proses Dekoding dengan Ga,Hs,20,10,1 ... 39
Tabel 4.4 Bit error BF pada Percobaan 2 ... 39
Tabel 4.5 Pengamatan Proses Dekoding dengan Ga,Hs,50,15,1 ... 40
Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar 2.1 Proses pembuatan kode (enkoding) ... 4
Gambar 2.2 Proses pengdekodean (dekoding) ... 4
Gambar 2.3 Matriks A parity-check ... 5
Gambar 2.4 Matriks A parity-check untuk kode reguler. ... 7
Gambar 2.5 Antar dua grafik (bipartite graph) yang diasosiasikan dengan matriks A parity- check ... 9
Gambar 2.6 Hasil permutasi dari baris dan kolom ... 10
Gambar 2.7 Representasi dari AWGN ... 14
Gambar 2.8 Kepadatan spektral daya noise white gaussian (WGN) ... 15
Gambar 2.9 Fungsi Autokorelasi WGN ... 15
Gambar 2.10 Sebuah pohon parity-check yang diasosiasikan dengan grafik Tanner...17
Gambar 3.1a Sebuah subset dari grafik Tanner yang menunjukkan sebuah pohon untuk bit cn sebagai akar ... 25
Gambar 3.1bSebuah bagian dari grafik Tanner yang sebenarnya dengan node untuk c1 sebagai akar yang menunjukkan sebuah cycle ... 26
Gambar 3.2 Pohon tier ke-2 ... 28
Gambar 3.3 Diagram alir subroutine algoritma dekoding dengan BF ... 31
Gambar 3.4 Proses informasi melewati grafik yang ditentukan oleh A ... 32
Gambar 3.5 Kondisi independen diantara kumpulan bit ... 34
Gambar 3.6 Diagram alir algoritma log likelihood untuk kode LDPC ... 36
Gambar 3.7 Diagram alir algoritma kode Gallager (LDPC) ... 38
FUNGSI M-FILE MATLAB
A ‐ 1
Percobaan untuk kode LDPC
function ldpc_dB_test(Go,Ho,max_ite,maxSNR,inc) % Percobaan dengan bit Flip (BF)
% masukan (input)
% Go – Matriks Generator
% Ho – Matriks Parity Check
% max_ite – nilai maksimum pada pengulangan (iteration)
% maxSNR – nilai maksimum pada SNR
% inc - penambahan pada nilai SNR
close all
[Grow,Gcol]=size(Go); [row,col] = size(Ho); snr= [0:inc:maxSNR];
% Untuk perhitungan SNR/BER
block=0;
biterrorsBF=0; % untuk perhitungan BER
%%%%%%%%%%% Membuat sebuah file %%%%%%%%%%%
serial=fix((datenum(clock))*1e3);
s=sprintf('%d_BF_study_results.txt',serial); fid = fopen(s,'a');
A ‐ 3
%%%%%%%% Meng-dekodekan Message %%%%%%%%
% Algoritma Bit Flip (BF)
% fprintf(1,'Simulasi selesai untuk SNR: %d \n',snr(a))
A ‐ 4
A ‐ 5
Percobaan dengan algoritma Bit Flip (BF) untuk proses dekoding function [u ,ite]=ldpc_bf(H,re,max_ite) % fungsi aktual
% keluaran (output)
% u - mengkodekan message
% ite – nilai pengulangan (iteration)
% input
% H – matriks parity-check
% re – menerima kata
% max_ite – pengulangan maksimum (maximum iteration)
% tic % start timer
%%%%%%%%%% Langkah 1: Membangkitkan bit sindrom
%%%%%%%%%%
% inisialisasi matriks dan variabel
[row,col] = size(H); hard=[ ];
y_re = re; iteration = 0;
% hard decision dari BPSK
% dimodifikasi dari bitf.c
% ECC Website, http://the-art-of-ecc.com
% y_re > 0 --> 1
% y_re <= 0 --> 0
for i = 1:col
A ‐ 6
while (sum(sum(syn)) ~= 0) & (iteration < max_ite) %pengecekan jika syn=0
atau pengulangan maksimum (maximum iteration) tercapai
A ‐ 7 y_re(bflip)=not(y_re(bflip));
syn = mod(y_re*H',2); % peroleh/sebelum komputasi bit-bit sindrom
end % while
% kembalikan nilai hasil
A ‐ 8
A ‐ 9
Percobaan pada data pengamata dan analisa untuk kode LDPC clc;
clear all; close all; clc; load ga Go = Ga; load ha Ho = Ha; Hs=full(Ha);
ldpc_dB_test(Go,Ho,50,15,1);
Bab I Pendahuluan
1 Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1 Latar Belakang
Seiring dengan semakin meningkatnya arus globalisasi saat ini, yang di dalamnya dituntut adanya pertukaran informasi yang efektif dan efesien antar daerah dan negara, sehingga membuat peranan telekomunikasi menjadi prioritas utama. Dalam menyampaikan informasi (data) memungkinkan sering terjadinya
error pada saat diterima. Sehingga data yang dikirim tidak selalu sama dengan
informasi (data) yang diterima. Kesalahan (error) yang terjadi dapat disebabkan karena adanya noise, interferensi, jamming, atau gangguan sinyal lainnya.
Ada dua strategi dasar untuk mengetahui terjadinya error pada proses komunikasi, yaitu dengan cara mendeteksi error dan mengkoreksi error. Metode yang digunakan untuk pengkoreksian error yang baik yaitu dengan menggunakan algoritma Bit Flip (BF) dalam aplikasi matriks jarang (sparse matrix) pada kode
Gallager.
Kode Gallager atau Low-Density Parity-Check Codes (LDPC codes) adalah bagian dari teknik pengkodean kanal yang diterapkan sebagai
parity-checks yang dapat membantu kerja pengkodean kanal agar dapat bekerja
maksimal. Dan kode LDPC merupakan kode yang baik (good codes) dari rentetan kode yang ada ketika proses dekoding mencapai optimal sehingga mampu mendekati batasan kapasitas Shannon daripada menggunakan kode Turbo, serta performansi kode ini tidak hanya menampilkan untuk kanal biner simetris saja tetapi juga mampu untuk beberapa model kanal yang lain. Pada Tugas Akhir ini akan dilakukan pengkoreksian error dengan menggunakan algoritma Bit Flip (BF) dalam aplikasi matriks jarang (sparse matrix) pada kode Gallager, serta hasilnya akan disimulasikan pada program Matlab 7.0.
1.2 Identifikasi Masalah
Bab I Pendahuluan 2
Universitas Kristen Maranatha 1.3 Tujuan
Menganalisa kinerja sistem pengkodean kanal dengan mengkoreksi kesalahan yang terjadi dalam panjang blok pada proses dekoding LDPC.
1.4 Pembatasan Masalah
Adapun pembatasan masalah yang akan dibahas pada Tugas Akhir ini adalah :
1. Teknik dekoding yang digunakan adalah pengulangan dekoding. 2. Algoritma yang digunakan adalah algoritma Bit Flip (BF) dengan
aplikasi Matriks Jarang (Sparse Matrix).
3. Teknik pengkodean menggunakan kode Gallager (LDPC codes). 4. Tidak membahas tentang Weighted Bit Flip (WBF) dan Improved
Weighted Bit Flip (IWBF).
5. Simulasi menggunakan software Matlab 7.0.
1.5 Sistematika Pembahasan • Bab I Pendahuluan
Bab ini membahas tentang latar belakang penulisan, identifikasi masalah dalam penulisan, tujuan penulisan, pembatasan masalah dalam penulisan, dan sistematika penulisan Tugas Akhir ini.
• Bab II Landasan Teori
Bab ini membahas tentang teori-teori yang mendukung untuk digunakan dalam Tugas Akhir ini.
• Bab III Perancangan dan Cara Kerja
Bab ini membahas tentang perancangan dan cara kerja dari kode LDPC. • Bab IV Data Pengamatan dan Analisa
Bab ini membahas tentang data pengamatan dan analisa pada percobaan yang telah dilakukan dalam Tugas Akhir ini.
• Bab V Kesimpulan dan Saran
Bab V Kesimpulan dan Saran
42 Universitas Kristen Maranatha
BAB V
KESIMPULAN DAN SARAN
5.1. Kesimpulan
Berdasarkan hasil pengamatan dan analisa yang telah dilakukan, dapat disimpulkan bahwa:
1. Nilai SNR yang kecil berpengaruh terhadap kinerja proses kode LDPC, yang menunjukkan kurang berhasil dilakukan pengkoreksian dengan baik. Hal ini terjadi karena dengan nilai SNR yang semakin kecil akan membuat
error yang terjadi semakin besar pada saat data diterima.
2. Dengan banyaknya pengulangan (iteration) yang dilakukan dalam percobaan, menunjukkan tingkat keberhasilan nilai SNR yang semakin besar lebih sering terkoreksi dengan baik sehingga jumlah bit error yang terjadi semakin berkurang sampai tidak terjadi error sama sekali.
3. Apabila nilai SNR 10 (semakin besar) dan pengulangan dilakukan secara berulang-ulang hingga mencapai maksimum, pencapaian koreksi
error pada bit-bitnya dapat berhasil secara keseluruhan. Ini mengartikan
bahwa data yang kirim akan sama dengan data yang diterima.
5.2. Saran
Adapun saran yang dapat berguna bagi pengembangan Tugas Akhir ini selanjutnya adalah sebagai berikut:
1. Kode LDPC dapat mengkoreksi lebih baik lagi pada nilai SNR yang semakin kecil dan pengulangan yang minimum agar jumlah bit error yang terjadi semakin diminimalisir sehingga menjadi lebih efektif (tidak memerlukan nilai SNR yang begitu besar dan pengulangan yang berulang-ulang).
Daftar Pustaka
43 Universitas Kristen Maranatha
DAFTAR PUSTAKA
[1] Moon. K. Tood and Stirling. C. W, Mathematical Methods and Algorithms
for Signal Processing. Upper Saddle River, NJ: Prentice-Hall, 2000.
[2] —, “Good Error-Correcting Codes Based on Very Spare Matrices,” IEEE
Trans. Info. Theory, vol. 45, no. 2, pp. 399-431, March. 1999.
[3] MacWilliams. J. F and Sloane. A. J. N, The Theory of Error-Correcting
Codes. Amsterdam, The Netherlands; North-Holland, 1977.
[4] Berrou. C, Glavieux. A, and Thitimajshima. P, “Near Shannon Limit Error-Correcting Coding and Decoding: Turbo Codes,” in Proc. 1993 IEEE
International Conference on Communications, Geneva, Switzerland, 1993,
pp. 1064 – 1070.
[5] Richardson. J. T and Urbanke. L. R, “Efficient encoding of low-density parity-check codes,” IEEE Trans. Information Theory, vol. 47, no. 2, pp. 638-656, February. 2001.