LAMPIRAN 1. Flowchart Algoritma Simulasi Kinerja OFCDM

dokumen-dokumen yang mirip
LAMPIRAN A SOURCE CODE PROGRAM

BAB I PENDAHULUAN 1.1. Latar Balakang 1.2. Perumusan Masalah

BAB IV PEMODELAN SIMULASI

BAB III METODOLOGI PENELITIAN

BAB III PEMODELAN MIMO OFDM DENGAN AMC

ANALISA KINERJA SISTEM KOOPERATIF BERBASIS MC- CDMA PADA KANAL RAYLEIGH MOBILE DENGAN DELAY DAN DOPPLER SPREAD

PERBANDINGAN KINERJA ANTARA OFDM DAN OFCDM PADA TEKNOLOGI WiMAX

BAB III METODOLOGI PENELITIAN

ANALISIS UNJUK KERJA TEKNIK MIMO STBC PADA SISTEM ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING

TUGAS AKHIR PEMODELAN DAN SIMULASI ORTHOGONAL FREQUENCY AND CODE DIVISION MULTIPLEXING (OFCDM) PADA SISTEM KOMUNIKASI WIRELESS OLEH

ANALISIS UNJUK KERJA CODED OFDM MENGGUNAKAN KODE CONVOLUTIONAL PADA KANAL AWGN DAN RAYLEIGH FADING

BAB III PEMODELAN SISTEM

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB IV SIMULASI DAN UNJUK KERJA MODULASI WIMAX

BAB II LANDASAN TEORI

BAB IV HASIL SIMULASI DAN ANALISIS

BAB I PENDAHULUAN. 1.1 Latar Belakang. Bab II Landasan teori

Analisa Kinerja Orthogonal Frequency Division Multiplexing (OFDM) Berbasis Perangkat Lunak

BAB II LANDASAN TEORI

Presentasi Tugas Akhir

ISSN : e-proceeding of Engineering : Vol.3, No.2 Agustus 2016 Page 1654

Gambar 1.1 Pertumbuhan global pelanggan mobile dan wireline [1].

Simulasi MIMO-OFDM Pada Sistem Wireless LAN. Warta Qudri /

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB I PENDAHULUAN 1. 1 LATAR BELAKANG

Analisis Penanggulangan Inter Carrier Interference di OFDM Menggunakan Zero Forcing Equalizer

KINERJA SISTEM MUD-PIC MULTICARRIER CDMA DENGAN MODULASI QPSK

BAB II POWER CONTROL CDMA PADA KANAL FADING RAYLEIGH

KINERJA SISTEM OFDM MELALUI KANAL HIGH ALTITUDE PLATFORM STATION (HAPS) LAPORAN TUGAS AKHIR. Oleh: YUDY PUTRA AGUNG NIM :

BAB I PENDAHULUAN. Seluruh mata rantai broadcasting saat ini mulai dari proses produksi

BAB I PENDAHULUAN 1.1 Latar Belakang

Analisa Kinerja Alamouti-STBC pada MC CDMA dengan Modulasi QPSK Berbasis Perangkat Lunak

Analisis Kinerja Modulasi M-PSK Menggunakan Least Means Square (LMS) Adaptive Equalizer pada Kanal Flat Fading

IMPLEMENTASI MULTIPATH FADING RAYLEIGH MENGGUNAKAN TMS320C6713

ANALISIS KINERJA TEKNIK REDUKSI PAPR DENGAN METODA TONE RESERVATION

Estimasi Doppler Spread pada Sistem Orthogonal Frequency Division Multiplexing (OFDM) dengan Metode Phase Difference

STUDI BIT ERROR RATE UNTUK SISTEM MC-CDMA PADA KANAL FADING NAKAGAMI-m MENGGUNAKAN EGC

BAB IV HASIL DAN ANALISIS

Analisa Sistem DVB-T2 di Lingkungan Hujan Tropis

EVALUASI KINERJA TEKNIK ESTIMASI KANAL BERDASARKAN POLA PENGATURAN SIMBOL PILOT PADA SISTEM OFDM

ANALISIS KINERJA SISTEM KOOPERATIF BERBASIS MC-CDMA PADA KANAL RAYLEIGH MOBILE DENGAN DELAY DAN DOPPLER SPREAD

BAB III MODEL SISTEM CLOSED-LOOP POWER CONTROL PADA CDMA

LAMPIRAN A LISTING PROGRAM

Perancangan dan Pengujian Desain Sinkronisasi Waktu dan Frekuensi

Unjuk kerja Trellis Code Orthogonal Frequency Division Multiplexing (TCOFDM) pada kanal Multipath Fading (Andreas Ardian Febrianto)

BAB I PENDAHULUAN. Tuntutan kebutuhan manusia untuk dapat berkomunikasi di segala tempat,

ABSTRAK. 2. PERENCANAAN SISTEM DAN TEORI PENUNJANG Perencanaan sistem secara sederhana dalam tugas akhir ini dibuat berdasarkan blok diagram berikut:

PENGUJIAN TEKNIK FAST CHANNEL SHORTENING PADA MULTICARRIER MODULATION DENGAN METODA POLYNOMIAL WEIGHTING FUNCTIONS ABSTRAK

LAMPIRAN A. File ini merupakan fungsi utama untuk menjalankan simulasi standar IS-95 untuk forward link.

BAB III DISCRETE FOURIER TRANSFORM SPREAD OFDM

BAB II ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING (OFDM) (multicarrier) yang saling tegak lurus (orthogonal). Pada prinsipnya, teknik OFDM

Analisis Unjuk Kerja Convolutional Code pada Sistem MIMO MC-DSSS Melalui Kanal Rayleigh Fading

Politeknik Negeri Malang Sistem Telekomunikasi Digital Page 1

Gambar 1. Blok SIC Detektor untuk Pengguna ke-1 [4]

BAB IV HASIL SIMULASI DAN ANALISIS

BAB III PERANCANGAN MODEL KANAL DAN SIMULASI POWER CONTROL DENGAN MENGGUNAKAN DIVERSITAS ANTENA

ANALISIS MODEM AKUSTIK OFDM MENGGUNAKAN TMS320C6416 PADA LINGKUNGAN KANAL BAWAH AIR

Perancangan MMSE Equalizer dengan Modulasi QAM Berbasis Perangkat Lunak

Analisis Kinerja Jenis Modulasi pada Sistem SC-FDMA

TEKNIK EQUALIZER UNTUK SISTEM ORTHOGONAL FREQUENCY DIVISON MULTIPLEXING (OFDM) PADA KANAL MOBILE TUGAS AKHIR

BAB III PERANCANGAN SISTEM DAN SIMULASI

ANALISIS PENANGGULANGAN INTER-CARRIER INTERFERENCE PADA TEKNOLOGI OFDM DENGAN METODE M-TAPS MINIMUM MEAN-SQUARE- ERROR PADA MODULASI QPSK

Simulasi Dan Analisa Efek Doppler Terhadap OFDM Dan MC-CDMA

BAB IV HASIL SIMULASI DAN ANALISA

SIMULASI PERBANDINGAN KINERJA MODULASI M-PSK DAN M-QAM TERHADAP LAJU KESALAHAN DATA PADA SISTEM ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING (OFDM)

PERHITUNGAN BIT ERROR RATE PADA SISTEM MC-CDMA MENGGUNAKAN GABUNGAN METODE MONTE CARLO DAN MOMENT GENERATING FUNCTION.

ANALISIS UNJUK KERJA EKUALIZER PADA SISTEM KOMUNIKASI DENGAN ALGORITMA GODARD

TUGAS AKHIR ANALISIS KINERJA ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING PADA SISTEM DVB-T (DIGITAL VIDEO BROADCASTING TERRESTRIAL)

Analisis Estimasi Kanal Dengan Menggunakan Metode Invers Matrik Pada Sistem MIMO-OFDM

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

ANALISA KINERJA ESTMASI KANAL DENGAN INVERS MATRIK PADA SISTEM MIMO. Kukuh Nugroho 1.

BAB III MODEL SISTEM MIMO OFDM DENGAN SPATIAL MULTIPLEXING

BAB IV HASIL SIMULASI DAN ANALISIS

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

KINERJA TEKNIK SINKRONISASI FREKUENSI PADA SISTEM ALAMOUTI-OFDM

BAB 3 PERANCANGAN SISTEM

BAB II KANAL WIRELESS DAN DIVERSITAS

