BAB II DASAR TEORI...6 BAB II DASAR TEORI 2.1. Turbo Coding Turbo Coding merupakan salah satu...
Transcript of BAB II DASAR TEORI...6 BAB II DASAR TEORI 2.1. Turbo Coding Turbo Coding merupakan salah satu...
6
BAB II
DASAR TEORI
2.1. Turbo Coding
Turbo Coding merupakan salah satu channel coding yang memiliki
kinerja yang baik dalam mengoreksi galat pada sistem komunikasi. Turbo
coding terbagi menjadi dua bagian yaitu penyandi dan pengawasandi. Penyandi
Turbo memanfaatkan dua komponen kode yang dihubungkan secara paralel
dengan interleaver. Pengawasandi Turbo menggunakan dua komponen
Maximum A-Posteriori Algoritma (MAP) yang dihubungkan secara paralel
dengan interleaver dan deinterleaver. Gambar 2.1 menunjukkan diagram kotak
Turbo Coding secara umum.
Gambar 2.1. Diagram Kotak Turbo Coding.
Pertama-tama informasi (data) bit dikirim ke penyandi. Pada penyandi,
data tersebut akan ditambahkan dengan bit-bit redundan, sedemikian rupa
sehingga pendeteksian dan/atau koreksi terhadap galat yang terjadi pada bit-bit
data asli nantinya dapat dilakukan. Proses pada penyandi Turbo akan dijelaskan
pada subbab berikutnya. Kemudian data dimodulasi, dalam skripsi ini
digunakan modulasi BPSK. Data hasil modulasi selanjutnya dikirim melalui
kanal yang rentan terhadap gangguan dan masuk pada bagian pengawasandi
pada sisi penerima. Peran pengawasandi adalah untuk memperoleh data yang
benar, yang mungkin dirusak oleh derau sepanjang kanal yang dilalui dan
memutuskan manakah yang bernilai 0 atau 1 untuk tiap bit [2].Semua ini
Informasi
diterima
Informasi
dikirim
Penyandi
Demodulasi
Modulasi
Pengawasandi
Kanal
7
dilakukan dengan memanfaatkan bit-bit redundan yang didapatkan dari
penyandi.
Proses yang terjadi pada sistem penerima berbeda dengan proses yang
ditunjukkan pada Gambar 1.1. Pada pengawasandi Turbo, data akan langsung
diawasandikan tanpa didemodulasi terlebih dahulu. Hal ini karena
pengawasandi yang digunakan adalah Soft Input Soft Output (SISO), yaitu
pengawasandi menerima dan menghasilkan nilai soft log likelihood ratio (LLR)
[3]. SISO ini tidak hanya menunjukkan apakah sebuah bit bernilai 1 atau 0 tetapi
juga nilai log likelihood ratio yang memberikan probabilitas bahwa sebuah bit
diawasandikan dengan benar. Setelah melalui proses pengawasandi dan sudah
mencapai batas iterasi yang diinginkan, bit-bit tersebut akan didemodulasi dan
menghasilkan bit-bit yang diterima.
Dalam skripsi ini, diteliti tiga macam Turbo Coding yaitu Turbo
Convolutional, Turbo Block dan Turbo Gabungan yang komponen kodenya
terdiri dari satu kode konvolusional dan satu kode blok. Berikut dijelaskan
bagian-bagian dari Turbo Coding secara lebih rinci.
2.2. Penyandi Turbo
Penyandi Turbo berfungsi untuk menambahkan bit redundan atau biasa
disebut parity bit pada bit-bit informasi (data). Parity bit ditambahkan untuk
membantu proses deteksi atau koreksi galat yang terjadi. Penambahan parity bit
tersebut mempunyai cara yang berbeda dalam setiap jenis Turbo tergantung
pada komponen kode yang digunakan. Gambar 2.2 menunjukkan proses yang
terjadi pada penyandi Turbo.
Gambar 2.2. Diagram Kotak Penyandi Turbo [3].
Pada Gambar 2.2 dapat dilihat bahwa data yang dikirim akan melalui
dua komponen kode tergantung jenis Turbo. Pada komponen kode I, data
Interleaver
Komponen
kode I
Puncturing
Komponen
kode II
Data
8
masukan berasal langsung dari data asli yang dikirim, sedangkan komponen
kode II memiliki data masukan yang terlebih dahulu melewati interleaver.
Interleaver pada penyandi Turbo berfungsi untuk mengubah urutan data bit
sehingga data bit yang dipancarkan oleh kedua komponen kode tersebut saling
tak gayut. Idenya adalah menyandikan informasi (data) yang sama dari dua
sudut pandang yang berbeda. Pada Gambar 2.2 terdapat garis putus-putus yang
menghubungkan blok dua komponen kode dengan blok puncturing. Garis ini
menandakan hubungan kedua blok tersebut bersifat optional. Apabila ingin
didapatkan code rate (laju penyandian) yang lebih tinggi, maka blok puncturing
tersebut dapat digunakan.
Untuk penyandi Turbo Convolutional, komponen kode yang digunakan
adalah Recursive Systematic Convolutional (RSC). Untuk penyandi Turbo
Block, komponen kode yang digunakan adalah Bose Chaudhuri Hocqueqhem
(BCH). Untuk Turbo Gabungan, komponen kode I yang digunakan adalah
Recursive Systematic Convolutional (RSC) sedangkan komponen kode II yang
digunakan adalah Bose Chaudhuri Hocqueqhem (BCH).
2.2.1. Kode Recursive Systematic Convolutional (RSC)
Komponen kode yang digunakan pada penyandi Turbo
Convolutional adalah Recursive Systematic Convolutional (RSC). Kode
ini disebut Recursive karena ada keluaran yang diumpanbalikkan dan
disebut sistematik karena terdapat bit masukan yang langsung menjadi
keluaran. Kode Recursive Systematic Convolutional (RSC) yang
digunakan dapat dilihat pada Gambar 2.3 dan Gambar 2.4.
Gambar 2.3. Kode RSC dengan Blok Delay 2 [4].
u
u
p
B
A D1 D2
9
Gambar 2.4. Kode RSC dengan Blok Delay 3 [5].
Gambar 2.3 menunjukkan kode RSC blok delay 2 dengan
generator polynomial [1 5/7] dan Gambar 2.4 menunjukkan kode RSC
blok delay 3 dengan generator polynomial [1 15/13] [5]. Keduanya
memiliki code rate sebesar 1/2. Code rate merupakan perbandingan
jumlah bit masukan dengan jumlah bit keluaran. Dengan coderate Β½
berarti 1 bit masukan menghasilkan 2 bit keluaran. Oleh karena itu,
ketika diterapkan dalam penyandi Turbo Convolutional menjadi seperti
pada Gambar 2.5.
Gambar 2.5. Diagram Kotak Penyandi Turbo Convolutional.
Dapat dilihat dari Gambar 2.5, kode RSC yang mulanya memiliki
code rate Β½ dihubungkan secara paralel dengan sebuah kode RSC dan
membentuk penyandi Turbo Convolutional dan code rate Turbo
Convolutional menjadi 1/3. Keluaran pertama adalah bit sistematik yang
hanya berasal dari kode RSC I. Hal ini dikarenakan bit data masukan dari
kode RSC I dan II sama walaupun berbeda urutan. Keluaran kedua adalah
u p1
p2
u
Interleaver
Kode RSC I
Puncturing
Kode RSC II
u
p
u
B
A D1
D3
D2
10
parity bit yang dihasilkan kode RSC I dan keluaran ketiga adalah parity
bit yang dihasilkan kode RSC II.
Untuk kode RSC dengan blok delay 2 dan 3, masing-masing
memiliki cara sendiri untuk menghasilkan parity bit tergantung pada
hubungan tiap blok delay. Misal data masukannya adalah 011. Untuk
RSC dengan blok delay 2, pertama-tama semua blok delay berisikan bit
0. Kemudian dimasukkan data pertama yaitu 1 sehingga blok delay
menjadi 10 (S2) dan bit u dan p secara berurutan adalah 11. Data kedua
dimasukkan sehingga blok delay menjadi 01 (S1) dan keluarannya adalah
10 dan seterusnya. Keterangan lebih lanjut untuk jalannya kode RSC
dapat dilihat pada Tabel 2.1. Cara yang sama dilakukan pada RSC
dengan blok delay 3.
Pada Gambar 2.3 dan Gambar 2.4 terdapat saklar yang bisa
bergerak ke keadaan A atau B yang kemudian akan menentukan asal dari
bit masukan. Saklar ini digunakan untuk kode RSC yang diterminasi,
maksudnya apabila bit masukan sudah habis, maka state dari shift
register dikembalikan seperti keadaan awal yaitu 00 atau 000. Tidak
seperti kode konvolusional biasanya, karena sifat yang rekursif dari kode
RSC ini maka untuk mendapatkan state tersebut digunakan saklar seperti
pada Gambar 2.3 dan Gambar 2.4. Apabila bit masukan masih ada, maka
saklar berada di atas atau dalam kondisi A. Sedangkan saat bit masukan
habis, maka saklar berada di bawah atau dalam kondisi B dan langsung
menggantikan nilai masukan. Kemudian state akan kembali ke keadaan
nol karena nilai umpan balik di-xorkan dengan nilai umpan balik. Contoh
langkah kode RSC yang diterminasi ditunjukkan pada Tabel 2.1 dengan
shift index 4 dan 5. Penggunaan terminasi diterapkan pada kode RSC I
sedangkan pada kode RSC II tidak diterapkan.
11
Tabel 2.1. Langkah-langkah Kode RSC.
Input queue Shift Index Shift Register Codeword
011 0 00 -
01 1 10 11
0 2 01 10
- 3 10 00
1 4 01 10
1 5 00 11
Kode RSC ini memiliki bit-bit keluaran yang tidak hanya
bergantung pada bit-bit yang sedang diproses namun juga bergantung
pada bit-bit masukan sebelumnya sehingga dibutuhkan sebuah memori
yang diwujudkan dalam bentuk shift register. Karena keluarannya yang
juga bergantung terhadap bit-bit masukan sebelumnya, kode RSC
memiliki cara untuk menentukan bit keluaran yang dibangkitkan dari
deretan bit masukan yang diberikan. Teknik tersebut adalah :
1) diagram pohon;
2) diagram state; atau
3) diagram trellis.
Dari ketiga teknik tersebut, yang digunakan dalam skripsi ini
adalah Diagram Trellis. Diagram Trellis ini menggambarkan keluaran
untuk masing-masing bit masukan. Sebelum membuat diagram Trellis,
terlebih dahulu dibuat tabel present state dan next state untuk
memudahkan pembuatan Diagram Trellis. Garis putus-putus yang
terdapat di diagram Trellis menandakan bahwa bit masukannya adalah 1,
sedangkan garis lurus berarti bit masukannya adalah 0.
Dalam membaca diagram Trellis diperlukan ketelitian dalam
membaca garis karena garis menandakan data masukannya. Jika kode
RSC dengan blok delay 2 dijalankan dengan data masukan 110 sama
seperti contoh sebelumnya. Maka pertama-tama state berada pada S0,
kemudian mengikuti garis putus-putus, state menjadi S2. Setelah itu
mengikuti garis putus-putus lagi dan state menjadi S1 dan begitu
seterusnya.
12
Tabel 2.2. Present State dan Next State dari Kode RSC Blok Delay 2.
Masukan Present State
State Next State
State Out1 (u) Out2(p) D1 D2 D1 D2
0 0 0 S0
0 0 S0 0 0
1 1 0 S2 1 1
0 0 1 S1
1 0 S2 0 0
1 0 0 S0 1 1
0 1 0 S2
1 1 S3 0 1
1 0 1 S1 1 0
0 1 1 S3
0 1 S1 0 1
1 1 1 S3 1 0
β¦..
Gambar 2.6. Diagram Trellis untuk Kode RSC dengan Blok Delay 2.
t=0 t=1 t=2 t=3 t=4 t=T-4 t=T-3 t=T-2 t=T-1 t=T
S0
S1
S2
S3
S0
S1
S2
S3
S0
S1
S2
S3
S0
S1
S2
S3
S0
S1
S2
S3
S0
S1
S2
S3
S0
S1
S2
S3
S0
S1
S2
S3
S0
S1
S2
S3
S0
S1
S2
S3
13
Tabel 2.3. Present State dan Next State dari Kode RSC Blok Delay 3.
Masukan Present State
State Next State
State Out1 (u) Out2(p) D1 D2 D3 D1 D2 D3
0 0 0 0 S0
0 0 0 S0 0 0
1 1 0 0 S4 1 1
0 0 0 1 S1
1 0 0 S4 0 0
1 0 0 0 S0 1 1
0 0 1 0 S2
1 0 1 S5 0 1
1 0 0 1 S1 1 0
0 0 1 1 S3
0 0 1 S1 0 1
1 1 0 1 S5 1 0
0 1 0 0 S4
0 1 0 S2 0 1
1 1 1 0 S6 1 0
0 1 0 1 S5
1 1 0 S6 0 1
1 0 1 0 S2 1 0
0 1 1 0 S6
1 1 1 S7 0 0
1 0 1 1 S3 1 1
0 1 1 1 S7
0 1 1 S3 0 0
1 1 1 1 S7 1 1
14
β¦.
Gambar 2.7. Diagram Trellis untuk Kode RSC dengan Blok Delay 3.
t=0 t=1 t=2 t=3 t=4 t=T-4 t=T-3 t=T-2 t=T-1 t=T
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
15
2.2.2. Kode Bose Chaudhuri Hocqueqhem(BCH)
Komponen kode yang digunakan pada penyandi Turbo Block
adalah kode BCH (n,k). Kode BCH yang digunakan adalah BCH (7,4)
dan BCH (15,11). Keduanya ditunjukkan pada Gambar 2.8 dan Gambar
2.9.
Gambar 2.8. Kode BCH (7,4) [6].
Gambar 2.9. Kode BCH (15,11).
Kode BCH ini ketika diterapkan dalam penyandi Turbo Block
menjadi seperti pada Gambar 2.10. Kode BCH (7,4) memiliki code rate
sebesar 4/7 dengan generator polynomial 1+x+x3 ketika dihubungkan
secara paralel dengan kode BCH (7,4) lain untuk membentuk penyandi
Turbo Block, maka code rate dari Turbo Block adalah 0,4.
Gambar 2.10. Diagram Kotak Penyandi Turbo Block.
u
Interleaver
Kode BCH I
Puncturing
Kode BCH II
out
Switch 2
in
Switch 1
r0 r1 r2
out
Switch 2
in
Switch 1
r0 r1 r2 r3
16
Kode BCH (15,11) memiliki code rate sebesar 11/15 dengan
generator polynomial 1+x+x4 [6]. Setelah dihubungkan dengan kode
BCH (15,11) lain untuk membentuk penyandi Turbo Block, code rate
Turbo menjadi 0,58. Untuk mendapatkan parity bit pada kode BCH
berbeda dengan kode RSC. Pada kode BCH (7,4) untuk setiap 4 bit yang
dikodekan akan menghasilkan 3 parity bit dan untuk kode BCH (15,11)
untuk setiap 11 bit yang dikodekan akan menghasilkan 4 parity bit.
Selama sejumlah k data bit informasi yang dikirim, saklar 1 selalu
terhubung dan saklar 2 berada di posisi bawah sehingga data bit langsung
disalin dalam codeword. Setelah pergeseran ke-k, saklar 1 terbuka dan
saklar 2 berpindah ke posisi atas. Selama pergeseran n-k terakhir, shift
register kembali dibuat ke keadaan awal yaitu 000 atau 0000 dengan
menambahkan bit masukan 0 sehingga menghasilkan parity bit yang akan
digabungkan dalam codeword. Keterangan lebih lanjut untuk jalannya
kode BCH (7,4) dapat dilihat pada Tabel 2.4, dengan memisalkan data
masukan adalah 1011.
Tabel 2.4. Langkah β langkah Kode BCH (7,4) [7].
Input queue Shift Index Shift Register Codeword
1011 0 000 -------
101 1 110 ------1
10 2 101 ----11
1 3 100 ---011
- 4 100 --1011
- 5 010 -01011
- 6 001 001011
- 7 000 1001011
Dapat dilihat dari Tabel 2.4, proses penyandian selalu diawali
dan diakhiri dengan state 000. Untuk pergeseran k pertama, dalam hal ini
adalah 4 pergeseran, data masukan langsung disalin menjadi bagian
codeword. Kemudian, sisanya dihasilkan parity bit yang kemudian
digabungkan dengan codeword sebelumnya. Pada BCH (7,4) dihasilkan
17
23 state dan 24 state pada kode BCH (15,11). Sama halnya dengan kode
RSC, untuk memudahkan dalam melihat pergantian state yang terjadi,
terlebih dahulu bisa dibuat tabel present dan next state yang kemudian
digambarkan dalam diagram Trellis. Garis putus-putus yang terdapat
pada diagram Trellis menandakan bahwa bit masukannya adalah 1,
sedangkan garis lurus berarti bit masukannya adalah 0.
Jika kode BCH (7,4) dijalankan dengan data masukan 1011 sama
seperti contoh sebelumnya. Maka pertama-tama state berada pada S0,
kemudian mengikuti garis putus-putus, state menjadi S6. Setelah itu
mengikuti garis putus-putus lagi dan state menjadi S5 dan begitu
seterusnya.
Diagram Trellis BCH (15, 11) dapat digambar dengan ketentuan
dari Present State dan Next State yang terdapat pada Tabel 2.6. Karena
kerumitannya, diagram Trellis tidak bisa digambar di sini. Cara
penggambarannya sama seperti diagram Trellis yang sebelumnya.
18
Tabel 2.5. Present State dan Next State dari Kode BCH (7,4).
Masukan Present State
State Next State
State Out Par r0 r1 r2 r0 r1 r2
0 0 0 0 S0
0 0 0 S0 0 0
1 1 1 0 S6 1
0 0 0 1 S1
1 1 0 S6 0 1
1 0 0 0 S0 1
0 0 1 0 S2
0 0 1 S1 0 0
1 1 1 1 S7 1
0 0 1 1 S3
1 1 1 S7 0 1
1 0 0 1 S1 1
0 1 0 0 S4
0 1 0 S2 0 0
1 1 0 0 S4 1
0 1 0 1 S5
1 0 0 S4 0 1
1 0 1 0 S2 1
0 1 1 0 S6
0 1 1 S3 0 0
1 1 0 1 S5 1
0 1 1 1 S7
1 0 1 S5 0 1
1 0 1 1 S3 1
19
β¦..
Gambar 2.11. Diagram Trellis Kode BCH (7,4).
t=0 t=1 t=2 t=3 t=4 t=T-4 t=T-3 t=T-2 t=T-1 t=T
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
S0
S1
S2
S3
S4
S5
S6
S7
20
Tabel 2.6. Present State dan Next State dari Kode BCH (15,11).
Masukan Present State
State Next State
State Out Par r0 r1 r2 r3 r0 r1 r2 r3
0 0 0 0 0 S0
0 0 0 0 S0 0 0
1 1 1 0 0 S12 1
0 0 0 0 1 S1
1 1 0 0 S12 0 1
1 0 0 0 0 S0 1
0 0 0 1 0 S2
0 0 0 1 S1 0 0
1 1 1 0 1 S13 1
0 0 0 1 1 S3
1 1 0 1 S13 0 1
1 0 0 0 1 S1 1
0 0 1 0 0 S4
0 0 1 0 S2 0 0
1 1 1 1 0 S14 1
0 0 1 0 1 S5
1 1 1 0 S14 0 1
1 0 0 1 0 S2 1
0 0 1 1 0 S6
0 0 1 1 S3 0 0
1 1 1 1 1 S15 1
0 0 1 1 1 S7
1 1 1 1 S15 0 1
1 0 0 1 1 S3 1
0 1 0 0 0 S8
0 1 0 0 S4 0 0
1 1 0 0 0 S8 1
21
Lanjutan Tabel 2.6.
Masukan Present State
State Next State
State Out Par r0 r1 r2 r3 r0 r1 r2 r3
0 1 0 0 1 S9
1 0 0 0 S8 0 1
1 0 1 0 0 S4 1
0 1 0 1 0 S10
0 1 0 1 S5 0 0
1 1 0 0 1 S9 1
0 1 0 1 1 S11
1 0 0 1 S9 0 1
1 0 1 0 1 S5 1
0 1 1 0 0 S12
0 1 1 0 S6 0 0
1 1 0 1 0 S10 1
0 1 1 0 1 S13
1 0 1 0 S10 0 1
1 0 1 1 0 S6 1
0 1 1 1 0 S14
0 1 1 1 S7 0 0
1 1 0 1 1 S11 1
0 1 1 1 1 S15
1 0 1 1 S11 0 1
1 0 1 1 1 S7 1
22
2.2.3. Penyandi Turbo Gabungan
Pada penyandi Turbo Gabungan, komponen kode yang digunakan
adalah kode RSC dengan blok delay 2 dan kode BCH (7,4). Kedua kode
ini dipilih berdasarkan waktu komputasi yang paling cepat untuk masing-
masing Turbo. Cara kerja masing-masing kode sama seperti yang
dijelaskan sebelumnya. Ketika kedua kode tersebut digabungkan akan
menjadi seperti pada Gambar 2.12.
Gambar 2.12. Diagram Kotak Penyandi Turbo Gabungan.
Penyandi Turbo Gabungan memiliki code rate sebesar 4/11
dengan setiap 4 bit data masukan akan menghasilkan 11 bit keluaran.
Diagram Trellis yang digunakan untuk kode RSC blok delay 2 sama
seperti pada Gambar 2.6 dan untuk kode BCH (7,4) sama seperti pada
Gambar 2.11.
2.2.4. Laju Penyandian (Code Rate)
Jika komponen kode pertama memiliki masukan k1 bit per transisi
state dengan laju r1=k1/n1, maka komponen kode tersebut akan
menghasilkan n1-k1 parity bit untuk setiap transisi state. Jika komponen
kode kedua dengan masukan k2 bit per transisi state dengan laju r2=k2/n2,
maka komponen kode tersebut akan menghasilkan n2-k2 parity bit untuk
tiap transisi state. Jumlah data masukan adalah sama untuk setiap
komponen kode, k1=k2=k, sehingga laju penyandian kode Turbo ini
menjadi [4] :
π =π
π + (π1 β π) + (π2 β π)=
π
π1 + π2 β π
π =π
ππ1
+ππ2
β π=
π1π2
π1 + π2 β π1π2 (2.1)
u p1
p2
u
Interleaver
Kode RSC
Puncturing
Kode BCH
23
dengan :
k1 = k2 = k = jumlah data masukan pada komponen kode;
n1-k1 = jumlah parity bit pada komponen kode pertama;
n2-k2 = jumlah parity bit pada komponen kode kedua;
r1= laju penyandian komponen kode pertama; dan
r2 = laju penyandian komponen kode kedua.
2.2.5. Interleaver
Dalam sistem komunikasi, interleaver berfungsi untuk mengubah
urutan data dengan aturan tertentu. Interleaver dapat mengatasi burst
error atau ledakan galat dengan mengubahnya menjadi random error.
Dengan demikian, interleaver menjadi cara yang efektif untuk
menghindari rentetan kesalahan data yang panjang. Dalam kode Turbo
ini, interleaver dimanfaatkan untuk memastikan parity bit yang
dihasilkan oleh penyandi kedua berbeda dengan parity bit yang
dihasilkan oleh penyandi pertama. Dengan begitu, pengawasandi Turbo
memiliki dua kelompok parity bit yang tidak saling bergantung dan
tentunya akan meningkatkan kinerja.
Jenis interleaver yang digunakan adalah block interleaver. Proses
interleaving dan de-interleaving yang dilakukan digambarkan sebagai
berikut :
Data masukan : a1, a2, a3, a4, a5, a6, a7, a8, a9, ..
Interleaving : [
π1π5π9
π2 π3 π4π6 π7 π8
π10 π11 π12π13 π14 π15 π16
]
Data yang ditransmisikan : a1, a5, a9, a13, a2, a6, a10, a14, a3, a7,..
De-Interleaving : [
π1π5π9
π2 π3 π4π6 π7 π8
π10 π11 π12π13 π14 π15 π16
]
Data keluaran : a1, a2, a3, a4, a5, a6, a7, a8, a9, ..
W
rite
Read
Rea
d
Write
24
Dari ilustrasi di atas, proses interleaving mengurutkan data dalam
baris per baris, kemudian keluarannya dibaca dengan urutan kolom per
kolom . Untuk proses de-interleaving berlaku sebaliknya yaitu data
diurutkan dalam kolom per kolom kemudian keluarannya dibaca dengan
urutan baris per baris. Dapat dilihat bahwa setelah data melalui proses de-
interleaving , urutan data akan kembali seperti semula.
Kemudian akan digambarkan saat terjadi burst error :
Burst Error
Data yang ditransmisikan : 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,.....
Interleaving : [
0 0 01 1 10 0 0
100
0 0 0 0
]
Data keluaran : 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0,0
Random Error
Dari ilustrasi di atas dapat dilihat bahwa dengan pengubahan
urutan data yang dilakukan, interleaver mampu menghindari terjadinya
kerusakan data akibat burst error pada suatu blok data yang cukup
panjang. Galat akan dipisahkan sehingga lebih mudah untuk dideteksi.
2.2.6. Puncturing
Puncturing merupakan suatu proses yang dilakukan untuk
meningkatkan laju penyandian. Dalam kode yang sudah di-puncture
terdapat parity bit yang tidak ditransmisikan dalam kanal. Pola
puncturing ditentukan oleh matriks puncturing P. Untuk sebuah penyandi
dengan y keluaran, matriks P memiliki y baris. Jumlah kolom pada
matriks P adalah jumlah bit yang dikenakan puncturing secara berulang.
Berikut gambaran mengenai proses puncturing. Misalkan sebuah
penyandi memiliki 2 keluaran
π(1) = [0 1 0 1 0 0]
π(2) = [0 1 1 0 1 0]
Rea
d
Write
25
dengan :
c(1) = bit keluaran penyandi pertama; dan
c(2) = bit keluaran penyandi kedua.
Matriks puncturing P terdiri dari :
π = [1 1 11 1 0
]
Angka nol yang berada pada baris kedua kolom ketiga
menandakan bahwa setiap tiga bit pada keluaran c(2) akan di-puncture.
Maka hasil proses puncturing ini adalah
π(2) = [0 1 π₯ 0 1 π₯]
dengan :
c(2) = bit keluaran penyandi kedua setelah proses puncturing.
2.3. Binary Phase Shift Keying (BPSK)
Modulasi berfungsi untuk memetakan bit-bit informasi yang akan
dikirimkan menjadi simbol-simbol sebelum ditumpangkan ke frekuensi
pembawa. Pada Turbo Coding digunakan modulasi BPSK. BPSK merupakan
salah satu bentuk dari M-ary Phase Shift Keying (M-PSK) yang mempunyai
nilai M=2 yang berarti mempunyai dua fase keluaran yang berbeda 1800.
Dalam skema BPSK, isyarat termodulasi dapat dinyatakan oleh persamaan
berikut :
π₯(π‘) = {π΄ cos πππ‘ merepresentasikan β²0β²
π΄ cos (πππ‘ + π) merepresentasikan β²1β² (2.2)
Pergeseran fase sebesar 180Β° (Ο) sebanding dengan membalikkan
gelombang sinus atau mengalikannya dengan -1.
Gambar 2.13 menunjukan bentuk modulasi BPSK.
Gambar 2.13. Modulasi BPSK.
26
Gambar 2.14. Diagram Konstelasi BPSK.
2.4. Kanal Multipath Fading
Fading merupakan fluktuasi amplitudo isyarat secara cepat dalam
periode waktu tertentu yang disebabkan oleh diterimanya dua atau lebih isyarat
yang sama oleh penerima akibat banyaknya lintasan isyarat (multipath) [8].
Pada komunikasi nirkabel, hal tersebut dapat terjadi karena adanya gangguan
yang disebabkan oleh pantulan (reflection), difraksi (difraction) dan hamburan
(scaterring). Gambar 2.15 mengilustrasikan fenomena jalur jamak (multipath).
Gambar 2.15. Fenomena Jalur Jamak (Multipath).
Distribusi Rayleigh sering digunakan untuk memodelkan fluktuasi isyarat
akibat multipath fading. Distribusi ini memiliki fungsi kerapatan probabilitas :
π(π) =π
π2ππ₯π (β
π2
2π2) (2.3)
dengan :
Ο = nilai rms isyarat terima; dan
Ο2 = daya rata-rata waktu isyarat terima.
Fading juga dapat terjadi karena pergeseran Doppler yaitu pergeseran
frekuensi yang disebabkan pergerakan penerima. Frekuensi Doppler dapat
dihitung dengan persamaan berikut :
ππ =π£
π (2.4)
dengan :
v = kecepatan kendaraan; dan
Im
Re 1 0
27
Ξ» = panjang gelombang pembawa.
2.5. Derau AWGN (Additve White Gaussian Noise)
Derau yang terjadi pada sistem komunikasi sering dimodelkan dengan
derau yang terdistribusi Gaussian atau lebih dikenal dengan derau AWGN.
Derau ini memiliki rapat spektrum daya yang tersebar secara merata pada tiap
frekuensi. Oleh karena itu, AWGN akan merusak isyarat pada frekuensi
berapapun isyarat tersebut dipancarkan.
Derau Gaussian memiliki model matematis sebagai berikut:
ππ₯(π₯) =1
β2ππ2πβ(π₯βπ)2/(2π2) (2.5)
Rata-rata dan varians Gaussian adalah π dan π2, dengan π adalah
standar deviasi.
2.6. Pengawasandi Turbo
Proses pengawasandi Turbo ditunjukkan pada Gambar 2.16 sampai Gambar
2.18. Dua pengawasandi dihubungkan dengan interleaver yang sama seperti pada
penyandi. Untuk Turbo Convolutional dan Turbo Gabungan, setiap pengawasandi
memiliki tiga masukan yang sudah melalui kanal sehingga masukan tersebut
mengandung derau seperti pada Gambar 2.16 dan Gambar 2.18. Tiga masukan
tersebut yaitu bit sistematik, parity bit dikirimkan dari penyandi yang bersangkutan
dan informasi dari pengawasandi lainnya berkenaan dengan nilai bit yang diterima.
Untuk Turbo Block hanya terdapat dua masukan untuk setiap pengawasandi karena
bit data dan parity bit menjadi satu rentetan seperti pada Gambar 2.17. Informasi
yang berasal dari pengawasandi lain disebut sebagai informasi a-priori.
Pengawasandi akan menghasilkan soft-output mengenai bit yang diterima. Hal ini
berarti bersamaan dengan penyediaan bit keluaran yang didapat, pengawasandi juga
harus memberikan besarnya peluang sebuah bit dikodekan dengan benar. Soft-
output ini biasa direpresentasikan dengan LogβLikelihood Ratio yang akan dibahas
pada subbab berikutnya. Polaritas LLR menunjukkan tanda bit yang dikodekan dan
amplitudonya menunjukkan besarnya probabilitas sebuah bit dikodekan dengan
benar. Pengawasandi ini menggunakan algoritma Maximum A-Posteriori (MAP).
Pengawasandi bekerja secara iteratif. Pada iterasi pertama, pengawasandi 1
mengambil masukan yang berasal dari penyandi 1, dalam hal ini adalah bit
28
sistematik dan parity bit sedangkan informasi a-priori L(uk) dianggap bernilai nol
karena hanya ada dua nilai kemungkinan data yaitu 0 atau 1. Kemudian
pengawasandi 1 menghasilkan soft-output sebagai estimasi bit data. Soft-output
pengawasandi 1 kemudian digunakan sebagai informasi a-priori untuk
pengawasandi 2 yang juga digabungkan dengan bit sistematik yang sudah di-
interleaver serta parity bit yang berasal dari pengawasandi 2. Semua bit tersebut
digunakan untuk menghitung estimasi bit data. Setelah didapatkan nilai soft output
dari bit data pada pengawasandi 2 maka iterasi kedua dimulai. Pengawasandi 1
menghitung kembali soft output dengan masukan bit sistematik, parity bit serta soft
output yang dihasilkan oleh pengawasandi 2 pada iterasi sebelumnya yang dalam
hal ini berlaku sebagai informasi a-priori. Semua masukan tersebut berguna untuk
menghitung kembali soft output yang lebih akurat yang nantinya menjadi informasi
a-priori dari pengawasandi kedua. Proses tersebut dilakukan berulang-ulang sampai
kriteria berhenti yang diinginkan . Kegunaan interleaver dan deinterleaver adalah
untuk mengubah urutan data yang masuk agar ketika menjadi masukan untuk
pengawasandi, baik bit keluaran dari kanal maupun bit keluaran dari masing-
masing pengawasandi memiliki urutan data yang sama.
Gambar 2.16. Diagram Kotak Pengawasandi Turbo Convolutional.
Gambar 2.17. Diagram Kotak Pengawasandi Turbo Block.
29
Gambar 2.18. Diagram Kotak Pengawasandi Turbo Gabungan.
2.6.1. Log Likelihood Ratio (LLR)
Nilai masukan dan keluaran pada pengawasandi Turbo diekspresikan
dalam bentuk Log Likelihood Ratio (LLR). LLR dari bit data uk, L(uk)
didefinisikan sebagai log perbandingan probabilitas bit merupakan nilai +1
atau -1.
πΏ(π’π) = ln (π(π’π=+1)
π(π’π=β1)) (2.6)
Polaritas LLR L(uk) bit uk menunjukkan bit uk bernilai +1 atau -1,
sedangkan besarnya nilai LLR L(uk) menunjukkan besarnya keyakinan bit
tersebut bernilai +1 atau -1. Saat LLR L(uk) bernilai β 0, maka P(uk =+1) β
P(uk =-1) β 0,5 .
Gambar 2.19. LLR L(uk) fungsi P(uk =+1) [7].
Pada pengawasandi Turbo, nilai LLR L(uk) berperan sebagai
informasi a-priori yang dimiliki oleh sebuah pengawasandi. Untuk iterasi
pertama pada pengawasandi 1, LLR L(uk) bernilai 0 karena hanya terdapat
30
dua kemungkinan untuk nilai bit uk sedangkan untuk berikutnya LLR L(uk)
didapat dari hasil penghitungan pengawasandi pada tahap sebelumnya.
Selain itu juga terdapat nilai LLR L(uk|y). Nilai ini didefinisikan
sebagai berikut:
πΏ(π’πΎ|π¦) = ππ (π(π’π=+1|π¦)
π(π’π=β1|π¦)) (2.7)
LLR L(uk|y) merupakan perbandingan probabilitas bit uk = +1 apabila
data yang diterima merupakan y, dengan probabilitas bit uk = -1 apabila data
yang diterima merupakan y. Nilai LLR L(uk|y) pada kode Turbo dikenal
sebagai informasi a-posteriori .
Selain itu juga digunakan nilai LLR L(yk|xk) yang merupakan
probabilitas sebuah bit diterima yk apabila bit yang dikirim adalah xk .
πΏ(π¦πΎ|π₯π) = ππ (π(π¦π|π₯π = +1)
π(π¦π|π₯π = β1))
= πΏππ¦π (2.8)
dengan :
πΏπ = 4π πΈπ
ππ (2.9)
didefinisikan sebagai nilai reliabilitas kanal dengan R adalah laju
penyandian [3]. Oleh karena itu, LLR L(yk| xk) dikenal sebagai soft output
kanal, yang didapat dengan mengalikan nilai reliabilitas kanal Lc dengan
keluaran yk.
2.6.2. Algoritma Maximum A-Posteriori (MAP)
Pada tahun 1974 telah diperkenalkan algoritma Maximum A-
Posteriori oleh Bahl, Cocke, Jelinek dan Raviv yang berguna untuk
menaksir probabilitas a posteriori dari state dan transisi. Algoritma ini juga
dikenal sebagai algoritma BCJR, dinamakan sesuai penemunya.
Algoritma MAP melihat setiap kemungkinan jalur yang melalui
trellis, tidak hanya menaksir bit tetapi juga probabilitas bahwa setiap bit
sudah diawasandikan dengan benar. Pada bagian ini akan dijelaskan dasar
algoritma MAP yang digunakan sebagai soft output dalam pengawasandi
Turbo.
Bit pada waktu t dipengaruhi oleh bit yang dikirim sebelumnya dan
akan mempengaruhi bit yang akan dikirim setelahnya. Untuk memanfaatkan
informasi bit yang dikirim sebelum waktu t dan setelah waktu t, algoritma
31
MAP menggunakan dua arah dalam trellis : rekursi maju yang menaksir bit
saat ini dengan dasar bit yang dikirim sebelumnya dan rekursi mundur yang
menaksir bit saat ini dengan dasar bit yang dikirim setelahnya.
Untuk penjelasan algoritma MAP ini akan digunakan diagram Trellis
kode konvolusional RSC dengan R = Β½ dan dua blok delay.
Sk-1 Sk
Gambar 2.20. Diagram Trellis RSC dengan 2 Blok Delay.
Seperti yang sudah dijelaskan sebelumnya, algoritma MAP
memberikan untuk setiap bit uk yang diawasandikan, probabilitas bahwa bit
tersebut adalah +1 atau -1 jika data yang diterima adalah y. Hal ini sama
dengan mencari a-posteriori LLR L(uk|y) , dengan :
πΏ(π’πΎ|π¦) = ππ (π(π’π=+1|π¦)
π(π’π=β1|π¦)) (2.10)
Dengan menggunakan aturan Bayes dapat ditulis
πΏ(π’πΎ|π¦) = ππ (π(π’π=+1β§π¦)
π(π’π=β1β§π¦)) (2.11)
Dari diagram Trellis pada Gambar 2.20 terdapat empat state, dengan
masing-masing state memiliki dua kemungkinan transisi tergantung pada
nilai bitnya. Salah satu transisi tersebut berhubungan dengan masukan bit 0
(setelah dimodulasi menjadi +1) yang digambarkan dengan garis lurus dan
lainnya berhubungan dengan masukan bit 1 (setelah dimodulasi menjadi -1)
yang digambarkan dengan garis putus-putus.
Dapat dilihat dari Gambar 2.20, jika state sebelumnya Sk-1 dan state
saat ini Sk diketahui, maka bit masukan uk yang menyebabkan transisi
tersebut akan diketahui. Oleh karena itu, probabilitas bahwa uk = +1 sama
dengan probabilitas bahwa satu dari empat transisi Sk-1 menuju Sk yang
disebabkan oleh uk = +1.
S0
S1
S2
S3
S0
S1
S2
S3
32
Oleh karena itu, persamaan di atas ditulis sebagai :
πΏ(π’π|π¦) = ππ (β π(ππβ1=οΏ½ΜοΏ½β§ππ=π β§π¦)(οΏ½ΜοΏ½,π )βΉπ’π=+1
β π(ππβ1=οΏ½ΜοΏ½β§ππ=π β§π¦)(οΏ½ΜοΏ½,π )βΉπ’π=β1) (2.12)
dengan (οΏ½ΜοΏ½, π ) βΉ π’π = +1 adalah semua transisi yang dapat terjadi
dari Sk-1 = οΏ½ΜοΏ½ menuju Sk = s yang dapat terjadi karena bit masukan = +1 dan
sama dengan (π Μ, π ) βΉ π’π = β1 adalah semua transisi yang dapat terjadi dari
Sk-1 = οΏ½ΜοΏ½ menuju Sk = s yang dapat terjadi karena bit masukan = -1. Untuk
penurunan rumus di atas dapat dilihat selengkapnya pada [6] sehingga
akhirnya dapat ditulis lagi menjadi
πΏ(π’π|π¦) = ππ (β πΌπβ1(π Μ)πΎπ(π Μ,π )π½π(π )(οΏ½ΜοΏ½,π )βΉπ’π=+1
β πΌπβ1(π Μ)πΎπ(π Μ,π )π½π(π )(οΏ½ΜοΏ½,π )βΉπ’π=β1) (2.13)
dengan :
(i) πΌπβ1(οΏ½ΜοΏ½) = π (ππβ1 = οΏ½ΜοΏ½ β§ π¦π‘<π) adalah probabilitas bahwa
Trellis berada pada state οΏ½ΜοΏ½ saat k-1 jika data yang diterima adalah π¦π‘<π;
(ii) π½π(π ) = π(π¦π‘>π|ππ = π ) adalah probabilitas yang membawa
Trellis berada pada state s saat k jika data yang diterima adalah π¦π‘>π ; dan
(iii) πΎπ(οΏ½ΜοΏ½, π ) = π({π¦π β§ ππ = π }|ππβ1 = οΏ½ΜοΏ½) adalah probabilitas yang
menunjukan bahwa Trellis berada pada state οΏ½ΜοΏ½ saat k-1 dan bergerak menuju
state s saat k dengan data yang diterima adalah yk.
2.6.2.1. Penghitungan Nilai Branch Metrix πΈπ(οΏ½ΜοΏ½, π)
Nilai branch metrix πΎπ(π Μ, π ) diperoleh dari persamaan :
πΎπ(οΏ½ΜοΏ½, π ) = πΆ π(π’ππΏ(π’π)/2) exp (πΏπ
2β π¦πππ₯π¦π
ππ=1 ) (2.14)
dengan C adalah sebuah konstanta dan dapat dihilangkan
selama muncul pada numerator dan denominator padaπΏ(π’π|π¦). π₯π¦π
adalah bit yang ditransmisikan dalam transisi state οΏ½ΜοΏ½ ke π dan π¦ππ
adalah bit yang diterima dan sudah melalui kanal sehingga sudah
terkena derau.
2.6.2.2. Penghitungan Nilai Rekursi Maju πΆπβπ(οΏ½ΜοΏ½)
Nilai rekursi maju πΌπβ1(π Μ) diperoleh dari persamaan :
πΌπ(π ) = β πΎπ(οΏ½ΜοΏ½, π ). πΌπβ1(οΏ½ΜοΏ½)π πππ’π π (2.15)
33
Jika nilai πΎπ(οΏ½ΜοΏ½, π ) diketahui, maka nilai πΌπ(π ) dapat
dihitung dengan menggunakan persamaan di atas. Diasumsikan
trellis memiliki kondisi awal :
πΌ0(π0 = 0) = 1
πΌ0(π0 = π ) = 0 untuk semua s β 0
2.6.2.3. Penghitungan Nilai Rekursi Mundur π·π(π)
Nilai rekursi mundur π½π(π ) diperoleh dari persamaan :
π½πβ1(οΏ½ΜοΏ½) = β π½π(π ). πΎπ(οΏ½ΜοΏ½, π )π πππ’π π (2.17)
Jika digunakan trellis yang diterminasi, maka nilai inisial
π½π(π ) adalah :
π½π(ππ = 0) = 1
π½π(ππ = π ) = 0 untuk semua s β 0
Namun, jika digunakan trellis yang tidak diterminasi, maka
nilai inisial π½π(π ) adalah
π½π(π ) =1
(ππππ πππππ¦)2 untuk semua s
Setelah nilai πΎπ(οΏ½ΜοΏ½, π ), πΌπβ1(οΏ½ΜοΏ½) dan π½π(π ) diketahui , maka nilai
πΏ(π’π|π¦) bisa dicari. Kemudian dapat dilihat pada Gambar 2.17,Gambar 2.18
dan Gambar 2.19 untuk setiap data ekstrinsik yang dikirim untuk menjadi
masukan informasi a-priori pada sebuah pengawasandi didapat dari :
πΏ(π’π|π¦) = πΏ(π’π) + πΏππ¦ππ + πΏπ(π’π)
πΏπ(π’π) = πΏ(π’π|π¦) β πΏ(π’π) β πΏππ¦ππ (2.20)
2.7. Hard Decision Demodulasi
Pada akhir iterasi yang dilakukan, sistem akan melakukan demodulasi hasil
estimasi akhir yang dilakukan oleh pengawasandi 2 setelah tercapai ketentuan yang
diinginkan. Apabila hasil estimasi akhir bernilai kurang dari nol (0) maka nilai suatu
bit adalah 1 dan apabila hasil estimasi akhir bernilai lebih dari nol (0) maka nilai
suatu bit adalah 0.
(2.19)
(2.16)
(2.18)
34
2.8. Bit Error Rate (BER) dan Eb/No
Bit Error Rate didapat dari perbandingan jumlah galat yang terdapat dalam
hasil akhir dengan jumlah bit masukan. BER ini menunjukkan kinerja sistem.
Semakin tinggi nilainya maka semakin buruk kinerja sistem sedangkan semakin
rendah nilainya maka semakin baik kinerja sistem. Nilai BER dihitung untuk setiap
iterasi yang dilakukan oleh pengawasandi Turbo. Pada penelitian ini, BER
digambarkan sebagai fungsi Eb/No yang merupakan perbandingan energi bit terhadap
derau yang biasa digunakan dalam komunikasi digital.