35
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.
Gambar 3.1. Diagram Kotak Turbo Convolutional.
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.
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”.
Dengan menggunakan syntax [out,input]=rscenc(inputan, memory,flag) dengan 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
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, rdan 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 :
Data = [ − − ] ; � = [ ] ; Hasil = [ − − ]
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 � merepresentasikan cos � + � merepresentasikan ′ ′′ ′ (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) Power (dB)
0 -5.7
0.217 -7.6
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 (input, ebno,
channel_type, ukuran, rate). Input adalah data yang dilalukan dalam kanal, ebno adalah besarnya nilai Eb/No, channel_typeadalah 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 syntax
noise=sqrt(variance)*(randn(ukuran))[13] dapat ditentukan nilai
varians berdasarkan nilai Eb/No untuk derau . Varians dan rapat spektrum
daya derau memiliki hubungan sebagai berikut :
� = (3.2)
dengan � adalah varians dan adalah rapat spektrum daya derau. Diasumsikan bahwa energi per simbol dengan modulasi BPSK telah dinormalisasi menjadi :
� = � | | = (3.3)
Sistem dengan � = ��� (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 :
�
= � �� =� � � = � � ��
� =
��� ��= ���
dengan � 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
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),
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)