ANALISIS UNJUK KERJA EKUALIZER KANAL ADAPTIF DENGAN MENGGUNAKAN ALGORITMA SATO

TUGAS AKHIR ANALISIS BER OFDM DENGAN MENGGUNAKAN LOW-DENSITY PARITY-CHECK (LDPC) PADA SISTEM DVB-T (DIGITAL VIDEO BROADCASTING TERRESTRIAL)

KEMENTRIAN PENDIDIKAN DAN KEBUDAYAAN UNIVERSITAS BRAWIJAYA FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO

SIMULASI TEKNIK MODULASI OFDM QPSK DENGAN MENGGUNAKAN MATLAB

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

BAB II DASAR TEORI. Gambar 2.1. Pemancar dan Penerima Sistem MC-CDMA [1].

UNIVERSITAS INDONESIA SIMULASI DAN ANALISA KINERJA SISTEM MIMO OFDM-FDMA BERDASARKAN ALOKASI SUBCARRIER SKRIPSI

III. METODE PENELITIAN

Analisa Kinerja Sistem MIMO-OFDM Pada Estimasi Kanal LS Untuk Modulasi m-qam

KINERJA SISTEM MULTIUSER DETECTION SUCCESSIVE INTERFERENCE CANCELLATION MULTICARRIER CDMA DENGAN MODULASI M-QAM

Tekno Efisiensi Jurnal Ilmiah KORPRI Kopertis Wilayah IV, Vol 1, No. 1, Mei 2016

LAMPIRAN. Lampiran 1 Program Membuat Grafik BER vs SNR dengan Kendali Daya dan tanpa Kendali daya

Analisis Unjuk Kerja Decision Feedback Equalizer Pada Sistem SCFDMA

Visualisasi dan Analisa Kinerja Kode Konvolusi Pada Sistem MC-CDMA Dengan Modulasi QAM Berbasis Perangkat Lunak

Jurnal JARTEL (ISSN (print): ISSN (online): ) Vol: 3, Nomor: 2, November 2016

Analisa Kinerja Kode Konvolusi pada Sistem Successive Interference Cancellation Multiuser Detection CDMA Dengan Modulasi QPSK Berbasis Perangkat Lunak

ANALISIS KINERJA SPHERE DECODING PADA SISTEM MULTIPLE INPUT MULTIPLE OUTPUT

Visualisasi dan Analisa Kinerja Kode Konvolusi Pada Sistem MC-CDMA Dengan Modulasi QPSK Berbasis Perangkat Lunak

BAB IV HASIL SIMULASI DAN ANALISISNYA

PENGARUH ERROR SINKRONISASI TRANSMISI PADA KINERJA BER SISTEM MIMO KOOPERATIF

BAB 2 DASAR TEORI. Gambar 2.1 Carrier dibagi menjadi beberapa subcarrier. Bila bandwidth keseluruhan adalah W, maka bandwidth masing-masing

BAB I PENDAHULUAN 1.1 Latar Belakang

SIMULASI PENGARUH HAMMING CODE PADA SISTEM OFDM (ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING) MENGGUNAKAN MODULASI QPSK

Transkripsi:

LAMPIRAN 1 Flowchart Algoritma Simulasi Kinerja OFCDM 1. Additive White Gaussian Noise (AWGN) MULAI Input data Para;fftlen; DEFINISI PARAMETER SIMULASI para = 256; fftlen = 256; noc = 256; nd = 6; ml = 2; sr = 25000; br =sr.*ml; gilen = 48; ebno = 3; DEFINISI PARAMETER PENGULANGAN Nloop = 100; noe =0; nod = 0; eop = 0; nop = 0; SELESAI TIDAK Untuk s = 1 sampai 2 TIDAK Untuk eb/no = 1 sampai 15 TIDAK Untuk iii = 1 sampai loop E YA PROSES DI TRANSMITTER DATA DIBANGKITKAN Seldata = rand (1,para*nd*ml)>0.5; KONVERSI DATA SERIAL KE PARAREL Paradata = reshape (seldata, para, nd*ml); FUNGSI qpskmod DIJALANKAN A

A PROSES MODULASI QPSK M2 = ml/2; Paradata = paradata.*2-1; Count 2 =0; PROSES SPREADING 2D Ich1 = ich.*kmod*sr*8; qch1 = qch.*kmod*sr*8; TIDAK untuk jj = 1 sampai nd YA Isi = zeros (para,1); Isq = zeros (para,1); B Iout((1:para),jj) = isi; Qout((1:para),jj) = isq; Count2 = count2 + ml TIDAK untuk ii = 1 sampai m2 YA Isi = isi+2.^(m2-ii).*paradata2((1:para),ii+count2);; Isq = isq+2.^(m2-ii).*paradata2((1:para),ii+count2);;

B Kmod = 1/sqrt(2); Ich1 = ich.*kmod; Qch1 =qch.*kmod PROSES IFFT X = ich1 + qch1.*i; Y = ifft (x); Ich2 = real(y); Qch2 = imag(y); PENYISIPAN GUARD INTERVAL FUNGSI giins DIJALANKAN PROSES PENYISIPAN GUARD INTERVAL Idata1 = reshape (idata,fftlen,nd); Qdata1 = resahpe (qdata,fftlen, nd); Idata2 = [idata1 (fftlen-gilen+1 : fftlen,;); idata1]; Qdata = [qdata1(fftlen-gilen+1:fftlen,:); qdata1]; Iout = reshape (idata2, 1, (fftlen + gilen)*nd); Qout = reshape (qdata,1,(fftlen + gilen)*nd); Fftlen2 = fftlen + gilen; PERHITUNGAN ATENUASI DIJALANKAN Spow = sum (ich3.^2 + qch3.^2)/nd./para; Attn = 0.5*spow*sr/br*10.^(-ebn0/10); Attn = sqrt (attn); C

C PROSES DI RECEIVER FUNGSI comb DIJALANKAN PENAMBAHAN AWGN PADA SIMULASI Iout = randn (1,length (idata)).*attn; Qout = randn (1,length (qdata)).*attn; Iout = iout + idata (1:le ngth(idata)); Qout = qout + qdata (1:length (qdata)) FUNGSI girem DIJALANKAN PROSES PELEPASAN GUARD INTERVAL Idata2 = reshape (idata,fftlen2,nd); Qdata2 = resahpe (qdata,fftlen2, nd); Iout = idata2(gilen+1:fftlen2,;); Qout = qdata2(gilen+1:fftlen2,;); PROSES FFT DIJALANKAN Rx = ich5 + qch5.*i; Ry = fft (rx); Ich6 = real (ry); Qch6 = imag (ry); Proses Despreading 2D PROSES DEMODULASI QPSK Ich7 = ich6./kmod; Qch7 = qch6./kmod; FUNGSI qpskdemod DIJALANKAN D

D PROSES DEMODULASI QPSK Demodata = zeros(para,ml*nd); Demodata((1:para),(1:ml:ml*nd-1)) = idata((1:para),(1:nd))>=0; Demodata((1:para),(2:ml:ml*nd)) = qdata((1:para),(1:nd))>=0; PROSES KONVERSI DATA PARAREL KE SERIAL Demodata1 = reshape (demodata,1,para*nd*ml); PROSES PERHITUNGAN BER Noe2 = sum (abs(demodata1 seldata)); Nod2 = length (seldata); Noe = noe + noe2; Nod = nod + nod2; Ber=noe/nod; NILAI BER DITAMPILKAN E

2. Fading Rayleigh MULAI Input data Ml DEFINISI PARAMETER SIMULASI para = 512; fftlen = 512; noc = 512; nd = 600; ml = 2; sr = 25000; br =sr.*ml; gilen = 48; ebno = 24; PROSES INISIALISASI FADING Tstp = 1/sr/(fftlen+gilen); Itau = [0]; dlvl = [0]; n0 = [6]; th1 = [0.0]; PENGHITUNG FADING Itnd0 = nd*(fftlen+gilen)*10; Itnd1 = [1000]; Now1 = 1; Frkuensi doplper Fd = 200; Flat = 1; DEFINISI PARAMETER PENGULANGAN Nloop = 100; noe =0; nod = 0; eop = 0; nop = 0; SELESAI TIDAK Untuk s = 1 sampai 2 Untuk eb/no = 1 sampai 15 TIDAK TIDAK Untuk iii = 1 sampai loop E YA PROSES DI TRANSMITTER DATA DIBANGKITKAN Seldata = rand (1,para*nd*ml)>0.5; F

