BAB III PEMODELAN SIMULASI SISTEM Pada
bagian
ini
dijelaskan
tentang
pemodelan
sistem
Turbo
Convolutional, Turbo Block dan Turbo Gabungan seperti yang ditunjukkan pada Gambar 3.1, Gambar 3.2, dan Gambar 3.3 secara berurutan. Pemodelan tersebut berupa proses pembangkitan data bit acak yang diperoleh dari Matlab hingga proses penghitungan BER untuk menilai kinerja Turbo Coding. Perangkat lunak yang digunakan dalam pemodelan simulasi sistem adalah Matlab 7.1. Data
Systematic
Masuk RSC ENCODER 1
an
Par.1
PUNCTURING
INTERLEAVER RSC ENCODER 2
MODULASI S y s
Par. 2
P a r 1
P a r 2
KANAL S y s
MAP DECODER 1
INTERLEAVER P E N E R I M A
P a r 1
INTERLEAVER MAP DECODER 2
DEINTERLEAVER
DEMODULASI
PERHITUNGAN BER
Gambar 3.1. Diagram Kotak Turbo Convolutional.
35
P a r 2
P E N G I R I M
36
Data Masuk BCH ENCODER 1
an
Out.1
PUNCTURING
MODULASI O U t 1
INTERLEAVER BCH ENCODER 2
Out. 2
O u t 2
KANAL O u t 1
INTERLEAVER P E N E R I M A
DEINTERLEAVER
O u t 2
MAP DECODER 1
MAP DECODER 2
DEMODULASI
PERHITUNGAN BER
Gambar 3.2. Diagram Kotak Turbo Block.
3.1. Pembangkit Data Bit Acak Blok ini berfungsi untuk membangkitkan data bit acak yang akan menjadi masukan bagi penyandi Turbo. Fungsi yang digunakan untuk membangkitkan data bit acak berupa bit 1 dan 0 adalah “randint”. Dengan menggunakan syntax inputan=randint(m,n), dengan m adalah jumlah baris dan n adalah panjang data, akan dibangkitkan deretan bit acak sesuai dengan jumlah baris dan panjang data yang diinginkan.
P E N G I R I M
37
Data
Systematic
Masuk RSC ENCODER 1
an
Par.1
PUNCTURING
INTERLEAVER BCH ENCODER 2
MODULASI S y s
Out. 2
P a r 1
O u t 2
P E N G I R I M
KANAL S y s
O u t 2
MAP DECODER 1
INTERLEAVER P E N E R I M A
P a r 1
MAP DECODER 2
DEINTERLEAVER
DEMODULASI
PERHITUNGAN BER
Gambar 3.3. Diagram Kotak Turbo Gabungan.
3.2. Penyandi Turbo Convolutional Penyandi
Turbo
Convolutional
menggunakan
dua
Recursive
Systematic Code (RSC) sebagai komponen kodenya. Penyandi ini menghasilkan parity bit yang berfungsi sebagai bit proteksi terhadap galat. Penyandi RSC yang digunakan memiliki code rate =1/2 dengan generator polynomial [1 5/7] untuk blok delay = 2 dan generator polynomial [1 15/13] untuk blok delay = 3. Dalam Turbo Convolutional, kedua penyandi RSC dihubungkan secara paralel sehingga sistem mempunyai code rate 1/3 dengan 1 bit masukan menghasilkan 3 bit keluaran. Untuk mendapatkan bit keluaran yang sesuai dengan RSC, dibuat fungsi “rscenc”.
38 Dengan memory,flag)
menggunakan
syntax
dengan inputan
[out,input]=rscenc(inputan,
merupakan data masukan yang akan
disandikan oleh kode RSC, memory adalah jumlah shift register pada penyandi RSC yang digunakan yaitu 2 atau 3, flag merupakan tanda jika ingin menghasilkan tail bit. Dalam penelitian ini, tail bit hanya dihasilkan pada komponen kode 1. Out dan input merupakan argumen keluaran dengan out
merupakan parity bit yang dihasilkan oleh RSC dan input adalah
gabungan data masukan awal dengan tail bit yang diperoleh dalam penyandian. Tail bit maupun parity bit yang dihasilkan bergantung pada hubungan dari tiap blok delay seperti pada Gambar 2.3 dan Gambar 2.4.
3.3. Penyandi Turbo Block Penyandi
Turbo
Block
menggunakan
dua
Bose
Chaudhuri
Hocqueqhem (BCH) sebagai komponen kodenya. Penyandi BCH yang digunakan adalah BCH (7,4) dengan code rate 4/7 dan BCH (15,11) dengan code rate 11/15. Dalam sistem Turbo Block, kedua penyandi BCH dihubungkan secara paralel sehingga sistem mempunyai code rate 0,4 untuk dua kode BCH (7,4) dan 0,58 untuk dua kode BCH (15,11). Untuk mendapatkan bit keluaran yang sesuai dengan BCH dibuat fungsi “bchencoder”. Dengan menggunakan syntax [out,input]= bchencoder(inputan, memory)
dengan inputan merupakan data masukan, memory adalah jumlah
shift register yang digunakan pada kode BCH yaitu 3 atau 4. Out dan input merupakan argumen keluaran dengan out merupakan data masukan yang diikuti dengan parity bit yang dihasilkan oleh BCH dan input adalah gabungan data masukan dengan tail bit yang diperoleh dalam penyandian. Tail bit maupun parity bit yang dihasilkan pada penyandi Turbo block bergantung pada hubungan dari tiap blok delay seperti pada Gambar 2.8 dan Gambar 2.9.
39 3.4. Penyandi Turbo Gabungan Penyandi Turbo Gabungan menggunakan kode RSC dengan blok delay 2 untuk komponen kode 1 dan kode BCH (7,4) sebagai komponen kode 2. Pada penyandi ini digunakan fungsi “rscenc” dan “bchencoder” yang sudah dibahas sebelumnya. Sistem Turbo ini memiliki code rate 4/11 dimana 4 bit masukan menghasilkan 11 keluaran.
3.5. Interleaver Interleaver berfungsi untuk mengubah urutan data dengan aturan tertentu. Untuk itu dibuat fungsi “interleaver” dengan data masukan mengisi matriks interleaver baris demi baris dan membacanya kolom demi kolom. Dengan menggunakan syntax out=interleaver(input,r,c)dengan input
merupakan data yang akan di-interleave, r dan c adalah jumlah baris
dan kolom matriks interleaver.
3.6. Puncturing Puncturing merupakan proses yang dilakukan untuk meningkatkan laju penyandian. Dalam data yang di-puncture terdapat parity bit yang tidak ditransmisikan. Pola puncturing ditentukan oleh matriks puncturing P dan laju penyandian yang diinginkan. Sebagai contoh, pada Turbo Convolutional digunakan matriks puncturing P [1 1 0;1 0 1] untuk mendapatkan laju penyandian ½ . Matriks ini akan membuat parity bit dari setiap komponen kode RSC muncul bergantian. Proses puncturing dijelaskan sebagai berikut : 1 −1 Data = [ 1 1
1 1 ] ; 𝑃=[ 1 −1
1 0 ] 0 1
; Hasil = [
1 −1 0 ] 1 0 −1
Kolom pertama dari matriks data adalah bit sistematik, kolom kedua adalah parity bit kode RSC 1 dan kolom ketiga adalah parity bit kode RSC 2. Matriks puncturing P mewakili bagian yang sama untuk setiap kolom dengan 1 berarti data ditransmisikan dan 0 berarti data tidak ditransmisikan. Matriks
40 hasil menunjukkan data yang ditransmisikan setelah melalui proses puncturing.
3.7. Modulasi BPSK Modulasi
BPSK
dibuat
dalam
fungsi
“bpsk_mod”
dengan
menggunakan syntax [mod_signal] = bpsk_mod(data,fc). Data adalah data bit yang akan dimodulasi dan fc adalah frekuensi carrier yang digunakan. Dalam skema BPSK , isyarat termodulasi dapat dinyatakan oleh persamaan berikut : 𝑥(𝑡) = {
𝐴 cos 𝜔𝑐 𝑡 𝐴 cos (𝜔𝑐 𝑡 + 𝜋)
merepresentasikan ′0′ merepresentasikan ′1′
(3.1)
Pergeseran fase sebesar 180° (π) sebanding dengan membalikkan gelombang sinus atau mengalikannya dengan -1.
3.8. Kanal Rayleigh Kanal yang digunakan dalam simulasi ini adalah kanal multipath Rayleigh fading. Pada MATLAB digunakan fungsi ”rayleighchan” untuk memodelkan kanal Rayleigh. Dengan menggunakan syntax chan rayleighchan(ts,fd,tau,pdb)
=
dengan ts merupakan waktu sampling, fd
adalah frekuensi doppler, tau adalah waktu delay yang terjadi, pdb adalah power delay profile (PDP). Pada penelitian ini digunakan frekuensi carrier 2140 MHz dengan kecepatan kendaraan adalah 40 km/jam sehingga dengan menggunakan Persamaan (2.4) didapatkan frekuensi doppler sebesar 79,26Hz. Tabel 3.1 menunjukkan Power Delay Profile yang digunakan untuk area urban [7]. Tabel 3.1. Power Delay Profile untuk Area Urban. Delay (μs) 0 0.217 0.512
Power (dB) -5.7 -7.6 -10.1
41 3.9. AWGN Dalam simulasi ini, isyarat yang melalui kanal akan ditambahkan dengan derau AWGN. Untuk memodelkan derau AWGN dibuat fungsi ”channel” dengan syntax [derau1]
=
channel_type, ukuran, rate). Input
adalah data yang dilalukan dalam
channel
(input,
ebno,
kanal, ebno adalah besarnya nilai Eb/No, channel_type adalah pilihan kanal yang diinginkan, 1 untuk AWGN dan 2 untuk AWGN ditambah multipath Rayleigh fading. Ukuran adalah ukuran matriks dari data masukan dimana ukuran tersebut digunakan sebagai ukuran matriks derau. Rate adalah laju penyandian sistem. Argumen keluaran derau1 adalah derau yang dihasilkan oleh fungsi channel. Dalam derau AWGN digunakan fungsi randn yang terdapat pada Matlab untuk menghasilkan derau dengan rata-rata (mean) = 0.
Dengan
menggunakan
noise=sqrt(variance)*(randn(ukuran))[13]
dapat
syntax ditentukan
nilai
varians berdasarkan nilai Eb/No untuk derau . Varians dan rapat spektrum daya derau memiliki hubungan sebagai berikut : 𝜎2 =
𝑁𝑂
(3.2)
2
dengan 𝜎 2 adalah varians dan 𝑁𝑂 adalah rapat spektrum daya derau. Diasumsikan bahwa energi per simbol dengan modulasi BPSK telah dinormalisasi menjadi : 𝐸𝑠 = 𝐸(|𝑥|2 ) = 1
(3.3)
Sistem dengan 𝑅𝑚 = 𝑙𝑜𝑔2 𝑀 (M adalah modulasi yang digunakan, BPSK :M =2), laju penyandian 𝑅𝑐 dan energi per bit 𝐸𝑏 dihubungkan dengan 𝐸𝑠 seperti pada persamaan (3.4). 𝐸𝑠 = 𝑅𝑚 𝑅𝑐 𝐸𝑏
(3.4)
𝐸
Oleh karena itu, dengan nilai 𝑁𝑏 yang diberikan, dapat dihitung varians 𝑜
derau sebagai berikut : 𝐸𝑏 𝐸𝑠 𝐸𝑠 1 = = = 2 𝑁𝑜 𝑅𝑚 𝑅𝑐 𝑁𝑜 𝑅𝑚 𝑅𝑐 2𝜎 2𝑅𝑚 𝑅𝑐 𝜎 2
𝜎2 =
1 𝐸 2𝑅𝑚 𝑅𝑐 𝑏 𝑁𝑜
=
1 𝐸 2 𝑠
𝑁𝑜
(3.5)
42 dengan 𝜎 2 merupakan nilai varians dan
𝐸𝑠 𝑁𝑜
merupakan energy symbol
to noise power spectral density. Setelah derau didapatkan, maka langsung ditambahkan dengan data masukan.
3.10. Maximum A-Posteriori Algoritma (MAP) Pengawasandi menggunakan MAP untuk menghitung nilai LLR (Log Likelihood Ratio) sebuah bit. MAP memanfaatkan diagram trellis yang dihasilkan oleh penyandi kode RSC maupun BCH dan menghitung kemungkinan jalur yang dilewati data masukan. MAP membaginya menjadi 3 bagian yaitu penghitungan branch matrix (γ), penghitungan rekursi maju (𝛼) dan penghitungan rekursi mundur (𝛽) sama seperti pada Persamaan (2.14), (2.15), dan (2.17) secara berurutan. Setelah ketiga nilai tersebut diketahui, maka nilai 𝐿(𝑢𝑘 |𝑦) bisa dicari sesuai dengan Persamaan (2.13). Kemudian bisa diketahui nilai ekstrinsik yang menjadi informasi a-priori pada sebuah pengawasandi seperti pada Persamaan (2.20).
3.11. Pengawasandi Turbo Convolutional Pada bagian ini terdapat dua pengawasandi Turbo yang dihubungkan secara paralel dengan interleaver maupun de-interleaver. Pada pengawasandi 1, masukan dan parity bit keluaran penyandi RSC 1 serta hasil soft decision yang dihasilkan oleh pengawasandi 2 dimanfaatkan oleh MAP untuk mendapatkan hasil soft decision suatu bit. Semuanya ini dilakukan dengan menghitung kemungkinan suatu jalur dalam diagram trellis dilewati oleh data masukan. Hasil soft decision pengawasandi 1 terlebih dahulu di-interleaver sebelum menjadi masukan pengawasandi 2 agar didapati urutan data yang sama seperti data yang masuk pada pengawasandi 2. Penukaran informasi ini akan berlangsung sampai batas iterasi yang ditentukan. Proses ini juga berlaku untuk pengawasandi 2.
43 3.12. Pengawasandi Turbo Block Pada bagian ini terdapat dua pengawasandi Turbo yang dihubungkan secara paralel dengan interleaver maupun de-interleaver. Pada pengawasandi ini prinsipnya sama dengan pengawasandi Turbo Convolutional, tetapi data yang masuk terlebih dahulu dibagi menjadi beberapa frame. Untuk BCH(7,4) tiap frame terdiri dari 4 bit dengan 3 bit parity yang dihasilkan, untuk BCH (15,11) tiap frame terdiri dari 11 bit dengan 4 bit parity yang dihasilkan. Perhitungan dalam diagram trellis dilakukan per frame. Proses penukaran informasi yang terjadi pada kedua pengawasandi memiliki prinsip yang sama seperti pada Turbo Convolutional.
3.13. Pengawasandi Turbo Gabungan Pada bagian ini, terdapat satu pengawasandi Turbo Convolutional dan satu pengawasandi Turbo Block yang dihubungkan secara paralel dengan interleaver ataupun de-interleaver.
Prinsip yang digunakan sama, kedua
pengawasandi saling bertukar nilai soft decision
hingga iterasi yang
diinginkan. Saat informasi dari pengawasandi Turbo Convolutional menjadi masukan pengawasandi Turbo Block, informasi terlebih dahulu dibagi menjadi beberapa frame bergantung pada jenis kode BCH yang digunakan pada Turbo Block.
3.14. De-interleaver De-interleaver berfungsi untuk mengubah urutan data dengan aturan tertentu. Untuk itu dibuat fungsi “deinterleaver” dengan data masukan mengisi matriks deinterleaver kolom demi kolom dan membacanya baris demi baris. Dengan menggunakan syntax out=deinterleaver(input,r,c), input
merupakan data yang akan di-deinterleave, r dan c adalah jumlah
baris dan kolom matriks deinterleaver.
44 3.15. 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 dalam hal ini adalah jumlah iterasi yang dilakukan. Apabila hasil estimasi akhir sebuah bit bernilai kurang dari nol (0) maka nilai suatu bit adalah 1 dan apabila hasil estimasi akhir sebuah bit bernilai lebih dari nol (0) maka nilai suatu bit adalah 0.
3.16. Perhitungan BER BER merupakan Bit Error Rate yang diperoleh dari perbandingan jumlah galat yang terdapat dalam hasil akhir dengan jumlah bit masukan yang dirumuskan dalam Persamaan (3.6).
𝐵𝐸𝑅 =
𝐽𝑢𝑚𝑙𝑎ℎ 𝑔𝑎𝑙𝑎𝑡 𝑦𝑎𝑛𝑔 𝑡𝑒𝑟𝑗𝑎𝑑𝑖 𝐽𝑢𝑚𝑙𝑎ℎ 𝑏𝑖𝑡 𝑚𝑎𝑠𝑢𝑘𝑎𝑛
(3.6)
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.