repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN...

129
PROGRAM SIMULASI APLIKASI MMSE PADA MULTIUSER DETECTION CDMA TUGAS AKHIR Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Elektro Oleh: Nama : Jekson Sianipar NIM : 015114074 PROGRAM STUDI TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA YOGYAKARTA 2007 i

Transcript of repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN...

Page 1: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

PROGRAM SIMULASI APLIKASI MMSE

PADA MULTIUSER DETECTION CDMA

TUGAS AKHIR

Diajukan Untuk Memenuhi Salah Satu Syarat

Memperoleh Gelar Sarjana Teknik

Program Studi Teknik Elektro

Oleh:

Nama : Jekson Sianipar

NIM : 015114074

PROGRAM STUDI TEKNIK ELEKTRO

JURUSAN TEKNIK ELEKTRO

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

2007

i

Page 2: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

SIMULATION PROGRAM OF MMSE APPLICATION FOR

CDMA MULTIUSER DETECTION.

FINAL PROJECT

Presented as Partial Fulfillment of the Requirements

To Obtain the Sarjana Teknik Degree

In Electrical Engineering Study Program

By:

Name : Jekson Sianipar

Student Number : 015114074

ELECTRICAL ENGINEERING STUDY PROGRAM

DEPARTMENT OF ELECTRICAL ENGINEERING

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2007

ii

Page 3: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

iii

Page 4: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

iv

Page 5: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

v

Page 6: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

HALAMAN MOTTO DAN PERSEMBAHAN

Takut akan kegagalan seharusnya tidak menjadi alasan

untuk tidak mencoba sesuatu.

(Frederick Smith)

Yang terpenting dari kehidupan bukanlah kemenangan

namun bagaimana bertanding dengan baik.

(Baron Pierre de Coubertin)

Lebih baik bertempur dan kalah dari pada tidak pernah bertempur

sama sekali

Kupersembahkan karya tulis ini kepada :

Tuhan Yesus Kristus terkasih,

Bapak dan Ibu Tercinta,

Abang, kakak dan adikku Tersayang

Keluarga besar sianipar dan pardede tercinta,

Devi tersayang

Almamaterku Teknik Elektro USD, dan

untuk diriku sendiri

vi

Page 7: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

INTISARI

Pada multiuser detection CDMA, satu penerima akan menerima sinyal yang

merupakan hasil penjumlahan sinyal dari beberapa pengguna lainnya. Penerima harus dapat memilih sinyal yang diinginkan dan menolak sinyal-sinyal lainnya. algoritma MMSE dapat digunakan sebagai multiuser detection pada CDMA.

Program simulasi aplikasi MMSE pada multiuser detection CDMA, akan menunjukkan bahwa estimasi bit-bit dari detektor MMSE di penerima sesuai dengan bit-bit input pada pengirim, dengan kesalahan hasil estimasi bit sangat kecil. Program akan mensimulasikan proses spreading sinyal informasi, modulasi QPSK, demodulasi QPSK, despreading pada matched filter dan proses estimasi bit pada detektor MMSE.

Kata kunci : multiuser detection, algoritma MMSE.

vii

Page 8: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

ABSTRACT

At CDMA multiuser detection, one receiver will accept signal representing result of quantifying of signal from some other user. Receiver have to earn to chosen wanted signal and refuse other signal. Algorithm of MMSE serve the purpose of detection multiuser at CDMA Simulation application program of MMSE for CDMA multiuser detection, will indicate that bits estimation of MMSE detector in receiver as according to input bits transmitter with mistake of result estimate beet very small. Simulation program will process spreading of information signal, QPSK modulation, QPSK demodulation, despreading for matched filter and process estimate bit for detector of MMSE. Keyword: multiuser detection, Algorithm of MMSE.

viii

Page 9: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

KATA PENGANTAR

Puji syukur penulis panjatkan kepada Tuhan yang Maha Esa, karena atas

Anugerah-Nya penulis akhirnya dapat menyelesaikan tugas akhir ini dengan baik dan

lancar.

Dalam proses penulisan tugas akhir ini penulis menyadari bahwa ada begitu

banyak pihak yang telah memberikan perhatian dan bantuan dengan caranya masing-

masing sehingga tugas akhir ini dapat terselesaikan. Oleh karena itu penulis ingin

mengucapkan terima kasih antara lain kepada :

1. Tuhan Yesus atas penyertaan dan bimbingannya.

2. Bapak Ir. Greg. Heliarko, SJ., B.ST., MA., M.Sc, selaku dekan fakultas sains dan

teknologi Universitas Sanata Dharma.

3. Bapak Bayu Primawan, S.T., M.Eng dan Bapak Damar Wijaya, S.T., M.T.,

selaku pembimbing I dan Pembimbing II atas bimbingan, dukungan, saran dan

kesabaran bagi penulis dari awal sampai tugas akhir ini bisa selesai.

4. Seluruh dosen teknik elektro atas ilmu yang telah diberikan selama penulis

menimba ilmu di Universitas Sanata Dharma.

5. Bapak dan ibu tercinta atas semangat, doa serta dukungan secara moril maupun

materiil.

6. Kelima saudara Sianipar ku, Jansen, Herta, Roselina, Pestaria dan Bangun atas

perhatian, dukungan dan cinta serta bantuan yang sangat berguna.

7. Abang-abang sumber inspirasi dan motivasiku: Rismon Hasiolan Sianipar,

Jimmy Silalahi, Fader Siahaan, Albert Manik, mas Koko semoga aku bisa seperti

apa yang kalian harapkan.

ix

Page 10: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

x

Page 11: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

DAFTAR ISI

Halaman

JUDUL .......................................................................................................................... i

HALAMAN PERSETUJUAN .................................................................................... iii

HALAMAN PENGESAHAN ...................................................................................... iv

HALAMAN PERNYATAAN KEASLIAN KARYA ................................................ v

HALAMAN MOTTO DAN PERSEMBAHAN......................................................... vi

INTISARI ..................................................................................................................... vii

ABSTRACT .................................................................................................................. viii

KATA PENGANTAR .................................................................................................. ix

DAFTAR ISI................................................................................................................. xi

DAFTAR GAMBAR .................................................................................................... xiii

DAFTAR TABEL ........................................................................................................ xv

DAFTAR CONTOH .................................................................................................... xvi

BAB I PENDAHULUAN ......................................................................................... 1

1.1 Latar Belakang Masalah........................................................................... 1

1.2 Tujuan dan Manfaat Penelitian ................................................................ 2

1.3 Batasan Masalah .................................................................................... 2

1.4 Metodologi Penelitian ............................................................................ 3

1.5 Sistematika Penulisan ............................................................................. 3

BAB II DASAR TEORI ............................................................................................. 5

2.1 Model Multiuser CDMA ........................................................................ 5

2.2 Spreading codes (kode penyebar)............................................................ 7

2.2.1 Pembentukan Matriks Spreading Codes ....................................... 8

2.2.2 Proses Spreading (Penyebaran)..................................................... 10

2.3 Modulasi QPSK (Quadrature Phase Shift Keying) ............................... 12

2.4 Additive White Gaussian Noise (AWGN) ............................................ 17

2.5 Demodulasi QPSK................................................................................. 20

2.6 Matched Filter (MF).....….. ................................................................... 23

xi

Page 12: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

2.7 Detektor MMSE.................................................................................... 26

BAB III PERANCANGAN PROGRAM SIMULASI.............................................. 29

3.1 Algoritma Perancangan Program............................................................ 29

3.2 Proses Pemeriksaan bit Input Pengguna ................................................ 30

3.3 Perancangan Sub Program Spreading..................................................... 32

3.4 Perancangan Sub Program Modulasi QPSK........................................... 33

3.5 Perancangan Sub Program Demodulasi QPSK ...................................... 35

3.6 Perancangan Matched Filter (MF) ......................................................... 36

3.7 Proses Estimasi pada Detektor MMSE................................................... 37

3.8 Layout Program Simulasi ....................................................................... 38

3.8.1 Tampilan Awal Program ................................................................. 38

3.8.2 Layout Program Utama ................................................................... 39

BAB IV HASIL DAN PEMBAHASAN .................................................................. 44

4.1 Tampilan Awal Program ........................................................................ 44

4.2 Tampilan Program Utama....................................................................... 45

4.3 Tampilan Input Program......................................................................... 47

4.4 Hubungan antara Proses Spreading dengan Bit-bit Input....................... 48

4.5 Hasil Modulasi QPSK............................................................................. 53

4.6 Pengaruh AWGN pada Modulasi QPSK ................................................ 57

4.7 Pengaruh Frekuensi Carrier Terhadap Modulasi QPSK......................... 61

4.8 Hasil Demodulasi QPSK ........................................................................ 63

4.9 Proses Despreading pada Matched Filter............................................... 64

4.10 Hasil Estimasi pada Detektor MMSE................................................... 66

BAB V PENUTUP ..................................................................................................... 69

A. Kesimpulan................................................................................................. 69

B. Saran........................................................................................................... 69

DAFTAR PUSTAKA

LAMPIRAN

xii

Page 13: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

DAFTAR GAMBAR

Halaman

Gambar 2.1 Konfigurasi multiuser CDMA bagian pengirim ................................... 5

Gambar 2.2 Konfigurasi multiuser CDMA bagian penerima................................... 6

Gambar 2.3 Konstruksi Modulator QPSK ................................................................ 12

Gambar 2.4 Konstruksi Demodulator QPSK............................................................. 20

Gambar 2.5 Matched Filter (MF) ............................................................................. 23

Gambar 2.6 Detektor MMSE .................................................................................... 26

Gambar 3.1 Algoritma perancangan program simulasi aplikasi MMSE pada

multiuser detection CDMA .................................................................. 29

Gambar 3.2 Diagram alir proses pemeriksaan bit-bit input ....................................... 31

Gambar 3.3 Diagram alir penyebaran (spreading) .................................................... 32

Gambar 3.4 Diagram alir sub program modulasi QPSK ........................................... 34

Gambar 3.5 Diagram demodulasi QPSK ................................................................... 35

Gambar 3.6 Diagram alir Matched Filter .................................................................. 36

Gambar 3.7 Diagram alir detektor MMSE................................................................. 37

Gambar 3.8 Perancangan tampilan awal program ..................................................... 38

Gambar 3.9 Layout program bagian pengirm (transmitter)....................................... 40

Gambar 3.10 Layout program bagian penerima (receiver).......................................... 40 Gambar 4.1 Tampilan awal program simulasi ........................................................... 44

Gambar 4.2 Tampilan program bagian Transmitter .................................................. 45

Gambar 4.3 Tampilan program bagian Receiver ....................................................... 46

Gambar 4.4 Tampilan menu Help ............................................................................. 46

xiii

Page 14: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

Gambar 4.5 Tampilan input program........................................................................ 47

Gambar 4.6 Tampilan grafik sinyal masukan bit-bit pengguna................................ 48

Gambar 4.7 Tampilan masukan sub program spreading .......................................... 49

Gambar 4.8 Tampilan hasil sub program spreading.................................................. 50

Gambar 4.9 Grafik sinyal hasil proses spreading ...................................................... 52

Gambar 4.10 Tampilan nilai hasil modulasi QPSK.................................................... 54

Gambar 4.11 Tampilan grafik sinyal modulasi QPSK ketiga pengguna ..................... 54

Gambar 4.12 Grafik grafik sinyal modulasi QPSK ketiga pengguna .......................... 55

Gambar 4.13 Tampilan hasil modulasi QPSK total..................................................... 57

Gambar 4.14 Tampilan grafik sinyal superposisi modulasi QPSK ............................. 58

Gambar 4.15 Tampilan input frekuensi carrier ........................................................... 61

Gambar 4.16 Tampilan hasil modulasi QPSK dengan frekuensi carrier =10 Hz....... 61

Gambar 4.17 Tampilan hasil modulasi QPSK dengan frekuensi carrier =100 Hz..... 62

Gambar 4.18 Tampilan hasil modulasi QPSK dengan frekuensi carrier =200 Hz..... 62

Gambar 4.19 Tampilan hasil demodulasi QPSK total ................................................. 63

Gambar 4.20 Tampilan grafik sinyal hasil demodulasi QPSK total ............................ 63

Gambar 4.21 Tampilan hasil despreading ................................................................... 64

Gambar 4.22 Tampilan grafik sinyal hasil despreading ketiga pengguna................... 65

Gambar 4.23 Tampilan hasil Detektor MMSE ............................................................ 66

xiv

Page 15: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

DAFTAR TABEL

Halaman

Tabel 2.1 Logika XOR.............................................................................................. 11

Tabel 2.2 Tabel fasa sinyal output modulasi QPSK.................................................. 13

Tabel 4.1 Input program simulasi ............................................................................ 48

Tabel 4.2 Input sub program spreading .................................................................... 49

Tabel 4.3 Input modulasi QPSK masing-masing pengguna ..................................... 53

Tabel 4.4 Hasil modulasi QPSK ketiga pengguna .................................................... 56

Tabel 4.5 Input sub program modulasi total QPSK .................................................. 57

Tabel 4.6 Hasil modulasi QPSK total ....................................................................... 59

Tabel 4.7 Perbandingan nilai modulasi QPSK total dengan SNR = 0 dB,

SNR = 8 dB dan SNR = 16.6 dB.............................................................. 59

Tabel 4.8 Perbandingan dari beberapa modulasi digital ......................................... 60

Tabel 4.9 Hasil demodulasi QPSK total ................................................................. 64

Tabel 4.10 Perbandingan hasil spreading dan despreading ...................................... 65

Tabel 4.11 Hasil detektor MMSE .............................................................................. 67

xv

Page 16: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

DAFTAR CONTOH

Halaman

Contoh 2.1 Proses spreading......................................................................................... 11

Contoh 2.2 Modulasi QPSK......................................................................................... 14

Contoh 2.3 Demodulasi QPSK...................................................................................... 21

xvi

Page 17: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

BAB I

PENDAHULUAN

1.1 Latar Belakang Masalah

Salah satu metode akses untuk sistem komunikasi bergerak yang

banyak digunakan saat ini selain GSM adalah CDMA (Code Division Multiple

Acces). Dengan CDMA maka setiap pengguna menggunakan frekuensi carrier

pada saat bersamaan. Pengguna yang satu dengan pengguna lainnya dibedakan

berdasarkan kode unik yang dimiliki tiap-tiap pengguna dan kode-kode

tersebut harus saling ortogonal [1].

Penerima akan menerima semua sinyal yang ditransmisikan oleh

beberapa pengguna karena sinyal tersebut menggunakan frekuensi carrier

yang sama. Proses deteksi isyarat CDMA dari pengguna yang dikehendaki

dipengaruhi oleh kondisi kanal transmisi seperti adanya multipath fading yang

menyebabkan interferensi antar simbol yang dapat menyebabkan informasi

yang dikirimkan tidak sesuai dengan yang diterima pada bagian penerima.

Oleh karena itu, pada penerima diperlukan suatu detektor yang dapat

menyeleksi sinyal-sinyal yang ditujukan kepada penerima tertentu secara tepat

dan akurat. Berbagai algoritma yang digunakan untuk menyeleksi sinyal-

sinyal yang diinginkan oleh penerima telah dikembangkan atau dimodifikasi.

Dalam tugas akhir ini algoritma MMSE (Minimum Mean Square Error) yang

digunakan sebagai detektor sinyal pada CDMA akan disimulasikan.

1

Page 18: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

2

1.2 Tujuan dan Manfaat Penelitian

Tugas akhir ini bertujuan untuk menghasilkan program simulasi

multiuser detection pada CDMA dengan menggunakan algoritma MMSE

sebagai detektor bit.

Beberapa manfaat yang diharapkan dapat diperoleh dari penelitian ini

adalah sebagai berikut :

1. Dapat menambah pengetahuan tentang sistem komunikasi CDMA

dengan aplikasinya yaitu membuat simulasi aplikasi MMSE pada

multiuser detection CDMA.

2. Dapat dijadikan sebagai acuan dalam perancangan pada sistem

komunikasi CDMA khususnya bagian penerima.

1.3 Batasan Masalah

Pada penelitian ini dilakukan pembatasan masalah terhadap program

simulasi yang akan dibuat. Batasan masalah penelitian ini adalah sebagai

berikut :

1. Banyaknya pengguna pada multiuser CDMA akan dibatasi sebanyak

tiga dengan jumlah bit sebanyak dua untuk masing-masing pengguna.

2. Sinyal tidak mengalami multipath fading untuk menyederhanakan

pembahasan .

3. Proses sinkronisasi dianggap berhasil.

4. Spreading codes yang digunakan diambil dari matriks Hadamard

berorde 4 (H4).

Page 19: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

3

5. Simulasi akan dibuat dengan program MATLAB.

1.4 Metodologi Penelitian

Pada penelitian ini, penulis menggunakan langkah-langkah sebagai berikut :

1. Perumusan masalah, yaitu bagaimana mengimplementasikan algoritma

MMSE sebagai multiuser detector pada sistem komunikasi CDMA.

2. Pengumpulan dokumen pendukung berupa buku-buku dan artikel-

artikel yang berhubungan dengan teori sistem komunikasi CDMA.

3. Perancangan untuk menyelesaikan masalah, berupa perhitungan

matematis, penentuan parameter-parameter yang digunakan serta

membentuk diagram alir simulasi .

4. Menguji program simulasi yang telah dibuat.

5. Membahas dan menganalisis hasil rancangan yang diperoleh dari

program simulasi.

6. Membuat kesimpulan dari hasil pembahasan dan analisis.

1.5 Sistematika Penulisan

Keseluruhan tugas akhir ini mencakup lima bab yang disusun dalam

sistematika sebagai berikut :

BAB I : Pendahuluan

Berisi penjelasan singkat tentang latar belakang, pembatasan

masalah tujuan, manfaat, metodologi penelitian pada tugas

akhir ini.

Page 20: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

4

BAB II : Dasar Teori

Berisi teori dasar yang digunakan untuk menyelesaikan tugas

akhir ini.

BAB III : Perancangan Program Simulasi

Berisi konsep dan langkah-langkah perancangan program

simulasi aplikasi MMSE pada multiuser detection CDMA

BAB IV : Hasil dan Pembahasan

Berisi hasil simulasi dan pembahasan dari program simulasi

aplikasi MMSE pada multiuser detection CDMA.

BAB V : Kesimpulan

Berisi kesimpulan dari hasil penelitian dan saran yang

mungkin berguna untuk pengembangan program lebih lanjut.

Page 21: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

BAB II

DASAR TEORI

2.1 Model Multiuser CDMA

Code Division Multiple Acces (CDMA) merupakan salah satu sistem

komunikasi yang banyak digunakan pada komunikasi seluler. Salah satu

keuntungan utama CDMA adalah akses bagi beberapa pengguna (multiple acces)

pada saat bersamaan dan menggunakan bandwidth yang sama. Gambar 2.1

menunjukkan konfigurasi multiuser CDMA pada bagian pengirim (transmitter)

[1].

Pada bagian pengirim seperti yang ditunjukkan Gambar 2.1, bit-bit

informasi bk(t) tiap-tiap pengguna akan dikalikan dengan spreading code sk(t)

yang telah dipilih sebelumnya. Proses perkalian ini disebut dengan proses

Sk(t)

S1(t)

b1(t)

+b2(t)

bk(t)

S2(t)

ytotal( t)

y1(t)

y2(t)

yk(t)

Modulasi

Modulasi

Modulasi

n(t)

Gambar 2.1 Konfigurasi multiuser CDMA bagian pengirim [1].

5

Page 22: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

6

spreading. Hasil proses spreading masing-masing pengguna akan dimodulasi RF

dengan amplitudo Ak dan frekuensi pembawa fc yang sama. Sehingga sinyal yang

dikirimkan oleh pengirim adalah [2]