B PROSES IFFT X = ich1 + qch1.*i; Y = ifft (x); Ich2 = real(y); Qch2 = imag(y); PROSES PENYISIPAN GUARD INTERVAL FUNGSI giins DIJALANKAN PROSES PENYISIPAN GUARD INTERVAL Idata1 = reshape (idata,fftlen,nd); Qdata1 = resahpe (qdata,fftlen, nd); Idata2 = [idata1 (fftlen-gilen+1 : fftlen,;); idata1]; Qdata = [qdata1(fftlen-gilen+1:fftlen,:); qdata1]; Iout = reshape (idata2, 1, (fftlen + gilen)*nd); Qout = reshape (qdata,1,(fftlen + gilen)*nd); G

G Fftlen2 = fftlen + gilen; PERHITUNGAN ATENUASI DIJALANKAN Spow = sum (ich3.^2 + qch3.^2)/nd./para; Attn = 0.5*spow*sr/br*10.^(-ebn0/10); Attn = sqrt (attn); FUNGSI sefade DIJALANKAN H

H PROSES MEMBANGKITKAN FREKUENSI SELEKTIF FADING Iout = zeros (1,nsamp); Qout = zeros (1,nsamp); Total_attn = sum (10.^(-1.0.*dlvl./10.0)); TIDAK Untuk k = 1 sampai n1; Iout = zeros (1,nsamp); Qout = zeros (1,nsamp); Total_attn = sum (10.^(-1.0.*dlvl./10.0)); YA C Atts = 10.^-0.05.*dlvl(k)); J Jika dlvl (k) = 40.0 YA TIDAK Theta = th(k).*pi./180.0; Atts = 0.0; FUNGSI delay DIJALANKAN I

I PROSES PEMBERIAN DELAY Iout = zeros (1,nsamp); Qout = zeros (1,nsamp); TIDAK Jika idel ~= 0 YA Iout (1:idel) = zeros (1,idel); Qout (1:idel) = zeros (1,idel); Iout (idel+1:nsamp) = idata(1:nsamp-idel); Qout (idel+1:nsamp) = qdata(1:nsamp-idel); J

C PROSES DI RECEIVER FUNGSI comb DIJALANKAN PENAMBAHAN AWGN PADA SIMULASI Iout = randn (1,length (idata)).*attn; Qout = randn (1,length (qdata)).*attn; Iout = iout + idata (1:le ngth(idata)); Qout = qout + qdata (1:length (qdata)) FUNGSI girem DIJALANKAN PROSES PELEPASAN GUARD INTERVAL Idata2 = reshape (idata,fftlen2,nd); Qdata2 = resahpe (qdata,fftlen2, nd); Iout = idata2(gilen+1:fftlen2,;); Qout = qdata2(gilen+1:fftlen2,;); PROSES FFT DIJALANKAN Rx = ich5 + qch5.*i; Ry = fft (rx); Ich6 = real (ry); Qch6 = imag (ry); Proses Despreading 2D PROSES DEMODULASI QPSK Ich7 = ich6./kmod; Qch7 = qch6./kmod; FUNGSI qpskdemod DIJALANKAN D

D PROSES DEMODULASI QPSK Demodata = zeros(para,ml*nd); Demodata((1:para),(1:ml:ml*nd-1)) = idata((1:para),(1:nd))>=0; Demodata((1:para),(2:ml:ml*nd)) = qdata((1:para),(1:nd))>=0; PROSES KONVERSI DATA PARAREL KE SERIAL Demodata1 = reshape (demodata,1,para*nd*ml); PROSES PERHITUNGAN BER Noe2 = sum (abs(demodata1 seldata)); Nod2 = length (seldata); Noe = noe + noe2; Nod = nod + nod2; Ber=noe/nod; NILAI BER DITAMPILKAN E

LAMPIRAN 2 Program Simulasi 1. Script File ofcdm.m % ofcdm.m % Program simulasi untuk mapatkan kinerja BER sistem OFCDM yang dipengaruhi % kanal AWGN %****************** Bagian Persiapan ****************** clear all; clc; para=128; fftlen=128; noc=128; nd=6; ml=2; sr=250000; br=sr.*ml; gilen=32; ebn0=10:10:50; % Jumlah kanal paralel yang ditransmisikan % Panjang FFT % Jumlah carrier % Jumlah simbol OFCDM untuk satu loop % Level modulasi : QPSK % Symbol rate % Bit rate per carrier % Panjang guard interval (points) % Eb/N0 %******************** Bagian Main Loop ****************** nloop=100; % Jumlah loop simulasi noe = 0; % Jumlah data error nod = 0; % Jumlah data yang ditransmisikan for s = 1:2 for ss = 1:5 for iii=1:nloop %********************* Transmitter ********************** %****************** Pembangkitan Data ******************* seldata=rand(1,para*nd*ml) > 0.5; % rand : dibangun di dalam fungsi %********** Konversi Dari Serial Ke Parallel ************ paradata=reshape(seldata,para,nd*ml); % reshape : dibangun di dalam fungsi %******************* Modulasi QPSK ****************** [ich,qch]=qpskmod(paradata,para,nd,ml);

fungsi kmod=1/sqrt(2); % sqrt : dibangun di dalam if s == 1; ich1=ich.*kmod; qch1=qch.*kmod; elseif s == 2; ich1=ich.*kmod*sr*8; qch1=qch.*kmod*sr*8; % proses spreading % proses spreading % [ich1,qch1]=crmapping(ich1,qch1,fftlen,nd); %************************ IFFT ************************ x=ich1+qch1.*i; y=ifft(x); ich2=real(y); qch2=imag(y); % ifft : dibangun di dalam fungsi % real : dibangun di dalam fungsi % imag : dibangun di dalam fungsi %************** Penyisipan Guard Interval *************** [ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); fftlen2=fftlen+gilen; %****************** Kalkulasi Atenuasi ******************* spow=sum(ich3.^2+qch3.^2)/nd./para; % sum : dibangun di dalam fungsi attn=0.5*spow*sr/br*10.^(-ebn0(ss)/10); attn=sqrt(attn); %************************ Receiver ************************ %********************* Penambahan AWGN ******************** [ich4,qch4]=comb(ich3,qch3,attn); %**************** Pengeluaran Guard Interval ************** [ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd); %************************* FFT *************************** rx=ich5+qch5.*i; ry=fft(rx); ich6=real(ry); qch6=imag(ry); % fft : dibangun di dalam fungsi % real : dibangun di dalam fungsi % imag : dibangun di dalam fungsi %********************** Demodulasi ************************ %[ich6,qch6]=crdemapping (ich6,qch6,fftlen,nd); ich7=ich6./kmod; qch7=qch6./kmod;

[demodata]=qpskdemod(ich7,qch7,para,nd,ml); %************** Konversi Dari Paralel Ke Serial ************ demodata1=reshape(demodata,1,para*nd*ml); %****************** Bit Error Rate (BER) ******************* % Jumlah error yang muncul dan data noe2=sum(abs(demodata1-seldata)); % sum : dibangun di dalam fungsi nod2=length(seldata); % length : dibangun di dalam fungsi % Jumlah error kumulatif dan data pada noe dan nod noe=noe+noe2; nod=nod+nod2; fprintf ('Nilai BER untuk EbN0 %d percobaan ke %3.0f adalah %0.5f \n', ebn0(ss),iii,(noe2/nod2)); %******************* Hasil Keluaran ******************** switch s case 1 berd(ss)=(noe/nod); case 2 berc(ss)=(noe/nod); if s == 1 berteori(ss) = (1/2)*erfc(sqrt((ebn0(ss)))); %fprintf('nilai BER rata-rata untuk 100 kali percoba%f\t%e\t%d\t\n',ebn0,ber,nloop); %********************* Akhir Dari File ******************** disp (' '); disp (' '); for s = 1:3 switch s case 1 ber = berd;

