SIMULASI OPTICAL ORTHOGONAL CODES (OOC) DENGAN
METODE 2-D PC/PC CODES
(2 Dimensional Prime Codes / Prime Codes)
Disusun Oleh:
Nama : Aries Wiradinata
NRP : 0422132
Fakultas Teknik, Jurusan Teknik Elektro, Universitas Kristen Maranatha,
Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,
email : [email protected]
ABSTRAK
Lebih dari satu dekade terakhir, dunia telekomunikasi telah mengenal sebuah
teknik baru, disebut Spektral tersebar (Spread Spectrum). Spread Spectrum ialah teknik
telekomunikasi yang mentransmisikan suatu sinyal dengan lebar bidang frekuensi
tertentu menjadi suatu sinyal yang memiliki lebar bidang frekuensi yang jauh lebih
besar. Susunan data dikalikan secara biner dengan kode penyebar yang memiliki lebar
bidang yang jauh lebih besar dari pada sinyal asal. Spread Spectrum menggunakan wide
band dan noise like (pseudo-noise) signals. Untuk merealisasikan Spread Spectrum
biasanya menggunakan teknik Direct Sequence (DS-SS) atau Frequency Hopping
(FH-SS) atau kombinasi keduanya.
Pada tugas akhir ini, telah merealisasikan sistem Optical Orthogonal Codes
(OOC) dengan menggunakan metode 2-D PC/PC Codes. Adapun metode 2-D PC/PC
Codes itu adalah sebuah metode yang menggunakan Prime Codes (PC) pada
wavelength-hopping dan time-spreading .
Kinerja 2-D PC/PC Codes yang dilihat dari nilai korelasi silang yang diperoleh
dari pengecekan bit”1” pada data yang dikirim dengan data lainnya yang mempunyai
nilai korelasi maksimal satu, sehingga interferensi antar user sangat rendah.
Wavelength-SIMULATION OF OPTICAL ORTHOGONAL CODE (OOC)
WITH METHOD 2-D PC/PC CODE
(2 Demensional Prime Code / Prime Code )
Composed by:
Name : Aries Wiradinata
NRP : 0422132
Faculty of Engineering, Electrical Engineering Department,
Maranatha Christian University,
Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,
email : [email protected]
ABSTRACT
Over the last decade, the telecommunications world has known a new technique,
called Spectral spread (Spread Spectrum). Spread Spectrum is a telecommunications
technique that transmits a signal with a wide field of specific frequency into a signal
which has a wide-field frequency is much greater. Data stream is multiplied by a binary
with a password that has a wide field propagator is much larger than the original signal.
Spread Spectrum uses wide band and noise like (pseudo-noise) signals. To realize the
spread spectrum technique typically uses Direct Sequence (DS-SS) or Frequency
Hopping (FH-SS) or a combination of both.
In this final project, have been realize the system of Optical Orthogonal Codes
(OOC) using the 2-D PC / PC Codes. The method of 2-D PC / PC Codes it is a method
that uses the Prime Codes (PC) on the wavelength-hopping and time-spreading.
Performance of 2-D PC / PC Codes can be seen from the cross-correlation
values obtained from the checking bits "1" on the data sent by other data that have a
maximum correlation value of one, so that the interference between users is very low.
Key Word : CDMA, Optical Orthogonal Code, 2-D PC/PC Codes,
DAFTAR ISI
KATA PENGANTAR ...iii
DAFTAR ISI ...v
DAFTAR TABEL ...vii
DAFTAR GAMBAR ...viii
BAB I PENDAHULUAN I.1. Latar Belakang ...1
II.4.2.1 Korelasi Sendiri ...11
II.4.2.2 Korerasi Silang ...12
II.5. 2-D OCDMA ...12
BAB III CARA KERJA
III.1. Blok Diagram OCDMA Secara Umum ...14
III.2. Realisasi OOC Dengan Metode 2-D PC/PC Codes ...15
III.3. Diagram Alir Pembakitan OOC dengan 2-D PC/PC Codes ...17.
BAB IV DATA PENGAMATAN DAN ANALISA
IV.1. Data Pengamatan Pengiriman Data ...21
IV.2. Data Pengamatan Korelasi Silang ...30
BAB V KESIMPULAN DAN SARAN
V.1 Kesimpulan ...32
V.2 Saran ...32
DAFTAR PUSTAKA ... 33
LAMPIRAN A...A-1
DAFTAR TABEL
Halaman
Tabel 2.1 Kelebihan dan Kekurangan jenis-jenis Komunikasi Spektrum
Tersebar.………..…8
Tabel 2.2 Hubungan antara Prime sequences,pemilihan kode prima ( p=5 ) serta
panjang kode prima (p2)….………11
Tabel 3.1 Prime Codes dengan P=5………..15
DAFTAR GAMBAR
Halaman
Gambar 2.1 Diagram blok klasifikasi system komunikasi OCDMA………...5
Gambar 3.1 Diagram Blok OCDMA………...14
Gambar 3.2 Diagram Alir OOC dengan 2-D PC/PC Codes ………...17
Gambar 3.3 Diagram Alir 2-D PC/PC Codes ……….………...18
Gambar 3.4 Diagram Alir Pembentukan Kode prima Time-Spreading...……...19
Gambar 3.5 Diagram Alir Pembentukan Kode prima Wavelength-Hopping….20 Gambar 4.1 Pengiriman Data P=3 untuk user 1 sampai user 3.……….21
Gambar 4.2 Pengiriman Data P=3 untuk user 1 dan user 4………..22
Gambar 4.3 Diagram Matriks Kode user P=3.………...……22
Gambar 4.4 Pengiriman Data P=5 untuk user 1 sampai user 5 ……….23
Gambar 4.5 Pengiriman Data P=5 untuk user 1, user 6, user 11, dan user 16 ..24
Gambar 4.6 Diagram dari matriks kode user P=5... ………..25
Gambar 4.7 Pengiriman DataP=7 untuk user 1 sampai user 7……….26
Gambar 4.8 Pengiriman DataP=7 untuk user 1, user 8, user 15, user 22, user 29, user 36………..……….27
Gambar 4.9 Diagram dari matriks kode user P=7... ………..29
Gambar 4.10 Korelasi Silang dengan P=3...……….……….30
Gambar 4.11 Korelasi Silang dengan P=5...……….……….30
LAMPIRAN A:
%Program Utama
clear;
close all;
clc;
% Program ini adalah untuk membentuk 2D PC/PC
% (kombinasi TS dan WH)
% Inisialisasi
p1=3; % p1 : bilangan prima untuk melakukan proses time-spreading
p2=p1; % p2 : bilangan prima untuk melakukan proses wavelength-hop
w=p2; % w : banyaknya bit "1" pada kode yang valid
jum_data=5;
data_user{1}=randuni(jum_data);
for m=2:(p1*(p2-1))
data_user{m}=data_user{1}; % Misal data semua user sama
end;
data_tamp=data_user{1}; % data tiap user sama
data_user_ulang=[];
for m=1:(p1*(p2-1))
simp=data_user{m};
sig_ulang=ulang(p1,simp);
data_user_ulang=[data_user_ulang;sig_ulang];
end;
% Proses pembentukan baris prima untuk time-spreading
brs_prima_time=baris_prima(p1);
% Proses pembentukan kode prima untuk time-spreading
kode_prima_time=kode_prima(brs_prima_time);
% Proses pembentukan baris prima untuk wavelength-hop
brs_prima_wavelength=brs_prima_wavelength(2:end,:)+1;
% Untuk mengacak urutan kode penebar
f=1:p1;
urut_kode=acak_urut(f);
for h=1:p1
kode_prima_time_acak(h,:)=kode_prima_time(urut_kode(h),:);
end;
% Menyisipkan frekuensi
x1=[];
y=brs_prima_wavelength;
x=kode_prima_time_acak;
for gg=1:size(y,1)
y1=y(gg,:);
for m=1:size(x,1)
n=1;
for p=1:length(x_temp)
if x_temp(p)==1
x_temp(p)=y1(n);
n=n+1;
end;
end;
x1=[x1; x_temp];
end;
end;
kode_user_final=x1;
% Ubah urutan kode_user_final
var_indeks=1:p1*(p2-1);
var_modif=acak_urut(var_indeks);
kode_user_fin_modif(m,:)=kode_user_final(var_modif(m),:);
end;
% Modulasi semua data user dengan kode masing2x
% (dalam hal ini dikalikan)
data_tx=[];
for m=1:size(kode_user_final,1)
simp=kode_user_final(m,:);
data_rep=data_user_ulang(m,:);
for k=1:jum_data
data_termod_kali((k-1)*p1.^2+1:k*p1.^2)=kali(data_rep((k-1)*p1.^2+1:k*p1.^2),simp);
end;
data_tx=[data_tx;data_termod_kali];
end;
sig_out=zeros(p1*(p2-1),jum_data*p1.^2*141);
temp=[];
subplot(3,1,m);plot(sig_gbr_1(m,:));grid;
xlabel('Waktu');ylabel('Amplitudo sinyal');
end;
sig_gbr_2=sig_out(4:6,:);
figure;
for m=1:3
subplot(3,1,m);plot(sig_gbr_2(m,:));grid;
xlabel('Waktu');ylabel('Amplitudo sinyal');
title(['Data user ke -',num2str(1*3+m),', yaitu [',num2str(data_tamp),']']);
end;
% % Jika p=5;
% sig_gbr_3=sig_out(7:9,:);
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_3(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(2*3+m),', yaitu [',num2str(data_tamp),']']);
%
% sig_gbr_4=sig_out(10:12,:);
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_4(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(3*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
%
% sig_gbr_5=sig_out(13:15,:);
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_5(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(4*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
%
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_6(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(5*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
%
% sig_gbr_7=sig_out(19:20,:);
% figure;
% for m=1:2
% subplot(2,1,m);plot(sig_gbr_7(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(6*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
% % Batas jika p1=5
% % jika p=7
% sig_gbr_7=sig_out(19:21,:);
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_7(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(6*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
%
% sig_gbr_8=sig_out(22:24,:);
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_8(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(7*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
%
% sig_gbr_9=sig_out(25:27,:);
% figure;
% for m=1:3
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(8*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
% sig_gbr_10=sig_out(28:30,:);
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_10(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(9*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
% sig_gbr_11=sig_out(31:33,:);
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_11(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% end;
% sig_gbr_12=sig_out(34:36,:);
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_12(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(11*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
% sig_gbr_13=sig_out(37:39,:);
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_13(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(12*3+m),', yaitu [',num2str(data_tamp),']']);
% sig_gbr_14=sig_out(40:42,:);
% figure;
% for m=1:3
% subplot(3,1,m);plot(sig_gbr_14(m,:));grid;
% xlabel('Waktu');ylabel('Amplitudo sinyal');
% title(['Data user ke -',num2str(13*3+m),', yaitu [',num2str(data_tamp),']']);
% end;
% % batas jika p=7
% mencari nilai korelasi silang
indeks_korelasi=1;
for m=1:size(kode_user_final,1)
for n=m+1:size(kode_user_final,1)
korelasi(indeks_korelasi)=0;
for kk=1:p1^2
if ((kode_user_final(m,kk)~=0)&&(kode_user_final(n,kk)~=0))
if (kode_user_final(m,kk)==kode_user_final(n,kk))
else
korelasi(indeks_korelasi)=korelasi(indeks_korelasi);
end;
end;
end;
indeks_korelasi=indeks_korelasi+1;
end;
end;
figure;
stem(korelasi);grid;title(['Korelasi silang',', yaitu [',num2str(data_tamp),']']);
Function Baris Prima
function keluar=baris_prima(masuk)
%
% Function ini untuk menghasilkan barisan prima (prime sequence)
%
% Catatan : masukan harus berupa bilangan prima
%
% Variabel masukan : masuk = bilangan prima
%
% Variabel keluaran : keluar = barisan prima
%
cek=isprime(masuk);
if cek == 0
error('Bilangan yang dimasukkan BUKAN bilangan prima');
end;
p = masuk; % bilangan prima yang diinputkan
for n=1:p
S(m,n) = mod ((m-1).* (n-1),p);
end;
end;
Function Kode Prima
function keluar=kode_prima(masuk)
%
% Function ini untuk menghasilkan kode prima (prime code)
%
% Catatan : masukan berupa barisan prima
%
% Variabel masukan : masuk
% Variabel keluaran : keluar
%
keluar=zeros(size(masuk,1),size(masuk,1).*size(masuk,2));
for m=1:size(masuk,1)
temp=masuk(m,:);
for n=1:length(temp)
keluar(m,(n-1).*size(masuk,2)+temp(n)+1)=1;
end;
Function Acak Urut
function [keluar]=acak_urut(masuk)
% Function ini untuk mengacak urutan yang masuk
keluar=[];
m=length(masuk);
while m~=0
masuk_baru=[];
cek=randperm(length(masuk));
Function Randuni
function[p]=randuni(N);
% Fungsi ini untuk membangkitkan data unipolar
% Variabel masukan : N = banyaknya data yang ingin dikirim
% Variabel keluaran : p
for i=1:N,
temp=rand;
if (temp<0.5),
data(1,i)=0;
else
data(1,i)=1;
end;
end;
Function Sinyal Nol
function keluar=sinyal_nol(masuk)
%
% Function ini untuk modulasi ASK untuk bit "0"
%
% Variabel masukan : masuk,f(frek)
% Variabel keluaran : keluar
%
t=0.05:.00675:1;
A=1;
if masuk==0
% if masuk~=1
keluar=zeros(1,length(t));
Function Sinyal tak nol
function keluar=sinyal_taknol(masuk)
%
% Function ini untuk modulasi ASK untuk bit"1"
%
% Variabel masukan : masuk,f(frek)
% Variabel keluaran : keluar
%
t=0.05:.00675:1;
A=1;
f=masuk;
if masuk~=0
keluar=A.*sin(2.*pi.*f.*t);
Function Sinyal satu
function keluar=sinyal_satu(masuk,f)
%
% Function ini untuk modulasi ASK untuk bit"1"
%
% Variabel masukan : masuk,f(frek)
% Variabel keluaran : keluar
%
t=0.05:.00675:1;
A=1;
if masuk~=0
keluar=A.*sin(2.*pi.*f.*t);
LAMPIRAN B:
GAMBAR
BAB I
PENDAHULUAN
Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan
masalah, tujuan, pembatasan masalah, dan sistematika penulisan laporan tugas akhir.
I.1 Latar Belakang
Lebih dari satu dekade terakhir, dunia telekomunikasi telah mengenal sebuah
teknik baru, disebut Spektral Tersebar (Spread Spectrum). Spektral Tersebar ialah
teknik telekomunikasi yang mentransmisikan suatu sinyal dengan lebar bidang
frekuensi tertentu menjadi suatu sinyal yang memiliki lebar bidang frekuensi yang jauh
lebih besar. Susunan data dikalikan secara biner dengan kode penyebar yang memiliki
lebar bidang yang jauh lebih besar dari pada sinyal asal. Spread Spectrum menggunakan
wide band dan noise like (pseudo-noise) signals. Untuk merealisasikan Spread
Spectrum biasanya menggunakan teknik Direct Sequence (DS-SS) atau Frequency
Hopping (FH-SS) atau kombinasi keduanya.
Untuk mencirikan user pada DS-SS sekaligus mengatur perubahan frekuensi
(FH-SS) dapat menggunakan kode prima( Prime Codes/ PC) yang merupakan sebuah
kode yang besifat orthogonal.
Pada tugas akhir ini, telah disimulasikan sistem Optical Orthogonal Codes
(OOC) dengan menggunakan metoda 2-D PC/PC Codes. Metode 2-D PC/PC Codes itu
adalah sebuah metode yang menggunakan Kode Prima (PC) pada Wavelenght-Hooping
dan Time-Spreading .
I.2 Identifikasi Masalah
Dalam bidang komunikasi, Optical Orthogonal Codes (OOC) banyak
digunakan dalam komunikasi CDMA agar memenuhi korelasi sendiri dan silangyang
Bab I Pendahuluan
2
optik yang bertujuan untuk membangkitkan dan menganalisa OOC yang digunakan
pada kabel serat optik yang data informasi dipetakan ke dalam suatu address code.
I.3 Perumusan Masalah
Perumusan masalah yang akan dibahas dalam tugas akhir ini adalah:
1. Bagaimana kombinasi Wavelength-Hopping dan Time-Spreading dapat di
realisasikan dengan menggunakan 2-D PC/PC Code?
2. Bagaimana kinerja 2-D PC/PC Codes untuk mengkodekan kedua teknik
spektra tersebar dari perhitungan korelasi silang?
I.4 Tujuan
Tujuan Tugas Akhir ini adalah :
1. Untuk merealisasikan system Wavelength-Hopping dan Time-Spreading
dengan 2-D PC/PC Codes dalam komunikasi Serat Optik CDMA.
2. Mengevaluasi kinerja 2-D PC/PC Codes dari perhitungan korelasi silang
I.5 Pembatasan Masalah
Pembatasan masalah pada Tugas Akhir ini dibatasi oleh :
1. Nilai bilangan prima yang digunakan untuk Wavelength-Hoping dan
Time-Spreading sama.
2. Banyaknya bit ”1” sama dengan bilangan prima yang dipilih untuk
wavelength-hoping.
3. Proses pembangkitan kode prima sama dengan kode prima original.
4. Kinerja kode 2-D PC/PC Codes diamati dari perhitungan korelasi silang.
Bab I Pendahuluan
3
I.6 Sistematika Penulisan
Laporan terdiri dari beberapa bab dengan garis besar sebagai berikut :
BAB I PENDAHULUAN
Pada bab ini berisi tentang latar belakang, identifikasi masalah, perumusan
masalah, tujuan, pembatasan masalah, cara kerja dan sistematika penulisan laporan
tugas akhir.
BAB II LANDASAN TEORI
Pada bab ini dijelaskan mengenai teori-teori penunjang yang diperlukan dalam
merealisasikan Optical Orthogonal Codes(OOC) dengan 2-D PC/PC Codes yaitu
berupa teori tentang CDMA, OCDMA, Spektral tesebar, DS-SS, FH-SS, Kode
Prima, 2-D OCDMA Codes dan korelasi silang.
BAB III PERANCANGAN DAN REALISASI
Pada bab ini dijelaskan tentang realisasi OOC dengan Metoda 2-D PC/PC Codes
BAB IV ANALISA DAN DATA PENGAMATAN
Pada bab ini dijelaskan tentang proses data pengamatan, dan analisisnya.
BAB V KESIMPULAN DAN SARAN
Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu
BAB V
KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu
dilakukan untuk perbaikan di masa mendatang.
V.1 Kesimpulan
Dalam mensimulasikan Optical Orthogonal Code dengan metode 2-D PC/PC
codes, dapat disimpulkan bebarapa hal seperti berikut:
1. 2-D PC/PC Codes dapat digunakan untuk melakukan proses kombinasi
wavelength-hopping dan time-spreading
2. 2-D PC/PC Codes memiliki nilai korelasi silang maksimum satu, sehingga antar
user memiliki interfrensi sangat rendah.
V.2 Saran
Saran-saran yang dapat diberikan untuk perbaikan dan pengembangan Tugas
Akhir ini di masa mendatang adalah :
1. Percobaan bisa dilakukan dengan membandingkan OOC dengan metode
DAFTAR PUSTAKA
1. Jackel, Janet. Optical-CDMA: What, Why and How. Montana State. 2005.
2.
Meel, J., ir., “Spread Spectrum”, IWT HOBU Fonds, De Nayer Instituut, October1999.