(2-1) )()()()( tstbtAty kkkk =

Sinyal hasil modulasi masing-masing pengguna tersebut kemudian

dijumlahkan dan ditambah dengan AWGN n(t). Sinyal modulasi yang terganggu

AWGN inilah yang kemudian dikirim ke penerima. Sinyal yang terganggu

AWGN dinyatakan dengan

)()()( tntyty ktotal += (2-2)

atau

)()()()()( tntstbtAty kkktotal += (2-3)

Gambar 2.2 menunjukkan konfigurasi multiuser CDMA pada bagian

penerima. Sinyal dari beberapa pengguna ytotal(t) yang terganggu AWGN dapat

diterima sekaligus oleh penerima.

Demodulasi

∫Tb

0

s1(t)

b1(t)

Demodulasi

∫Tb

0

s2(t)

b2(t)

Demodulasi sk(t)

bk(t)

ytotal( t)

ytotal( t)

ytotal( t) ∫Tb

0

Gambar 2.2 Konfigurasi multiuser CDMA bagian penerima [2].

Page 23: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

7

Pada penerima, sinyal yang terganggu AWGN akan didemodulasi oleh

masing-masing pengguna untuk mendapatkan besar tegangan maksimumnya.

Hasil demodulasi kemudian dikalikan dengan spreading codes seperti yang

digunakan pada proses spreading bagian pengirim. Proses perkalian antara hasil

demodulasi dengan spreading codes pada penerima disebut dengan despreading.

Despreading bertujuan untuk mendapatkan kembali bentuk sinyal yang

diinginkan oleh tiap-tiap pengguna pada penerima.

Pada detektor bit, hasil proses despreading ini digunakan sebagai acuan

dalam menentukan bentuk bit yang diterima. Bit yang diterima tersebut setelah

dikonversi akan berbentuk kode biner (0 atau 1).

2.2 Spreading Codes (Kode Penyebar)

Spreading codes merupakan kode yang digunakan sebagai kode penyebar

data informasi dalam sistem komunikasi CDMA. Kode ini sangat penting untuk

mengurangi pengaruh interferensi sehingga pengguna yang satu tidak akan

mengganggu pengguna yang lain, walaupun menggunakan frekuensi yang sama.

Kemampuan spreading codes ini didasarkan pada sifatnya yang ortogonal.

Suatu kode dikatakan ortogonal dengan kode yang lain apabila kedua kode

tersebut memiliki korelasi-silang (cross-correlation) sama dengan nol. Spreading

codes dibentuk menggunakan matriks Hadamard yang merupakan matriks yang

ortogonal atau saling tegak lurus [2].

Page 24: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

8

2.2.1. Pembentukan Matriks Spreading Codes

Secara sederhana matriks spreading codes dihasilkan dengan memulai

sebuah matriks dengan nilai 0, mengulang nilai 0 secara horisontal dan vertikal

serta membalik nilai 0 menjadi 1 secara diagonal. Proses ini akan dilanjutkan

dengan membuat blok-blok baru sehingga menghasilkan spreading codes dengan

panjang kode yang diinginkan. Spreading codes dibentuk dengan cara [2] :

H2N = ⎥

⎤⎢⎣

⎡NN

NN

HHHH

(2-4)

dengan notasi 2N adalah besar orde dan NH adalah invers matriks dari . Bila

N =1, maka mempunyai 2 kemungkinan, yaitu

NH

NH

H2 = (2-5) ⎥⎦

⎤⎢⎣

⎡0111

atau

H2 = ⎥ (2-6) ⎦

⎤⎢⎣

⎡1000

Pembentukan spreading codes untuk besar orde sama dengan 4 ( 2N = 4 ) menjadi

H4 = ⎥⎦

⎤⎢⎣

⎡22

22

HHHH

(2-7)

Dari persamaan (2-4), pembentukan spreading codes dengan orde sama dengan 4

(H4) dapat dituliskan sebagai

H4 = (2-8)

⎥⎥⎥⎥

⎢⎢⎢⎢

1001001101011111

Page 25: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

9

atau H4 = (2-9)

⎥⎥⎥⎥

⎢⎢⎢⎢

0110110010100000

Empat set spreading codes yang saling ortogonal seperti yang ditunjukkan

persamaan (2-8) dan persamaan (2-9) dapat dituliskan sebagai

[ ]11111 =w atau [ ]00001 =w

[ ]01012 =w atau [ ]10102 =w (2-10)

[ ]00113 =w atau [ ]11003 =w

[ ]10014 =w atau [ ]01104 =w

Spreading codes pada persamaan (2-10) yang berbentuk sinyal biner dapat

dikonversi menjadi sinyal bipolar dengan mengubah bit 0 menjadi -1 dan bit 1

tetap 1 seperti berikut:

[ ]11111 =w atau [ ]11111 −−−−=w

[ ]11112 −−=w atau [ ]11112 −−=w (2-11)

[ ]11113 −−=w atau [ ]11113 −−=w

[ ]11114 −−=w atau [ ]11114 −−=w

Spreading codes dikatakan bersifat ortogonal apabila memenuhi syarat-syarat

seperti berikut [2]:

1. Dot product bit satu pada satu set kode harus sama dengan satu.

2. Korelasi antara satu spreading code dengan spreading code lain pada satu

matriks Hadamard harus sama dengan nol.

3. Setiap set dari harga w mempunyai besar bit 0 dan 1 yang sama.

Page 26: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

10

Dari persamaan (2-10) dan persamaan (2-11), sifat ortogonal matriks

Hadamard berorde 4 dapat ditunjukkan melalui contoh pembuktian w1 dan w2

yang diambil pada HN = 1.

Syarat (1): R11 = ( )( ) ( )( ) ( )( ) ( )( )[ ]4

11111111 +++

R11 = 1

Syarat (2): R12 = ( )( ) ( )( ) ( )( ) ( )( )11111111 −++−+

R12 = 0

Syarat (3): Dari matriks H4 pada persamaan (2-9), seluruh harga spreading

codes, kecuali w1, memiliki jumlah bit 1 dan bit 0 yang sama.

Untuk HN = 1, semua elemen berisi bit 1 dan untuk HN = 0, semua

elemen berisi bit 0. Karena w1 tidak memenuhi syarat ketiga,

sehingga w1 tidak digunakan sebagai spreading codes untuk

menyebarkan bit-bit informasi. Namun w1 tetap digunakan agar

ukuran matriks menjadi n x n walaupun tidak berpengaruh pada

spreading bit-bit informasi pengguna.

2.2.2. Proses Spreading (Penyebaran)

Bit-bit input bk(t) dari tiap pengguna akan disebarkan sesuai dengan

spreading code sk(t) yang dipilih untuk tiap pengguna. Operasi XOR antara bit-bit

input dengan spreading codes dilakukan untuk mendapatkan hasil spreading.

Hasil operasi XOR tersebut akan dikonversi menjadi bentuk bipolar (+1 dan -1).

Tabel 2.1 menunjukkan tabel kebenaran logika XOR yang digunakan sebagai

dasar proses spreading.

Page 27: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

11

Tabel 2.1 Logika XOR A B XOR0 0 01 0 10 1 11 1 0

Berdasarkan Tabel 2.1, jika A dan B bernilai sama, maka hasil operasi

XOR adalah 0 dan sebaliknya. Proses spreading masing-masing pengguna dapat

dilihat pada contoh 2.1

XOR

Hasil spreading yang berbentuk kode biner dikonversi ke dalam bentuk

bipolar sehingga menjadi y2(t): [1 1 -1 -1 -1 -1 1 1]

operasi XOR : 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 0

hasil spreading y2(t) : 1 1 0 0 0 0 1 1 XOR

bit input b2(t) : 0 1

spreading code s2(t) : 1 1 0 0

2. Pengguna 2

Hasil spreading yang berbentuk kode biner dikonversi ke dalam bentuk

bipolar sehingga menjadi y1(t): [-1 1 -1 1 1 -1 1 -1]

operasi XOR : 1 1 1 1 0 0 0 0 1 0 1 0 1 0 1 0

hasil spreading y1(t) : 0 1 0 1 1 0 1 0

bit input b1(t) : 1 0

spreading code s1(t) : 1 0 1 0

1. Pengguna 1

Ada tiga pengguna dengan masing-masing pengguna diberikan input sebanyak dua

bit. Spreading codes yang digunakan adalah matriks Hadamard dengan orde empat

(H4). Proses spreading adalah

Contoh 2.1

Page 28: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

12

3. Pengguna 3

bit input b3(t) : 1 1

spreading code s3(t) : 1 0 0 1

operasi XOR : 1 1 1 1 1 1 1 1 1 0 0 1 1 0 0 1

hasil spreading y3(t) : 0 1 1 0 0 1 1 0

Hasil spreading yang berbentuk kode biner dikonversi ke dalam bentuk

bipolar sehingga menjadi y3(t): [-1 1 1 -1 -1 1 1 -1]

XOR

2.3 Modulasi QPSK (Quadrature Phase Shift Keying)

Sinyal hasil proses spreading akan dimodulasi dengan modulasi Quadrature

Phase Shift Keying (QPSK) pada masing-masing pengguna. Hasil modulasi QPSK

masing-masing pengguna adalah sinyal u(t). Gambar 2.4 memperlihatkan

kontruksi modulator QPSK yang merupakan kombinasi dua buah modulator

BPSK (Binary Phase Shift Keying) yang ortogonal atau saling tegak lurus [3].

Kanal I

Kanal Q

Input yk(t) Serial to Parallel

Cos(2Π fct)

Output u(t) Parallel to Serial

Sin(2Π fct)

Gambar 2.3 Konstruksi Modulator QPSK [4].

Dalam modulasi QPSK, sinyal mempunyai dua komponen, yaitu In-Phase

(I) dan Quadrature (Q). Komponen I dan Q ini tidak saling berkorelasi atau saling

ortogonal karena I adalah fungsi sinus dan Q adalah fungsi cosinus. Pembuktian

Page 29: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

13

ortogonalitas atau saling tidak berkorelasi antara I dengan Q adalah sebagai

berikut [3]:

( )dtftftfk

ππμ 2sin)2cos(0∫= (2-11)

,.......3,2,1,0=k n

=μ 0

Karena terdiri dari dua komponen, sehingga pada suatu saat sinyal QPSK dapat

memodulasi dua bit pada satu periode simbol. Persamaan matematis modulasi

QPSK dinyatakan dengan [3]:

(2-12) jQItu +=)(

Persamaan (2-12) dapat dituliskan kembali sebagai

)4

2sin()4

2cos()( ππππ +++= tfcVtfcVtu mm (2-13)

dengan Vm adalah tegangan maksimum sebesar 2 Volt, fc adalah frekuensi

pembawa (carrier frequency), t adalah perioda sinyal dan 4π fase sinyal modulasi.

Tabel 2.2 Tabel fasa sinyal output modulasi QPSK

Bit ganjil Bit genap Output kanal I Output kanal Q Fasa sinyal output

1 1 Vm cos (2πft + 4π

) Vm sin (2πft + 4π

) 450

-1 1 - Vm cos (2πft + 4π

) Vm sin (2πft + 4π

) 1350

-1 -1 - Vm cos (2πft + 4π

) - Vm sin (2πft + 4π

) 2250

1 -1 Vm cos (2πft + 4π

) - Vm sin (2πft + 4π

) 3150

Page 30: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

14

Dalam teknik modulasi QPSK, sinyal memiliki 4 kemungkinan nilai fasa

[4]. Tabel 2.2 adalah tabel fasa sinyal output modulasi QPSK yang menunjukkan

nilai fasa masing-masing deretan bit pada masing-masing kanal. Bit-bit hasil

proses spreading akan dimodulasi oleh masing-masing pengguna. Bit–bit tersebut

akan dibedakan berdasarkan urutannya. Bit-bit urutan ganjil masuk ke kanal I dan

dimodulasi dengan sinyal Vm cos (2πft + 4π ). Sedangkan bit-bit urutan genap

masuk ke kanal Q dan dimodulasi dengan sinyal Vm sin (2πft + 4π ). Hasil

modulasi pada kedua kanal (kanal I dan Q) kemudian akan dijumlahkan. Proses

modulasi QPSK secara matematis dapat dilihat pada Contoh 2.2.

I1(t) = - Vm cos (2πft + 4π ) Q1(t) = + Vm sin (2πft +

4π )

I2 (t) = -Vm cos (2πft + 4π ) Q2 (t) = + Vm sin (2πft +

4π )

I3(t) = + Vm cos (2πft + 4π ) Q3 (t) = - Vm sin (2πft +

4π )

I4(t) = + Vm cos (2πft + 4π ) Q4 (t) = - Vm sin (2πft +

4π )

Bit_genap1 = [ 1 1 -1 -1 ]

Modulasi pada kanal I (Ik(t)) Modulasi pada kanal Q (Qk(t))

Bit_ganjil1 = [ -1 -1 1 1 ]

Hasil spreading pengguna 1 y1(t) : [ -1 1 -1 1 1 -1 1 -1 ]

Dengan mengambil input hasil proses spreading pada Contoh 2.1, modulasi

QPSK masing-masing pengguna adalah

1. Modulasi QPSK Pengguna 1

Contoh 2.2

Page 31: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

15

Dengan amplitudo (Vm) sinyal = Volt2 , maka u(t) :

untuk t = 0 < t <T

u(t) = - 2 cos (2πft + 4π ) + 2 sin (2πft +

4π )

untuk t = T < t <2T

u(t) = - 2 cos (2πft + 4π ) + 2 sin (2πft +

4π )

untuk t = 2T <t < 3T

u(t) = 2 cos (2πft + 4π ) - 2 sin (2πft +

4π )

untuk t = T < t <2T

u(t) = 2 cos (2πft + 4π ) - 2 sin (2πft +

4π )

2. Modulasi QPSK pengguna 2

Hasil spreading pengguna 2 y2(t) : [1 1 -1 -1 -1 -1 1 1]

Bit_genap2 = [ 1 -1 -1 1 ]

Bit_ganjil2 = [ 1 -1 -1 1 ]

Modulasi pada kanal I (Ik(t)) Modulasi pada kanal Q (Qk(t))

I1(t) = Vm cos (2πft + 4π ) Q1(t) = Vm sin (2πft +

4π )

I2 (t) = -Vm cos (2πft + 4π ) Q2 (t) = -Vm sin (2πft +

4π )

I3(t) = -Vm cos (2πft + 4π ) Q3 (t) = - Vm sin (2πft +

4π )

I4(t) = Vm cos (2πft + 4π ) Q4 (t) = Vm sin (2πft +

4π )

Dengan amplitudo (Vm) sinyal = Volt2 , maka u(t) :

Untuk t = 0 < t <T

u(t) = 2 cos (2πft + 4π ) + 2 sin (2πft +

4π )

Untuk t = T < t <2T

u(t) = - 2 cos (2πft + 4π ) - 2 sin (2πft +

4π )

Page 32: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

16

u(t) = 2 cos (2πft + 4π ) - 2 sin (2πft +

4π )

Untuk t = T < t <2T

u(t) = 2 cos (2πft + 4π ) - 2 sin (2πft +

4π )

Untuk t = 2T <t < 3T

u(t) = - 2 cos (2πft + 4π ) - 2 sin (2πft +

4π )

Untuk t = T < t <2T

u(t) = 2 cos (2πft + 4π ) + 2 sin (2πft +

4π )

3. Modulasi QPSK pengguna 3

Hasil spreading pengguna 3 y3 (t) : [ -1 1 1 - 1 -1 1 1 -1 ]

Bit_genap3 = [ -1 -1 1 1 ]

Bit_ganjil3 = [ 1 1 -1 -1 ]

Modulasi pada kanal I (Ik(t)) Modulasi pada kanal Q (Qk(t))

I1(t) = - 2 cos (2πft + 4π ) Q1(t) = + 2 sin (2πft +

4π )

I2 (t) = - 2 cos (2πft + 4π ) Q2 (t) = + 2 sin (2πft +

4π )

I3(t) = + 2 cos (2πft + 4π ) Q3 (t) = - 2 sin (2πft +

4π )

I4(t) = + 2 cos (2πft + 4π ) Q4 (t) = - 2 sin (2πft +

4π )

Dengan amplitudo (Vm) sinyal = Volt2 , maka u(t) :

Untuk t = 0 < t <T

u(t) = - 2 cos (2πft + 4π ) + 2 sin (2πft +

4π )

Untuk t = T < t <2T

u(t) = - 2 cos (2πft + 4π ) + 2 sin (2πft +

4π )

Untuk t = 2T <t < 3T

Page 33: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

17

2.4 Additive White Gaussian Noise (AWGN)

Additive White Gaussian Noise adalah noise yang memiliki spektrum

frekuensi yang kontinyu dan uniform pada seluruh band frekuensi dengan

kepadatan daya tiap hertz adalah sama di seluruh pita frekuensi. AWGN memiliki

sifat Additive, White, dan Gausssian [4]. Sifat additive artinya sinyal dijumlahkan

dengan noise, sifat white artinya tidak tergantung dari frekuensi operasi sistem

dan memiliki rapat daya yang konstan, dan sifat Gausssian artinya besar tegangan

noise memiliki rapat peluang terdistribusi secara Gaussian.

Sinyal dengan persamaan (2-2 ) akan dilewatkan pada matched filter. Pada

matched filter, sinyal tersebut akan dikorelasikan dengan spreading codes yang

berkesesuaian dengan masing-masing pengguna.Sinyal tersebut dapat dinyatakan

dengan

(2-14) [ ] dttstntytsty k

T

kk

T

total )()()()()(00∫∫ +=

dengan

(2-15) kkktotal nyy +=

dan

, k = 1, 2,3, …, N (2-16) dttstyy k

T

kkk )()(0∫=

, k = 1, 2,3, .., N (2-17) dttstnn k

T

k )()(0∫=

Sinyal pada persamaan (2-16) dan persamaan (2-17) dapat dibuat dalam bentuk

vektor dengan komponen . Sedangkan merupakan random variabel totaly kky kn

Page 34: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

18

yang timbul dari white noise. Dengan demikian sinyal yang diterima dalam

interval waktu dapat dinyatakan sebagai

totaly

Tt ≤≤0

(2-18) )(')()()(11

tnttt k

N

x

k

N

k

kkktotal snsyy ++= ∑∑==

(2-19) )(')()()(1

tntstt k

N

k

ktotaltotal yy += ∑=

dengan

)()()('1

tsntntn k

N

xk∑

=

−= (2-20)

Sinyal pada persamaan (2-20) muncul karena tidak adanya

ortogonalitas spreading codes yang digunakan. Karena spreading codes yang

digunakan berasal dari matriks Hadamard yang telah terbukti ortogonalitasnya,

maka sinyal noise tersebut bernilai nol. Komponen dari white noise tersebut

adalah Gaussian (distribusi normal), sehingga nilai rata-rata (u) adalah nol.

Dengan demikian variansi white noise adalah sebagai berikut :

)(' tn

)(' tn

; u = 0

(2-20)

22 )( unE −=σ

22 )(nE=σ

dengan merupakan nilai ekspektasi dari noise tersebut. Dengan demikian

variansi dari noise tersebut dapat dicari dengan perhitungan sebagai berikut :

2)(nE

(2-21) [ ]∫ ∫=T

kk

T

kk dtdstsntnEnnE0 0

)()()()()( τττ

∫ ∫ −=T

kk

T

Okk dtdststNnnE0 0

)()()(21)( τττδ (2-22)

Page 35: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

19

dengan n(t) adalah proses stokastik, yaitu proses acak elemen-elemen diskrit yang

peluang munculnya merupakan fungsi waktu. )( τδ −t merupakan fungsi delta

yang akan bernilai satu jika τ=t dan nol jika τ≠t sehingga persamaan (2-22)

dapat disederhanakan menjadi :

∫=T

kkOkk dttstsNnnE0

)()(21)( (2-23)

uOkk NnnE δ21)( = ; uδ = 1 (2-24)

sehingga variansi dari noise adalah sebagai berikut : )( 2σ )(tn

Okk NnnE21)( 2 == σ (2-25)

Karena nilai rata-rata )(μ dari white noise sama dengan nol, maka dapat di-

simpulkan bahwa:

kkkkktotal ynyuyu =+= )()( (2-26)

Nilai rata-rata dari sinyal total ( )( )totalyu pada persamaan (2-26) adalah

sama dengan nilai rata-rata sinyal yang dikirim. Karena setiap dari elemen dari

white noise tersebut saling lepas, maka probabilitas total dari elemen-elemen

tersebut merupakan hasil kali dari setiap elemennya, sehingga dapat ditulis:

( ) ( ) NkyypyypN

kkktotalktotal ......,,2,1;||

1

==∏=

(2-27)

Adapun Probabilitas distribusi normal dari elemen tunggal white noise tersebut

adalah [4] :

P(ytotal | ykk) = ONπ

1 exp ⎥⎦

⎤⎢⎣

⎡ −−

Nokktotal yy 2)(

k = 1,2,…..N (2-28)

Page 36: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

20

sehingga probabilitas total dituliskan sebagai berikut :

P(ytotal | ykk) = )(

12ONN

πexp ⎥

⎤⎢⎣

⎡ −−∑

=

N

k

kktotal

Noyy

1

2)( ; k = 1, 2,…N (2-29)

2.5 Demodulasi QPSK

Pada demodulasi QPSK, sinyal yang diterima akan dikalikan dengan

sinyal pembawa (carrier) yang sama seperti pada pengirim (transmitter). Gambar

2.5 menunjukkan konstruksi demodulator QPSK [4].

∫+ Tt

t

2

∫+ Tt

t

2

X

X

utotal (t)

ganjilaaaa ,.....,, 420

Vm cos (2πft + 4π

)

Vm sin (2πft + 4π

)

ganjil

_

4

_

2,

_

0

_a,.......aa,a

genap

_

5

_

3,

_

1

_a,.......aa,a

genapaaaa ,.....,, 531

Kanal I

Kanal Q

Gambar 2.4 Konstruksi Demodulator QPSK [4]

Pada kanal I, sinyal yang diterima dikalikan dengan gelombang cosinus

dan pada kanal Q, sinyal yang diterima dikalikan dengan gelombang sinus seperti

pada modulasi QPSK. Kemudian sinyal tersebut diintegralkan sehingga diperoleh

besar tegangan maksimum. Besar tegangan maksimum ini setelah proses sampling

Page 37: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

21

akan menjadi input dari matched filter. Hasil modulasi QPSK yang diterima dari

pengirim pada persamaan (2-13) akan didemodulasi dan dinyatakan dengan

dttyTt

t

)4

tf(2sin Vm) 4

+t f(2sin Vm + ) 4

+t f(2 cos Vm)(2 ππππππ +

⎭⎬⎫

⎩⎨⎧= ∫

+

(2-30)

karena

(2-31) =)(ty 0)2(sin)2cos(2

=∫+

dtftftTt

t

ππ

maka

=)(ty ∫+ Tt

tm dtV

222 )

4 +ft (2 sin ππ (2-32)

Asumsi bahwa t = 0 dan t + 2T =1, maka hasil demodulasi QPSK adalah

=)(ty ∫1

0

22 )dt 4

+ft (2 sin ππmV

2

)(2

mVty = (2-33)

Karena nilai Vm = 2 volt, maka hasil = 1 untuk bit 1 dan = -1 untuk

bit 0. Dari perhitungan ini terlihat bahwa output demodulasi adalah logika 0 (-1)

atau logika 1 (+1). Sinyal yang diterima pada penerima merupakan sinyal

superposisi dari beberapa pengguna. Proses demodulasi QPSK dapat ditunjukkan

melalui Contoh 2.3.

)(ty )(ty

Contoh 2.3

Sinyal superposisi dari ketiga penggguna pada Contoh 2.1 adalah

sebagai berikut

untuk t = 0 < t <T

u(t) = - 2 cos (2πft + 4π ) - 2 sin (2πft +

4π )

Page 38: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

22

untuk t = T < t <2T

u(t) = - 2 cos (2πft + 4π ) + 3 2 sin (2πft +

4π )

untuk t = 2T < t < 3T

u(t) = - 2 cos (2πft + 4π ) - 2 sin (2πft +

4π )

untuk t = 3T < t < 4T

u(t) = 3 2 cos (2πft + 4π ) - 2 sin (2πft +

4π )

Sinyal superposisi tersebut kemudian dibedakan menurut kanalnya.

sinyal superposisi pada kanal I sinyal superposisi pada kanal Q

I1(t) = - 2 cos (2πft + 4π ) Q1(t) = - 2 sin (2πft +

4π )

I2 (t) = - 2 cos (2πft + 4π ) Q2 (t) = 3 2 sin (2πft +

4π )

I3(t) = - 2 cos (2πft + 4π ) Q3 (t) = - 2 sin (2πft +

4π )

I4(t) = 3 2 cos (2πft + 4π ) Q4 (t) = - 2 sin (2πft +

4π )

Hasil demodulasi QPSK ketiga pengguna tersebut adalah

Demod I (1) = dtftft )4

2(cos2*)4

2cos(21

0

ππππ ++−∫

Demod I (1) = -1

Demod Q (1) = dtftft )4

2(sin2*)4

2sin(21

0

ππππ ++−∫

Demod Q (1) = -1

Demod I (2) = dtftft )4

2(cos2*)4

2cos(21

0

ππππ ++−∫

Demod I (2) = 3

Demod Q (2) = dtftft )4

2(sin2*)4

2sin(231

0

ππππ ++∫

Demod Q (2) = -1

Demod I (3) = dtftft )4

2(cos2*)4

2cos(21

0

ππππ ++−∫

Demod I (3) = -1

Page 39: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

23

Demod Q (3) = dtftft )2(sin2*)2sin(21 ππππ ++−

440∫

Demod Q (3) = -1

Demod I (4) = dtftft )4

2(cos2*)4

2cos(231

0

ππππ ++∫

Demod I (4) = 3

Demod Q (4) = dtftft )4

2(sin2*)4