fprintf('nilai BER rata-rata untuk tiap EbN0 pada OFDM\n'); case 2 ber = berc; fprintf('nilai BER rata-rata untuk tiap EbN0 pada OFCDM\n'); case 3 ber = berteori; fprintf('nilai BER secara teori untuk tiap EbN0 pada OFCDM\n'); fprintf(' ---------------------- \n'); fprintf(' EbN0 BER \n'); fprintf(' ---------------------- \n'); for u = 1:5 fprintf(' %2.0f db % fprintf : built in function %0.10f \n',ebn0(u),ber(u)); fprintf(' ---------------------- \n\n\n'); if s ==1; plot(ebn0,ber,'--b'); elseif s ==2; plot(ebn0,ber,'--r'); elseif s == 3; plot(ebn0,berteori,'--g'); grid on;hold on xlabel('ebn0 (db)'); ylabel('ber'); title ('GRAFIK PERBANDINGAN BER TERHADAP Eb/N0 PADA KANAL AWGN'); leg('ofdm','ofcdm','ber OFDM Teori'); 2. Script File ofcdm_fading.m % ofcdm_fading.m % Program simulasi untuk mapatkan kinerja BER sistem OFCDM yang dipengaruhi % kanal Fading Rayleigh % (dengan satu jalur fading) %****************** Bagian Persiapan ****************** clear all; clc; para=128; fftlen=128; noc=128; % Jumlah kanal paralel yang ditransmisikan % Panjang FFT % Jumlah carrier

nd=6; ml=2; sr=250000; br=sr.*ml; gilen=32; ebn0=10:10:50; % Jumlah simbol OFCDM untuk satu loop % Level modulasi : QPSK % Symbol rate % Bit rate per carrier % Panjang guard interval (points) % Eb/N0 %*************** Inisialisasi Fading ****************** % Resolusi waktu tstp=1/sr/(fftlen+gilen); % Waktu kedatangan untuk setiap multipath yang dinormalisasi oleh tstp itau = [0]; % Daya rata-rata untuk setiap multipath yang dinormalisasi oleh gelombang % langsung dlvl = [0]; % Jumlah gelombang yang membangkitkan fading pada setiap multipath n0=[6]; % Fasa awal gelombang yang tertunda th1=[0.0]; % Jumlah counter fading untuk melompat itnd0=nd*(fftlen+gilen)*10; % Nilai awal counter fading itnd1=[1000]; % Jumlah gelombang langsung + jumlah gelombang yang tertunda now1=1; % Frekuensi Doppler maksimum [Hz] fd=320; % Flat variabel flat=1; %******************* Bagian Main Loop ******************* nloop=100; % Jumlah loop simulasi noe = 0; % Jumlah data error nod = 0; % Jumlah data yang ditransmisikan for s = 1:2 for ss = 1:5 for iii=1:nloop %********************* Transmitter **********************

%****************** Pembangkitan Data ******************* seldata=rand(1,para*nd*ml) > 0.5; % rand : dibangun di dalam fungsi %*********** Konversi Dari Serial Ke Paralel ************ paradata=reshape(seldata,para,nd*ml); % reshape : dibangun di dalam fungsi %****************** Modulasi QPSK ********************** [ich,qch]=qpskmod(paradata,para,nd,ml); kmod=1/sqrt(2); % sqrt : dibangun di dalam fungsi if s == 1; ich1=ich.*kmod; qch1=qch.*kmod; elseif s == 2; ich1=ich.*kmod*sr*8; % proses spreading qch1=qch.*kmod*sr*8; % proses spreading %************************ IFFT ************************* x=ich1+qch1.*i; y=ifft(x); ich2=real(y); qch2=imag(y); % ifft : dibangun di dalam fungsi % real : dibangun di dalam fungsi % imag : dibangun di dalam fungsi %************** Penyisipan Guard Interval ************** [ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); fftlen2=fftlen+gilen; %***************** Kalkulasi Atenuasi ******************* spow=sum(ich3.^2+qch3.^2)/nd./para; % sum : dibangun di dalam fungsi attn=0.5*spow*sr/br*10.^(-ebn0(ss)/10); attn=sqrt(attn); %********************* Kanal Fading ********************** % Data yang dibangkitkan dimasukkan kedalam simulator fading [ifade,qfade]=sefade2(ich3,qch3,itau,dlvl,th1,n0,itnd1,... now1,length(ich3),tstp,fd,flat); % Counter fading updata itnd1 = itnd1+ itnd0; %************************ Receiver ************************ %******************** Penambahan AWGN ********************

[ich4,qch4]=comb(ifade,qfade,attn); %*************** Pengeluaran Guard Interval *************** [ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd); %************************* FFT ***************************** rx=ich5+qch5.*i; ry=fft(rx); % fft : dibangun di dalam fungsi ich6=real(ry); % real : dibangun di dalam fungsi qch6=imag(ry); % imag : dibangun di dalam fungsi %*********************** Demodulasi ************************* ich7=ich6./kmod; qch7=qch6./kmod; [demodata]=qpskdemod(ich7,qch7,para,nd,ml); %************ Konversi Dari Paralel Ke Serial **************** demodata1=reshape(demodata,1,para*nd*ml); %******************* Bit Error Rate (BER) ******************** % Jumlah error yang muncul dan data noe2=sum(abs(demodata1-seldata)); % sum : dibangun di dalam fungsi nod2=length(seldata); % length : dibangun di dalam fungsi % Jumlah error kumulatif dan data pada noe dan nod noe=noe+noe2; nod=nod+nod2; fprintf ('Nilai BER untuk EbN0 %d percobaan ke %3.0f adalah %0.5f \n', ebn0(ss),iii,noe2/nod2); %********************* Hasil Keluaran *********************** switch s case 1 berd(ss)=noe/nod; case 2 berc(ss)=noe/nod; if s == 1 bt=1+(1/(ebn0(ss))); berteori(ss) = 1/2*(1-(1/(sqrt(bt))));

%fprintf('nilai BER rata-rata untuk 100 kali percoba%f\t%e\t%d\t\n',ebn0,ber,nloop); %********************* Akhir Dari Data ******************** disp (' '); disp (' '); for s = 1:3 switch s case 1 ber = berd; fprintf('nilai BER rata-rata untuk tiap EbN0 pada OFDM\n'); case 2 ber = berc; fprintf('nilai BER rata-rata untuk tiap EbN0 pada OFCDM\n'); case 3 ber = berteori; fprintf('nilai BER secara teori untuk tiap EbN0 pada OFCDM\n'); fprintf(' ---------------------- \n'); fprintf(' EbN0 BER \n'); fprintf(' ---------------------- \n'); for u = 1:5 fprintf(' %2.0f db %0.5f \n',ebn0(u),ber(u)); % fprintf : built in function fprintf(' ---------------------- \n\n\n'); if s ==1; plot(ebn0,ber,'--b'); elseif s ==2; plot(ebn0,ber,'--r'); elseif s == 3; plot(ebn0,berteori,'--g'); grid on;hold on xlabel('ebn0 (db)'); ylabel('ber'); title ('GRAFIK PERBANDINGAN BER TERHADAP Eb/N0 PADA KANAL FADING RAYLEIGH'); leg('ofdm','ofcdm','ber OFDM Teori');

3. Script File spreading.m % spreading.m % Program simulasi untuk mapatkan kinerja BER sistem OFCDM yang dipengaruhi % ukuran VSF % (dengan satu jalur fading) %****************** Bagian Persiapan ****************** clear all; clc; para=128; % Jumlah kanal paralel yang ditransmisikan fftlen=128; % Panjang FFT noc=128; % Jumlah carrier nd=6; % Jumlah simbol OFCDM untuk satu loop ml=2; % Level modulasi : QPSK sr=250000; % Symbol rate br=sr.*ml; % Bit rate per carrier gilen=32; % Panjang guard interval (points) ebn0=10; % Eb/N0 vsf=[1 2 4 8 16 32 64 128 256 512 1024]; % Ukuran SF %*************** Inisialisasi Fading ****************** % Resolusi waktu tstp=1/sr/(fftlen+gilen); % Waktu kedatangan untuk setiap multipath yang dinormalisasi oleh tstp itau = [0]; % Daya rata-rata untuk setiap multipath yang dinormalisasi oleh gelombang % langsung dlvl = [0]; % Jumlah gelombang yang membangkitkan fading pada setiap multipath n0=[6]; % Fasa awal gelombang yang tertunda th1=[0.0]; % Jumlah counter fading untuk melompat itnd0=nd*(fftlen+gilen)*10; % Nilai awal counter fading itnd1=[1000]; % Jumlah gelombang langsung + jumlah gelombang yang tertunda now1=1; % Frekuensi Doppler maksimum [Hz]

fd=320; % Flat variabel flat=1; %******************* Bagian Main Loop ******************* nloop=100; % Jumlah loop simulasi noe = 0; nod = 0; % Jumlah data error % Jumlah data yang ditransmisikan for s = 1:11 for iii=1:nloop %********************* Transmitter ********************** %****************** Pembangkitan Data ******************* seldata=rand(1,para*nd*ml) > 0.5; % rand : dibangun di dalam fungsi %********** Konversi Dari Serial Ke Paralel ************* paradata=reshape(seldata,para,nd*ml); % reshape : dibangun di dalam fungsi %******************** Modulasi QPSK ********************* [ich,qch]=qpskmod(paradata,para,nd,ml); kmod=1/sqrt(2); % sqrt : dibangun di dalam fungsi ich1=ich.*kmod*sr*vsf(s); % proses spreading qch1=qch.*kmod*sr*vsf(s); % proses spreading %************************ IFFT ************************** x=ich1+qch1.*i; y=ifft(x); ich2=real(y); qch2=imag(y); % ifft : dibangun di dalam fungsi % real : dibangun di dalam fungsi % imag : dibangun di dalam fungsi %**************** Penyisipan Guard Interval ************* [ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); fftlen2=fftlen+gilen; %***************** Kalkulasi Atenuasi ******************* spow=sum(ich3.^2+qch3.^2)/nd./para; % sum : dibangun di dalam fungsi attn=0.5*spow*sr/br*10.^(-ebn0/10); attn=sqrt(attn);

%********************* Kanal Fading ********************* % Data yang dibangkitkan dimasukkan kedalam simulator fading [ifade,qfade]=sefade2(ich3,qch3,itau,dlvl,th1,n0,itnd1,... now1,length(ich3),tstp,fd,flat); % Counter fading updata itnd1 = itnd1+ itnd0; %********************** Receiver ********************* %****************** Penambahan AWGN ***************** [ich4,qch4]=comb(ifade,qfade,attn); %************* Pengeluaran Guard Interval ************ [ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd); %*********************** FFT ************************* rx=ich5+qch5.*i; ry=fft(rx); % fft : dibangun di dalam fungsi ich6=real(ry); % real : dibangun di dalam fungsi qch6=imag(ry); % imag : dibangun di dalam fungsi %*********************** Demodulasi ******************** ich7=ich6./kmod; qch7=qch6./kmod; [demodata]=qpskdemod(ich7,qch7,para,nd,ml); %********** Konversi Dari Paralel Ke Serial *********** demodata1=reshape(demodata,1,para*nd*ml); %**************** Bit Error Rate (BER) ***************** % Jumlah error yang muncul dan data noe2=sum(abs(demodata1-seldata)); % sum : dibangun di dalam fungsi nod2=length(seldata); % length : dibangun di dalam fungsi % Jumlah error kumulatif dan data pada noe dan nod noe=noe+noe2; nod=nod+nod2; fprintf ('Nilai BER untuk Spreading %d percobaan ke %3.0f adalah %0.2f \n', vsf(s),iii,noe2/nod2); %******************* Hasil Keluaran ********************

ber(s)=noe/nod; %fprintf('nilai BER rata-rata untuk 100 kali percobaan%f\t%e\t%d\t\n',ebn0,ber,nloop); %******************** Akhir Dari File ****************** disp (' '); disp (' '); %figure(2); fprintf('nilai BER rata-rata untuk tiap Spreading\n'); fprintf(' ---------------------- \n'); fprintf(' VSF BER \n'); fprintf(' ---------------------- \n'); for u = 1:11 fprintf(' %2.0f db %0.5f \n',vsf(u),ber(u)); % fprintf : dibangun di dalam fungsi fprintf(' ---------------------- \n\n\n'); plot(vsf,ber,'--b'); grid on; xlim('manual'); xlim([-10 1024]); xlabel('vsf'); ylabel('ber'); title ('GRAFIK PERBANDINGAN BER TERHADAP UKURAN VSF PADA SISTEM OFCDM'); %leg('ofdm','ofcdm'); 4. Script File carrier.m % carrier.m % Program simulasi untuk mapatkan kinerja BER sistem OFCDM yang dipengaruhi % jumlah carrier % (dengan satu jalur fading) %****************** Bagian Persiapan ****************** clear all; clc; para=[128 256 512 1024 2048]; ditransmisikan fftlen=para; noc=128; nd=6; ml=2; % Jumlah kanal paralel yang % Panjang FFT % Jumlah carrier % Jumlah simbol OFCDM untuk satu loop % Level modulasi : QPSK

sr=250000; br=sr.*ml; gilen=32; ebn0=10; % Symbol rate % Bit rate per carrier % Panjang guard interval (points) % Eb/N0 %*************** Inisialisasi Fading ****************** % Resolusi waktu tstp=1/sr./(fftlen+gilen); % Waktu kedatangan untuk setiap multipath yang dinormalisasi oleh tstp itau = [0]; % Daya rata-rata untuk setiap multipath yang dinormalisasi oleh gelombang % langsung dlvl = [0]; % Jumlah gelombang yang membangkitkan fading pada setiap multipath n0=[6]; % Fasa awal gelombang yang tertunda th1=[0.0]; % Jumlah counter fading untuk melompat itnd0=nd*(fftlen+gilen)*10; % Nilai awal counter fading itnd1=[1000]; % Jumlah gelombang langsung + jumlah gelombang yang tertunda now1=1; % Frekuensi Doppler maksimum [Hz] fd=320; % Flat variabel flat=1; %******************* Bagian Main Loop ******************* nloop=100; % Jumlah loop simulasi noe = 0; nod = 0; % Jumlah data error % Jumlah data yang ditransmisikan for s = 1:5 for iii=1:nloop %*********************** Transmitter ********************

%****************** Pembangkitan Data ******************* seldata=rand(1,para(s)*nd*ml) > 0.5; % rand : dibangun di dalam fungsi %************* Konversi Dari Serial Ke Paralel ********** paradata=reshape(seldata,para(s),nd*ml); % reshape : dibangun di dalam fungsi %******************** Modulasi QPSK ********************* fungsi [ich,qch]=qpskmod(paradata,para(s),nd,ml); kmod=1/sqrt(2); % sqrt : dibangun di dalam ich1=ich.*kmod*sr*8; qch1=qch.*kmod*sr*8; % proses spreading % proses spreading %************************ IFFT ************************** x=ich1+qch1.*i; y=ifft(x); ich2=real(y); qch2=imag(y); % ifft : dibangun di dalam fungsi % real : dibangun di dalam fungsi % imag : dibangun di dalam fungsi %**************** Penyisipan Guard Interval *************** [ich3,qch3]= giins(ich2,qch2,fftlen(s),gilen,nd); fftlen2=fftlen(s)+gilen; %********************* Kalkulasi Atenuasi ***************** spow=sum(ich3.^2+qch3.^2)/nd./para(s); % sum : dibangun di dalam fungsi attn=0.5*spow*sr/br*10.^(-ebn0/10); attn=sqrt(attn); %************************ Kanal Fading ********************* % Data yang dibangkitkan dimasukkan kedalam simulator fading [ifade,qfade]=sefade2(ich3,qch3,itau,dlvl,th1,n0,itnd1,... now1,length(ich3),tstp(s),fd,flat); % Counter fading updata itnd1 = itnd1+ itnd0(s); %*********************** Receiver *************************** %******************** Penambahan AWGN ***********************

[ich4,qch4]=comb(ifade,qfade,attn); %**************** Pengeluaran Guard Interval ***************** [ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd); %************************** FFT ****************************** rx=ich5+qch5.*i; ry=fft(rx); % fft : dibangun di dalam fungsi ich6=real(ry); % real : dibangun di dalam fungsi qch6=imag(ry); % imag : dibangun di dalam fungsi %************************** Demodulasi *********************** ich7=ich6./kmod; qch7=qch6./kmod; [demodata]=qpskdemod(ich7,qch7,para(s),nd,ml); %************** Konversi Paralel Ke Serial ******************** demodata1=reshape(demodata,1,para(s)*nd*ml); %********************* Bit Error Rate (BER) ******************** % Jumlah error yang muncul dan data noe2=sum(abs(demodata1-seldata)); % sum : dibangun di dalam fungsi nod2=length(seldata); % length : dibangun di dalam fungsi % Jumlah error kumulatif dan data pada noe dan nod noe=noe+noe2; nod=nod+nod2; fprintf ('Nilai BER untuk Carrier %d percobaan ke %3.0f adalah %0.2f \n', para(s),iii,noe2/nod2); %********************** Hasil Keluaran ************************ ber(s)=noe/nod; %fprintf('nilai BER rata-rata untuk 100 kali percoba%f\t%e\t%d\t\n',ebn0,ber,nloop); %*********************** Akhir Dari File *********************** disp (' '); disp (' '); figure(2);