2sin(21

0

ππππ ++−∫

Demod Q (4) = -1

Deretan hasil demodulasi QPSK adalah sebagai berikut:

Demod Total = [-1 -1 3 -1 -1 3 -1]

2.6 Matched Filter (MF)

Matched filter merupakan filter linear yang digunakan untuk

mengoptimalkan perbandingan daya sinyal dengan daya noise (SNR). Matched

filter memaksimalkan probabilitas kemiripan pada bit-bit yang diterima untuk

transmisi digital melalui kanal AWGN ideal. Matched filter dapat

diimplementasikan jika bentuk pulsa dan waktu pengiriman sinyal diketahui oleh

penerima [5].

ytotal(t)

Matched Filter User 1

Matched Filter User 2

Matched Filter User K

y2[i]

y1[i]

yk [i]

Sync k

Sync 1

Sync 2

Gambar 2.5 Matched filter [5]

Page 40: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

24

Didalam matched filter, sinyal yang masuk ke dalam setiap filter

kemudian dikalikan dengan spreading code. Persamaan sinyal gabungan yang

diterima oleh matched filter seperti yang ditunjukkan pada Gambar 2.5 adalah :

∑ (2-34) += )()( xnsbAt kkktotaly

dengan Ak adalah amplitudo pengguna ke-k, bk bit input pengguna ke-k, adalah

spreading code, n additive white gaussian noise, dan x urutan pengguna.

ks

Jika sinyal gabungan seperti pada persamaan (2-34) dikorelasikan dengan

spreading code pada filter yang berkesesuaian, maka diperoleh korelasi silang

(cross-correlations) yang telah dinormalisasi dari spreading codes dapat

dinyatakan sebagai

(2-35) ∑=

=N

x

kjjk xx ss1

)()(ρ

dengan cross-correlations berbentuk matriks :

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

MMM

M

M

R

ρρ

ρρ

ρρ

ρρ

.............

.

...

1

2

1

22

12

21

11

(2-36)

Adapun kriteria dari matriks yang digunakan adalah :

• Matriks harus merupakan matriks yang simetris

• Merupakan matriks Toeplizt dengan elemen-elemen pada diagonal = 1

(normalisasi)

(2-37) ∑=

=N

x

jtotalj xx syy1

)()(

Page 41: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

25

)()()()(11 1

xxxxkk j

N

x

N

kk

N

xjj snssbAy ∑∑ ∑

== =

+⎟⎠

⎞⎜⎝

⎛=

(2-38) ∑=

+=N

k

jkkkj jnbAy1

ρ

Persamaan (2-38) dapat ditulis menjadi lebih sederhana

= (2-39) jy jj nr Ab +

dengan

1. rj = [ ],,.......3,2,1 jmjjj ρρρρ T merupakan cross-correlations dari pengguna

ke-j dan dengan pengguna lainnya

2. A = diag (A1, A2, A3,……. AM) merupakan amplitudo dari sinyal yang

diterima.

3. bk = [ b1, b2, b3, b4,……….]T merupakan vektor bit yang diterima.

Bila persamaan output dari setiap pengguna disusun menjadi satu, maka akan

didapat :

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

My

y

.

.

.1

=

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

MMM

M

M

ρρρ

ρρρρρρ

11

22221

11211

............

..

..

+ (2-40)

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

MA

AA

..00.............000.0

2

1

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

Mb

bb

.

.2

1

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

Mn

nn

.

.2

1

Persamaan (2-39) dapat disajikan ke dalam notasi matriks yang lebih sederhana

dan dinyatakan dengan

nRAby += (2-41)

Estimasi vektor bit yang dikirim dapat diketahui dari sinyal output dari matched

filter seperti pada persamaan (2-40).

Page 42: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

26

2.7 Detektor MMSE (Minimum Mean Square Error)

Output dari matched filter kemudian akan diproses oleh detektor MMSE.

Detektor MMSE berfungsi untuk menentukan nilai estimasi output dari matched

filter.

^1b

Gambar 2.6 menunjukkan konfigurasi detektor MMSE. Output dari matched filter

masing-masing pengguna, setelah proses sinkronisasi, kemudian dimasukkan ke

dalam detektor MMSE. Hasil yang diperoleh dari detektor ini berupa nilai bit

dalam bentuk bipolar (1 atau -1).

Minimum mean square error (MMSE) adalah suatu algoritma yang

digunakan untuk memperkirakan (estimasi) suatu model parameter. Dalam

algoritma MMSE, error diperoleh dengan cara meminimalkan selisih kuadrat

rata-rata antara input dengan output. Jika w merupakan input, adalah output

dan z adalah fungsi observasi, maka persamaan algoritma MMSE dapat

dinyatakan dengan [6]

( )∧

zw

(2-42) ( )⎥⎥⎦

⎢⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ −

∧ 2

zwwE

y(t)

Gambar 2.6 Detektor MMSE [6]

Sync k

Matched Filter pengguna 1

Matched Filter pengguna 2 ( ) 122 −−+= ARM δ

Matched Filter pengguna ke-k

^2b

^kb

Sync 2

Sync 1

Page 43: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

27

Dari persamaan (2-41), y = RAb+n merupakan output dari matched filter

pengguna ke-k. Hasil output dari matched filter bergantung pada bit-bit yang

dikirim, cross-correlations dan noise. Untuk menentukan nilai estimasi output

dari matched filter, maka diperlukan suatu metode pengambilan keputusan.

Metode pengambilan keputusan ini bertujuan untuk menentukan nilai estimasi

yang diterima tersebut bernilai 1 atau -1.

Proses pengambilan keputusan pada algoritma MMSE diimplementasikan

dalam dua tahap, yaitu:

1. Menyatakan = My sebagai estimasi linear output dari matched filter.

merupakan vektor bit yang diterima dan y adalah output dari matched filter. M

adalah transformasi linear yang diperoleh dengan meminimalkan jarak antara

vektor bit yang diterima dengan vektor bit b dikirim. Hasil tranformasi

linear dinyatakan dengan persamaan (2-43).

^b

^b

^b

(2-43) ⎥⎥⎦

⎢⎢⎣

⎡⎟⎠⎞

⎜⎝⎛ −⎟

⎠⎞

⎜⎝⎛ −

∧∧

∧bbbbE

T

bmin

yang ekuivalen dengan

[ ]2min MybEM

− (2-44)

dengan

{ }Txxtracex =2 (2-45)

Dapat dilihat bahwa

[ ] [ ]{ }122 minmin −−+Ι=− ARAtraceMybEMM

δ (2-46)

Page 44: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

28

sehingga output dari detektor MMSE dinyatakan dengan

[ ]( )k

yARA

bk

k ⎥⎦

⎤⎢⎣

⎡+=

−−∧ 1221sgn δ (2-47)

Persamaan (2-47) dapat disederhanakan menjadi

[ ]( )(( kyARbk122sgn −−

+= δ ) ) (2-48)

dan

⎪⎭

⎪⎬⎫

⎪⎩

⎪⎨⎧

=−2

2

21

222 ,......,

kAAdiagA δδδ (2-50)

2. Untuk menentukan nilai estimasi apakah bernilai -1 atau 1, diperoleh

dengan cara membandingkan hasil estimasi tersebut terhadap level 0. Hasil

estimasi bit akhir dinyatakan dengan signum function

(2-51)

^b

)(∧

bsgn

⎪⎪

⎪⎪

>

=

<−

=∧

1untuk,1

0untuk,0

0untuk,1

)(^

^

^

b

b

b

bsgn

Dari persamaan (2-51), maka nilai hasil estimasi dapat diperoleh. Jika hasil

estimasi < 0, maka bit bernilai -1 dan sebaliknya. Sedangkan untuk = 0,

bit bernilai 0.

^b

^b

Nilai hasil estimasi kemudian akan dikonversi ke dalam bentuk biner. Bit bernilai

1 akan tetap 1 sedangkan bit bernilai -1 akan diterjemahkan sebagai 0.

Page 45: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

BAB III

PERANCANGAN PROGRAM SIMULASI

Program simulasi ini dibuat menggunakan Graphical User Interface (GUI) yang

disediakan oleh MATLAB®.

3.1 Algoritma Perancangan Program

Algoritma perancangan program simulasi aplikasi MMSE pada multiuser

detection CDMA dapat dilihat pada Gambar 3.1.

Pembentukan hasil penyebaran (spreading)

Penjumlahan semua sinyal pengguna dengan AWGN

Modulasi QPSK masing-masing pengguna

Pemeriksaan bit-bit input

Demodulasi QPSK

masing-masing pengguna

Proses pada detektor MMSE untuk mendapatkan estimasi

bit–bit yang terkirim

Proses despreading pada matched filter

Gambar 3.1. Algoritma perancangan program simulasi aplikasi MMSE pada multiuser detection CDMA.

29

Page 46: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

30

Input dari pengguna terlebih dahulu diperiksa. Apabila input program tidak

sesuai dengan yang diinginkan, maka pengguna diminta memasukkan input lagi.

Input dari pengguna adalah sinyal biner yang mempunyai nilai 0 atau 1 kemudian

akan disebarkan (spreading) oleh spreading code sesuai dengan pilihan masing-

masing pengguna. Hasil penyebaran masing-masing pengguna akan dimodulasi

QPSK (Quadrature Phase Shift Keying) dan dijumlahkan dengan AWGN (Additive

White Gaussian Noise).

Pada penerima, sinyal hasil modulasi QPSK dari tiap-tiap pengguna yang

terkena AWGN tersebut didemodulasi QPSK untuk mendapatkan besar tegangan

maksimum sebagai input pada matched filter. Proses pemisahan sinyal pada matched

filter adalah dengan cara mengalikan kembali (despreading) sinyal hasil demodulasi

QPSK dengan spreading code masing-masing pengguna. Output dari matched filter

kemudian diproses oleh detektor MMSE untuk memperoleh estimasi bit-bit masing-

masing pengguna. Hasil estimasi output dari detektor MMSE digunakan untuk

menentukan bit yang terkirim.

3.2 Proses Pemeriksaan Bit Input Pengguna

Input dari beberapa pengguna adalah bit-bit berupa kode biner (bk) dan

sampling frequency (fs). Jumlah pengguna dalam rancangan program simulasi ini

sebanyak tiga. Masing-masing pengguna harus memasukkan kode biner sebanyak dua

bit. Proses pemeriksaan input ditunjukkan dengan diagram alir pada Gambar 3.2.

Page 47: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

31

Mulai

Masukkan bk, fs

bk =0 atau bk =1 ?

Konversi bk menjadi bipolar

Plot grafik sinyal bk

Selesai

ya

Tidak

Gambar 3.2. Diagram alir proses pemeriksaan bit-bit input.

Syarat yang harus dipenuhi untuk bit input bk masing-masing pengguna adalah

bk = 0 (3-1)

atau

bk = 1 (3-2)

Selain bit input, pengguna juga harus memasukkan nilai sampling frequency

pada program. Bentuk sinyal input yang disebarkan sangat bergantung pada nilai

sampling frequency. Semakin besar nilai sampling frequency, bentuk sinyal input

yang akan disebarkan juga semakin baik. Setelah semua syarat diatas terpenuhi,

sinyal input kemudian dikonversi menjadi sinyal berbentuk bipolar. Hasil konversi

tersebut kemudian ditampilkan dalam bentuk grafik.

Page 48: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

32

3.3 Perancangan Sub Program Spreading

Diagram alir perancangan sub program spreading ditunjukkan pada Gambar

3.3.

Mulai

Tampilkan nilai hsl_xor_total

hasil xor <1 ?

Ambil matriks sk dan bk

Selesai

ya

Tidak

Pembentukan matriks sk dan bk

Operasi xor antara sk dengan bk

Masukkan bk, sk, dan fs

Bit 0 hasil xor di ubah menjadi -1

Bit 1 hasil xor tetap 1

hasil pengubahan disimpan sebagai

hsl_xor_total

Plot nilai grafik hsl_xor_total

Gambar 3.3. Diagram alir sub program penyebaran (spreading).

Page 49: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

33

Sinyal input ke matched filter adalah sinyal superposisi dari beberapa pengguna

yang didemodulasi QPSK. Untuk membentuk sinyal superposisi tersebut, diperlukan

beberapa input yaitu:

1. Spreading codes

Spreading codes sk yang digunakan pada simulasi tugas akhir ini dibentuk dari

matriks Hadamard dengan ordo 4x 4 (H4). Spreading code dari tiap-tiap

pengguna akan menentukan bentuk bit yang akan disebarkan.

2. Bit input bk dari tiap pengguna.

Jumlah pengguna ditentukan sebanyak tiga dengan jumlah bit masing-masing

pengguna adalah sebanyak dua bit. Bit input dari setiap pengguna yang

dimasukkan, akan diestimasi oleh detektor MMSE sebagai hasil akhir output.

Untuk mendapatkan hasil penyebaran, dilakukan operasi logika XOR antara bit

input dengan spreading code. Bit input kemudian akan disebar sesuai dengan

spreading code yang dipilih oleh masing-masing pengguna. Hasil penyebaran

kemudian akan ditampilkan sebagai hsl_xor_total.

3.4 Perancangan Sub Program Modulasi QPSK

Input Sub program modulasi QPSK adalah hasil penyebaran masing-masing

pengguna (hsl_xor_total), amplitudo sinyal (A), frekuensi carrier (fc), kanal I dan

Page 50: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

34

kanal Q. Diagram alir perancangan sub program modulasi QPSK ditunjukkan pada

Gambar 3.4 .

Ambil hsl_xor_total, fc

Mulai

Selesai

A x kanal I

Urutan bit ganjil

?

Inisialisasi hsl_xor_total, kanal I, kanal Q, A, fc

A x kanal Q

ya

Tidak

Modulasi QPSK Total

Tampilkan hasil modulasi QPSK total yang terganggu AWGN

Tampilkan grafik hasil modulasi total yang terganggu AWGN

Tampilkan modulasi dan grafik kanal I

Tampilkan modulasi dan grafik kanal Q

Modulasi QPSK Total terganggu AWGN

Gambar 3.4. Diagram alir sub program modulasi QPSK.

Page 51: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

35

Proses penyebaran akan dibedakan berdasarkan urutannya. Bit dengan urutan

ganjil akan dimodulasi dengan sinyal berbentuk cosinus dan masuk ke kanal I dan

untuk bit genap akan dimodulasi dengan sinyal berbentuk sinus dan masuk pada

kanal Q. Hasil modulasi QPSK pengguna pada masing-masing kanal kemudian akan

dijumlahkan dan ditambah dengan AWGN. Hasil modulasi QPSK masing-masing

pengguna dan hasil modulasi QPSK total kemudian akan ditampilkan bersama

dengan grafik.

3.5 Perancangan Sub Program Demodulasi QPSK

Diagram alir sub program demodulasi QPSK ditunjukkan pada Gambar 3.5.

Mulai

Masukkan hasil modulasi total yang terganggu AWGN dan fc

Demodulasi QPSK

Sinyal superposisi yang terganggu AWGN

Selesai

Tampilkan nilai hasil demodulasi QPSK

Tampilkan grafik hasil demodulasi QPSK

Gambar 3.5. Diagram demodulasi QPSK.

Page 52: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

36

Input sub program ini adalah sinyal hasil modulasi QPSK yang terkena AWGN dan

frekuensi pembawa (fc). Pada demodulasi QPSK, sinyal tersebut dikalikan dengan

frekuensi pembawa (fc). Hasil yang ditampilkan oleh sub program ini terdiri dari nilai

demodulasi QPSK dan grafik.

3.6 Perancangan Matched filter (MF)

Gambar 3.6 menunjukkan diagram alir program untuk matched filter.

Mulai

Selesai

Tampilkan hasil despreading

Proses pengalian sinyal demodulasi dengan setiap spreading codes

Ubah spreading code menjadi bentuk bipolar

Masukkan hasil demodulasi QPSK dan spreading code

Tampilkan grafik sinyal hasil despreading

Gambar 3.6. Diagram alir Matched Filter.

Page 53: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

37

Pada matched filter, sinyal demodulasi QPSK kemudian dikalikan (despreading)

dengan spreading code masing-masing pengguna. Hasil despreading ditampilkan

dalam bentuk tampilan nilai dan grafiik.

3.7 Proses Estimasi pada Detektor MMSE

Gambar 3.7 menunjukkan diagram alir detektor MMSE.

Tampilkan hasil proses estimasi

Selesai

Mulai

Proses estimasi untuk mendapatkan nilai bit yang

terkirim.

Bit diterjemahkan sebagai 1

Baca output Matched Filter

Tidak

Ya

Estimasi bit > 0 ?

Konversi bit output dari bentuk polar menjadi sandi biner

Tampilkan hasil konversi

Bit diterjemahkan sebagai -1

Gambar 3.7. Diagram alir detektor MMSE.

Page 54: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

38

Pada detektor MMSE, sinyal output dari matched filter akan diproses untuk

memperoleh nilai estimasi bit-bit yang terkirim. Jika nilai estimasi lebih besar dari

nol, maka diterjemahkan sebagai bit 1. Sedangkan jika nilai estimasi lebih kecil dari

nol , maka akan diterjemahkan sebagai bit -1. Hasil terjemahan bit tersebut kemudian

akan dikonversi ke dalam bentuk sandi biner.

3.8 Layout Program Simulasi

Program ini menggunakan sistem operasi Microsoft Windows XP dengan

MATLAB® sebagai bahasa pemrograman. Layout program simulasi terdiri dari dua

buah tampilan, yaitu tampilan awal program dan program utama.

3.8.1 Tampilan Awal Program

Gambar 3.8 merupakan rancangan tampilan awal program simulasi.

Push button Static text Axes

Gambar 3.8. Perancangan tampilan awal program.

Page 55: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

39

Gambar 3.8 memperlihatkan sebuah form, atau dalam MATLAB biasa disebut

dengan figure. Form tersebut terdiri dari beberapa komponen, yaitu:

1. Static text, digunakan untuk menghasilkan teks berisi judul tugas akhir, nama

penulis dan universitas yang bersifat statis (tetap).

2. Axes, digunakan untuk menampilkan logo universitas dan logo MATLAB.

3. Pushbutton, terdiri dari tombol Start dan tombol Exit. Jika tombol Start

ditekan, maka program akan menampilkan rancangan tampilan program

utama seperti pada Gambar 3.9. Sedangkan jika tombol Exit ditekan, maka

program akan keluar dari seluruh operasi sistem.

3.8.2 Layout Program Utama

Layout program utama merupakan rancangan secara visual untuk

implementasi program simulasi aplikasi MMSE pada multiuser detection CDMA.

Layout pada Gambar 3.8 menggunakan beberapa komponen visual yang disediakan

oleh program aplikasi MATLAB®. Layout program utama terdiri dari dua bagian,

yaitu bagian pengirim (transmitter) dan bagian penerima (receiver) seperti yang

ditunjukkan pada Gambar 3.9 dan Gambar 3.10. Gambar 3.9 adalah tampilan

program bagian pengirim (transmitter). Sedangkan Gambar 3.10 merupakan tampilan

program bagian penerima (receiver). Apabila tombol Next pada Gambar 3.9 ditekan,

maka program akan menampilkan rancangan tampilan bagian penerima seperti pada

Gambar 3.10.

Page 56: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

40

Static text uipanel Edit text

Radio button

Pop-up Menu figure 1 Push button Axes Gambar 3.9. Layout program bagian pengirm (transmitter).

List box figure 2

Gambar 3.10. Layout program bagian penerima (receiver).

Page 57: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

41

Komponen-komponen visual pada layout program utama tersebut adalah:

1. Figure

Figure adalah objek yang digunakan sebagai tempat untuk merancang

program simulasi dan dapat diisi dengan komponen. Figure disebut sebagai

layout area.

2. Edit text

Edit text adalah area yang dapat digunakan sebagai tempat untuk

menuliskan satu baris text input. Pada program simulasi ini, edit text

digunakan sebagai tempat memasukkan nilai bit input, frekuensi sampling

dan frekuensi carrier. Selain sebagai input, edit text digunakan sebagai output

nilai waktu sampling, perioda sinyal, bitrate, spreading codes, hasil proses

spreading, hasil modulasi QPSK, hasil modulasi QPSK total, hasil

demodulasi QPSK total, hasil despreading sinyal, estimasi output, dan hasil

konversi bit.

3. Static text

Static text adalah area yang digunakan sebagai tempat untuk

menampilkan text informasi. Text informasi pada static text tidak dapat

diubah oleh pengguna. Pada program simulasi ini, static text digunakan untuk

menampilkan keterangan input dan tipe spreading codes (tipe 1 dan tipe 2).

4. Radio button

Radio button adalah tombol yang digunakan untuk memilih satu pilihan

Page 58: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

42

banyak pilihan pada suatu waktu. Pada program simulasi ini radio button

digunakan untuk memilih spreading code yang akan digunakan.

5. Pop-up menu

Pop-up menu digunakan untuk menampilkan daftar pilihan yang dapat

dipilih oleh pengguna. Pada program simulasi ini, pop-up menu digunakan

untuk memilih besarnya (AWGN) sebagai salah satu input modulasi QPSK.

6. List box

List box digunakan untuk menampilkan daftar informasi. Pada program

simulasi ini list box digunakan untuk menampilkan besarnya BER (bit error

rate) dan MMSE.

7. Axes

Axes digunakan untuk menampilkan grafik atau kurva. Pada program

simulasi ini axes digunakan sebagai tempat untuk menampilkan grafik sinyal

data informasi, hasil spreading, hasil modulasi QPSK, hasil modulasi QPSK

total, hasil demodulasi QPSK total, dan hasil despreading.

8. Push button

Push button merupakan tombol yang digunakan untuk mengeksekusi

sebuah perintah. Pada Gambar 3.9 dan Gambar 3.10 terdapat beberapa

tombol, yaitu

a. Tombol plot data yang digunakan untuk menjalankan program dengan

menampilkan bentuk sinyal bit input yang diberikan.

Page 59: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

43

b. Tombol Spread yang digunakan untuk menjalankan program spreading.

Tombol ini akan menampilkan dua tampilan, yaitu hasil spreading dan

grafik sinyal spreading.

c. Tombol Modulasi yang digunakan untuk menjalankan program

modulasi. Tombol ini akan menampilkan dua tampilan, yaitu hasil

modulasi dan grafik modulasi QPSK.

d. Tombol Mod Total yang digunakan untuk menjalankan program

modulasi QPSK total sekaligus menampilkan hasil dan grafik sinyal.

e. Tombol Plot Kanal I dan Plot Kanal Q yang digunakan untuk

menampilkan grafik sinyal pada kanal I dan kanan Q

f. Tombol Next yang digunakan untuk pindah ke figure 2.

g. Tombol Demod Total yang digunakan untuk menjalankan program

demodulasi QPSK total sekaligus menampilkan hasil dan grafik sinyal.

h. Tombol Despread yang digunakan untuk menjalankan program

despreading, menampilkan hasil dan grafik sinyal.

i. Tombol Konversi Bit yang digunakan untuk menjalankan program

detektor MMSE dan menampilkan hasilnya.

j. Tombol Back yang digunakan untuk kembali ke figure 1

k. Tombol Close yang digunakan untuk keluar dari program simulasi.

Page 60: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

BAB IV

HASIL DAN PEMBAHASAN

Bab ini menjelaskan hasil yang diperoleh dari progam simulasi aplikasi MMSE

pada multiuser detection CDMA yang telah dibuat menggunakan software aplikasi

Matlab 7. Perbandingan antara perhitungan secara teori dan simulasi juga akan

dibahas.

4.1. Tampilan Awal Program Simulasi

Saat pertama kali menjalankan program simulasi, pengguna akan melihat

tampilan halaman pembuka program. Halaman pembuka berisi judul, logo dan nama

pembuat program. Tampilan halaman pembuka dapat dilihat pada Gambar 4.1.

Gambar 4.1 Tampilan awal program simulasi

Pada tampilan awal program terdapat dua tombol yang dapat digunakan oleh

pengguna, yaitu tombol Start dan tombol Exit. Tombol Start digunakan untuk masuk

44

Page 61: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

45

ke program utama, sedangkan tombol Exit digunakan untuk keluar dari program

simulasi.

4.2. Tampilan Program Utama

Program utama simulasi terdiri dari dua tampilan, yaitu tampilan program

bagian pengirim (transmitter) dan bagian penerima (receiver). Tampilan program

untuk bagian pengirim, ditunjukkan pada Gambar 4.2, terdiri dari empat sub

program, yaitu pemeriksaan bit-bit input, proses penyebaran (spreading), modulasi

QPSK dan superposisi sinyal QPSK yang terganggu AWGN. Data hasil masing-

masing proses akan ditampilkan dengan grafik.

Gambar 4.2 Tampilan program bagian Transmitter.

Sedangkan tampilan program bagian penerima (receiver), seperti yang

ditunjukkan pada Gambar 4.3, juga terdiri dari beberapa sub program yaitu

demodulasi sinyal superposisi modulasi QPSK, despreading pada matched filter,

Page 62: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

46

detektor MMSE dan tampilan grafik hasil masing-masing proses. Tampilan program

ini akan muncul jika tombol Next pada program simulasi ditekan.

Gambar 4.3 Tampilan program bagian Receiver.

(a) (b)

Gambar 4.4. Tampilan menu Help. (a) Tampilan submenu Help_MMSE. (b) Tampilan submenu Help_ProgMMSE.

Page 63: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

47

Pada bagian atas program utama terdapat menu program yang berisi menu File

dan menu Help. Menu File berisi Save yang berfungsi untuk menyimpan data seluruh

hasil simulasi. Menu Help terbagi menjadi dua, yaitu submenu Help_MMSE yang

berisi dasar teori dari program simulasi ini. Sedangkan submenu Help_ProgMMSE

yang berfungsi untuk menuntun pengguna bagaimana cara memakai program ini.

Tampilan sub menu Help_MMSE dan Help_ProgMMSE dapat dilihat pada Gambar

4.4.

4.3. Tampilan Input Program

Tahal awal program simulasi ini adalah pemberian input pada sistem yang akan

diproses. Input program simulasi terdiri bit-bit dalam bentuk kode biner yaitu berupa

“0” atau “1” untuk ketiga pengguna, spreading codes, perioda sampling, perioda

sinyal, kecepatan data (bit rate).

Gambar 4.5 menunjukkan tampilan input program simulasi. Input bit-bit biner,

spreading codes dan frekuensi sampling, dimasukkan secara langsung pada tampilan

program, sedangkan perioda sampling, perioda sinyal dan bit rate akan ditampilkan

secara otomatis yang merupakan hasil matematis dari input yang diberikan pada

Gambar 4.5. Tampilan input program.

Page 64: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

48

program. Jika tombol plot data ditekan maka program akan menampilkan tampilan

seperti pada Gambar 4.6.

Gambar 4.6 menunjukkan tampilan grafik sinyal input yang diberikan oleh

pengguna seperti ditunjukkan pada Tabel 4.1.

Tabel 4.1. Input program simulasi.

Gambar 4.6. Tampilan grafik sinyal input bit-bit pengguna.

Bit input Pengguna 1 1 0

Bit input Pengguna 2 0 1

Bit input Pengguna 3 1 1

sampling frequency (fs) 5000 Hz

sampling perioda (1/fs) 0.0002 second

signal perioda (T) 0.5 second

Jumlah bit tiap detik (bitrate) 2 bps

4.4. Hubungan antara Proses Spreading dengan Bit-bit Input

Bit-bit input tiap-tiap pengguna akan disebarkan sesuai dengan spreading code

yang telah dipilih. Hasil spreading antara bit–bit input dengan spreading code

dilakukan melalui operasi logika XOR. Pada program simulasi ini spreading codes

Page 65: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

49

terdiri dari dua tipe, yaitu tipe 1 dan tipe 2. Bentuk bit yang akan disebarkan sangat

bergantung pada jenis spreading code yang dipilih masing-masing pengguna.

Gambar 4.7 Tampilan input proses spreading.

Gambar 4.7 menunjukkan tampilan input proses spreading. Spreading codes

yang dipilih pengguna pada program simulasi ini adalah spreading codes tipe 1.

Input sub program spreading secara lengkap ditunjukkan pada Tabel 4.2.

Tabel 4.2 Input sub program spreading Spreading code pengguna 1 1 0 1 0

Spreading code pengguna 2 1 1 0 0

Spreading code pengguna 3 1 0 0 1

sampling frequency (fs) 5000 Hz

sampling perioda (1/fs) 0.0002 second

signal perioda (T) 0.125 second

Jumlah bit tiap detik (bitrate) 8 bps

Page 66: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

50

Setelah semua input dimasukkan, langkah selanjutnya adalah memulai proses

spreading masing-masing pengguna. Jika tombol Spread ditekan, maka program

akan memberikan tiga tampilan sekaligus seperti yang ditunjukkan pada Gambar 4.8.

(a)

(b)

(c)

Gambar 4.8. Tampilan sub program spreading. (a) Tampilan data spreading ketiga pengguna. (b) Grafik sinyal spreading (c) Grafik sinyal spreading total

Gambar 4.8a menunjukkan tampilan data hasil spreading masing-masing

pengguna yang merupakan hasil operasi logika XOR yang kemudian dikonversi ke

Page 67: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

51

dalam bentuk bipolar dengan bit “0” dikonversi menjadi “-1” dan bit “1” akan tetap

“1”. Data hasil spreading masing-masing pengguna tersebut kemudian ditampilkan

dalam bentuk grafik sinyal seperti yang ditunjukkan pada Gambar 4.8b. Sedangkan

Gambar 4.8c menunjukkan hasil penjumlahan proses spreading dari ketiga

pengguna.

Berdasarkan Gambar 4.6, Gambar 4.8b, Tabel 4.1 dan Tabel 4.2, terlihat bahwa

perubahan bit-bit input pengguna terjadi sebagai hasil spreading yang telah

dilakukan. Perubahan-perubahan tersebut dapat dijelaskan seperti yang ditunjukkan

pada Gambar 4.9 dengan penjelasan sebagai berikut:

• Bit-bit input yang semula berjumlah 2 bit meningkat menjadi 8 bit. Hal ini

berarti bahwa terjadi peningkatan kecepatan bit (bit rate) input pengguna dari

2 bps (bit per second) menjadi 8 bps.

• Bentuk sinyal input pengguna sebagai hasil proses spreading mengalami

perubahan. Perubahan tersebut dapat dilihat dengan membandingkan bentuk

grafik sinyal input pengguna pada Gambar 4.6 dan grafik sinyal hasil spreading

yang telah diubah ke dalam bentuk bipolar (-1 dan +1) pada Gambar 4.8b.

• Perioda (Tb) sinyal bit input pengguna mengalami perubahan dari Tb = 0.5 detik

menjadi Tb = 0.125 detik. Hal tersebut disebabkan karena peningkatan jumlah

bit pengguna akibat proses spreading.

• Bandwidth (Bw) sinyal input juga semakin lebar setelah proses spreading yang

semula 1 Hz menjadi 4 Hz. Bandwidth dapat dihitung melalui persamaan

bTBw

21

= .

Page 68: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

52

-2

1

2

-1 0.125 0.25 0.375 0.50 0.625 0.75 0.875 1

1 1 1 1

-1 -1 -1 -1

-2

1

2

-1

A (Volt)

t (detik)0.125 0.25 0.375 0.50 0.625 0.75 0.875 1

1 1 1 1

-1 -1 -1 -1

Deretan bit input pengguna 1

Deretan bit spreading pengguna 1

(a)

-2

1

2

-1 0.125 0.25 0.375 0.50 0.625 0.75 0.875 1

-2

1

2

-1 0.125 0.25 0.375 0.50 0.625 0.75 0.875 1

1 1 1 1

1 1 1 1

-1 -1 -1 -1

-1 -1 -1 -1

Deretan bit input pengguna 2

Deretan bit spreading pengguna 2

(b)

-2

1

2

-1 0.125 0.375 0.50 0.625 0.75 0.875 10.25

-2

1

2

-1 0.125 0.375 0.50 0.625 0.75 0.875 10.25

1 1 1 1 1 1 1 1

1 1 1 1

-1 -1 -1 -1

Deretan bit input pengguna 3

(c)

A (Volt)

t (detik)

A (Volt)

A (Volt)

t (detik)

A (Volt)

t (detik)

A (Volt)

t

(detik)

Gambar 4.9. Grafik sinyal hasil proses spreading .(a) Grafik sinyal Pengguna 1 (b) Grafik sinyal Pengguna 2. (c) Grafik sinyal Pengguna 3.

Page 69: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

53

Berdasarkan hasil yang diperoleh dari sub program spreading, dapat

disimpulkan bahwa hasil yang diperoleh sesuai dengan teori dan perancangan yang

telah dibuat. Dengan demikian dapat dikatakan bahwa hasil tersebut adalah hasil

yang diharapkan oleh penulis.

4.5. Hasil Modulasi QPSK

Input sub program simulasi untuk modulasi QPSK ditunjukkan pada Tabel 4.3.

Input hasil spreading ketiga pengguna diambil dari sub program spreading pada

Gambar 4.8a, sedangkan input frekuensi pembawa (carrier frequency), amplitudo

sinyal, frekuensi sampling, modulasi kanal I dan Q diberikan secara otomatis di

dalam program.

Tabel 4.3. Input modulasi QPSK masing-masing pengguna Hasil spreading pengguna 1 [ 1 -1 1 -1 -1 1 -1 1]

Hasil spreading pengguna 2 [-1 -1 1 1 1 1 -1 -1]

Hasil spreading pengguna 3 [ 1 -1 -1 1 1 -1 -1 1]

signal amplitude (Vm) 2 volt

carrier frequency (fc) 10 Hz

sampling frequency (fs) 5000 Hz

sampling perioda (1/fs) 0.0002 second

signal perioda (T) 0.125 second

Kanal I ⎟⎠⎞

⎜⎝⎛ +

42cos ππ cf

Kanal Q ⎟⎠⎞

⎜⎝⎛ +

42sin ππ cf

Jumlah bit tiap detik (bit rate) 8 bps

Page 70: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

54

Nilai frekuensi carrier dan frekuensi sampling pada Tabel 4.3 dimasukkan secara

langsung pada program. Nilai-nilai tersebut merupakan contoh input percobaan yang

diberikan pada program simulasi ini. Semakin besar nilai frekuensi sampling, maka

kualitas sinyal yang dihasilkan akan semakin baik.

Gambar 4.10 menunjukkan contoh tampilan nilai hasil modulasi QPSK masing-

masing pengguna dan Gambar 4.11 menunjukkan tampilan grafik sinyal modulasi

QPSK ketiga pengguna. Tampilan ini akan muncul jika tombol Modulasi pada

program ditekan.

Gambar 4.10 Tampilan nilai hasil modulasi QPSK

Gambar 4.11 Tampilan grafik sinyal modulasi QPSK ketiga pengguna

Hasil proses spreading seperti yang ditunjukkan pada Gambar 4.8a akan

dibedakan berdasarkan urutannya. Bit dengan urutan ganjil akan dikelompokkan ke

dalam kanal I dan dimodulasi oleh sinyal berbentuk cosinus sedangkan bit urutan

Page 71: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

55

genap akan dikelompokkan ke dalam kanal Q dan dimodulasi oleh sinyal berbentuk

sinus. Hasil proses modulasi pada masing-masing kanal dijumlahkan dan

ditampilkan seperti yang ditunjukkan pada Gambar 4.10 dan Gambar 4.11.

Dari Gambar 4.10 dan Gambar 4.11 deretan output modulasi QPSK dalam satu

satuan waktu dapat dijelaskan seperti pada Gambar 4.12 dan Tabel 4.4.

-11

10.1 0.2 0.40.3 0.5 0.6 0.7 0.8 0.90

-1 1 -1 1 1 -1A (Volt)

-1.4142

1.4142

1 -11 -1 -1 1-1 1

0

-1.4142

1.4142

0.2 0.40.3 0.5 0.6 0.7 0.8 0.9 10.1

-1.4142

0.1 0.2 0.40.3 0.5 0.6 0.7 0.8 0.9 10

1 1-1-1-11 1 -11.4142

t (detik)

A (Volt)

t (detik)

A (Volt)

t (detik)

Gambar 4.12 Grafik sinyal modulasi QPSK ketiga pengguna

Garis putus-putus pada Gambar 4.12 menunjukkan bahwa tiap perioda sinyal

(Tb=0,125 detik) mewakili satu bit dengan amplitudo maksimum (Vm) sebesar

2 Volt dan pergeseran fase sinyal sebesar 2250 untuk masing-masing bit. Nilai

modulasi QPSK pada Tabel 4.4 merupakan hasil perkalian antara nilai proses

Page 72: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

56

spreading masing-masing pengguna dengan sinyal berbentuk ⎟⎠⎞

⎜⎝⎛ +

42cos ππfcVm

pada kanal I dan ⎟⎠⎞

⎜⎝⎛ +

42sin ππfcVm pada kanal Q. Besarnya nilai modulasi tersebut

sangat ditentukan oleh fase dan amplitudo sinyal input program. Oleh karena hasil

perkalian antara amplitudo maksimum (Vm) dengan ⎟⎠⎞

⎜⎝⎛ +

42cos ππfc

atau ⎟⎠⎞

⎜⎝⎛ +

42sin ππfc bernilai satu, maka nilai modulasi QPSK adalah sama dengan

nilai proses spreading pada ketiga pengguna tersebut. Hal ini dapat dilihat dengan

membandingkan nilai proses spreading pada Gambar 4.8a dengan nilai hasil

modulasi QPSK pada Gambar 4.11.

Tabel 4.4 Hasil modulasi QPSK ketiga pengguna

Kanal Modulasi QPSK Pengguna

I11 Q11 I12 Q12 I21 Q21 I22 Q22 Pengguna 1 -1 1 -1 1 1 -1 1 -1

Pengguna 2 1 1 -1 -1 -1 -1 1 1

Pengguna 3 -1 1 1 -1 -1 1 1 -1

Perioda sinyal (Tb)

0.125 detik

0.25 detik

0.375 detik

0.5 detik

0.625 detik

0.75 detik

0.875 detik

1 detik

Pergeseran Fase sinyal

2250 2250 2250 2250 2250 2250 2250 2250

Berdasarkan Gambar 4.12 dan Tabel 4.4 dapat disimpulkan bahwa hasil yang

diperoleh pada modulasi QPSK sesuai dengan teori dan perancangan pada Bab II dan

Bab III. Hasil ini juga sesuai dengan yang diharapkan oleh penulis.

Page 73: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

57

4.6. Pengaruh AWGN pada Modulasi QPSK

Input sub program modulasi QPSK total ditunjukkan pada Tabel 4.5. Tabel 4.5

merupakan input sub program modulasi QPSK total yang diambil dari nilai hasil sub

program modulasi QPSK pada Gambar 4.10.

Tabel 4.5. Input sub program modulasi total QPSK.

Jika nilai-nilai seperti pada Tabel 4.5 dimasukkan dan menekan tombol Mod

Total pada program, maka akan ditampilkan dua tampilan sekaligus seperti pada

Gambar 4.13 dan Gambar 4.14.

kanalI11

kanalQ11

kanalI12

kanal Q12

kanal I21

kanal Q21

kanal kanal I22 Q22

Hasil modulasi QPSK pengguna 1

-1.00 1.00 -1.00 1.00 1.00 -1.00 1.00 -1.00

Hasil modulasi QPSK pengguna 2

1.00 1.00 -1.00 -1.00 -1.00 -1.00 1.00 1.00

Hasil modulasi QPSK pengguna 3

-1.00 1.00 1.00 -1.00 -1.00 1.00 1.00 -1.00

Modulasi QPSK total ketiga pengguna

-1.00 3.00 -1.00 -1.00 -1.00 -1.00 3.00 -1.00

Signal to Noise Ratio

(SNR )

0 dB, 8 dB dan 16.6 dB

Gambar 4.13. Tampilan hasil modulasi QPSK total.

Page 74: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

58

Gambar 4.14. Tampilan grafik sinyal superposisi modulasi QPSK.

Sinyal yang dikirimkan melalui kanal transmisi merupakan hasil penjumlahan

(superposisi) ketiga sinyal modulasi yang terganggu AWGN (Additive White

Gaussian Noise). Gambar 4.13 menunjukan tampilan nilai hasil modulasi QPSK dan

Gambar 4.14 menunjukkan tampilan grafik sinyal superposisi modulasi QPSK untuk

ketiga pengguna. Gambar yang ditampilkan program simulasi pada Gambar 4.13

adalah nilai acak (random) yang disebabkan oleh penambahan AWGN pada sistem.

Nilai tersebut akan berubah secara terus-menerus secara fluktuatif jika tombol Mod

Total program ditekan. Nilainya juga tidak akan pernah sama walaupun program

simulasi diulang dari awal.

Penambahan AWGN pada sistem juga mempengaruhi bentuk sinyal yang

dihasilkan. Penambahan AWGN pada sistem akan menyebabkan sinyal mengalami

perubahan atau terdistorsi. Pengaruh ini dapat dilihat dengan membandingkan nilai

modulasi QPSK total ketiga pengguna pada Tabel 4.5 dengan nilai yang ditampilkan

program pada Gambar 4.13. Sebagai contoh nilai modulasi QPSK total kanal I11,

Tabel 4.5 yang semula bernilai -1.00 menjadi -1.749 pada Gambar 4.12.

Page 75: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

59

Tabel 4.6. Hasil modulasi QPSK total. Bit 1 Bit 2 Input

pengguna Kanal

I11 Kanal Q11

Kanal I12

Kanal Q12

Kanal I21

Kanal Q21

Kanal I22

Kanal Q22

SNR

1 0 0 1 1 1

-1.749

3.217

-2.986

1.060

-3.885

-0.502

5.063

-1.065

0 dB

1 0 0 1 1 1

-0.774

2.871

-1.406

-1.094

-0.880

-0.500

4.505

-0.921

8 dB

1 0 0 1 1 1

-0.727

2.975

-0.925

-0.817

-0.985

-1.213

2.658

-0.584

16.6 dB

Besar SNR (Signal to Noise Ratio) sangat mempengaruhi kinerja sistem

komunikasi. Semakin besar nilai SNR, maka sistem komunikasi bekerja secara baik

dan lebih mendekati spesifikasi yang diharapkan. Hal tersebut bisa dilihat dari nilai

persentase galat rata–rata yang diperoleh pada Tabel 4.7. Nilai galat rata–rata pada

SNR = 16.6 dB jauh lebih kecil dibandingkan dengan pada SNR = 0 dan SNR= 8 dB.

Tabel 4.7 Perbandingan nilai modulasi QPSK total dengan SNR = 0 dB, SNR = 8 dB dan SNR = 16.6 dB

Modulasi QPSK total dengan AWGN

Modulasi QPSK total tanpa

AWGN SNR = 0 dB

SNR = 8 dB

SNR = 16.6 dB

Galat dengan SNR = 0 dB

(%)

Galat dengan SNR = 8 dB

(%)

Galat dengan SNR = 16.6 dB

(%)

-1.00

-1.749 -0.774 -0.727

74.9 22.6 27.3

3.00

3.217 2.871 2.975

7.23 4.3 0.8

-1.00

-2.986 -1.406 -0.925

198.6 40.6 7.5

-1.00

1.060 -1.094 -0.817

6 9.4 18.1

-1.00

-3.885 -0.880 -0.985

288.5 12 1.5

-1.00

-0.502 -0.500 -1.213

49.8 50 21.3

3.00 5.063 4.505 2.658

68.7 34.8 11.4

-1.00 -1.065 -0.921 -0.584 6.5 7.9 41.6

Galat rata-rata 87.5 22.7 16.2

Page 76: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

60

Nilai persentase galat pada Tabel 4.7 diperoleh dengan membandingkan data

modulasi QPSK total ketiga pengguna pada Tabel 4.5 dan hasil modulasi QPSK total

pada Tabel 4.6. Persentase galat dapat dihitung dengan menggunakan persamaan :

%100AWGN tanpamodulasi Nilai

AWGNdengan modulasi Nilai - AWGN tanpamodulasi NilaiGalat ×=

Nilai SNR = 16.6 dB adalah nilai real atau nyata yang merupakan batas

maksimum yang diijinkan dalam teknik modulasi QPSK. Tabel 4.8 menunjukkan

perbandingan dari beberapa teknik modulasi digital.

Tabel 4.8 Perbandingan dari beberapa modulasi digital Signal to noise ratio for BER

= 10 -4 (dB) Information Designation

system

Information Density (bps/Hz)

Eb/No on the Channel

SNR at Decision CKT

Peak to Average

Ratio (dB)

2.PSK 1 10.6 13.6 0.0

4.PSK 4.QAM 2 10.6 16.6 0.0

QPR 2* 12.6 16.6 2.0

8.PSK 3 14.0 18.6 0.0

16.QAM 4 14.5 20.5 2.55

16.QPR 4* 16.5 24.5 4.55

16.PSK 4 18.3 24.3 0.0

32.QAM 5 17.4 24.4 2.3

64.QAM 6 18.8 26.6 3.08

Berdasarkan hasil yang diperoleh dari sub program modulasi dapat

disimpulkan bahwa hasil tersebut sesuai dengan teori dan perancangan yang telah

dibuat oleh penulis. Semakin besar nilai SNR, maka AWGN yang dihasilkan akan

semakin kecil. Dengan AWGN yang kecil, sistem akan bekerja secara baik.

Page 77: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

61

4.7. Pengaruh Frekuensi Carrier Terhadap Modulasi QPSK

Sinyal pembawa (carrier) adalah sinyal yang digunakan untuk memodulasi

sinyal informasi. Besar ferkuensi carrier yang digunakan dalam program simulasi ini

dibuat secara variabel. Gambar 4.15 menunjukkan tampilan input frekuensi carrier.

Gambar 4.15. Tampilan input frekuensi carrier.

Jika nilai fekuensi carrier yang diberikan adalah sebesar 10 Hz, maka program akan

menunjukkan tampilan grafik sinyal seperti pada Gambar 4.16.

(a) ( b)

Gambar 4.16. Tampilan hasil modulasi QPSK. (a) Grafik sinyal modulasi masing-masing penguna (b) Grafik sinyal modulasi ketiga pengguna

Gambar 4.16a menunjukkan contoh tampilan grafik sinyal hasil modulasi QPSK

masing-masing pengguna dan Gambar 4.16b menunjukkan tampilan grafik sinyal

modulasi QPSK total ketiga pengguna. Jika besar frekuensi carrier yang dimasukkan

adalah sebesar 100 Hz dan 200 Hz , maka program akan menampilkan seperti yang

ditunjukkan Gambar 4.17 dan Gambar 4.18.

Page 78: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

62

(a) (b)

Gambar 4.17. Tampilan hasil modulasi QPSK dengan frekuensi carrier = 100 Hz. (a) Tampilan grafik sinyal modulasi masing-masing penguna (b) Tampilan nilai modulasi masing-masing pengguna.

(a) (b)

Gambar 4.18. Tampilan hasil modulasi QPSK dengan frekuensi carrier = 200 Hz. (a) Tampilan grafik sinyal modulasi masing-masing penguna (b) Tampilan nilai modulasi masing-masing pengguna.

Berdasarkan Gambar 4.16, Gambar 4.17 dan Gambar 4.18 terlihat bahwa

besarnya frekuensi carrier yang dimasukkan dalam program tidak berpengaruh terhadap

nilai modulasi QPSK masing-masing pengguna. Nilai modulasi pada masing-masing

pengguna adalah sama dengan frekuensi carrier yang berbeda. Hal tersebut dapat dilihat

dengan membandingkan nilai modulasi QPSK masing-masing pengguna pada Gambar

4.16b, Gambar 4.17b dan Gambar 4.18b. Dalam tugas akhir ini besarnya nilai frekuensi

carrier tidak diperhitungkan dan hanya digunakan untuk menampilkan grafik sinyal hasil

modulasi QPSK saja. Dengan demikian berapapun besar nilai frekuensi carrier yang

dimasukkan tidak akan mempengaruhi nilai estimasi output pada detektor MMSE.

Page 79: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

63

4.8. Hasil Demodulasi QPSK

Sinyal superposisi hasil modulasi QPSK total yang dikirim oleh pengirim akan

diterima dan didemodulasi QPSK oleh masing-masing pengguna. Pada demodulasi,

sinyal didapatkan kembali dengan cara mengalikan sinyal tersebut dengan frekuensi

pembawa (carrier) seperti pada pengirim. Gambar 4.19 menunjukkan tampilan nilai

hasil demodulasi QPSK total, sedangkan Gambar 4.20 menunjukkan tampilan grafik

sinyal hasil demodulasi QPSK total. Tampilan seperti Gambar 4.19 dan Gambar 4.20

akan ditampilkan dengan menekan tombol Demod Total pada program.

Gambar 4.19. Tampilan hasil demodulasi QPSK total.

Gambar 4.20. Tampilan grafik sinyal hasil demodulasi QPSK total.

Berdasarkan Gambar 4.19 dan Gambar 4.20 terlihat bahwa nilai yang diperoleh

dari hasil simulasi modulasi QPSK dan demodulasi QPSK adalah sama. Nilai dan

Page 80: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

64

sinyal hasil modulasi dan demodulasi harus sama, dengan catatan sinyal yang dikirim

tidak mengalami gangguan-gangguan seperti multipath fading yang dapat

menyebabkan sinyal mengalami kerusakan atau terdistorsi.

Tabel 4.9 adalah tabel hasil percobaan sub program demodulasi QPSK dengan

jumlah bit input pengguna sebanyak dua bit dan SNR sebesar 0 dB, 8 dB dan 16.6

dB. SNR sebesar 0 dB merupakan batas bawah dan 16.6 dB merupakan batas atas

yang diberikan pada program simulasi ini.

Tabel 4.9 Hasil demodulasi QPSK total. Bit 1 Bit 2 Input

pengguna Kanal

I11 Kanal Q11

Kanal I12

Kanal Q12

Kanal I21

Kanal Q21

Kanal I22

Kanal Q22

SNR

1 0 0 1 1 1

-1.749

3.217

-2.986

1.060

-3.885

-0.502

5.063

-1.065

0 dB

1 0 0 1 1 1

-0.774

2.871

-1.406

-1.094

-0.880

-0.500

4.505

-0.921

8 dB

1 0 0 1 1 1

-0.727

2.975

-0.925

-0.817

-0.985

-1.213

2.658

-0.584

16.6 dB

4.9. Hasil Proses Despreading pada Matched Filter (MF)

Hasil yang diperoleh pada sub program simulasi QPSK total pada Gambar 4.19

kemudian akan diproses lebih lanjut oleh matched filter masing-masing pengguna.

Hasil pemrosesan pada matched filter yang disebut dengan despreading ditampilkan

oleh program seperti pada Gambar 4.21 dan Gambar 4.22.

Gambar 4.21 Tampilan hasil despreading.

Page 81: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

65

Tampilan hasil despreading seperti Gambar 4.21 dan Gambar 4.22 akan

ditampilkan dengan menekan tombol Despread pada program simulasi. Hasil yang

ditunjukkan seperti pada Gambar 4.21 dan Gambar 4.22 diperoleh dengan cara

mengalikan hasil demodulasi QPSK seperti pada Gambar 4.19 dengan spreading

code masing-masing pengguna yang telah ditentukan sebelumnya

Gambar 4.22. Tampilan grafik sinyal hasil despreading ketiga pengguna.

Tabel 4.10. Perbandingan hasil spreading dan dispreading.

Bit input Bit 1 Bit 2

Hasil spreading Hasil despreading

SNR

1

0 [ -1 1 -1 1 1 -1 1 -1]

[-3.88 0.50 5.06 1.06 -1.75 -3.22 -2.99 -1.06]

0

1

[1 1 -1 -1 -1 -1 1 1]

[-3.88 -0.50 -5.06 1.06 -1.75 3.22 2.99 -1.06 ]

1

[-3.88 0.50 -5.06 -1.06 -1.75 -3.22 2.99 1.06]

0 dB

1 [-1 1 1 -1 -1 1 1 -1]

1

0 [ -1 1 -1 1 1 -1 1 -1]

[-0.88 -0.50 4.50 0.92 -0.77 -2.87 -1.41 -1.09]

0

1

[1 1 -1 -1 -1 -1 1 1]

[-0.88 0.50 -4.50 0.92 -0.77 2.87 1.41 -1.09]

1

[-0.88 -0.50 -4.50 -0.92 -0.77 -2.87 1.41 1.09]

8 dB

1 [-1 1 1 -1 -1 1 1 -1]

1

0 [ -1 1 -1 1 1 -1 1 -1]

[-0.98 1.21 2.66 0.58 -0.73 -2.98 -0.93 0.82]

0

1 [1 1 -1 -1 -1 -1 1 1]

[-0.98 -1.21 -2.66 0.58 -0.73 2.98 0.93 0.82]

1

[-0.98 1.21 -2.66 -0.58 -0.73 -2.98 0.93 -0.82]

16.6 dB

1 [-1 1 1 -1 -1 1 1 -1]

Page 82: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

66

Perbandingan antara data hasil spreading dan despreading dapat dilihat pada

Tabel 4.10. Berdasarkan Tabel 4.10 terlihat bahwa hasil despreading adalah berbeda

dengan hasil spreading. Hal ini disebabkan oleh adanya penambahan AWGN pada

saat pengiriman sinyal dari pengirim ke penerima. Besarnya AWGN yang

ditambahkan sangat mempengaruhi kinerja sistem yang terlihat dari hasil yang

diperoleh pada hasil simulasi

4.10. Hasil Estimasi pada Detektor MMSE

Hasil yang diperoleh dari proses despreading pada matched filter seperti yang

ditunjukkan Gambar 4.23 kemudian akan diterima oleh detektor MMSE. Sub

program detektor MMSE akan menampilkan hasil seperti Gambar 4.19 jika tombol

Konversi pada program ditekan.

Gambar 4.23 Tampilan hasil Detektor MMSE

Gambar 4.23 terdiri dari tiga tampilan, ketiga tampilan tersebut adalah sebagai

berikut :

1. Estimasi Output

Estimasi output berisi tampilan estimasi bit-bit yang diterima oleh ketiga

pengguna. Estimasi bit-bit pengguna tersebut merupakan hasil perkalian

Page 83: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

67

antara nilai hasil demodulasi QPSK dengan spreading code masing-masing

pengguna.

2. Bit yang diterima

Bit yang diterima adalah tampilan bit-bit yang diterima oleh ketiga pengguna

yang merupakan hasil pembulatan estimasi output.

3. Hasil konversi

Hasil konversi merupakan tampilan konversi bit-bit yang diterima dari

estimasi output. Jika nilai bit yang diterima lebih besar dari nol, maka

diterjemahkan sebagai bit “1” dan jika nilai bit lebih kecil dari nol, maka

diterjemahkan sebagai bit “0”.

Tabel 4.11 Hasil detektor MMSE Bit awal Estimasi output Bit yang diterima Hasil

konversi

Bit 1 Bit 2 Bit 1 Bit 2 Bit 1 Bit 2 Bit 1 Bit 2

SNR

1 0 0.253 -0.686 1 -1 1 0 0 1 -0.849 2.096 -1 1 0 1 1 1 0.230 2.378 0 1 0 1

0 dB

1 0 0.989 -1.262 1 -1 1 0 0 1 -1.149 1.241 -1 1 0 1 1 1 0.833 1.452 1 1 1 1

8 dB

1 0 0.952 -0.868 1 -1 1 0 0 1 -0.998 1.068 -1 1 0 1 1 1 0.899 0.753 1 1 1 1

16.6 dB

Tabel 4.10 menunjukkan hasil yang diperoleh pada detektor MMSE. Hasil

estimasi output pada SNR = 16.6 dB terlihat lebih mendekati hasil sesungguhnya

dibandingkan dengan SNR = 0 dB dan 8 dB. Hal tersebut dapat dibuktikan dari

perbandingan antara nilai estimasi output dengan nilai bit yang diterima. Sebagai

contoh, estimasi output pada SNR = 16.6 dB untuk pengguna 1 pada bit 1 dan bit 2

adalah 0.952 dan - 0.868 sedangkan bit yang diterima adalah 1 dan -1. Dari hasil

Page 84: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

68

tersebut terlihat bahwa nilai estimasi 0.952 mendekati 1 dan nilai estimasi - 0.868

mendekati nilai -1. Bit yang diterima tersebut akan dikonversi menjadi bentuk biner

( 0 atau 1) yang kemudian dibandingkan dengan bit dikirimkan oleh pengirim.

Apabila bit yang dikirimkan tersebut sama dengan hasil konversi bit, maka dapat

dikatakan bahwa bit yang dikirimkan sesuai dengan bit yang diterima. Tetapi apabila

bit yang dikirimkan tidak sesuai dengan hasil konversi bit, maka sistem tersebut

terdapat error seperti yang ditunjukkan Tabel 4.11 pada SNR = 0 dB.

Dari hasil yang diperoleh pada detektor MMSE dapat disimpulkan bahwa hasil

estimasi output sangat dipengaruhi oleh besarnya SNR yang diberikan pada sistem.

Semakin besar nilai SNR, maka estimasi output akan semakin mendekati nilai

sebenarnya. Dengan SNR yang besar, maka noise yang dihasilkan akan semakin

kecil. Hal tersebut sesuai dengan dasar teori yang diperoleh dan dibuat oleh penulis.

Page 85: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

BAB V

PENUTUP

A. Kesimpulan

Berdasarkan perancangan dan pengamatan yang telah dilakukan, maka

diperoleh beberapa kesimpulan sebagai berikut :

1. Hasil yang diperoleh proses spreading dan modulasi QPSK pada program

simulasi sesuai dengan teori yang dibuat oleh penulis.

2. Pada demodulasi QPSK total (sinyal superposisi), hasil yang diperoleh

sama dengan hasil modulasi QPSK total sesuai dengan dasar teori.

3. Hasil estimasi output bit-bit pengguna pada detektor MMSE yang

diperoleh dari program simulasi sangat dipengaruhi oleh besarnya SNR

yang diberikan pada sistem.

4. Semakin besar nilai SNR yang diberikan pada sistem, maka hasil estimasi

output akan mendekati hasil sebenarnya.

B. Saran

Untuk pengembangan selanjutnya dapat disarankan untuk menambahkan

jumlah bit yang disimulasi, input yang berupa suara (voice), memasukkan unsur

multifath fading dan algoritma lain sebagai detektor bit.

67

Page 86: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

DAFTAR PUSTAKA

[1] Gatot Santoso, “Sistem Selular CDMA”, Penerbit Graha Ilmu, 2004

[2] Piya Kovintavewat and Tom A Kiranantawat, “MMSE Linear Multiuser

Detection for a DS-CDMA System”, ECE 6604, Personal and Mobile

Communication, Spring 2000.

[3] Telkom Traning ,“Dasar Komunikasi Radio Digital”, Makalah Presentasi.

[4] Yinhua Wang, Michael Chow and Sheng-Mou Yu , “QPSK Modulation and

Demodulation”, ELE 791 Softaware Radio Design, Department of Electrical

Engineering, Syracuse University, Desember 2004.

[5] Simulasi Kinerja Kanal AWGN dan Kanal Fading pada Komunikasi Jaringan

Wireless , Muh Arrief Nugroho ,Tugas ET5005 Sistem Komunikasi Seluler.

[6] H.Vincet Poor, “Probability of Error in MMSE Detection”, IEEE Transaction

on Information Theory, Vol. 43, No. 3 May 1997.

[7] Yong Liu, “Simulation Comparison of Multiuser Receiver in DS/CDMA

Systems”, EEL6503, Spread Spectrum and Code Division Multiple Acces,

Nov.30 th.

[8] http://www.elektroindonesia.com/elektro/telkom10.html

[9] http://digilib.its.ac.id

[10] http://onno.vlsm.org/v11/ref-ind-1/physical/wireless/spread-spectrum-

teknologi-komunikasi-digital-masa-mendatang-1.rtf

Page 87: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

LAMPIRAN

Page 88: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

A

LISTING PROGRAM

Page 89: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

function varargout = MMSEprogram(varargin) % MMSEPROGRAM M-file for MMSEprogram.fig % MMSEPROGRAM, by itself, creates a new MMSEPROGRAM or raises the existing % singleton*. % % H = MMSEPROGRAM returns the handle to a new MMSEPROGRAM or the handle to % the existing singleton*. % % MMSEPROGRAM('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MMSEPROGRAM.M with the given input arguments. % % MMSEPROGRAM('Property','Value',...) creates a new MMSEPROGRAM or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before MMSEprogram_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to MMSEprogram_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to file_help MMSEprogram % Last Modified by GUIDE v2.5 29-Jul-2007 03:15:16 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @MMSEprogram_OpeningFcn, ... 'gui_OutputFcn', @MMSEprogram_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before MMSEprogram is made visible. function MMSEprogram_OpeningFcn(hObject, eventdata, handles, varargin) set(handles.uipanel48,'visible','off'); set(handles.uipanel85,'visible','off'); set(handles.uipanel50,'visible','off'); set(handles.uipanel68,'visible','off');

Page 90: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) myform=guidata(GCBO); % Inisialisasi spreading codes n1_1=str2double(get(myform.text25,'string')); n1_2=str2double(get(myform.text26,'string')); n1_3=str2double(get(myform.text27,'string')); n1_4=str2double(get(myform.text28,'string')); n2_1=str2double(get(myform.text29,'string')); n2_2=str2double(get(myform.text30,'string')); n2_3=str2double(get(myform.text31,'string')); n2_4=str2double(get(myform.text32,'string')); n3_1=str2double(get(myform.text33,'string')); n3_2=str2double(get(myform.text34,'string')); n3_3=str2double(get(myform.text35,'string')); n3_4=str2double(get(myform.text36,'string')); % Inisialisasi bit-bit pengguna input11=str2double(get(myform.edit1,'string')); input12=str2double(get(myform.edit4,'string')); input21=str2double(get(myform.edit2,'string')); input22=str2double(get(myform.edit5,'string')); input31=str2double(get(myform.edit3,'string')); input32=str2double(get(myform.edit6,'string')); handles.fs=str2double(get(handles.edit223,'string')); % Sampling frequency %check input if isnan(input11)| input11>1 | input11<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(input12)| input12>1 |input12<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(input21)| input21>1 |input21<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(input22)| input22>1 |input22<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(input31)| input31>1 |input31<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(input32)| input31>1 |input32<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(handles.fs) errordlg('frekuensi sampling belum dimasukkan','Input salah','modal'); else spread=[n1_1,n1_2,n1_3,n1_4;n2_1,n2_2,n2_3,n2_4;n3_1,n3_2,n3_3,n3_4]; input=[input11,input12;input21,input22;input31,input32]; kolom_input=size(input,2); baris_input=size(input,1); L=baris_input; for y=1:kolom_input for o=1:baris_input b=[input(o,y),input(o,y),input(o,y),input(o,y)]; codes=[spread(o,:)]; % spreading codes untuk pengguna ke-x,yang diambil adalah nilai baris dari matriks spread yang berisi full matriks hadamard hsl_xor=xor(b,codes); for j=1:3 for m=1:4 if hsl_xor(1,m)<1 hsl_xor_total(m)=-1; else

Page 91: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

hsl_xor_total(m)=1; end hsl_xor_ubah(o,m)=hsl_xor_total(:,m); if spread(j,m)<1 spread_total(j,m)=-1; else spread_total (j,m)=1; end spread_ubah(j,m)=spread_total(j,m); end % untuk m end % untuk j end %untuk o if y==1 hsl_xor_simbol1=hsl_xor_ubah; else hsl_xor_simbol2=hsl_xor_ubah; end end %untuk y % bit 1 a1=hsl_xor_simbol1(1,1);set(myform.ed_spread11,'string',num2str(a1)); b1=hsl_xor_simbol1(1,2);set(myform.ed_spread12,'string',num2str(b1)); c1=hsl_xor_simbol1(1,3);set(myform.ed_spread13,'string',num2str(c1)); d1=hsl_xor_simbol1(1,4);set(myform.ed_spread14,'string',num2str(d1)); e1=hsl_xor_simbol1(2,1);set(myform.ed_spread21,'string',num2str(e1)); f1=hsl_xor_simbol1(2,2);set(myform.ed_spread22,'string',num2str(f1)); g1=hsl_xor_simbol1(2,3);set(myform.ed_spread23,'string',num2str(g1)); h1=hsl_xor_simbol1(2,4);set(myform.ed_spread24,'string',num2str(h1)); i1=hsl_xor_simbol1(3,1);set(myform.ed_spread31,'string',num2str(i1)); j1=hsl_xor_simbol1(3,2);set(myform.ed_spread32,'string',num2str(j1)); k1=hsl_xor_simbol1(3,3);set(myform.ed_spread33,'string',num2str(k1)); l1=hsl_xor_simbol1(3,4);set(myform.ed_spread34,'string',num2str(l1)); % bit 2 a2=hsl_xor_simbol2(1,1);set(myform.edit11,'string',num2str(a2)); b2=hsl_xor_simbol2(1,2);set(myform.edit12,'string',num2str(b2)); c2=hsl_xor_simbol2(1,3);set(myform.edit13,'string',num2str(c2)); d2=hsl_xor_simbol2(1,4);set(myform.edit14,'string',num2str(d2)); e2=hsl_xor_simbol2(2,1);set(myform.edit19,'string',num2str(e2)); f2=hsl_xor_simbol2(2,2);set(myform.edit20,'string',num2str(f2)); g2=hsl_xor_simbol2(2,3);set(myform.edit21,'string',num2str(g2)); h2=hsl_xor_simbol2(2,4);set(myform.edit22,'string',num2str(h2)); i2=hsl_xor_simbol2(3,1);set(myform.edit27,'string',num2str(i2)); j2=hsl_xor_simbol2(3,2);set(myform.edit28,'string',num2str(j2)); k2=hsl_xor_simbol2(3,3);set(myform.edit29,'string',num2str(k2)); l2=hsl_xor_simbol2(3,4);set(myform.edit30,'string',num2str(l2)); handles.user1=[a1,b1,c1,d1,a2,b2,c2,d2]; handles.user2=[e1,f1,g1,h1,e2,f2,g2,h2]; handles.user3=[i1,j1,k1,l1,i2,j2,k2,l2]; handles.N=length(handles.user1); % jumlah bit(bit rate) handles.Ts=1/handles.fs; % Sampling time = 1/fs handles.T=1/handles.N; td=[0:handles.Ts:(handles.N*handles.T)-handles.Ts]';% Time vector(data)(transpose) set(handles.edit224,'string',handles.Ts); set(handles.edit225,'string',handles.N); set(handles.edit226,'string',handles.T); % plot spread user 1

Page 92: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

spread1=ones(handles.T/handles.Ts,1)*handles.user1; data1=spread1(:);axes(handles.axes16) plot(td,data1),grid on,xlabel(' Time') ylabel('Amplitude'),title('User 1') axis([0 1 -2 2]); % plot spread user 2 spread2=ones(handles.T/handles.Ts,1)*handles.user2; data2=spread2(:); axes(handles.axes17) plot(td,data2),grid on,xlabel(' Time') ylabel('Amplitude'),title('User 2') axis([0 1 -2 2]); % plot spread user 3 spread3=ones(handles.T/handles.Ts,1)*handles.user3; data3=spread3(:); axes(handles.axes18) plot(td,data3),grid on,xlabel(' Time') ylabel('Amplitude'),title('User 3') axis([0 1 -2 2]); % plot spread total handles.user_all=[handles.user1+handles.user2+handles.user3]; spread_total=ones(handles.T/handles.Ts,1)*handles.user_all; data_total=spread_total(:); axes(handles.axes19) plot(td,data_total),grid on,xlabel(' Time') ylabel('Amplitude'),title('All user') axis([0 1 -4 4]); text1=get(handles.pushbutton1,'value'); if text1==1; set(handles.text275,'string','Sinyal Hasil Spreading','position',[1.2 21.46 25 1]); set(handles.text276,'string','Sinyal Spreading Total','position',[4 22.66 25 1]); end end % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in radiobutton1. function radiobutton1_Callback(hObject, eventdata, handles) myform=guidata(GCBO); set(handles.radiobutton2,'value',0) n1_1=str2double(get(myform.text1,'string')); n1_2=str2double(get(myform.text2,'string')); n1_3=str2double(get(myform.text3,'string')); n1_4=str2double(get(myform.text4,'string')); n2_1=str2double(get(myform.text5,'string')); n2_2=str2double(get(myform.text6,'string')); n2_3=str2double(get(myform.text7,'string')); n2_4=str2double(get(myform.text8,'string')); n3_1=str2double(get(myform.text9,'string')); n3_2=str2double(get(myform.text10,'string')); n3_3=str2double(get(myform.text11,'string')); n3_4=str2double(get(myform.text12,'string'));

Page 93: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% pindahkan spreading code tipe 1 set(myform.text25,'string',num2str(n1_1)); set(myform.text26,'string',num2str(n1_2)); set(myform.text27,'string',num2str(n1_3)); set(myform.text28,'string',num2str(n1_4)); set(myform.text29,'string',num2str(n2_1)); set(myform.text30,'string',num2str(n2_2)); set(myform.text31,'string',num2str(n2_3)); set(myform.text32,'string',num2str(n2_4)); set(myform.text33,'string',num2str(n3_1)); set(myform.text34,'string',num2str(n3_2)); set(myform.text35,'string',num2str(n3_3)); set(myform.text36,'string',num2str(n3_4)); % --- Executes on button press in radiobutton2. function radiobutton2_Callback(hObject, eventdata, handles) myform=guidata(GCBO); set(handles.radiobutton1,'value',0) n1_a=str2double(get(myform.text13,'string')); n1_b=str2double(get(myform.text14,'string')); n1_c=str2double(get(myform.text15,'string')); n1_d=str2double(get(myform.text16,'string')); n2_a=str2double(get(myform.text17,'string')); n2_b=str2double(get(myform.text18,'string')); n2_c=str2double(get(myform.text19,'string')); n2_d=str2double(get(myform.text20,'string')); n3_a=str2double(get(myform.text21,'string')); n3_b=str2double(get(myform.text22,'string')); n3_c=str2double(get(myform.text23,'string')); n3_d=str2double(get(myform.text24,'string')); % pindahkan spreading code tipe 2 set(myform.text25,'string',num2str(n1_a)); set(myform.text26,'string',num2str(n1_b)); set(myform.text27,'string',num2str(n1_c)); set(myform.text28,'string',num2str(n1_d)); set(myform.text29,'string',num2str(n2_a)); set(myform.text30,'string',num2str(n2_b)); set(myform.text31,'string',num2str(n2_c)); set(myform.text32,'string',num2str(n2_d)); set(myform.text33,'string',num2str(n3_a)); set(myform.text34,'string',num2str(n3_b)); set(myform.text35,'string',num2str(n3_c)); set(myform.text36,'string',num2str(n3_d)); % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % z=str2num(get(myform.ed_spread11,'MMSEprogram.fig','string')); % set(myform.spread1,'string','modqpsk.fig',num2str(z)); % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

Page 94: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

function edit1_Callback(hObject, eventdata, handles) c = str2double(get(hObject,'string')); if c>1 | c<0 errordlg('Anda harus mengisikan nilai biner 1 atau 0 ','Input salah','modal') end % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double % --- Executes during object creation, after setting all properties. function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit2_Callback(hObject, eventdata, handles) c = str2double(get(hObject,'string')); if c>1 | c<0 errordlg('Anda harus mengisikan nilai biner 1 atau 0 ','Input salah','modal') end % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit2 as text % str2double(get(hObject,'String')) returns contents of edit2 as a double % --- Executes during object creation, after setting all properties. function edit2_CreateFcn(hObject, eventdata, handles) % hObject handle to edit2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

Page 95: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

function edit3_Callback(hObject, eventdata, handles) c = str2double(get(hObject,'string')); if c>1 | c<0 errordlg('Anda harus mengisikan nilai biner " 1 " atau " 0 " ','Input salah','modal') end % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit3 as text % str2double(get(hObject,'String')) returns contents of edit3 as a double % --- Executes during object creation, after setting all properties. function edit3_CreateFcn(hObject, eventdata, handles) % hObject handle to edit3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit4_Callback(hObject, eventdata, handles) c = str2double(get(hObject,'string')); if c>1 | c<0 errordlg('Anda harus mengisikan nilai biner 1 atau 0 ','Input salah','modal') end % hObject handle to edit4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit4 as text % str2double(get(hObject,'String')) returns contents of edit4 as a double end function edit5_Callback(hObject, eventdata, handles) c = str2double(get(hObject,'string')); if c>1 | c<0 errordlg('Anda harus mengisikan nilai biner 1 atau 0 ','Input salah','modal') end % hObject handle to edit5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit5 as text % str2double(get(hObject,'String')) returns contents of edit5 as a double % --- Executes during object creation, after setting all properties. function edit5_CreateFcn(hObject, eventdata, handles) % hObject handle to edit5 (see GCBO)

Page 96: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit6_Callback(hObject, eventdata, handles) c = str2double(get(hObject,'string')); if c>1 | c<0 errordlg('Anda harus mengisikan nilai biner 1 atau 0 ','Input salah','modal') end % hObject handle to edit6 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit6 as text % str2double(get(hObject,'String')) returns contents of edit6 as a double % --- Executes during object creation, after setting all properties. end % -------------------------------------------------------------------- function file_Callback(hObject, eventdata, handles) % hObject handle to file (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function file_reset_Callback(hObject, eventdata, handles) set(handles.text25,'string','');set(handles.text26,'string',''); set(handles.text27,'string','');set(handles.text28,'string',''); set(handles.text29,'string','');set(handles.text30,'string',''); set(handles.text31,'string','');set(handles.text32,'string',''); set(handles.text33,'string','');set(handles.text34,'string',''); set(handles.text35,'string','');set(handles.text36,'string',''); % clear input set(handles.edit1,'string','');set(handles.edit222,'string',''); set(handles.edit2,'string','');set(handles.edit223,'string',''); set(handles.edit3,'string','');set(handles.edit224,'string',''); set(handles.edit4,'string','');set(handles.edit225,'string',''); set(handles.edit5,'string','');set(handles.edit226,'string',''); set(handles.edit6,'string',''); %clear hasil spreading set(handles.ed_spread11,'string','');set(handles.ed_spread12,'string',''); set(handles.ed_spread13,'string','');set(handles.ed_spread14,'string',''); set(handles.ed_spread21,'string','');set(handles.ed_spread22,'string',''); set(handles.ed_spread23,'string','');set(handles.ed_spread24,'string',''); set(handles.ed_spread31,'string','');set(handles.ed_spread32,'string',''); set(handles.ed_spread33,'string','');set(handles.ed_spread34,'string',''); set(handles.edit11,'string','');set(handles.edit12,'string',''); set(handles.edit13,'string','');set(handles.edit14,'string',''); set(handles.edit19,'string','');set(handles.edit20,'string',''); set(handles.edit21,'string','');set(handles.edit22,'string','');

Page 97: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

set(handles.edit27,'string','');set(handles.edit28,'string',''); set(handles.edit29,'string','');set(handles.edit30,'string',''); %clear hasil modulasi set(handles.edit70,'string',''); set(handles.edit71,'string',''); set(handles.edit72,'string',''); set(handles.edit73,'string',''); set(handles.edit74,'string',''); set(handles.edit75,'string',''); set(handles.edit76,'string',''); set(handles.edit77,'string',''); set(handles.edit78,'string',''); set(handles.edit79,'string',''); set(handles.edit80,'string',''); set(handles.edit81,'string',''); set(handles.edit82,'string',''); set(handles.edit83,'string',''); set(handles.edit84,'string',''); set(handles.edit85,'string',''); set(handles.edit86,'string',''); set(handles.edit87,'string',''); set(handles.edit88,'string',''); set(handles.edit89,'string',''); set(handles.edit90,'string',''); set(handles.edit91,'string',''); set(handles.edit92,'string',''); set(handles.edit93,'string',''); %clear modulasi total set(handles.edit94,'string',''); set(handles.edit96,'string',''); set(handles.edit98,'string',''); set(handles.edit100,'string',''); set(handles.edit95,'string',''); set(handles.edit97,'string',''); set(handles.edit99,'string',''); set(handles.edit101,'string',''); %clear radiobutton set(handles.radiobutton1,'value',0); set(handles.radiobutton2,'value',0); %clear text grafik set(handles.text275,'string','','position',[0.6 21.46 0.5 0.5]);set(handles.text276,'string','','position',[5.8 24 0.5 0.5]); %clear gambar axes(handles.axes16) handles.user1=0; plot(handles.user1),grid on axes(handles.axes17) handles.user2=0; plot(handles.user2),grid on axes(handles.axes18) handles.user3=0; plot(handles.user3),grid on axes(handles.axes19) handles.user_all=0; plot(handles.user_all),grid on guidata(hObject,handles); % hObject handle to file_reset (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function file_help_Callback(hObject, eventdata, handles) % hObject handle to file_help (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % --- Executes on button press in pushbutton8. function pushbutton8_Callback(hObject, eventdata, handles) myform=guidata(GCBO); b1_1=str2double(get(myform.ed_spread11,'string')); b1_2=str2double(get(myform.ed_spread12,'string')); b1_3=str2double(get(myform.ed_spread13,'string'));

Page 98: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

b1_4=str2double(get(myform.ed_spread14,'string')); c1_1=str2double(get(myform.ed_spread21,'string')); c1_2=str2double(get(myform.ed_spread22,'string')); c1_3=str2double(get(myform.ed_spread23,'string')); c1_4=str2double(get(myform.ed_spread24,'string')); d1_1=str2double(get(myform.ed_spread31,'string')); d1_2=str2double(get(myform.ed_spread32,'string')); d1_3=str2double(get(myform.ed_spread33,'string')); d1_4=str2double(get(myform.ed_spread34,'string')); hsl_xor_simbol1=[b1_1,b1_2,b1_3,b1_4;c1_1,c1_2,c1_3,c1_4;d1_1,d1_2,d1_3,d1_4]; b2_1=str2double(get(myform.edit11,'string')); b2_2=str2double(get(myform.edit12,'string')); b2_3=str2double(get(myform.edit13,'string')); b2_4=str2double(get(myform.edit14,'string')); c2_1=str2double(get(myform.edit19,'string')); c2_2=str2double(get(myform.edit20,'string')); c2_3=str2double(get(myform.edit21,'string')); c2_4=str2double(get(myform.edit22,'string')); d2_1=str2double(get(myform.edit27,'string')); d2_2=str2double(get(myform.edit28,'string')); d2_3=str2double(get(myform.edit29,'string')); d2_4=str2double(get(myform.edit30,'string')); hsl_xor_simbol2=[b2_1,b2_2,b2_3,b2_4;c2_1,c2_2,c2_3,c2_4;d2_1,d2_2,d2_3,d2_4]; if isnan(hsl_xor_simbol1) errordlg('Proses spreading belum dikerjakan','input salah','modal') elseif isnan(hsl_xor_simbol2) errordlg('Proses spreading belum dikerjakan','input salah','modal') else a=2*pi; % modulasi QPSK bit 1 modulasi_I_n1a=hsl_xor_simbol1(:,1)*1.4142*cos(a+pi/4); modulasi_I_n1b=hsl_xor_simbol1(:,3)*1.4142*cos(a+pi/4); modulasi_Q_n1a=hsl_xor_simbol1(:,2)*1.4142*sin(a+pi/4); modulasi_Q_n1b=hsl_xor_simbol1(:,4)*1.4142*sin(a+pi/4); handles.hasil1=[modulasi_I_n1a,modulasi_Q_n1a, modulasi_I_n1b, modulasi_Q_n1b]; set(myform.edit70,'string',sprintf('%0.2f',(handles.hasil1(1,1)))); set(myform.edit71,'string',sprintf('%0.2f',(handles.hasil1(2,1)))); set(myform.edit72,'string',sprintf('%0.2f',(handles.hasil1(3,1)))); set(myform.edit73,'string',sprintf('%0.2f',(handles.hasil1(1,2)))); set(myform.edit74,'string',sprintf('%0.2f',(handles.hasil1(2,2)))); set(myform.edit75,'string',sprintf('%0.2f',(handles.hasil1(3,2)))); set(myform.edit76,'string',sprintf('%0.2f',(handles.hasil1(1,3)))); set(myform.edit77,'string',sprintf('%0.2f',(handles.hasil1(2,3)))); set(myform.edit78,'string',sprintf('%0.2f',(handles.hasil1(3,3)))); set(myform.edit79,'string',sprintf('%0.2f',(handles.hasil1(1,4)))); set(myform.edit80,'string',sprintf('%0.2f',(handles.hasil1(2,4)))); set(myform.edit81,'string',sprintf('%0.2f',(handles.hasil1(3,4)))); % modulasi QPSK bit 1 modulasi_I_n2a=hsl_xor_simbol2(:,1)*1.4142*cos(a+pi/4); modulasi_I_n2b=hsl_xor_simbol2(:,3)*1.4142*cos(a+pi/4); modulasi_Q_n2a=hsl_xor_simbol2(:,2)*1.4142*sin(a+pi/4); modulasi_Q_n2b=hsl_xor_simbol2(:,4)*1.4142*sin(a+pi/4); handles.hasil2=[modulasi_I_n2a,modulasi_Q_n2a,modulasi_I_n2b,modulasi_Q_n2b]; set(myform.edit82,'string',sprintf('%0.2f',(handles.hasil2(1,1)))); set(myform.edit83,'string',sprintf('%0.2f',(handles.hasil2(2,1)))); set(myform.edit84,'string',sprintf('%0.2f',(handles.hasil2(3,1))));

Page 99: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

set(myform.edit85,'string',sprintf('%0.2f',(handles.hasil2(1,2)))); set(myform.edit86,'string',sprintf('%0.2f',(handles.hasil2(2,2)))); set(myform.edit87,'string',sprintf('%0.2f',(handles.hasil2(3,2)))); set(myform.edit88,'string',sprintf('%0.2f',(handles.hasil2(1,3)))); set(myform.edit89,'string',sprintf('%0.2f',(handles.hasil2(2,3)))); set(myform.edit90,'string',sprintf('%0.2f',(handles.hasil2(3,3)))); set(myform.edit91,'string',sprintf('%0.2f',(handles.hasil2(1,4)))); set(myform.edit92,'string',sprintf('%0.2f',(handles.hasil2(2,4)))); set(myform.edit93,'string',sprintf('%0.2f',(handles.hasil2(3,4)))); % Plot Sinyal Modulasi QPSK handles.fs=str2double(get(handles.edit223,'string')); % Sampling frequency handles.N=8; % jumlah bit(bit rate) handles.Ts=1/handles.fs; % Sampling time = 1/fs handles.T=1/handles.N; handles.fcarr=str2double(get(handles.edit222,'string')); % Carrier frequency(Hz) handles.tiq = [0:handles.Ts*2:(handles.N*handles.T)-handles.Ts]';% Time vector for I and Q symbols (transpose) handles.a=sqrt(2);% amplitudo sinyal handles.phi=pi/4;% phase sinyal %===========================================% % Modulasi QPSK untuk user 1 % %===========================================% user1=[b1_1,b1_2,b1_3,b1_4,b2_1,b2_2,b2_3,b2_4]; % data hasil spreading user 1 %untuk kanal I bs11=user1(1:2:length(user1));% bit ganjil symbols11=ones(handles.T/handles.Ts,1)*bs11; Isymbols11=symbols11(:);%I_waveform %untuk kanal Q bs12=user1(2:2:length(user1));%bit genap symbols12=ones(handles.T/handles.Ts,1)*bs12; Qsymbols12=symbols12(:);%Q_waveform %2 pi fc t twopi_fc_t=(1:handles.fs/2)*2*pi*handles.fcarr/handles.fs; cs_t1 = handles.a * cos(twopi_fc_t + handles.phi); sn_t1 = handles.a * sin(twopi_fc_t + handles.phi); cs_t1=cs_t1';%transpose sn_t1=sn_t1';%transpose handles.si1=cs_t1.*Isymbols11; handles.sq1=sn_t1.*Qsymbols12; handles.sumiq11=handles.si1+handles.sq1; handles.sumiq1=.7*handles.sumiq11;%reduce gain to keep output at +/- one axes(handles.axes16) plot(handles.tiq,handles.sumiq1) axis([0 1 -2 2]);grid on xlabel(' Time') ylabel('Amplitude'),title('User 1') %===========================================% %Modulasi QPSK untuk user 2 %===========================================% user2=[c1_1,c1_2,c1_3,c1_4,c2_1,c2_2,c2_3,c2_4]; % untuk kanal I bs21=user2(1:2:length(user2));% bit ganjil symbols21=ones(handles.T/handles.Ts,1)*bs21; Isymbols21=symbols21(:);%I_waveform % untuk kanal Q bs22=user2(2:2:length(user2));%bit genap

Page 100: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

symbols22=ones(handles.T/handles.Ts,1)*bs22; Qsymbols22=symbols22(:);%Q_waveform %2 pi fc t twopi_fc_t=(1:handles.fs/2)*2*pi*handles.fcarr/handles.fs; cs_t2 = handles.a * cos(twopi_fc_t + handles.phi); sn_t2 = handles.a * sin(twopi_fc_t + handles.phi); cs_t2=cs_t2';%transpose sn_t2=sn_t2';%transpose handles.si2=cs_t2.*Isymbols21; handles.sq2=sn_t2.*Qsymbols22; sumiq22=handles.si2+handles.sq2; sumiq2=.7*sumiq22;%reduce gain to keep output at +/- one axes(handles.axes17) plot(handles.tiq,sumiq2) axis([0 1 -2 2]);grid on xlabel(' Time') ylabel('Amplitude'),title('User 2') %===========================================% %Modulasi QPSK untuk user 3 %===========================================% user3=[d1_1,d1_2,d1_3,d1_4,d2_1,d2_2,d2_3,d2_4]; bs31=user3(1:2:length(user3));% bit ganjil symbols31=ones(handles.T/handles.Ts,1)*bs31; Isymbols31=symbols31(:);%I_waveform %untuk kanal Q bs32=user3(2:2:length(user3));%bit genap symbols32=ones(handles.T/handles.Ts,1)*bs32; Qsymbols32=symbols32(:);%Q_waveform %2 pi fc t twopi_fc_t=(1:handles.fs/2)*2*pi*handles.fcarr/handles.fs; cs_t3 = handles.a * cos(twopi_fc_t + handles.phi); sn_t3 = handles.a * sin(twopi_fc_t + handles.phi); cs_t3=cs_t3';%transpose sn_t3=sn_t3';%transpose handles.si3=cs_t3.*Isymbols31; handles.sq3=sn_t3.*Qsymbols32; sumiq32=handles.si3+handles.sq3; sumiq3=.7*sumiq32;%reduce gain to keep output at +/- one axes(handles.axes18) plot(handles.tiq,sumiq3) axis([0 1 -2 2]);grid on xlabel(' Time') ylabel('Amplitude'),title('User 3') text2=get(handles.pushbutton8,'value'); if text2==1; set(handles.text275,'string','Sinyal Hasil Modulasi QPSK','position',[0.6 21.4 30 1]) set(handles.text276,'string','','position',[0.6 21.4 1 1]) end axes(handles.axes19) handles.user_all=0; plot(handles.user_all),grid on guidata(hObject,handles); end

Page 101: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% hObject handle to pushbutton8 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton9. function pushbutton9_Callback(hObject, eventdata, handles) myform=guidata(GCBO); % ambil data modulasi QPSK bit 1 b1_1=str2double(get(myform.edit70,'string')); b1_2=str2double(get(myform.edit73,'string')); b1_3=str2double(get(myform.edit76,'string')); b1_4=str2double(get(myform.edit79,'string')); c1_1=str2double(get(myform.edit71,'string')); c1_2=str2double(get(myform.edit74,'string')); c1_3=str2double(get(myform.edit77,'string')); c1_4=str2double(get(myform.edit80,'string')); d1_1=str2double(get(myform.edit72,'string')); d1_2=str2double(get(myform.edit75,'string')); d1_3=str2double(get(myform.edit78,'string')); d1_4=str2double(get(myform.edit81,'string')); hsl_xor_simbol1=[b1_1,b1_2,b1_3,b1_4;c1_1,c1_2,c1_3,c1_4;d1_1,d1_2,d1_3,d1_4]; % ambil data modulasi QPSK bit 2 b2_1=str2double(get(myform.edit82,'string')); b2_2=str2double(get(myform.edit85,'string')); b2_3=str2double(get(myform.edit88,'string')); b2_4=str2double(get(myform.edit91,'string')); c2_1=str2double(get(myform.edit83,'string')); c2_2=str2double(get(myform.edit86,'string')); c2_3=str2double(get(myform.edit89,'string')); c2_4=str2double(get(myform.edit92,'string')); d2_1=str2double(get(myform.edit84,'string')); d2_2=str2double(get(myform.edit87,'string')); d2_3=str2double(get(myform.edit90,'string')); d2_4=str2double(get(myform.edit93,'string')); hsl_xor_simbol2=[b2_1,b2_2,b2_3,b2_4;c2_1,c2_2,c2_3,c2_4;d2_1,d2_2,d2_3,d2_4]; % pembentukan modulasi total bit 1 if isnan(hsl_xor_simbol1) errordlg('hasil modulasi belum dikerjakan','input salah') elseif isnan(hsl_xor_simbol2) errordlg('hasil modulasi belum dikerjakan','input salah') else % pembentukan modulasi total bit 1 besar_modulasi_I_total_n11=hsl_xor_simbol1(1,1)+hsl_xor_simbol1(2,1)+hsl_xor_simbol1(3,1); besar_modulasi_I_total_n12=hsl_xor_simbol1(1,3)+hsl_xor_simbol1(2,3)+hsl_xor_simbol1(3,3); besar_modulasi_Q_total_n11=hsl_xor_simbol1(1,2)+hsl_xor_simbol1(2,2)+hsl_xor_simbol1(3,2); besar_modulasi_Q_total_n12=hsl_xor_simbol1(1,4)+hsl_xor_simbol1(2,4)+hsl_xor_simbol1(3,4); % pembentukan modulasi total bit 2 besar_modulasi_I_total_n21=hsl_xor_simbol2(1,1)+hsl_xor_simbol2(2,1)+hsl_xor_simbol2(3,1); besar_modulasi_I_total_n22=hsl_xor_simbol2(1,3)+hsl_xor_simbol2(2,3)+hsl_xor_simbol2(3,3); besar_modulasi_Q_total_n21=hsl_xor_simbol2(1,2)+hsl_xor_simbol2(2,2)+hsl_xor_simbol2(3,2); besar_modulasi_Q_total_n22=hsl_xor_simbol2(1,4)+hsl_xor_simbol2(2,4)+hsl_xor_simbol2(3,4); transmisi=zeros(2,4); transmisi(1,1)=besar_modulasi_I_total_n11; transmisi(1,2)=besar_modulasi_Q_total_n11; transmisi(1,3)=besar_modulasi_I_total_n12;

Page 102: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

transmisi(1,4)=besar_modulasi_Q_total_n12; transmisi(2,1)=besar_modulasi_I_total_n21; transmisi(2,2)=besar_modulasi_Q_total_n21; transmisi(2,3)=besar_modulasi_I_total_n22; transmisi(2,4)=besar_modulasi_Q_total_n22; SNR=str2double(get(myform.edit225,'string')); transmisi=awgn(transmisi,SNR,'measured'); besar_modulasi_I_total_n11=transmisi(1,1); besar_modulasi_Q_total_n11=transmisi(1,2); besar_modulasi_I_total_n12=transmisi(1,3); besar_modulasi_Q_total_n12=transmisi(1,4); besar_modulasi_I_total_n21=transmisi(2,1); besar_modulasi_Q_total_n21=transmisi(2,2); besar_modulasi_I_total_n22=transmisi(2,3); besar_modulasi_Q_total_n22=transmisi(2,4); modulasi_total=[besar_modulasi_I_total_n11,besar_modulasi_Q_total_n11,besar_modulasi_I_total_n12,... besar_modulasi_Q_total_n12,besar_modulasi_I_total_n21,besar_modulasi_Q_total_n21,... besar_modulasi_I_total_n22,besar_modulasi_Q_total_n22] set(myform.edit94,'string',sprintf('%0.3f',(modulasi_total(1,1)))); set(myform.edit96,'string',sprintf('%0.3f',(modulasi_total(1,2)))); set(myform.edit98,'string',sprintf('%0.3f',(modulasi_total(1,3)))); set(myform.edit100,'string',sprintf('%0.3f',(modulasi_total(1,4)))); set(myform.edit95,'string',sprintf('%0.3f',(modulasi_total(1,5)))); set(myform.edit97,'string',sprintf('%0.3f',(modulasi_total(1,6)))); set(myform.edit99,'string',sprintf('%0.3f',(modulasi_total(1,7)))); set(myform.edit101,'string',sprintf('%0.3f',(modulasi_total(1,8)))); % plot grafik modulasi % untuk kanal I mod_total1=modulasi_total(1:2:length(modulasi_total));% bit ganjil kanalI=ones(handles.T/handles.Ts,1)*mod_total1; Isymbols=kanalI(:);%I_waveform % untuk kanal Q mod_total2=modulasi_total(2:2:length(modulasi_total));%bit genap kanalQ=ones(handles.T/handles.Ts,1)*mod_total2; Qsymbols=kanalQ(:);%Q_waveform %2 pi fc t twopi_fc_t=(1:handles.fs/2)*2*pi*handles.fcarr/handles.fs; cs_t = handles.a * cos(twopi_fc_t + handles.phi); sn_t = handles.a * sin(twopi_fc_t + handles.phi); cs_t=cs_t';%transpose sn_t=sn_t';%transpose si=cs_t.*Isymbols; sq=sn_t.*Qsymbols; sumiq1=si+sq; sumiq=.7*sumiq1;%reduce gain to keep output at +/- one axes(handles.axes19) plot(handles.tiq,sumiq) % axis([0 1 -5 5]); grid on xlabel(' Time')

Page 103: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

ylabel('Amplitude') title(' All User ') text2=get(handles.pushbutton9,'value'); if text2==1; set(handles.text276,'string','Sinyal Superposisi Modulasi QPSK','position',[4 22.66 40 1]) end end % hObject handle to pushbutton9 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton12. function pushbutton12_Callback(hObject, eventdata, handles) pilihan = questdlg(['Keluar ',get(handles.figure1,'Name') ' ?'],... ['Keluar ',get(handles.figure1,'Name') '...'],... 'Ya','Tidak','Ya'); if strcmp(pilihan,'Tidak') return; end delete(handles.figure1) % hObject handle to pushbutton12 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton13. function pushbutton13_Callback(hObject, eventdata, handles) set(handles.uipanel38,'visible','off'); set(handles.uipanel39,'visible','off'); set(handles.uipanel40,'visible','off'); set(handles.uipanel1,'visible','off'); set(handles.uipanel42,'visible','off'); set(handles.uipanel69,'visible','on'); set(handles.uipanel48,'visible','on'); set(handles.uipanel85,'visible','on'); set(handles.uipanel50,'visible','on'); set(handles.uipanel68,'visible','on'); % hObject handle to pushbutton13 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in tom_dtotal. function tom_dtotal_Callback(hObject, eventdata, handles) % FILE DEMODULASI QPSK besar_modulasi_I_total_n11=str2double(get(handles.edit94,'string')); besar_modulasi_Q_total_n11=str2double(get(handles.edit96,'string')); besar_modulasi_I_total_n12=str2double(get(handles.edit98,'string')); besar_modulasi_Q_total_n12=str2double(get(handles.edit100,'string')); besar_modulasi_I_total_n21=str2double(get(handles.edit95,'string')); besar_modulasi_Q_total_n21=str2double(get(handles.edit97,'string')); besar_modulasi_I_total_n22=str2double(get(handles.edit99,'string'));

Page 104: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

besar_modulasi_Q_total_n22=str2double(get(handles.edit101,'string')); mod_total=[besar_modulasi_I_total_n11,besar_modulasi_Q_total_n11,besar_modulasi_I_total_n12,... besar_modulasi_Q_total_n12,besar_modulasi_I_total_n21,besar_modulasi_Q_total_n21,... besar_modulasi_I_total_n22,besar_modulasi_Q_total_n22]; if isnan(mod_total) errordlg('Proses Modulasi belum dikerjakan','input salah','modal') else %batas bawah dan atas integral b=0; c=1; %Demodulasi masing-masing pengguna data_input(1,1)=besar_modulasi_I_total_n11*2*(-1/2*(- 2*cos(c*pi)^3*sin(c*pi)+sin(c*pi)*cos(c*pi)-c*pi+ 2*cos(b*pi)^3*sin(b*pi)-sin(b*pi)*cos(b*pi)+b*pi)/pi); data_input(1,2)=besar_modulasi_Q_total_n11*2*(1/2*(-cos(c*pi)^4+cos(c*pi)^2+sin(c*pi)^2*cos(c*pi)^2+c*pi+. cos(b*pi)^4-cos(b*pi)^2-sin(b*pi)^2*cos(b*pi)^2-b*pi)/pi); data_input(1,3)=besar_modulasi_I_total_n12*2*(-1/2* (-2*cos(c*pi)^3*sin(c*pi)+sin(c*pi)*cos(c*pi)-c*pi+ 2*cos(b*pi)^3*sin(b*pi)-sin(b*pi)*cos(b*pi)+b*pi)/pi); data_input(1,4)=besar_modulasi_Q_total_n12*2*(1/2*(-cos(c*pi)^4+cos(c*pi)^2+sin(c*pi)^2*cos(c*pi)^2+c*pi+ cos(b*pi)^4-cos(b*pi)^2-sin(b*pi)^2*cos(b*pi)^2-b*pi)/pi); data_input(2,1)=besar_modulasi_I_total_n21*2*(-1/2*(- 2*cos(c*pi)^3*sin(c*pi)+sin(c*pi)*cos(c*pi)-c*pi+2*cos(b*pi)^3*sin(b*pi)-sin(b*pi)*cos(b*pi)+b*pi)/pi); data_input(2,2)=besar_modulasi_Q_total_n21*2*(1/2*(-cos(c*pi)^4+cos(c*pi)^2+sin(c*pi)^2*cos(c*pi)^2+c*pi+ cos(b*pi)^4-cos(b*pi)^2-sin(b*pi)^2*cos(b*pi)^2-b*pi)/pi); data_input(2,3)=besar_modulasi_I_total_n22*2*(-1/2*(- 2*cos(c*pi)^3*sin(c*pi)+sin(c*pi)*cos(c*pi)-c*pi+2*cos(b*pi)^3*sin(b*pi)-sin(b*pi)*cos(b*pi)+b*pi)/pi); data_input(2,4)=besar_modulasi_Q_total_n22*2*(1/2*(-cos(c*pi)^4+cos(c*pi)^2+sin(c*pi)^2*cos(c*pi)^2+c*pi+ cos(b*pi)^4-cos(b*pi)^2-sin(b*pi)^2*cos(b*pi)^2-b*pi)/pi); daftar_data=data_input; demodulasi_total=[data_input(1,1),data_input(1,3),data_input(2,1),data_input(2,3);... data_input(1,2),data_input(1,4),data_input(2,2),data_input(2,4)]; set(handles.edit134,'string',sprintf('%0.3f',(demodulasi_total(1,1)))); set(handles.edit138,'string',sprintf('%0.3f',(demodulasi_total(2,1)))); set(handles.edit136,'string',sprintf('%0.3f',(demodulasi_total(1,2)))); set(handles.edit141,'string',sprintf('%0.3f',(demodulasi_total(2,2))));

Page 105: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

set(handles.edit135,'string',sprintf('%0.3f',(demodulasi_total(1,3)))); set(handles.edit139,'string',sprintf('%0.3f',(demodulasi_total(2,3)))); set(handles.edit137,'string',sprintf('%0.3f',(demodulasi_total(1,4)))); set(handles.edit140,'string',sprintf('%0.3f',(demodulasi_total(2,4)))); % Plot Channel I sinyalI1a=data_input(1,1); sinyalI1b=data_input(1,3); sinyalI1c=data_input(2,1); sinyalI1d=data_input(2,3); % Plot Channel Q sinyalQ1a=data_input(1,2); sinyalQ1b=data_input(1,4); sinyalQ1c=data_input(2,2); sinyalQ1d=data_input(2,4); IQ_total=[sinyalI1a,sinyalQ1a,sinyalI1b,sinyalQ1b,sinyalI1c,sinyalQ1c,sinyalI1d,sinyalQ1d]; % untuk kanal I mod_total1=IQ_total(1:2:length(IQ_total));% bit ganjil kanalI=ones(handles.T/handles.Ts,1)*mod_total1; Isymbols=kanalI(:);%I_waveform % untuk kanal Q mod_total2=IQ_total(2:2:length(IQ_total));%bit genap kanalQ=ones(handles.T/handles.Ts,1)*mod_total2; Qsymbols=kanalQ(:);%Q_waveform %2 pi fc t twopi_fc_t=(1:handles.fs/2)*2*pi*handles.fcarr/handles.fs; cs_t = handles.a * cos(twopi_fc_t + handles.phi); sn_t = handles.a * sin(twopi_fc_t + handles.phi); cs_t=cs_t';%transpose sn_t=sn_t';%transpose si=cs_t.*Isymbols; sq=sn_t.*Qsymbols; sumiq1=si+sq; sumiq=.7*sumiq1;%reduce gain to keep output at +/- one axes(handles.axes23) plot(handles.tiq,sumiq) % axis([0 1 -5 5]); grid on xlabel(' Time') ylabel('Amplitude') title(' All User ') text2=get(handles.pushbutton9,'value'); function tom_demod_Callback(hObject, eventdata, handles) % hObject handle to tom_demod (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton19. function pushbutton19_Callback(hObject, eventdata, handles) %Ambil spreading code n1_1=str2double(get(handles.text25,'string')); n1_2=str2double(get(handles.text26,'string')); n1_3=str2double(get(handles.text27,'string')); n1_4=str2double(get(handles.text28,'string'));

Page 106: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

n2_1=str2double(get(handles.text29,'string')); n2_2=str2double(get(handles.text30,'string')); n2_3=str2double(get(handles.text31,'string')); n2_4=str2double(get(handles.text32,'string')); n3_1=str2double(get(handles.text33,'string')); n3_2=str2double(get(handles.text34,'string')); n3_3=str2double(get(handles.text35,'string')); n3_4=str2double(get(handles.text36,'string')); spread_ubah=[n1_1,n1_2,n1_3,n1_4;n2_1,n2_2,n2_3,n2_4;n3_1,n3_2,n3_3,n3_4]; for l=1:3 for k=1:4 if spread_ubah(l,k)<1 spread_ubah(l,k)=-1; else spread_ubah(l,k)=1; end end end demod_kanalI11=str2double(get(handles.edit134,'string')); demod_kanalQ11=str2double(get(handles.edit138,'string')); demod_kanalI12=str2double(get(handles.edit136,'string')); demod_kanalQ12=str2double(get(handles.edit141,'string')); demod_kanalI21=str2double(get(handles.edit135,'string')); demod_kanalQ21=str2double(get(handles.edit139,'string')); demod_kanalI22=str2double(get(handles.edit137,'string')); demod_kanalQ22=str2double(get(handles.edit140,'string')); transmisi=[demod_kanalI11,demod_kanalQ11,demod_kanalI12,demod_kanalQ12;... demod_kanalI21,demod_kanalQ21,demod_kanalI22,demod_kanalQ22] data_proses=-1*transmisi' nUsers=3; b_kluaran_MF=zeros(nUsers,2); for index=1:nUsers b_kluaran_MF(index,:)=(spread_ubah(index,:)*data_proses)/length(spread_ubah) end R=zeros(nUsers,1); for index=1:nUsers R(index) = sum(spread_ubah(1,:).*spread_ubah(index,:)) end R=R/max(R); R=toeplitz(R); b=b_kluaran_MF; y=R*b; Q=R; q=y; estimasi_output=y; set(handles.edit178,'string',sprintf('%0.3f',(estimasi_output(1,1)))); set(handles.edit181,'string',sprintf('%0.3f',(estimasi_output(1,2)))); set(handles.edit179,'string',sprintf('%0.3f',(estimasi_output(2,1)))); set(handles.edit182,'string',sprintf('%0.3f',(estimasi_output(2,2)))); set(handles.edit180,'string',sprintf('%0.3f',(estimasi_output(3,1)))); set(handles.edit183,'string',sprintf('%0.3f',(estimasi_output(3,2)))); for l=1:3 for m=1:2 if (y(l,m)<-0.5) decis(l,m)=-1 elseif(y(l,m)>0.5)

Page 107: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

decis(l,m)=1 else decis(l,m)=0 end end end set(handles.edit166,'string',decis(1,1)); set(handles.edit169,'string',decis(1,2)); set(handles.edit167,'string',decis(2,1)); set(handles.edit170,'string',decis(2,2)); set(handles.edit168,'string',decis(3,1)); set(handles.edit171,'string',decis(3,2)); for i=1:3 for j=1:2 if estimasi_output(i,j)>0 konversi_bit(i,j)=1; else konversi_bit(i,j)=0; end end end set(handles.edit184,'string',konversi_bit(1,1)); set(handles.edit187,'string',konversi_bit(1,2)); set(handles.edit185,'string',konversi_bit(2,1)); set(handles.edit188,'string',konversi_bit(2,2)); set(handles.edit186,'string',konversi_bit(3,1)); set(handles.edit189,'string',konversi_bit(3,2)); % hObject handle to pushbutton19 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton20. function pushbutton20_Callback(hObject, eventdata, handles) set(handles.uipanel48,'visible','off');set(handles.uipanel42,'visible','on'); set(handles.uipanel85,'visible','off');set(handles.uipanel38,'visible','on'); set(handles.uipanel69,'visible','off');set(handles.uipanel39,'visible','on'); set(handles.uipanel68,'visible','off');set(handles.uipanel40,'visible','on'); set(handles.uipanel50,'visible','off');set(handles.uipanel1,'visible','on'); % hObject handle to pushbutton20 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) function edit166_Callback(hObject, eventdata, handles) % hObject handle to edit166 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit166 as text % str2double(get(hObject,'String')) returns contents of edit166 as a double % --- Executes during object creation, after setting all properties. function edit166_CreateFcn(hObject, eventdata, handles) % hObject handle to edit166 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

Page 108: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit167_Callback(hObject, eventdata, handles) % hObject handle to edit167 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit167 as text % str2double(get(hObject,'String')) returns contents of edit167 as a double % --- Executes during object creation, after setting all properties. function edit167_CreateFcn(hObject, eventdata, handles) % hObject handle to edit167 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit168_Callback(hObject, eventdata, handles) % hObject handle to edit168 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit168 as text % str2double(get(hObject,'String')) returns contents of edit168 as a double % --- Executes during object creation, after setting all properties. function edit168_CreateFcn(hObject, eventdata, handles) % hObject handle to edit168 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit169_Callback(hObject, eventdata, handles) % hObject handle to edit169 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB

Page 109: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit169 as text % str2double(get(hObject,'String')) returns contents of edit169 as a double % --- Executes during object creation, after setting all properties. function edit169_CreateFcn(hObject, eventdata, handles) % hObject handle to edit169 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit170_Callback(hObject, eventdata, handles) % hObject handle to edit170 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit170 as text % str2double(get(hObject,'String')) returns contents of edit170 as a double % --- Executes during object creation, after setting all properties. function edit170_CreateFcn(hObject, eventdata, handles) % hObject handle to edit170 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit171_Callback(hObject, eventdata, handles) % hObject handle to edit171 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit171 as text % str2double(get(hObject,'String')) returns contents of edit171 as a double % --- Executes during object creation, after setting all properties. function edit171_CreateFcn(hObject, eventdata, handles) % hObject handle to edit171 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

Page 110: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes during object creation, after setting all properties. function uipanel38_CreateFcn(hObject, eventdata, handles) % hObject handle to uipanel38 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called function edit178_Callback(hObject, eventdata, handles) % hObject handle to edit178 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit178 as text % str2double(get(hObject,'String')) returns contents of edit178 as a double % --- Executes during object creation, after setting all properties. function edit178_CreateFcn(hObject, eventdata, handles) % hObject handle to edit178 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit179_Callback(hObject, eventdata, handles) % hObject handle to edit179 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit179 as text % str2double(get(hObject,'String')) returns contents of edit179 as a double % --- Executes during object creation, after setting all properties. function edit179_CreateFcn(hObject, eventdata, handles) % hObject handle to edit179 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

Page 111: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

set(hObject,'BackgroundColor','white'); end function edit180_Callback(hObject, eventdata, handles) % hObject handle to edit180 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit180 as text % str2double(get(hObject,'String')) returns contents of edit180 as a double % --- Executes during object creation, after setting all properties. function edit180_CreateFcn(hObject, eventdata, handles) % hObject handle to edit180 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit181_Callback(hObject, eventdata, handles) % hObject handle to edit181 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit181 as text % str2double(get(hObject,'String')) returns contents of edit181 as a double % --- Executes during object creation, after setting all properties. function edit181_CreateFcn(hObject, eventdata, handles) % hObject handle to edit181 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit183_Callback(hObject, eventdata, handles) % hObject handle to edit183 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit183 as text % str2double(get(hObject,'String')) returns contents of edit183 as a double

Page 112: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% --- Executes during object creation, after setting all properties. function edit183_CreateFcn(hObject, eventdata, handles) % hObject handle to edit183 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit184_Callback(hObject, eventdata, handles) % hObject handle to edit184 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit184 as text % str2double(get(hObject,'String')) returns contents of edit184 as a double % --- Executes during object creation, after setting all properties. function edit184_CreateFcn(hObject, eventdata, handles) % hObject handle to edit184 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit185_Callback(hObject, eventdata, handles) % hObject handle to edit185 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit185 as text % str2double(get(hObject,'String')) returns contents of edit185 as a double % --- Executes during object creation, after setting all properties. function edit185_CreateFcn(hObject, eventdata, handles) % hObject handle to edit185 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER.

Page 113: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit186_Callback(hObject, eventdata, handles) % hObject handle to edit186 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit186 as text % str2double(get(hObject,'String')) returns contents of edit186 as a double % --- Executes during object creation, after setting all properties. function edit186_CreateFcn(hObject, eventdata, handles) % hObject handle to edit186 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit187_Callback(hObject, eventdata, handles) % hObject handle to edit187 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit187 as text % str2double(get(hObject,'String')) returns contents of edit187 as a double % --- Executes during object creation, after setting all properties. function edit187_CreateFcn(hObject, eventdata, handles) % hObject handle to edit187 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit188_Callback(hObject, eventdata, handles) % hObject handle to edit188 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit188 as text % str2double(get(hObject,'String')) returns contents of edit188 as a double

Page 114: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% --- Executes during object creation, after setting all properties. function edit188_CreateFcn(hObject, eventdata, handles) % hObject handle to edit188 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit189_Callback(hObject, eventdata, handles) % hObject handle to edit189 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit189 as text % str2double(get(hObject,'String')) returns contents of edit189 as a double % --- Executes during object creation, after setting all properties. function edit189_CreateFcn(hObject, eventdata, handles) % hObject handle to edit189 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on selection change in popupmenu1. function popupmenu1_Callback(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: contents = get(hObject,'String') returns popupmenu1 contents as cell array % contents{get(hObject,'Value')} returns selected item from popupmenu1 % --- Executes during object creation, after setting all properties. function popupmenu1_CreateFcn(hObject, eventdata, handles) % hObject handle to popupmenu1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called

Page 115: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in tom_despread. function tom_despread_Callback(hObject, eventdata, handles) % Ambil spreading code spc1a=str2double(get(handles.text25,'string')); spc1b=str2double(get(handles.text26,'string')); spc1c=str2double(get(handles.text27,'string')); spc1d=str2double(get(handles.text28,'string')); spc2a=str2double(get(handles.text29,'string')); spc2b=str2double(get(handles.text30,'string')); spc2c=str2double(get(handles.text31,'string')); spc2d=str2double(get(handles.text32,'string')); spc3a=str2double(get(handles.text33,'string')); spc3b=str2double(get(handles.text34,'string')); spc3c=str2double(get(handles.text35,'string')); spc3d=str2double(get(handles.text36,'string')); % Ambil data demodulasi demod_kanalI11=str2double(get(handles.edit134,'string')); demod_kanalQ11=str2double(get(handles.edit138,'string')); demod_kanalI12=str2double(get(handles.edit136,'string')); demod_kanalQ12=str2double(get(handles.edit141,'string')); demod_kanalI21=str2double(get(handles.edit135,'string')); demod_kanalQ21=str2double(get(handles.edit139,'string')); demod_kanalI22=str2double(get(handles.edit137,'string')); demod_kanalQ22=str2double(get(handles.edit140,'string')); %Ubah spreading code spc=[spc1a,spc1b,spc1c,spc1d;spc2a,spc2b,spc2c,spc2d;spc3a,spc3b,spc3c,spc3d]; for i=1:3 for j=1:4 if spc(i,j)<1 spcd(i,j)=-1; else spcd(i,j)=1; end end end spreading_code=[spcd(1,:);spcd(2,:);spcd(3,:)]; data_demod=[ demod_kanalI21,demod_kanalQ21,demod_kanalI22,demod_kanalQ22,... demod_kanalI11,demod_kanalQ11,demod_kanalI12,demod_kanalQ12]; if isnan(data_demod) errordlg('Proses Demodulasi belum dikerjakan','input salah','modal') else for m=1:3 for n=1:8 if n>4 col=mod(n,5)+1; else col=n; end hasil_despread(m,n)=spreading_code(m,col)*data_demod(1,n); end

Page 116: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

end set(handles.text247,'string',sprintf('%0.2f',(hasil_despread(1,1)))); set(handles.text250,'string',sprintf('%0.2f',(hasil_despread(1,2)))); set(handles.text253,'string',sprintf('%0.2f',(hasil_despread(1,3)))); set(handles.text256,'string',sprintf('%0.2f',(hasil_despread(1,4)))); set(handles.text268,'string',sprintf('%0.2f',(hasil_despread(1,5)))); set(handles.text259,'string',sprintf('%0.2f',(hasil_despread(1,6)))); set(handles.text260,'string',sprintf('%0.2f',(hasil_despread(1,7)))); set(handles.text261,'string',sprintf('%0.2f',(hasil_despread(1,8)))); set(handles.text248,'string',sprintf('%0.2f',(hasil_despread(2,1)))); set(handles.text251,'string',sprintf('%0.2f',(hasil_despread(2,2)))); set(handles.text254,'string',sprintf('%0.2f',(hasil_despread(2,3)))); set(handles.text257,'string',sprintf('%0.2f',(hasil_despread(2,4)))); set(handles.text262,'string',sprintf('%0.2f',(hasil_despread(2,5)))); set(handles.text263,'string',sprintf('%0.2f',(hasil_despread(2,6)))); set(handles.text264,'string',sprintf('%0.2f',(hasil_despread(2,7)))); set(handles.text269,'string',sprintf('%0.2f',(hasil_despread(2,8)))); set(handles.text249,'string',sprintf('%0.2f',(hasil_despread(3,1)))); set(handles.text252,'string',sprintf('%0.2f',(hasil_despread(3,2)))); set(handles.text255,'string',sprintf('%0.2f',(hasil_despread(3,3)))); set(handles.text258,'string',sprintf('%0.2f',(hasil_despread(3,4)))); set(handles.text265,'string',sprintf('%0.2f',(hasil_despread(3,5)))); set(handles.text266,'string',sprintf('%0.2f',(hasil_despread(3,6)))); set(handles.text267,'string',sprintf('%0.2f',(hasil_despread(3,7)))); set(handles.text270,'string',sprintf('%0.2f',(hasil_despread(3,8)))); user1=[hasil_despread(1,1),hasil_despread(1,2),hasil_despread(1,3),hasil_despread(1,4),... hasil_despread(1,5),hasil_despread(1,6),hasil_despread(1,7),hasil_despread(1,8)]; spread1=ones(handles.T/handles.Ts,1)*user1; data1=spread1(:); user2=[hasil_despread(2,1),hasil_despread(2,2),hasil_despread(2,3),hasil_despread(2,4),... hasil_despread(2,5),hasil_despread(2,6),hasil_despread(2,7),hasil_despread(2,8)]; spread2=ones(handles.T/handles.Ts,1)*user2; data2=spread2(:); user3=[hasil_despread(3,1),hasil_despread(3,2),hasil_despread(3,3),hasil_despread(3,4),... hasil_despread(3,5),hasil_despread(3,6),hasil_despread(3,7),hasil_despread(3,8)]; spread3=ones(handles.T/handles.Ts,1)*user3; td=[0:handles.Ts:(handles.N*handles.T)-handles.Ts]'; data3=spread3(:); % plot spread user 1 axes(handles.axes32); plot(td,data1),grid on,xlabel(' Time') ylabel('Amplitude'),title('User 1') % plot spread user 2 axes(handles.axes33); plot(td,data2),grid on,xlabel(' Time') ylabel('Amplitude'),title('User 2') % plot spread user 3 axes(handles.axes34); plot(td,data3),grid on,xlabel(' Time') ylabel('Amplitude'),title('User 3') end % hObject handle to tom_despread (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

Page 117: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% --- Executes on button press in pushbutton25. function pushbutton25_Callback(hObject, eventdata, handles) b1_1=str2double(get(handles.ed_spread11,'string'));b1_2=str2double(get(handles.ed_spread12,'string')); b1_3=str2double(get(handles.ed_spread13,'string'));b1_4=str2double(get(handles.ed_spread14,'string')); c1_1=str2double(get(handles.ed_spread21,'string'));c1_2=str2double(get(handles.ed_spread22,'string')); c1_3=str2double(get(handles.ed_spread23,'string'));c1_4=str2double(get(handles.ed_spread24,'string')); d1_1=str2double(get(handles.ed_spread31,'string'));d1_2=str2double(get(handles.ed_spread32,'string')); d1_3=str2double(get(handles.ed_spread33,'string'));d1_4=str2double(get(handles.ed_spread34,'string')); b2_1=str2double(get(handles.edit11,'string'));b2_2=str2double(get(handles.edit12,'string')); b2_3=str2double(get(handles.edit13,'string'));b2_4=str2double(get(handles.edit14,'string')); c2_1=str2double(get(handles.edit19,'string'));c2_2=str2double(get(handles.edit20,'string')); c2_3=str2double(get(handles.edit21,'string'));c2_4=str2double(get(handles.edit22,'string')); d2_1=str2double(get(handles.edit27,'string'));d2_2=str2double(get(handles.edit28,'string')); d2_3=str2double(get(handles.edit29,'string'));d2_4=str2double(get(handles.edit30,'string')); hsl_spread_total=[b1_1,b1_2,b1_3,b1_4,b2_1,b2_2,b2_3,b2_4;c1_1,c1_2,c1_3,c1_4,c2_1,c2_2,c2_3,c2_4;d1_1,d1_2,d1_3,d1_4,d2_1,d2_2,d2_3,d2_4]; des11=str2double(get(handles.text247,'string'));des12=str2double(get(handles.text250,'string')); des13=str2double(get(handles.text253,'string'));des14=str2double(get(handles.text256,'string')); des15=str2double(get(handles.text268,'string'));des16=str2double(get(handles.text259,'string')); des17=str2double(get(handles.text260,'string'));des18=str2double(get(handles.text261,'string')); des21=str2double(get(handles.text248,'string'));des22=str2double(get(handles.text251,'string')); des23=str2double(get(handles.text254,'string'));des24=str2double(get(handles.text257,'string')); des25=str2double(get(handles.text262,'string'));des26=str2double(get(handles.text263,'string')); des27=str2double(get(handles.text264,'string'));des28=str2double(get(handles.text269,'string')); des31=str2double(get(handles.text249,'string'));des32=str2double(get(handles.text252,'string')); des33=str2double(get(handles.text255,'string'));des34=str2double(get(handles.text258,'string')); des35=str2double(get(handles.text265,'string'));des36=str2double(get(handles.text266,'string')); des37=str2double(get(handles.text267,'string'));des38=str2double(get(handles.text270,'string')); hsl_despread_total=[des11,des12,des13,des14,des15,des16,des17,des18;des21,des22,des23,des24,des25,des26,des27,des28;des31,des32,des33,des34,des35,des36,des37,des38]; siglen = 1000; numerrmin = 5; numerr = 0; while (numerr<numerrmin) [Num,Rat,Ind]=symerr(hsl_spread_total,hsl_despread_total); numerr=numerr+1; end [ber,intv1] = berconfint(Num,siglen,.98); g={['User1'],[num2str(Ind(1,1)) ' errror'],[num2str(Ind(1,2)) ' errror'],[num2str(Ind(1,3)) ' errror'],[num2str(Ind(1,4)) ' errror'],... [num2str(Ind(1,5)) ' errror'],[num2str(Ind(1,6)) ' errror'],[num2str(Ind(1,7)) ' errror'],[num2str(Ind(1,8)) ' errror'],... ['jumlah Error= ',num2str(Ind(1,1)+Ind(1,2)+Ind(1,3)+Ind(1,4)+Ind(1,5)+Ind(1,6)+Ind(1,7)+Ind(1,8))],... ['User2'],[num2str(Ind(2,1)) ' errror'],[num2str(Ind(2,2)) ' errror'],[num2str(Ind(2,3)) ' errror'],[num2str(Ind(2,4)) ' errror'],...

Page 118: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

[num2str(Ind(2,5)) ' errror'],[num2str(Ind(2,6)) ' errror'],[num2str(Ind(2,7)) ' errror'],[num2str(Ind(2,8)) ' errror'],... ['jumlah Error= ',num2str(Ind(2,1)+Ind(2,2)+Ind(2,3)+Ind(2,4)+Ind(2,5)+Ind(2,6)+Ind(2,7)+Ind(2,8))],... ['User3'],[num2str(Ind(3,1)) ' errror'],[num2str(Ind(3,2)) ' errror'],[num2str(Ind(3,3)) ' errror'],[num2str(Ind(3,4)) ' errror'],... [num2str(Ind(3,5)) ' errror'],[num2str(Ind(3,6)) ' errror'],[num2str(Ind(3,7)) ' errror'],[num2str(Ind(3,8)) ' errror'],... ['jumlah Error= ',num2str(Ind(3,1)+Ind(3,2)+Ind(3,3)+Ind(3,4)+Ind(3,5)+Ind(3,6)+Ind(3,7)+Ind(3,8))],... ['Total Error = ',num2str(Num)],['BER = ',num2str(ber)],['Ratio = ',num2str(Rat)]}; set(handles.listbox2,'string',g) % -------------------------------------------------------------------- function File_save_Callback(hObject, eventdata, handles) % hObject handle to File_save (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) uisave; % -------------------------------------------------------------------- function file_close_Callback(hObject, eventdata, handles) pilihan = questdlg(['Keluar ',get(handles.figure1,'Name') ' ?'],... ['Keluar ',get(handles.figure1,'Name') '...'],... 'Ya','Tidak','Ya'); if strcmp(pilihan,'Tidak') return; end delete(handles.figure1) % hObject handle to file_close (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function file_mmse_Callback(hObject, eventdata, handles) % hObject handle to file_mmse (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) About_mmse % -------------------------------------------------------------------- function File_me_Callback(hObject, eventdata, handles) % hObject handle to File_me (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % -------------------------------------------------------------------- function Untitled_4_Callback(hObject, eventdata, handles) % hObject handle to Untitled_4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton31. function pushbutton31_Callback(hObject, eventdata, handles)

Page 119: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

input11=str2double(get(handles.edit1,'string')); input12=str2double(get(handles.edit4,'string')); input21=str2double(get(handles.edit2,'string')); input22=str2double(get(handles.edit5,'string')); input31=str2double(get(handles.edit3,'string')); input32=str2double(get(handles.edit6,'string')); input_total=[input11,input12;input21,input22;input31,input32]; for i=1:3 for j=1:2 if input_total(i,j)<1 input_total(i,j)=-1; else input_total(i,j)=1; end end end data1=input_total(1,:); data2=input_total(2,:); data3=input_total(3,:); N=length(data1); % jumlah bit (bit rate) fs=str2double(get(handles.edit223,'string')); % frekuensi sampling Ts=1/fs; % Sampling time = 1/fs T=1/N; % Bit time td=[0:Ts:(N*T)-Ts]';% Time vector(data)(transpose) if isnan(input11)| input11>1 | input11<0 errordlg('Data input user belum dimasukkan','Input salah','modal'); elseif isnan(input12)| input12>1 |input12<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(input21)| input21>1 |input21<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(input22)| input22>1 |input22<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(input31)| input31>1 |input31<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(input32)| input31>1 |input32<0 errordlg('Anda harus mengisikan angka biner 1 atau 0','Input salah','modal'); elseif isnan(fs) errordlg('frekuensi sampling belum dimasukkan','Input salah','modal'); else %data user 1 data11=ones(T/Ts,1)*data1; data21=data11(:);axes(handles.axes16) plot(td,data21),grid on,xlabel(' Time') ylabel('Amplitude');title('User 1');axis([0 1 -2 2]); % data user 2 data12=ones(T/Ts,1)*data2; data22=data12(:);axes(handles.axes17) plot(td,data22),grid on,xlabel(' Time') ylabel('Amplitude');title('User 2');axis([0 1 -2 2]); % data user 3 data13=ones(T/Ts,1)*data3; data23=data13(:);axes(handles.axes18) plot(td,data23),grid on,xlabel(' Time')

Page 120: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

ylabel('Amplitude');title('User 3');axis([0 1 -2 2]); % clear grafik total axes(handles.axes19) handles.user_all=0; plot(handles.user_all),grid on end text5=get(handles.pushbutton31,'value'); if text5==1; set(handles.text275,'string','Data input user','position',[0.6 21.46 18 1]); set(handles.text276,'string','','position',[0.6 21.46 1 1]); set(handles.edit224,'string',Ts); set(handles.edit225,'string',N); set(handles.edit226,'string',T); end % hObject handle to pushbutton31 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) function edit222_Callback(hObject, eventdata, handles) % hObject handle to edit222 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit222 as text % str2double(get(hObject,'String')) returns contents of edit222 as a double % --- Executes during object creation, after setting all properties. function edit222_CreateFcn(hObject, eventdata, handles) % hObject handle to edit222 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit223_Callback(hObject, eventdata, handles) % hObject handle to edit223 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit223 as text % str2double(get(hObject,'String')) returns contents of edit223 as a double % --- Executes during object creation, after setting all properties. function edit223_CreateFcn(hObject, eventdata, handles) % hObject handle to edit223 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows.

Page 121: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit224_Callback(hObject, eventdata, handles) % hObject handle to edit224 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit224 as text % str2double(get(hObject,'String')) returns contents of edit224 as a double % --- Executes during object creation, after setting all properties. function edit224_CreateFcn(hObject, eventdata, handles) % hObject handle to edit224 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function edit225_Callback(hObject, eventdata, handles) % hObject handle to edit225 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit225 as text % str2double(get(hObject,'String')) returns contents of edit225 as a double % --- Executes during object creation, after setting all properties. function edit225_CreateFcn(hObject, eventdata, handles) % hObject handle to edit225 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbutton32. function pushbutton32_Callback(hObject, eventdata, handles) % hObject handle to pushbutton32 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) pan function edit226_Callback(hObject, eventdata, handles) % hObject handle to edit226 (see GCBO)

Page 122: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit226 as text % str2double(get(hObject,'String')) returns contents of edit226 as a double % --- Executes during object creation, after setting all properties. function edit226_CreateFcn(hObject, eventdata, handles) % hObject handle to edit226 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in pushbutton33. function pushbutton33_Callback(hObject, eventdata, handles) axes(handles.axes16) plot(handles.tiq,handles.si1),grid on axes(handles.axes17) plot(handles.tiq,handles.si2),grid on axes(handles.axes18) plot(handles.tiq,handles.si3),grid on % axes(handles.axes19) % plot(handles.tiq,handles.si),grid on % hObject handle to pushbutton33 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton34. function pushbutton34_Callback(hObject, eventdata, handles) % hObject handle to pushbutton34 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton35. function pushbutton35_Callback(hObject, eventdata, handles) axes(handles.axes16) plot(handles.tiq,handles.sq1),grid on axes(handles.axes17) plot(handles.tiq,handles.sq2),grid on axes(handles.axes18) plot(handles.tiq,handles.sq3),grid on % hObject handle to pushbutton35 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % --- Executes on button press in pushbutton36.

Page 123: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

B

HASIL PENGAMATAN

Page 124: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

Hasil Pengamatan

1. Hasil proses spreading (penyebaran)

a. Saat bit-bit masukan pengguna : 0 0 , 0 1, 1 0, 1 1

spreading code tipe 1 : 1 0 1 0

1 1 0 0

1 0 0 1

Input

Bit 1 Bit 2

Spreading code

Hasil spreading masing–masing pengguna

Spreading total ketiga pengguna

Bit rate

0 0 1 0 1 0 [-1 1 -1 1 -1 1 -1 1]

0 0 1 1 0 0 [-1 -1 1 1 -1 -1 1 1]

0 0 1 0 0 1 [-1 1 1 -1 -1 1 1 -1]

[-3 1 1 1 -3 1 1 1]

8 bps

0 1 1 0 1 0 [-1 1 -1 1 1 -1 1 -1]

0 1 1 1 0 0 [-1 -1 1 1 1 1 -1 -1]

0 1 1 0 0 1 [-1 1 1 -1 1 -1 -1 1]

[-3 1 1 1 3 -1 -1 -1]

8 bps

1 0 1 0 1 0 [ 1 -1 1 -1 -1 1 -1 1]

1 0 1 1 0 0 [ 1 1 -1 -1 -1 -1 1 1]

1 0

1 0 0 1 [ 1 -1 -1 1 -1 1 1 -1]

[3 -1 -1 -1 -3 1 1 1]

8 bps

1 1

1 0 1 0 [ 1 -1 1 -1 1 -1 1 -1]

1 1 1 1 0 0 [ 1 1 -1 -1 1 1 -1 -1]

1 1 1 0 0 1 [ 1 -1 -1 1 1 -1 -1 1]

[3 -1 -1 -1 3 -1 -1 -1]

8 bps

b. Saat bit-bit masukan pengguna : 0 0, 0 1, 1 0,1 1

spreading code tipe 2 : 1 0 1 0

1 1 0 0

1 0 0 1

Page 125: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

Input

Bit 1 Bit 2

Spreading code

Hasil spreading masing–masing pengguna

Spreading total ketiga pengguna

Bitrate

0 0 0 1 0 1 [1 -1 1 -1 1 -1 1 -1]

0 0 0 0 1 1 [1 1 -1 -1 1 1 -1 -1]

0 0 0 1 1 0 [1 -1 -1 1 1 -1 -1 1]

[3 -1 -1 -1 3 -1 -1 -1]

8 bps

0 1 0 1 0 1 [1 -1 1 -1 -1 1 -1 1]

0 1 0 0 1 1 [1 1 -1 -1 -1 -1 1 1]

0 1 0 1 1 0 [1 -1 -1 1 -1 1 1 1]

[3 -1 -1 -1 -3 1 1 1]

8 bps

1 0 0 1 0 1 [-1 1 -1 1 1 -1 1 -1]

1 0 0 0 1 1 [-1 -1 1 1 1 1 -1 -1]

[-3 1 1 1 3 -1 -1 -1]

8 bps

1 0 0 1 1 0 [-1 1 1 -1 1 -1 -1 1]

1 1 0 1 0 1 [-1 1 -1 1 -1 1 -1 1]

1 1 0 0 1 1 [-1 -1 1 1 -1 -1 1 1]

1 1 0 1 1 0 [-1 1 1 -1 -1 1 1 -1]

[-3 1 1 1 -3 1 1 1] 8 bps

2. Hasil proses modulasi QPSK

a. Saat menggunakan spreading codes tipe 1

Input

Bit 1 Bit 2

Hasil spreading (Hs) masing–masing pengguna

Kanal I

⎟⎠⎞

⎜⎝⎛

+4

2cos2π

πfxHs

Kanal Q

⎟⎠⎞

⎜⎝⎛

+4

2sin2π

πfxHs

0 0 [1 -1 1 -1 1 -1 1 -1] [ 1.00 1.00 1.00 1.00] [-1.00 -1.00 -1.00 -1.00]

0 0 [1 1 -1 -1 1 1 -1 -1] [ 1.00 -1.00 1.00 -1.00]

[ 1.00 -1.00 1.00 -1.00]

0 0 [1 -1 -1 1 1 -1 -1 1] [ 1.00 -1.00 1.00 -1.00]

[-1.00 1.00 -1.00 1.00]

0 1 [1 -1 1 -1 -1 1 -1 1] [ 1.00 1.00 -1.00 -1.00]

[-1.00 -1.00 1.00 1.00]

0 1 [1 1 -1 -1 -1 -1 1 1] [1.00 -1.00 -1.00 1.00]

[ 1.00 -1.00 -1.00 1.00]

0 1 [1 -1 -1 1 -1 1 1 1] [ 1.00 -1.00 -1.00 1.00] [-1.00 1.00 1.00 1.00]

1 0 [-1 1 -1 1 1 -1 1 -1] [-1.00 -1.00 1.00 1.00]

[ 1.00 1.00 -1.00 -1.00]

1 0 [-1 -1 1 1 1 1 -1 -1] [-1.00 1.00 1.00 -100]

[ -1.00 1.00 1.00 -1.00]

1 0 [-1 1 1 -1 1 -1 -1 1] [-1.00 1.00 1.00 -1.00]

[ 1.00 -1.00 -1.00 1.00]

1 1 [-1 1 -1 1 -1 1 -1 1] [-1.00 -1.00 -1.00 -1.00]

[ 1.00 1.00 1.00 1.00]

1 1 [-1 -1 1 1 -1 -1 1 1] [-1.00 1.00 -1.00 1.00] [-1.00 1.00 -1.00 1.00]

1 1 [-1 1 1 -1 -1 1 1 -1] [-1.00 1.00 -1.00 1.00] [ 1.00 -1.00 1.00 -1.00]

Page 126: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

b. Saat menggunakan spreading codes tipe 2

Input

Bit 1 Bit 2

Hasil spreading masing–masing pengguna

Kanal I

⎟⎠⎞

⎜⎝⎛

+4

2cos2π

πfxHs

Kanal Q

⎟⎠⎞

⎜⎝⎛

+4

2sin2π

πfxHs

0

0

[-1 1 -1 1 -1 1 -1 1] [-1.00 -1.00 -1.00 -1.00]

[ 1.00 1.00 1.00 1.00]

0

0

[-1 -1 1 1 -1 -1 1 1] [-1.00 1.00 -1.00 1.00]

[-1.00 1.00 -1.00 1.00]

0 0 [-1 1 1 -1 -1 1 1 - 1] [-1.00 1.00 -1.00 1.00]

[1.00 -1.00 1.00 -1.00]

0

1 [-1 1 -1 1 1 -1 1 -1] [-1.00 -1.00 1.00 1.00]

[1.00 1.00 -1.00 -1.00]

0

1

[-1 -1 1 1 1 1 -1 -1] [-1.00 1.00 1.00 -1.00]

[-1.00 1.00 1.00 -1.00]

0 1 [-1 1 1 -1 1 -1 -1 1] [-1.00 1.00 1.00 -1.00]

[1.00 -1.00 -1.00 1.00]

1

0 [ 1 - 1 1 -1 -1 1 -1 1]

[ 1.00 1.00 -1.00 -1.00]

[-1.00 -1.00 1.00 1.00]

1

0

[ 1 1 -1 -1 -1 -1 1 1] [ 1.00 -1.00 -1.00 1.00]

[1.00 -1.00 -1.00 1.00]

1 0 [ 1 -1 -1 1 -1 1 1 -1] [ 1.00 -1.00 -1.00 1.00]

[-1.00 1.00 1.00 -1.00]

1

1 [ 1 -1 1 -1 1 -1 1 -1]

[ 1.00 1.00 1.00 1.00]

[-1.00 -1.00 -1.00 -1.00]

1

1

[ 1 1 -1 -1 1 1 -1 -1] [ 1.00 -1.00 1.00 -1.00]

[1.00 -1.00 1.00 -1.00]

1 1 [ 1 -1 -1 1 1 -1 -1 1] [ 1.00 -1.00 1.00 -1.00]

[-1.00 1.00 -1.00 1.00]

Page 127: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

3. Hasil proses modulasi QPSK total Input Bit 1 Bit 2

Bit 1

Bit 2

Kanal I

Kanal Q

Kanal I

Kanal Q

Kanal I

Kanal Q

Kanal I

Kanal Q

SNR

3.607 -0.084 -0.793 -1.982 3.778 -1.966 -0.768 -1.723 0 dB 0 0 0

0 0 0 3.081 -1.067 -1.062 -1.014 3.003 -1.002 -1.074 -0.948 16.6 dB

4.054 -0.620 -1.619 -0.568 -3.128 1.086 0.455 0.075 0 dB 0 0 0

1 1 1 3.007 -1.064 -1.014 -1.072 -2.964 0.975 0.934 1.051 16.6 dB

-2.239 0.200 -0.157 1.961 3.554 -1.259 -3.145 -1.505 0 dB 1 1 1

0 0 0 -2.999

1.044 0.946 1.016 2.965 -0.987 -0.927 -0.919 16.6 dB

-2.681 1.021 0.077 -0.155 -2.772 0.022 0.635 -0.028 0 dB 1 1 1

1 1 1

-2.938 0.929 0.982 1.027 -3.037 0.996 0.954 1.082 16.6 dB

-1.534 2.987

1.081 -2.373 -0.746 -1.565 2.749 0.724 0 dB 1 0 1

0 1 1 -0.982 3.034 -1.049 -1.008 -1.061 -0.930 3.007 -1.064 16.6 dB

4. Hasil proses demodulasi QPSK total

Input Bit 1 Bit 2

Bit 1

Bit 2

Kanal I

Kanal Q

Kanal I

Kanal Q

Kanal I

Kanal Q

Kanal I

Kanal Q

SNR

3.607 -0.084 -0.793 -1.982 3.778 -1.966 -0.768 -1.723 0 dB 0 0 0

0 0 0 3.081 -1.067 -1.062 -1.014 3.003 -1.002 -1.074 -0.948 16.6 dB

4.054 -0.620 -1.619 -0.568 -3.128 1.086 0.455 0.075 0 dB 0 0 0

1 1 1

3.007 -1.064 -1.014 -1.072 -2.964 0.975 0.934 1.051 16.6 dB

-2.239 0.200 -0.157 1.961 3.554 -1.259 -3.145 -1.505 0 dB 1 1 1

0 0 0

-2.999

1.044 0.946 1.016 2.965 -0.987 -0.927 -0.919 16.6 dB

-2.681 1.021 0.077 -0.155 -2.772 0.022 0.635 -0.028 0 dB 1 1 1

1 1 1 -2.938 0.929 0.982 1.027 -3.037 0.996 0.954 1.082 16.6 dB

-1.534 2.987

1.081 -2.373 -0.746 -1.565 2.749 0.724 0 dB 1 0 1

0 1 1 -0.982 3.034 -1.049 -1.008 -1.061 -0.930 3.007 -1.064 16.6 dB

Page 128: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

5. Hasil proses despreading pada matched filter

Bit input Hasil Despreading Pengguna Bit 1 Bit 2 Bit 1 Bit 2

SNR

3.78

1.97

-0.77

1.72

3.61

0.08

-0.79

1.98

-3.13

-1.09

0.46

-0.07

4.05

0.62

-1.62

0.57

3.55

1.26

-3.15

1.50

-2.24

-0.20

-0.16

-1.96

-2.77

-0.02

0.64

0.03

-2.68

-1.02

0.08

0.16

0 dB

3.00

1.00

-1.07

0.95

3.08

1.07

-1.06

1.01

-2.96

-0.97

Pengguna 1

0

0.93

-1.05

3.01

1.06

-1.01

1.07

2.96

0.99

0.93

0.92

-3.00

-1.04

0.95

-1.02

0

1

1

0

1

0

1

3.04

-1.00

0.95

-1.08

-2.94

-0.93

0.98

-1.03

16.6 dB

3.78

1.97

-0.77

1.72

3.61

0.08

-0.79

1.98

-3.13

-1.09

-0.46

-0.07

4.05

-0.62

1.62

0.57

3.55

-1.26

3.15

1.50

-2.24

0.20

0.16

-1.96

-2.77

0.02

-0.64

0.03

-2.68

1.02

-0.08

0.16

0 dB

3.00

-1.00

1.07

0.95

3.08

-1.07

-1.06

Pengguna 2

0

1.01

-2.96

0.97

-0.93

-1.05

3.01

-1.06

1.01

1.07

2.96

-0.99

0.93

0.92

-3.00

1.04

-0.95

-1.02

0

1

1

0

1

0

1

3.04

0.95

-1.08

-2.94

-0.93

0.98 -1.00

-1.03

16.6 dB

3.78

1.97

-0.77

1.72

3.61

0.08

-0.79

1.98

-3.13

-1.09

-0.46

0.07

4.05

0.62

1.62

-0.57

3.55

1.26

3.15

-1.50

-2.24

-.020

0.16

1.96

-2.77

-0.02

0.64

0.03

-2.68

-1.02

-0.08

-0.16

0 dB

3.00

1.00

1.07

-0.95

3.08

1.07

1.06

-1.01

Pengguna 3

0

0

-2.96

-0.97

-0.93

1.05

3.01

1.06

1.01

-1.07

2.96

0.99

0.93

-0.92

-3.00

-1.04

-0.95

1.02

0

1

0

1

1

1

-3.04

-1.00

-0.95

1.08

-2.94

-0.93

-0.98

1.03

16.6 dB

Page 129: repository.usd.ac.idrepository.usd.ac.id/28364/2/015114074_Full.pdf · HALAMAN MOTTO DAN PERSEMBAHAN Takut akan kegagalan seharusnya tidak menjadi alasan untuk tidak mencoba sesuatu.

6. Hasil estimasi pada detektor MMSE

Bit awal Estimasi output

Bit yang diterima

Hasil koneversi

Pengguna

Bit 1 Bit 2 Bit 1 Bit 2 Bit 1 Bit 2 Bit 1 Bit 2

SNR

Error

0

0

-1.220

-1.675

-1

-1

0

0

0

1

-0.906

0.959

-1

1

0

1

1

0

1.139

-0.793

1

-1

1

0

1

1

0.868

0.533

1

1

1

0 dB

1

0

0

-1.025

-0.970

-1

-1

0

0

0

1

-1.032

1.014

-1

1

0

1

1

0

1.028

-0.986

1

-1

1

0

Pengguna 1

1

1

0.978

1.040

1

1

1

1

16.6 dB

0

0

-1.575

-1.076

-1

-1

0

0

0

1

-1.405

0.643

-1

1

0

1

1

0

0.961

-1.736

1

-1

1

0

1

0.396

0.839

0

1

1

1

0 dB

1

0 0

-1.023

-1.006

-1

-1

0

0

0

1

-1.007

0.994

-1

1

0

1

1

0

0.979

-0.956

1

-1

1

0

Pengguna 2

1

1

1.005

1.019

1

1

1

1

16.6 dB

0

0

-0.625

-1.197

-1

-1

0

0

0

1

-1.431

1.149

-1

1

0

1

1

0

0.080

-1.613

1

-1

1

0

1

1

0.983

0.864

1

1

1

1

0 dB

0

0

-1.049

-1.033

-1

-1

0

0

Pengguna 3

0

1

-1.003

0.956

-1

1

1

0

16.6 dB

1 0 0.993 -0.990 1 -1 1 0

1 1 0.956 0.976 1 1 1 1