OFCDM\n'); fprintf('nilai BER rata-rata untuk tiap Carrier pada fprintf(' ---------------------- \n'); fprintf(' Carrier BER \n'); fprintf(' ---------------------- \n'); for u = 1:5 fprintf(' %2.0f %0.5f \n',para(u),ber(u)); % fprintf : built in function fprintf(' ---------------------- \n\n\n'); plot(para,ber) grid on; xlabel('jumlah Carrier'); ylabel('ber'); title ('GRAFIK PERBANDINGAN BER TERHADAP JUMLAH CARRIER PADA SISTEM OFCDM'); 5. Script File bit_rate.m % bit_rate.m % Program simulasi untuk mapatkan kinerja BER sistem OFCDM yang dipengaruhi % bit rate % (dengan satu jalur fading) %****************** Bagian Persiapan ****************** clear all; clc; para=128; % Jumlah kanal paralel yang ditransmisikan fftlen=128; % Panjang FFT noc=128; % Jumlah carrier nd=6; % Jumlah simbol OFCDM untuk satu loop ml=2; % Level modulasi : QPSK sr=50000:50000:500000; % Symbol rate br=sr.*ml; % Bit rate per carrier gilen=32; % Panjang guard interval (points) ebn0=10; % Eb/N0 %*************** Inisialisasi Fading ****************** % Resolusi waktu tstp=1./sr/(fftlen+gilen);

% Waktu kedatangan untuk setiap multipath yang dinormalisasi oleh tstp itau = [0]; % Daya rata-rata untuk setiap multipath yang dinormalisasi oleh gelombang % langsung dlvl = [0]; % Jumlah gelombang yang membangkitkan fading pada setiap multipath n0=[6]; % Fasa awal gelombang yang tertunda th1=[0.0]; % Jumlah counter fading untuk melompat itnd0=nd*(fftlen+gilen)*10; % Nilai awal counter fading itnd1=[1000]; % Jumlah gelombang langsung + jumlah gelombang yang tertunda now1=1; % Frekuensi Doppler maksimum [Hz] fd=320; % Flat variabel flat=1; %******************* Bagian Main Loop ******************* nloop=100; % Jumlah loop simulasi noe = 0; nod = 0; % Jumlah data error % Jumlah data yang ditransmisikan for s = 1:10 for iii=1:nloop %********************** Transmitter ********************* %*******************Pembangkitan Data ******************* seldata=rand(1,para*nd*ml) > 0.5; % rand : dibangun di dalam fungsi %************* Konversi Dari Serial Ke Paralel ************* paradata=reshape(seldata,para,nd*ml); % reshape : dibangun di dalam fungsi

%******************** Modulasi QPSK ************************ [ich,qch]=qpskmod(paradata,para,nd,ml); kmod=1/sqrt(2); % sqrt : dibangun di dalam fungsi ich1=ich.*kmod*sr(s)*8; qch1=qch.*kmod*sr(s)*8; % proses spreading % proses spreading %************************ IFFT ***************************** x=ich1+qch1.*i; y=ifft(x); ich2=real(y); qch2=imag(y); % ifft : dibangun di dalam fungsi % real : dibangun di dalam fungsi % imag : dibangun di dalam fungsi %***************** Penyisipan Guard Interval *************** [ich3,qch3]= giins(ich2,qch2,fftlen,gilen,nd); fftlen2=fftlen+gilen; %******************* Kalkulasi Atenuasi ********************** spow=sum(ich3.^2+qch3.^2)/nd./para; % sum : dibangun di dalam fungsi attn=0.5*spow*sr(s)/br(s)*10.^(-ebn0/10); attn=sqrt(attn); %*********************** Kanal Fading ************************ % Data yang dibangkitkan dimasukkan kedalam simulator fading [ifade,qfade]=sefade2(ich3,qch3,itau,dlvl,th1,n0,itnd1,... now1,length(ich3),tstp(s),fd,flat); % Counter fading updata itnd1 = itnd1+ itnd0; %************************** Receiver ************************** %*********************** Penambahan AWGN ********************** [ich4,qch4]=comb(ifade,qfade,attn); %****************** Pengeluaran Guard Interval *************** [ich5,qch5]= girem(ich4,qch4,fftlen2,gilen,nd); %*************************** FFT ******************************* rx=ich5+qch5.*i; ry=fft(rx); % fft : dibangun di dalam fungsi ich6=real(ry); % real : dibangun di dalam fungsi

qch6=imag(ry); % imag : dibangun di dalam fungsi %************************ Demodulasi ************************** ich7=ich6./kmod; qch7=qch6./kmod; [demodata]=qpskdemod(ich7,qch7,para,nd,ml); %************* Konversi Dari Paralel Ke Serial ************** demodata1=reshape(demodata,1,para*nd*ml); %****************** Bit Error Rate (BER) ******************** % Jumlah error yang muncul dan data noe2=sum(abs(demodata1-seldata)); % sum : dibangun di dalam fungsi nod2=length(seldata); % length : dibangun di dalam fungsi % Jumlah error kumulatif dan data pada noe dan nod noe=noe+noe2; nod=nod+nod2; fprintf ('Nilai BER untuk Data rate %d percobaan ke %3.0f adalah 0.2f \n', br(s),iii,noe2/nod2); %*********************** Hasil Keluaran ********************* ber(s)=noe/nod; %fprintf('nilai BER rata-rata untuk 100 kali percoba%f\t%e\t%d\t\n',ebn0,ber,nloop); %*********************** Akhir Dari Data ******************** disp (' '); disp (' '); %figure(2); fprintf('nilai BER rata-rata untuk tiap Spreading\n'); fprintf(' -------------------------- \n'); fprintf(' Data Rate BER \n'); fprintf(' -------------------------- \n'); for u = 1:10 fprintf(' %2.0f bps %0.5f \n',br(u),ber(u)); % fprintf : built in function

fprintf(' -------------------------- \n\n\n'); plot(br,ber,'--b'); grid on; xlabel('bit RATE'); ylabel('ber'); title ('GRAFIK PERBANDINGAN BER TERHADAP BIT RATE'); %leg('ofdm','ofcdm'); 6. Script File interference.m % interference.m % Program simulasi untuk mapatkan kinerja BER sistem OFCDM yang dipengaruhi % interferensi %********************** Bagian Persiapan ******************** clear; para=52; fftlen=64; noc=53; nd=6; knd=1; ml=2; sr=250000; br=sr.*ml; gilen=16; ebno=1000; % Jumlah kanal paralel yang ditransmisikan % points % Panjang FFT % Jumlah carrier % Jumlah simbol OFCDM untuk satu loop % Jumlah estimasi kanal % (CE) simbol OFCDM % Level modulasi : QPSK % Symbol rate (250 ksymbol/s) % Bit rate per carrier % Panjang guard interval (points) % Eb/N0 %------------------- Inisialisasi Fading --------------------- tstp=1/sr/(fftlen+gilen); itau=[0]; dlvll=[0]; multipath yang langsung n0=[6]; fading th1=[0,0]; itnd1=[1000]; now1=1; gelombang % Resolusi Waktu % Waktu kedatangan untuk setiap multipath yang % dinormalisasi oleh tstp % Daya rata-rata untuk setiap % dinormalisasi oleh gelombang % Jumlah gelombang untuk membangkitkan % n0(1),n0(2) % Fasa awal gelombang yang tertunda % Penyusunan counter fading % Jumlah gelombang langsung + jumlah % yang tertunda

fd=150; flat=0; itnd0=nd*(fftlen+gilen)*10; % Frekuensi Doppler maksimum % Flat atau tidak % Jumlah counter fading untuk melompat %-------------Inisialisasi Gelombang Interferensi----------------- ci=10:10:100; ml2=2; % Perbandingan C/I % Level modulasi itau2=[0]; dlvl2=[0]; n02=[6]; th2=[0.0]; itnd2=[1000+floor(rand(1)*10)*1000]; now2=1; fd2=fd; flat2=0; itnd02=nd*(fftlen+gilen)*300; % Jumlah counter fading untuk melompat %%Penyimpanan semua parameter di dalam satu matrik "fadingpara" fadingpara=zeros(8, length(itau2)); fadingpara(1,:)=itau2; fadingpara(2,:)=dlvl2; fadingpara(3,:)=n02; fadingpara(4,:)=th2; fadingpara(5,:)=itnd2; fadingpara(6,:)=now2; fadingpara(7,:)=fd2; fadingpara(8,:)=flat2; %********************** Bagian Main Loop ************************** nloop=100; noe=0; nod=0; % Jumlah loop simulasi % Jumlah data error % Jumlah data yang ditransmisikan %*********************** Transmitter ******************************* for c = 1:10 for iii=1:nloop seldata=rand(1,para*nd*ml) > 0.5; paradata=reshape(seldata,para,nd*ml); % Ukuran(51*nd*ml) %------------------------------- Modulasi ml ----------------------- [ich,qch]=qpskmod(paradata,para,nd,ml); kmod=1/sqrt(2); ich=ich.*kmod*sr*8; % proses spreading qch=qch.*kmod*sr*8; % proses spreading

%Pembangkitan data CE kndata=zeros(1,fftlen); kndata0=2.*(rand(1,52) < 0.5)-1; kndata(2:27)=kndata0(1:26); kndata(39:64)=kndata0(27:52); ceich=kndata; % CE:BPSK ceqch=zeros(1,64); %-------------------------- Pemetaan Data (DC=0)-------------------- -- [ich1,qch1]=crmapping(ich,qch,fftlen,nd); ich2=[ceich', ich1]; qch2=[ceqch', qch1]; % Data transmisi I-channel % Data transmisi Q-channel %--------------------------------IFFT------------------------------- -- x=ich2+qch2.*i; y=ifft(x); ich3=real(y); qch3=imag(y); %------------------------- Penyisipan Guard Interval --------------- -- fftlen2=fftlen+gilen; [ich4,qch4]=giins(ich3,qch3,fftlen,gilen,nd+1); %------------------------ Kalkulasi Atenuasi ----------------------- spow=sum(ich4.^2+qch4.^2)/nd./52; attn=0.5*spow*sr/br*10.^(ebno/10); attn=sqrt(attn); %*************************** Kanal Fading *************************** [ifade,qfade,ramp,rcos,rsin]=sefade2(ich4,qch4,itau,dlvll,th1,n0,itn d1,... now1,length(ich4),tstp,fd,flat); itnd1 = itnd1+itnd0; %Updata fading counter ich4=ifade; qch4=qfade; %%%Penambahan gelombang interferensi %interferensi [iintw,qintw]=interwave(ci(c),spow,ml2,length(ich4),tstp,fadingpara) ; itnd2 = itnd2+itnd02;

fadingpara(5,:)=itnd2; ich4=ich4+iintw; qch4=qch4+qintw; %***************************Receiver******************************** ** %-------------------------- Penambahan AWGN ------------------------ -- [ich5,qch5]=comb(ich4,qch4,attn); %------- Kompensasi Fading Yang Perfect Untuk Satu Jalur fading ---- --- %ifade2=1./ramp.*(rcos(1,:).*ich5+rsin(1,:).*qch5); %qfade2=1./ramp.*(rsin(1,:).*ich5+rcos(1,:).*qch5); %ich5=ifade2; %qch5=qfade2; %--------------------- Pengeluaran Guard Interval ------------------ --- [ich6,qch6]=girem(ich5,qch5,fftlen2,gilen,nd+1); %---------------------------------FFT------------------------------- --- rx=ich6+qch6.*i; ry=fft(rx); ich7=real(ry); qch7=imag(ry); %------------------- Kompensasi Fading Oleh Simbol CE -------------- --- %Persiapan data CE ce=1; ice0=ich2(:,ce); qce0=qch2(:,ce); %Pengambilan data CE data diluar data yang diterima ice1=ich7(:,ce); qce1=qch7(:,ce); %Perhitungan rotasi reverse iv=real((1./(ice1.^2+qce1.^2)).*(ice0+j.*qce0).*(ice1- j.*qce1)); qv=imag((1./(ice1.^2+qce1.^2)).*(ice0+j.*qce0).*(ice1- j.*qce1)); %Matrik untuk rotasi reverse ieqvl=[iv iv iv iv iv iv iv]; qeqvl=[qv qv qv qv qv qv qv];

%rotasi reverse icompen=real((ich7+j.*qch7).*(ieqvl+j.*qeqvl)); qcompen=imag((ich7+j.*qch7).*(ieqvl+j.*qeqvl)); ich7=icompen; qch7=qcompen; %---------------------- Pengeluaran Simbol CE ---------------------- --- ich8=ich7(:,knd+1:nd+1); qch8=qch7(:,knd+1:nd+1); %------------------ Pengeluaran Data DC dan Data Pilot ------------- --- [ich9,qch9]=crdemapping (ich8,qch8,fftlen,nd); %----------------------------- Demodulasi -------------------------- --- ich10=ich9./kmod; qch10=qch9./kmod; [demodata]=qpskdemod(ich10,qch10,para,nd,ml); %------------------------- Perhitungan Error ----------------------- -- demodata1=reshape(demodata,1,para*nd*ml); noe2=sum(abs(demodata1-seldata)); nod2=length(seldata); %Perhitungan BER noe=noe+noe2; nod=nod+nod2; fprintf('ber C/I ke %3.0f percobaan ke %3.0f adalah %1.5f\n\n',ci(c),iii,noe2/nod2); ber(c)=noe/nod; %************************* Hasil Keluaran **************************** fprintf(' ---------------------- \n'); fprintf(' C/I BER \n'); fprintf(' ---------------------- \n'); for u = 1:10 fprintf(' %3.0f %1.5f \n',ci(u),ber(u)); % fprintf : dibangun di dalam simulasi fprintf(' ---------------------- \n\n\n'); plot(ci,ber);

grid on; %********************** Akhir Dari File **************************** 7. Function File giins.m % giins.m % Fungsi untuk menyisipkan guard interval ke sinyal tranmisi function [iout,qout]=giins(idata,qdata,fftlen,gilen,nd) %********************** variables ********************* % idata : Masukan data Ich % qdata : Masukan data Qch % iout : Keluaran data Ich % qout : Keluaran data Qch % fftlen : Panjang FFT (points) % gilen : Panjang guard interval (points) % ***************************************************** idata1=reshape(idata,fftlen,nd); qdata1=reshape(qdata,fftlen,nd); idata2=[idata1(fftlen-gilen+1:fftlen,:); idata1]; qdata2=[qdata1(fftlen-gilen+1:fftlen,:); qdata1]; iout=reshape(idata2,1,(fftlen+gilen)*nd); qout=reshape(qdata2,1,(fftlen+gilen)*nd); %******************** Akhir Dari File ********************* 8. Function File girem.m % girem.m % Fungsi untuk mengeluarkan guard interval dari sinyal yang diterima function [iout,qout]= girem(idata,qdata,fftlen2,gilen,nd) %********************** variables ********************* % idata : Masukan data Ich % qdata : Masukan data Qch % iout : Keluaran data Ich % qout : Keluaran data Qch % fftlen : Panjang FFT (points) % gilen : Panjang guard interval (points) % nd : Jumlah simbol OFCDM % ***************************************************** idata2=reshape(idata,fftlen2,nd);

qdata2=reshape(qdata,fftlen2,nd); iout=idata2(gilen+1:fftlen2,:); qout=qdata2(gilen+1:fftlen2,:); %***************** Akhir Dari File ******************** 9. Function File qpskmod.m %%%%%%%%% Fungsi Untuk Menunjukkan Modulasi QPSK %%%%%% function[iout,qout]=qpskmod(paradata,para,nd,ml) m2=ml./2; paradata2=paradata.*2-1; count2=0; for jj=1:nd isi=zeros(para,1); isq=zeros(para,1); for ii=1:m2 isi=isi+2.^(m2-ii).*paradata2((1:para),ii+count2); isq=isq+2.^(m2-ii).*paradata2((1:para),ii+count2); iout((1:para),jj)=isi; qout((1:para),jj)=isq; count2=count2+ml; 10. Function File qpskdemod.m function [demodata]=qpskdemod(idata,qdata,para,nd,ml) demodata=zeros(para,ml*nd); demodata((1:para),(1:ml:ml*nd-1))=idata((1:para),(1:nd))>=0; demodata((1:para),(2:ml:ml*nd))=qdata((1:para),(1:nd))>=0; 11. Function File comb.m function [iout,qout]=comb(idata,qdata,attn) iout=randn(1,length(idata)).*attn; qout=randn(1,length(qdata)).*attn; iout=iout+idata(1:length(idata)); qout=qout+qdata(1:length(qdata)); 12. Function File delay.m % delay.m % Fungsi pemberian delay kepada sinyal masukan

function [iout,qout] = delay(idata,qdata,nsamp,idel ) %********************** variables ********************* % idata : Masukan data Ich % qdata : Masukan data Qch % iout : Keluaran data Ich % qout : Keluaran data Qch % nsamp : Jumlah sampel yang disimulasikan % idel : Jumlah sampel yang tertunda %****************************************************** iout=zeros(1,nsamp); qout=zeros(1,nsamp); if idel ~= 0 iout(1:idel) = zeros(1,idel); qout(1:idel) = zeros(1,idel); iout(idel+1:nsamp) = idata(1:nsamp-idel); qout(idel+1:nsamp) = qdata(1:nsamp-idel); %******************** Akhir Dari File ********************* 13. Function File fade.m % fade.m % Fungsi pembangkitan Fading Rayleigh function [iout,qout,ramp,rcos,rsin]=fade(idata,qdata,... nsamp,tstp,fd,no,counter,flat) %********************** variables ********************* % idata : Masukan data Ich % qdata : Masukan data Qch % iout : Keluaran data Ich % qout : Keluaran data Qch % ramp : Amplitudo yang dikontaminasi oleh fading % rcos : Nilai Cosine yang dikontaminasi oleh fading % rsin : Nilai Cosine yang dikontaminasi oleh fading % nsamp : Jumlah sampel yang disimulasi % tstp : Resolusi waktu minimum % fd : Frekuensi Doopler maksimum % no : Jumlah gelombang untuk pembangkitan fading % counter : counter fading % flat : fading flat atau tidak %****************************************************** if fd ~= 0.0 ac0 = sqrt(1.0./ (2.0.*(no + 1))); % Daya yang ternormalisasi konstan(ich) as0 = sqrt(1.0./ (2.0.*no)); % Daya yang ternormalisasi konstan(qch) ic0 = counter; % counter fading

pai = 3.14159265; wm = 2.0.*pai.*fd; n = 4.*no + 2; ts = tstp; wmts = wm.*ts; paino = pai./no; xc=zeros(1,nsamp); xs=zeros(1,nsamp); ic=[1:nsamp]+ic0; for nn = 1: no cwn = cos( cos(2.0.*pai.*nn./n).*ic.*wmts ); xc = xc + cos(paino.*nn).*cwn; cwmt = sqrt(2.0).*cos(ic.*wmts); xc = (2.0.*xc + cwmt).*ac0; xs = 2.0.*xs.*as0; ramp=sqrt(xc.^2+xs.^2); rcos=xc./ramp; rsin=xs./ramp; if flat ==1 iout = sqrt(xc.^2+xs.^2).*idata(1:nsamp); % sinyal keluaran (ich) qout = sqrt(xc.^2+xs.^2).*qdata(1:nsamp); % sinyal keluaran (qch) else iout = xc.*idata(1:nsamp) - xs.*qdata(1:nsamp); % sinyal keluaran (ich) qout = xs.*idata(1:nsamp) + xc.*qdata(1:nsamp); % sinyal keluaran (qch) else iout=idata; qout=qdata; %********************* Akhir Dari File ******************** 14. Function File sefade.m function[iout,qout,ramp,rcos,rsin]=sefade2(idata,qdata,itau,dlvl,th, n0,itn,n1,nsamp,tstp,fd,flat) iout = zeros(1,nsamp); qout = zeros(1,nsamp); total_attn = sum(10.^( -1.0.* dlvl./ 10.0)); for k=1:n1 atts = 10.^( -0.05.* dlvl(k)); if dlvl(k) == 40.0

atts = 0.0; theta = th(k).* pi./ 180.0; [itmp,qtmp] = delay (idata,qdata,nsamp,itau(k)); [itmp3,qtmp3,ramp,rcos,rsin] = fade (itmp,qtmp,... nsamp,tstp,fd,n0(k),itn(k),flat); iout = iout + atts.* itmp3./ sqrt(total_attn); qout = qout + atts.* qtmp3./ sqrt(total_attn); 15. Function File crmapping.m %crmapping.m %Fungsi untuk menyusun data pada subcarrier %(DC=0) function[iout,qout]=crmapping(idata,qdata,fftlen,nd); %*******************variables*********************** %idata %qdata %iout %qout %fftlen %nd : Masukan data Ich : Masukan data Qch : Keluaran data Ich : Keluaran data Qch : Panjang FFT (points) : Jumlah simbol OFCDM %************************************************** iout=zeros(fftlen,nd); qout=zeros(fftlen,nd); iout(2:27,:)=idata(1:26,:); qout(2:27,:)=qdata(1:26,:); iout(39:64,:)=idata(27:52,:); qout(39:64,:)=qdata(27:52,:); %******************** Akhir dari file******************* 16. Function File crdemapping.m function [iout,qout]=crdemapping(idata,qdata,fftlen,nd) iout(1:26,:)=idata(2:27,:); qout(1:26,:)=qdata(2:27,:); iout(27:52,:)=idata(39:64,:); qout(27:52,:)=qdata(39:64,:);

17. Function File interwave.m %interwave.m %Fungsi untuk menambah gelombang interferensi function [iout,qout]=interwave(ci,spow,ml,nsamp,tstp,fadingpara) %*************************variables****************************** %ci : Perbandingan carrier to interference %spow : Daya sinyal yang diharapkan %ml : Level modulasi %nsamp : Jumlah sampel %tstp : Resolusi waktu %fadingpara : Parameter fading %iout : Sinyal Keluaran Ich %qout : Sinyal Keluaran Qch %***************************************************************** itau=fadingpara(1,:); dlvll=fadingpara(2,:); n0=fadingpara(3,:); th1=fadingpara(4,:); itnd1=fadingpara(5,:); now1=fadingpara(6,:); fd=fadingpara(7,:); flat=fadingpara(8,:); if ci > 40 %%%%%%%%%%%%%%%%%%%%%% Bagian Persiapan %%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%format frame para=52; fftlen=64; noc=53; nd=6; knd=1; % jumlah carrier % jumlah simbol informasi % jumlah simbol data sr=250000; % symbol rate br=sr.*ml; % bit rate per carrier gilen=16; % panjang guard interval %%%Penyusunan beban data CE kndata=zeros(1,fftlen); kndata0=2.*(rand(1,52)>0.5)-1; kndata(2:27)=kndata0(1:26); kndata(39:64)=kndata0(27:52); %%% Memulai simulasi %%% Inisialisasi fading

%%%%%%%%%%%%%%%%%%%%% Transmitter %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% seridata=rand(1,para*nd*ml) > 0.5; % DC=0 paradata=reshape(seridata,para,nd*ml); %ukuran(51 * nd*ml) %%% modulasi ml [ich,qch]=qpskmod(paradata,para,nd,ml); kmod=1/sqrt(2); ich=ich.*kmod; qch=qch.*kmod; % modulasi CE ceich=kndata; % CE:BPSK ceqch=zeros(1,64); %%% pemetaan data (DC=0) [ich2,qch2]=crmapping(ich,qch,fftlen,nd); % penambahan carrier pilot dan simbol CE ich22=[ceich.' ich2]; qch22=[ceqch.' qch2]; % Data transmisi kanal-i % Data transmisi kanal-q %%%IFFT x=ich22+qch22.*i; y=ifft(x); ich3=real(y); qch3=imag(y); %%%Penyisipan Guard Interval %Penyisipan Guard Interval [ich5,qch5]=giins(ich3,qch3,fftlen,gilen,nd+1); %%%Kalkulasi fading [ifade2,qfade2,ramp,rcos,rsin]=sefade2(ich5,qch5,itau,... dlvll,th1,n0,itnd1,now1,length(ich5),tstp,fd,flat); %%%Reduksi C/I spowintw=sum(ich5.^2+qch5.^2)/(nd)/52; rint=spow/spowintw*10^(ci/10); iout=ifade2.*sqrt(rint); qout=qfade2.*sqrt(rint); else

iout = zeros(1,nsamp); qout = zeros(1,nsamp); %**************************** Akhir Dari File ********************************