DAFTAR PUSTAKA
[1]
Ericsson, “Ericsson Mobility Network : On The Pulse Of The Networked Society”, Ericsson Mobility Report Q3 2013, http://www.ericsson.com/res/docs/2013/ericssonmobility-report-november-2013.pdf
[2]
R. Y. Chang, Z. Tao, J. Zhang and C.-C. Kuo, “A graph approach to dynamic fractional frequency reuse (FFR) in multi-cell OFDMA networks,” in Proc. IEEE ICC ’09, pp.1–6, June 2009.
[3]
Boccuzzi, Joseph and Ruggiero, Michael.”Femtocell Design and Application”, McGrawHill Ryerson. 2011.
[4]
Yasser, F., “Adaptive Subscarrier Allocation To Mitigate Inter-Femtocell Interference On The OFDMA Network Based Fractional Frequency Reuse”, Institut Teknologi Telkom, June 2013.
[5]
Christopher Cox. 2012.An Introduction To LTE, LTE, LTE-Advanced, SAE And 4G Mobile Communications. Chris Cox Communications Ltd.
[6]
http://www.telecom-cloud.net/femtocells-meet-the-enterprise/ (Diakses, Maret 2014).
[7]
A. Lobinger, S. Stefanski, T. Jansen, and I. Balan, “Load balancing in downlink LTE self-optimizing networks,” in Proc. IEEE 71st Vehicular Technology Conference (VTC), May 2010.
[8]
R. Kwan, R. Arnott, R. Paterson, R. Trivisonno, and M. Kubota, “On mobility load balancing for LTE systems,” in Proc. IEEE 72nd Vehicular Technology Conference (VTC), Sep 2010
[9]
P. Mu˜noz, R. Barco, I. De la Bandera, M. Toril, and S. Luna-Ram´ırez, “Optimization of a fuzzy logic controller for handover-based load balancing,” in Proc. IEEE 73rd IEEE Vehicular Technology Conference (VTC), May 2011.
[10]
Usman, Uke Kurniawan. Prihatmoko, Galuh. Hendraningrat, Denny K. Purwanto, Sigit Dedi.”Fundamental Teknologi Seluler LTE” Rekayasa Sains. Bandung 2011.
49
[11]
HU Dan, LI Hong-jia, XU Xiao-dong, TAO Xiao-feng, “Inter-femtocell interference coordination
in
3D
in-building
scenario”,
April
2012,
19(2):
36–42
www.sciencedirect.com/science/journal/10058885. [12]
Jim Zyren. 2007. Overview of the 3GPP Long Term Evolution Physical Layer. Freescale Semiconductor.
[13]
3GPP TR 36.921 V11.0.0, Home E-Node B (HeNB) Radio Frequency (RF) Requirements, September 2012
[14]
Pekka Kyösti, dkk. “WINNER II interim channel models” IST-4-027756 WINNER II. 2007
[15]
Afolabi, Akindele Segun, “Inter-cell Coordination for Interference Mitigation in Multitier
Wireless
Networks’’,
Thesis
Kobe
University
Jepang,
25-09-2012
http://www.lib.kobe-uc.ac.jp/handle_gakui/D1005625.pdf [16]
Heui-Chang Lee, Dong-Chan Oh, and Yong-Hwan Lee,”Mitigation of Inter-Femtocell Interference with Adaptive Fractional Frequency Reuse, Proceedings of the IEEE International Conference on Communications (ICC’10), May 23-27, Cape Town, South Africa. Piscataway, NJ, USA: IEEE, 2010: 5p
[17]
Lucent, Alcatel. Inc., “Alcatel-Lucent 9360 Small Cell Solution for The Enterprise”, 2010 http://resources.alcatel-lucent.com/?cid=141126
[18]
Honcharenko, W., Bertoni, H.L., & Dailing, J., “Mechanisms Governing Propagation Between Different Floors in Buildings” , IEEE Trans. Antenna and Propagation, Vol. 41, No. 6, June 1993, pp. 787 - 790
[19]
J. G. Proakis, Digital communications, 5th ed., Mc Graw-Hill, 2008.
[20]
Rappaport, Theodore S.”Wireless Communications Principles and Practice 2nd Edition” Prentice Hall.2002
[21]
Sergio Benedetto and Ezio Biglieri (1999). Principles of Digital Transmission: With Wireless Applications. Springer. ISBN 0-306-45753-9.
50
LAMPIRAN SIMULASI % Created By Muharam Nur Cahyadi % Pengalokasian PRB Pada Teknologi OFDM Untuk Mencegah Interferensi InterFemtocell Pada Jaringan LTE di Gedung Bertingkat % Jurusan Teknik Elektro, Fakultas Teknik, Universitas Mercu Buana , 2014 clear all clc test_sinr12=[]; test_sinr24=[]; test_sinr36=[]; test_sinr48=[]; test_sinr60=[]; test_sinr72=[];
test_drate12=[]; test_drate24=[]; test_drate36=[]; test_drate48=[]; test_drate60=[]; test_drate72=[];
test_eff12=[]; test_prb12=[]; test_eff24=[]; test_prb24=[]; test_eff36=[]; test_prb36=[]; test_eff48=[]; test_prb48=[]; test_eff60=[]; test_prb60=[]; test_eff72=[]; test_prb72=[];
%% 1. PARAMETER AWAL INISIALISASI nprb=25; % jumlah Physical Resource Block ptm=30-10*log10(nprb); ptf=0-10*log10(nprb); ptfn=10^(ptf/10); %daya TX HeNb (dBm) %Menggunakan Asumsi ptf Minimum Femtocell enterprise (-15dBm to 20 dBm) pti=40-10*log(nprb); ptin=10^(pti/10); gr=3; grn=10^(gr/10); %gain antenna user/penerima gtxf=6; gtxfn=10^(gtxf/10); %gain antenna HeNB tmac=30; % tinggi antenna bs (macrocell) fc=2600; fcdb=20*log10(fc/5e3); fcn=10^(fc/20);%frekuensi carrier lf=10; lfn=10^(lf/10); %rugi2 lantai nfig=7; nfiglin=10^(nfig/10); % noise figure perangkat lwall=5; lwn=10^(lwall/10); %rugi2 dinding pc=32.4; pcn=10^(pc/10); %konstanta PATHLOSS FSL pcSUI=109.78; %konstanta pathloss unutk SUI pada frekuensi 2600MHz ple=4.5; plen=10^(ple/10); % ple= PATHLOSS Exponent penetrasi=10; BER=1e-6; SINR_GAP=-log(5*BER)/1.5; ath5=5; ath10=10; ath15=15; nsample=100; % jumlah sample pengamatan nlantai=3; % banyak lantai gedung for loop=1:nsample loop %---------------------KORDINAT---------------------% nfl=6; % banyak femto perlantai nuser=24*nlantai; nf=nfl*nlantai; xu=950+50*rand(1,nuser); xf=950+50*rand(1,nf); yu=50*rand(1,nuser); yf=50*rand(1,nf); zx=3*[1:nlantai]-2; zf=[];zu=[]; for i=1:nfl; zf=[zf zx]; end for i=1:24 zu=[zu zx]; end koru=[xu' yu' zu']; korf=[xf' yf' zf']; rayl=random('rayl',1,nf,nuser); shadow=6*rand(nf,nuser); % shadow & rayleigh FUE ke FAP
51
raym=random('rayl',1,19,nuser); shadowm=10*rand(19,nuser); % shadow & rayleigh FUE ke macro BTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:nf % 1.5 Jarak HeNB ke User for j=1:nuser juf(i,j)=sqrt(((xf(i)-xu(j))^2)+(yf(i)-yu(j))^2+(zf(i)-zu(j))^2); jufdb(i,j)=20*log10(juf(i,j)); %jarak dB raydb(i,j)=10*log10(rayl(i,j)); %rayleigh dB shadowdb(i,j)=10*log10(shadow(i,j)); %shadow dB x=ceil(juf(i,j)/10);% tiap kenaikan 10m jarak, lwall bertambah lwdb(i,j)=x*lwall; %Loss wall dB lfdb(i,j)=((zf(i)-zu(j))/3)*lf; end end for i=1:nf % Jarak ANtar HeNb for j=1:nf jaf(i,j)=sqrt(((xf(i)-xf(j))^2)+(yf(i)-yf(j))^2+(zf(i)-zf(j))^2); end end %% 3. daya terima user karena dari tiap2 HeNb prufdb=ptf*ones(nf,nuser)+gtxf*ones(nf,nuser)+gr*ones(nf,nuser)... -(46.6*ones(nf,nuser)+jufdb+fcdb*ones(nf,nuser))-lf*ones(nf,nuser)... -lwdb-shadowdb-raydb-lfdb; % % dalam dBm %% 3.1 Interferensi dari macrocell existing i=1:6; x1=2000*sin(i*60*pi/180); y1=2000*cos(i*60*pi/180); i=1:12; x=4000*sin(i*30*pi/180); y=4000*cos(i*30*pi/180); xx=[0 x1 x]; yy=[0 y1 y]; for i=1:19 % microcell ke USER sebagai interferensi for j=1:nuser a=(xx(i)-xu(j))^2; b=(yy(i)-yu(j))^2; c=(zu(i)tmac)^2;jj1(i,j)=sqrt(a+b+c); jjmic(i,j)=30*log10(jj1(i,j)/1000); raym(i,j)=10*log10(raym(i,j)); shadowm(i,j)=10*log10(shadowm(i,j)); end end prmacdb=ptm*ones(nuser,19)+gtxf*ones(nuser,19)+gr*ones(nuser,19)... -(128*ones(nuser,19)+jjmic')-penetrasi*ones(nuser,19)-shadowm'-raym'; for i=1:nuser % daya dari inner ubah ke linier for j=1:19 prmicn(i,j)=10^(prmacdb(i,j)/10); end end prmicn=prmicn'; intmic=sum(prmicn); %% 4. USER BERTAMBAH for nuser=12:12:72; % USER BERTAMBAH 12 prufin=prufdb(1:nf,1:nuser); for i=1:nf % Prx FUE dari tiap HeNb dalam numerik for j=1:nuser pru(i,j)=10^(prufin(i,j)/10); end end %x=sum(pru) %y=max(pru) %intakumulasi=x-y
52
%% 5. CARI SERVING FEMTO & JUMLAH FUE yg DILAYANI [a,sf]=max(pru);% dicari dari yg memiliki daya terima yg paling besar for i=1:nf % Cari Jumlah FUE dlm tiap serving FAP jml(i)=0; for j=1:nuser if i==sf(j) jml(i)=jml(i)+1; end end if jml(i)==0 %hilangkan FAP yg tidak serving dari pengiterferensi pru(i,:)=0;%jika FAP tdk melayani=outage & tdk menginterferensi end end txall_belum=sum(pru)-max(pru);% interferensi dari FAP terima=max(pru); % Daya Dari SERVING HeNb noise=(1.38e-23*270*nfiglin*5e6); intall(1:nuser)=txall_belum(1:nuser)+intmic(1:nuser);%int FAP+ inercell %% 6. SINR USER SEBELUM CLUSTERING : 1 x nuser for i=1:nuser sinr(i)=(terima(i)/(intall(i)+noise)); sinrdb(i)=10*log10(sinr(i)); end %% 6.1 SINR dari tiap FUE terhadap semua HeNb yg ada [a,b]=max(prufin); for i=1:nuser for j=1:nf if jml(j)==0 sinrFUE(j,i)=100; % FAP yg tdk ada FUE, dianggap mati sehingga SINR FUE besar else sinrFUE(j,i)=a(i)-prufin(j,i); % SINR tiap FUE dari tiap HeNb end end end %% 6.2 DAYA AKUMULASI DARI TIAP USER YG DILAPORKAN KE SERVING FEMTONYA MASING2 %matrik ukuran nf X nf %daya terima dari tiap HeNB yg dilaporkan dari user (CSI) %penjumlahan kolom untuk akumulasi CSI dari user ke serving HeNb %mengubah dari matrix : nf X nuser ===> nf X nf csi=zeros(nf,nf); [a,b]=max(pru); % b=serving FAP thd user-i for i=1:nuser csi(:,b(i))=csi(:,b(i))+pru(:,i); end x1=sum(csi); % Akumulasi semua yg diterima termasuk interferensi dtx=max(csi); % akumulasi daya terima dari user pada HeNb intakumulasi=x1-dtx+noise; % total interferensi yang dialami oleh HeNB
%% 7. Membuat Matrik Interferensi dari Reported CSI yg MINIMUM dari tiap FUE sinrmin=99*ones(nf,nf); [a,b]=max(pru); %
53
% Mencari SINR MINIMUM dari tiap FUE dan dimasukan ke matrix : nf X nf for i=1:nuser% ===> nf X nuser dB(SINR dr tiap HeNb) for j=1:nf if sinrFUE(j,i)<=sinrmin(j,b(i)); % SINR FUE Minimum yg jadi referensi dari CSI HeNb sinrmin(j,b(i))=sinrFUE(j,i); % dlm dB else end end end %% 8. CLUSTERING %% 8.1 CLUSTERING SINR TRESHOLD = 5 dB [r1,s1]=sort(intakumulasi,'descend'); % sort dari int tertinggi ke terendah % r1=level interfensi % s1=HeNB yg memiliki interferensi tsb n1=0; g5min=zeros(nf,nf); g5min(:,1)=s1'; onezero5=zeros(nf,nf); onezero5(:,1)=1; for i=1:nf % GROUPING SINR TRESHOLD = 5 dB m1=1; n1=n1+1; for j=1:nf % level interferensi di urut dari tertinggi untuk tiap HeNb [p1,q1]=sort(sinrmin(:,s1(i))); if sinrmin(q1(j),s1(i))
54
end end end %% 8.3 GROUPING SINR TRESHOLD = 15 dB n1=0; g15min=zeros(nf,nf); g15min(:,1)=s1'; onezero15=zeros(nf,nf); onezero15(:,1)=1; for i=1:nf % GROUPING SINR TRESHOLD = 5 dB m1=1; n1=n1+1; for j=1:nf % level interferensi di urut dari tertinggi untuk tiap HeNb [p1,q1]=sort(sinrmin(:,s1(i))); if sinrmin(q1(j),s1(i))
% jumlah group 5 dB % jumlah group 10 dB % jumlah group 15 dB
%% 9.1 TAMBAH IFFF SINI KARENA ERROR 5 dB [a5,b5]=size(g5min); if b5==1 % jika tidak ada yg bertetangga 5 dB for i=1:nf prbgroup5(i)=nprb; if jml(i)~=0 ft5(i,1)=i; ft5(i,2)=nprb; else ft5(i,1)=i; ft5(i,2)=0; end end sinrifidb5=sinrdb; else for k=1:length(jgroup5) %nf %length(jgroup5) % Alokasi nPRB ke tiap group prbgroup5(k)=floor(nprb/jgroup5(k)); end %% 9.1.1 CARI nPRB Minimum untuk HeNb yg berada lebih dalam 1 cluster for i=1:nf [a5,b5]=find(i==g5min(:,:)); % HeNB Outage terjadi saat tidak ada user 15 dB if jml(i)==0 ft5(i,1)=i; ft5(i,2)=0; ft5(i,3)=a5(1); else % HeNB-i Memiliki user
55
[c5,d5]=min(prbgroup5(a5)); ft5(i,1)=i; ft5(i,2)=c5; ft5(i,3)=a5(d5); end end %% 9.1.2 HeNb penginterferer dihilangkan 5 dB % ukuran matrix : nf X nuser prueli5=pru; for i=1:nuser % menhilangkan pengiterferensi dari HeNb satu cluster x=sf(i); % ambil serving HeNb user-i hilang=jgroup5(ft5(x,3)); % hilangkan sebanyak x % ft5(i,3) dari cluster tsb for j=1:hilang % Menghilangkan HeNb interferer dr user 5 dB prueli5(g5min(ft5(x,3),j),i)=0; % end end x=sum(prueli5); ifi5=x(1:nuser)+intmic(1:nuser); % IFI + innercell for i=1:nuser % 9.1.4 SINR USER SETELAH CLUSTERING 5 dB sinrifi5(i)=(terima(i)/(ifi5(i)+noise)); sinrifidb5(i)=10*log10(sinrifi5(i)); end %% IF CONDISIONAL SAMPE DIBAWAH SINI KARENA ERROR 5 dB end %% SAMPE SINI KARENA ERROR 5 dB %% 9.2 TAMBAH IFFF SINI KARENA ERROR 10 dB [a10,b10]=size(g10min); if b10==1 % jika tidak ada yg bertetangga 10 dB for i=1:nf prbgroup10(i)=nprb; if jml(i)~=0 ft10(i,1)=i; ft10(i,2)=nprb; else ft10(i,1)=i; ft10(i,2)=0; end end sinrifidb10=sinrdb; % SINR USER SETELAH CLUSTERING 10 dB else for k=1:length(jgroup10) %nf %length(jgroup10) % Alokasi nPRB ke tiap group prbgroup10(k)=floor(nprb/jgroup10(k)); end
% user
%% 9.2.1 CARI nPRB Minimum untuk HeNb yg berada lebih dalam 1 cluster for i=1:nf [a10,b10]=find(i==g10min(:,:)); % HeNB Outage terjadi saat tidak ada user 10 dB if jml(i)==0 ft10(i,1)=i; ft10(i,2)=0; ft10(i,3)=a10(1); if isempty(b10)==1 % apakah HeNb i tidak memiliki
56
% user, PRB=0
ft10(i,1)=i; ft10(i,2)=0;
% jika HeNb-i tdk memiliki
else % HeNB-i Memiliki user %[a10,b10]=find(i==g10min(:,:)); [c10,d10]=min(prbgroup10(a10)); ft10(i,1)=i; ft10(i,2)=c10; ft10(i,3)=a10(d10); end end prueli10=pru; for i=1:nuser x=sf(i); % ambil serving HeNb user-i hilang=jgroup10(ft10(x,3)); % hilangkan sebanyak x for j=1:hilang % Menghilangkan HeNb interferer dr user 10 dB prueli10(g10min(ft10(x,3),j),i)=0; end end x=sum(prueli10); ifi10=x(1:nuser)+intmic(1:nuser); %IFI + innercell for i=1:nuser % 9.2.4 SINR USER SETELAH CLUSTERING 10 dB sinrifi10(i)=(terima(i)/(ifi10(i)+noise)); sinrifidb10(i)=10*log10(sinrifi10(i)); end %% IF CONDISIONAL SAMPE DIBAWAH SINI KARENA ERROR 10 dB end %% SAMPE SINI KARENA ERROR 10 dB %% ####################################################### %% 9.3 TAMBAH IFFF SINI KARENA ERROR 15 dB [a15,b15]=size(g15min); if b15==1 % jika tidak ada yg bertetangga 15 dB for i=1:nf prbgroup15(i)=nprb; if jml(i)~=0 ft15(i,1)=i; ft15(i,2)=nprb; else ft15(i,1)=i; ft15(i,2)=0; end end sinrifidb15=sinrdb; else for k=1:length(jgroup15) %nf %length(jgroup5) % Alokasi nPRB ke tiap group 15 dB prbgroup15(k)=floor(nprb/jgroup15(k)); end for i=1:nf % 9.3.1 CARI nPRB Minimum untuk HeNb yg berada lebih dalam 1 cluster 15 dB [a15,b15]=find(i==g15min(:,:)); if jml(i)==0 ft15(i,1)=i; ft15(i,2)=0; ft15(i,3)=a15(1); % HeNB Outage terjadi saat tidak ada user 15 dB else % HeNB-i Memiliki user [c15,d15]=min(prbgroup15(a15));
57
ft15(i,1)=i; ft15(i,2)=c15; ft15(i,3)=a15(d15); end end %% 9.3.2 HeNb penginterferer dihilangkan 15dB % ukuran matrix : nf X nuser prueli15=pru; for i=1:nuser % menhilangkan pengiterferensi dari HeNb satu cluster x=sf(i); % ambil serving HeNb user-i hilang=jgroup15(ft15(x,3)); % hilangkan sebanyak x % ft15(i,3) dari cluster tsb for j=1:hilang % Menghilangkan HeNb interferer dr user 15 dB prueli15(g15min(ft15(x,3),j),i)=0; end end x=sum(prueli15); ifi15=x(1:nuser)+intmic(1:nuser); % IFI + innercell for i=1:nuser % 9.3.4 SINR USER SETELAH CLUSTERING 15 dB sinrifi15(i)=(terima(i)/(ifi15(i)+noise)); sinrifidb15(i)=10*log10(sinrifi15(i)); end %% IF CONDISIONAL SAMPE DIBAWAH SINI KARENA ERROR 15 dB end %% SAMPE SINI KARENA ERROR 15 dB %% 10. JATAH PRB TIAP USER %% 10.1 PRB TANPA CLUSTERING for i=1:nf; prbfemto(i)=nprb; prbuserfemto(i)=floor(nprb/jml(i)); sisaprb(i)=mod(nprb,jml(i)); x=sisaprb(i); [a,b]=find(sf==i); for j=1:length(b)%10.1.1 PRB untk tiap FUE diambil dari PRB HeNB NC if sisaprb(i)>0 sisaprb(i)=sisaprb(i)-1; prbuser(b(j))=prbuserfemto(i)+1; else prbuser(b(j))=prbuserfemto(i); end end end %% 10.2 PRB BUAT Henb 5dB ftcopy5=ft5(:,2); for i=1:nf; % --PRB untuk Tiap Cluster 5 dB-prbuserfemto5(i)=floor(ft5(i,2)/jml(i)); %prbuserfemto5=prb buat user dlm 1 HeNb sisaprb5(i)=mod(ft5(i,2),jml(i)); % sisa dari PRB HeNb, sisa ini akan dibagi ke user end for i=1:nuser; %10.2.1 PRB untuk tiap user diambil dari PRB HeNB 5 dB x=sf(i); if jml(x)>ft5(x,2) if ftcopy5(x)<=0 % jika prb tersedia < jumlah user pda HeNb-x prbuser5(i)=0;
58
else ftcopy5(x)=ftcopy5(x)-1; prbuser5(i)=1; end else if sisaprb5(x)>0 sisaprb5(x)=sisaprb5(x)-1; prbuser5(i)=prbuserfemto5(x)+1; else prbuser5(i)=prbuserfemto5(x); end end end %% 10.3 PRB untuk Tiap Cluster 10 dB ftcopy10=ft10(:,2); for i=1:nf % --PRB untuk Tiap Cluster 10 dB-prbuserfemto10(i)=floor(ft10(i,2)/jml(i)); sisaprb10(i)=mod(ft10(i,2),jml(i)); %PRB AKAN DIALOKASIKAN SEMUA KE USER end for i=1:nuser;% 10.3.1 PRB untuk tiap user diambil dari PRB HeNB 10 dB x=sf(i); if jml(x)>ft10(x,2) if ftcopy10(x)<=0 % jika prb tersedia < jumlah user pda HeNb-x prbuser10(i)=0; else ftcopy10(x)=ftcopy10(x)-1; prbuser10(i)=1; end else if sisaprb10(x)>0 sisaprb10(x)=sisaprb10(x)-1; prbuser10(i)=prbuserfemto10(x)+1; else prbuser10(i)=prbuserfemto10(x); end end end %% 10.4 PRB untuk Tiap Cluster 15 dB ftcopy15=ft15(:,2); for i=1:nf; % --PRB untuk Tiap Cluster 15 dB-prbuserfemto15(i)=floor(ft15(i,2)/jml(i)); sisaprb15(i)=mod(ft15(i,2),jml(i)); %PRB AKAN DIALOKASIKAN SEMUA KE USER end for i=1:nuser;% 10.4.1 PRB untuk tiap user diambil dari PRB HeNB 15 dB x=sf(i); if jml(x)>ft15(x,2) if ftcopy15(x)<=0 % jika prb tersedia < jumlah user pda HeNb-x prbuser15(i)=0; else ftcopy15(x)=ftcopy15(x)-1; prbuser15(i)=1; end
59
else if sisaprb15(x)>0 sisaprb15(x)=sisaprb15(x)-1; prbuser15(i)=prbuserfemto15(x)+1; else prbuser15(i)=prbuserfemto15(x); end end end prbf=ones(nf,nprb); prbf_5=zeros(nf,nprb);prbf_10=zeros(nf,nprb); prbf_15=zeros(nf,nprb); for i=1:nf %% yang ga serving dibikin NOL pru dan tidak menginterferensi if jml(i)==0 pru(i,:)=0; end end %% 11.1 Alokasi PRB Femto 5 dB (udah masuk ke PRB 1 & 0) for i=1:nf cluster=ft5(i,3); banyak_prb=ft5(i,2); % if banyak_prb==25; prbf_5(i,:)=1; elseif jml(i)==0 || cluster==0 prbf_5(i,:)=0; else x=prbf_5(i,:); for j=1:jgroup5(cluster); % Lakukan Perbandingan Sebanyak Ukuran Cluster anggota_cluster=g5min(cluster,j); x=or(x,prbf_5(anggota_cluster,:)); end [a,b]=find(x==0); % Cari PRB yang belum dipakai Oleh anggota Cluster %b adalah PRB yg belum dipakai oleh anggota Cluster prbf_5(i,b(1:banyak_prb))=1; end end %% 11.2 Alokasi PRB Femto 10 dB (udah masuk ke PRB 1 & 0) for i=1:nf cluster=ft10(i,3); banyak_prb=ft10(i,2); % if banyak_prb==25; prbf_10(i,:)=1; elseif cluster==0 || jml(i)==0 prbf_10(i,:)=0; else x=prbf_10(i,:); for j=1:jgroup10(cluster); % Lakukan Perbandingan Sebanyak Ukuran Cluster anggota_cluster=g10min(cluster,j); x=or(x,prbf_10(anggota_cluster,:)); end [a,b]=find(x==0); % Cari PRB yang belum dipakai Oleh anggota Cluster %b adalah PRB yg belum dipakai oleh angotavcluster
60
prbf_10(i,b(1:banyak_prb))=1; end end %% 11.3 Alokasi PRB Femto 15 dB (udah masuk ke PRB 1 & 0) for i=1:nf cluster=ft15(i,3); banyak_prb=ft15(i,2); % if banyak_prb==25; prbf_15(i,:)=1; elseif jml(i)==0 || cluster==0 prbf_15(i,:)=0; else x=prbf_15(i,:); for j=1:jgroup15(cluster); % Lakukan Perbandingan Sebanyak Ukuran Cluster anggota_cluster=g15min(cluster,j); x=or(x,prbf_15(anggota_cluster,:)); end [a,b]=find(x==0); % Cari PRB yang belum dipakai Oleh anggota Cluster %b adalah PRB yg belum dipakai oleh angotavcluster prbf_15(i,b(1:banyak_prb))=1; end end %% ########################################################## % 12 Alokasi PRB buat FUE %% ########################################################## %% 12.1 ALOKASI PRB FUE dari 25 PRB NC prb_user=zeros(nuser,nprb); scf_copy=prbf; for i=1:nuser x=sf(i); y=find(scf_copy(x,:)==1); prb_user(i,y(1:prbuser(i)))=1; end %% 12.2 ALOKASI PRB FUE dari 25 PRB 5 dB prb_user5=zeros(nuser,nprb); scf_copy=prbf_5; for i=1:nuser x=sf(i); y=find(scf_copy(x,:)==1); prb_user5(i,y(1:prbuser5(i)))=1; end %% 12.3 ALOKASI PRB FUE dari 25 PRB 10 dB prb_user10=zeros(nuser,nprb); scf_copy=prbf_10; for i=1:nuser x=sf(i); y=find(scf_copy(x,:)==1); prb_user10(i,y(1:prbuser10(i)))=1; end %% 12.4 ALOKASI PRB FUE dari 25 PRB 15 dB prb_user15=zeros(nuser,nprb); scf_copy=prbf_15; for i=1:nuser x=sf(i); y=find(scf_copy(x,:)==1); prb_user15(i,y(1:prbuser15(i)))=1;
61
end
%% ****************************************** %% 13 PENGUKURAN %% ****************************************** %% 13.1 SINR & DATA RATE DARI PRB for i=1:nuser % 15.1 Data Rate drate(i)=prbuser(i)*12*15e3*log2(1+sinr(i)/SINR_GAP)/1e6; 1e6 agar biar dalam mbps fx(i)=drate(i)^2; end for i=1:nuser % EFFISIENSI SPEKTRUM (bps/Hz) if prbuser(i)==0 efisiensi(i)=0; sinrdb(i)=0; end if prbuser(i)~=0 efisiensi(i)=drate(i)/(prbuser(i)*12*15*1e-3); end end
% dibagi
% %% SINR & DRATE DARI PRB % %--------tambah ini---------- int hilang dari PRB 5 for i=1:nuser x=sf(i); y=ft5(x,3); prue5(1:nf,i)=0; [a,b]=find(prb_user5(i,:)==1); [c,d]=find(prbf_5(:,b)==1); for j=1:length(c) prue5(c(j),i)=pru(c(j),i); end if prbuser5(i)==0 sinr5(i)=0; noise5(i)=0; int5(i)=0; sinr5n(i)=0;drate5(i)=0; fx5(i)=0; else noise5(i)=prbuser5(i)*180e3*(1.38e-23*270*nfiglin); if sum(prue5(:,i)==0) sinr5(i)=10*log10(terima(i)/(noise5(i)+intmic(i))); int5(i)=0; sinr5n(i)=(terima(i)/(noise5(i)+intmic(i))); drate5(i)=prbuser5(i)*12*15e3*log2(1+sinr5n(i)/SINR_GAP)/1e6; fx5(i)=drate5(i)^2; else int5(i)=sum(prue5(:,i))-terima(i); sinr5(i)=10*log10(terima(i)/(int5(i)+noise5(i)+intmic(i))); sinr5n(i)=(terima(i)/(int5(i)+noise5(i)+intmic(i))); drate5(i)=prbuser10(i)*12*15e3*log2(1+sinr5n(i)/SINR_GAP)/1e6;fx10(i)=drate5( i)^2; end end x=log2(1+(sinr5n(i)/SINR_GAP)); % efisiensi maksimum 6, rate mengikuti if prbuser5(i)==0 efisiensi5(i)=0; drate5(i)=0;fx5(i)=0; elseif prbuser5(i)~=0 && x>=6 efisiensi5(i)=6;
62
drate5(i)=prbuser5(i)*12*7*6/0.5e3; fx5(i)=drate5(i)^2; else efisiensi5(i)=x; drate5(i)=prbuser5(i)*12*15e3*log2(1+sinr5n(i)/SINR_GAP)/1e6; fx5(i)=drate5(i)^2; end end %--------tambah ini---------- int hilang dari PRB 10 for i=1:nuser x=sf(i); y=ft10(x,3); prue10(1:nf,i)=0; [a,b]=find(prb_user10(i,:)==1); [c,d]=find(prbf_10(:,b)==1); for j=1:length(c) prue10(c(j),i)=pru(c(j),i); end if prbuser10(i)==0 sinr10(i)=0; noise10(i)=0; int10(i)=0; sinr10n(i)=0; drate10(i)=0; fx10(i)=0; else noise10(i)=prbuser10(i)*180e3*(1.38e-23*270*nfiglin); if sum(prue10(:,i)==0) sinr10(i)=10*log10(terima(i)/(noise10(i)+intmic(i))); int10(i)=0; sinr10n(i)=terima(i)/(noise10(i)+intmic(i)); drate10(i)=prbuser10(i)*12*15e3*log2(1+sinr10n(i)/SINR_GAP)/1e6;fx10(i)=drate 10(i)^2; else int10(i)=sum(prue10(:,i))-terima(i); sinr10(i)=10*log10(terima(i)/(int10(i)+noise10(i)+intmic(i))); sinr10n(i)=(terima(i)/(int10(i)+noise10(i)+intmic(i))); drate10(i)=prbuser10(i)*12*15e3*log2(1+sinr10n(i)/SINR_GAP)/1e6;fx10(i)=drate 10(i)^2; end end x=log2(1+(sinr10n(i)/SINR_GAP)); % efisiensi maksimum 6, rate mengikuti if prbuser10(i)==0 efisiensi10(i)=0; drate10(i)=0;fx10(i)=0; elseif prbuser10(i)~=0 && x>=6 efisiensi10(i)=6; drate10(i)=prbuser10(i)*12*7*6/0.5e3; fx10(i)=drate10(i)^2; else efisiensi10(i)=x; drate10(i)=prbuser10(i)*12*15e3*log2(1+sinr10n(i)/SINR_GAP)/1e6; fx10(i)=drate10(i)^2; end end %--------tambah ini---------- int hilang dari PRB 15 for i=1:nuser x=sf(i); y=ft15(x,3); prue15(1:nf,i)=0; [a,b]=find(prb_user15(i,:)==1); [c,d]=find(prbf_15(:,b)==1); for j=1:length(c) prue15(c(j),i)=pru(c(j),i); end
63
if prbuser15(i)==0 sinr15(i)=0; noise15(i)=0;int15(i)=0;sinr15n(i)=0;drate15(i)=0;fx15(i)=0; else noise15(i)=prbuser15(i)*180e3*(1.38e-23*270*nfiglin); if sum(prue15(:,i)==0) sinr15(i)=10*log10(terima(i)/(noise15(i)+intmic(i))); int15(i)=0; sinr15n(i)=(terima(i)/(noise15(i)+intmic(i))); drate15(i)=prbuser15(i)*12*15e3*log2(1+sinr15n(i)/SINR_GAP)/1e6; fx15(i)=drate15(i)^2; else int15(i)=sum(prue15(:,i))-terima(i); sinr15(i)=10*log10(terima(i)/(int15(i)+noise15(i)+intmic(i))); sinr15n(i)=(terima(i)/(int15(i)+noise15(i)+intmic(i))); drate15(i)=prbuser15(i)*12*15e3*log2(1+sinr15n(i)/SINR_GAP)/1e6; fx15(i)=drate15(i)^2; end end x=log2(1+(sinr15n(i)/SINR_GAP)); % efisiensi maksimum 6, rate mengikuti if prbuser15(i)==0 efisiensi15(i)=0; drate15(i)=0;fx15(i)=0; elseif prbuser15(i)~=0 && x>=6 efisiensi15(i)=6; drate15(i)=prbuser15(i)*12*7*6/0.5e3; fx15(i)=drate15(i)^2; else efisiensi15(i)=x; drate15(i)=prbuser15(i)*12*15e3*log2(1+sinr15n(i)/SINR_GAP)/1e6; fx15(i)=drate15(i)^2; end end %% 14. Tampung Data %a_rateg=[drate' drate5' drate10' drate15']; %a_prbg=[prbuser' prbuser5' prbuser10' prbuser15']; %a_sinrg=[sinrdb' sinr5' sinr10' sinr15']; %a_effg=[efisiensi' efisiensi5' efisiensi10' efisiensi15']; if nuser==12 test_sinr12=[test_sinr12;a_sinrg(1:nuser,:)]; test_drate12=[test_drate12;a_rateg(1:nuser,:)]; test_prb12=[test_prb12;a_prbg(1:nuser,:)]; test_eff12=[test_eff12;a_effg(1:nuser,:)]; elseif nuser==24 test_sinr24=[test_sinr24;a_sinrg(1:nuser,:)]; test_drate24=[test_drate24;a_rateg(1:nuser,:)]; test_prb24=[test_prb24;a_prbg(1:nuser,:)]; test_eff24=[test_eff24;a_effg(1:nuser,:)]; elseif nuser==36 test_sinr36=[test_sinr36;a_sinrg(1:nuser,:)]; test_drate36=[test_drate36;a_rateg(1:nuser,:)]; test_prb36=[test_prb36;a_prbg(1:nuser,:)]; test_eff36=[test_eff36;a_effg(1:nuser,:)]; elseif nuser==48 test_sinr48=[test_sinr48;a_sinrg(1:nuser,:)]; test_drate48=[test_drate48;a_rateg(1:nuser,:)];
64
test_prb48=[test_prb48;a_prbg(1:nuser,:)]; test_eff48=[test_eff48;a_effg(1:nuser,:)]; elseif nuser==60 test_sinr60=[test_sinr60;a_sinrg(1:nuser,:)]; test_drate60=[test_drate60;a_rateg(1:nuser,:)]; test_prb60=[test_prb60;a_prbg(1:nuser,:)]; test_eff60=[test_eff60;a_effg(1:nuser,:)]; else test_sinr72=[test_sinr72;a_sinrg(1:nuser,:)]; test_drate72=[test_drate72;a_rateg(1:nuser,:)]; test_prb72=[test_prb72;a_prbg(1:nuser,:)]; test_eff72=[test_eff72;a_effg(1:nuser,:)]; end end % end 4. USER BERTAMBAH baris 107 end %end nsample baris for 42 %% TAMPILAN GRAFIK %% 1. SINR for 12:12:72 User x=mean(test_sinr12); x1=mean(test_sinr24); x2=mean(test_sinr36); x4=mean(test_sinr48); x5=mean(test_sinr60); x6=mean(test_sinr72); y=12:12:72; x7=[x;x1;x2;x4;x5;x6]; a1=x7(:,1); a2=x7(:,2); a3=x7(:,3); a4=x7(:,4); figure(1) plot1=plot(y,a1); hold on; plot2=plot(y,a2); hold on; plot3=plot(y,a3); hold on; plot4=plot(y,a4); hold on; grid on; set(plot1,'LineStyle','-','LineWidth',1.5, 'Color','b'); set(plot2,'LineStyle','-','LineWidth',1.5, 'Color','g'); set(plot3,'LineStyle','-','LineWidth',1.5, 'Color','r'); set(plot4,'LineStyle','-','LineWidth',1.5, 'Color','k'); %plot(y,x7); title('SINR User Rata-Rata','fontsize',12); grid on; legend('UFR','Treshold 5 dB','Treshold 10 dB','Treshold 15 dB'); xlabel('Jumlah User Femto Acces Point (FAP)','fontsize',12); ylabel('SINR (dB)','fontsize',12); zzsinr=x7; %% 2. AVERAGE Effisiensi for 12:12:72 User x=mean(test_eff12); x1=mean(test_eff24); x2=mean(test_eff36); x3=[0 0 0 0]; x4=mean(test_eff48); x5=mean(test_eff60); x6=mean(test_eff72); y=12:12:72; x7=[x;x1;x2;x4;x5;x6]; a1=x7(:,1); a2=x7(:,2); a3=x7(:,3); a4=x7(:,4); figure(2) plot1=plot(y,a1); hold on; plot2=plot(y,a2); hold on; plot3=plot(y,a3); hold on; plot4=plot(y,a4); hold on; grid on; set(plot1,'LineStyle','-','LineWidth',1.5, 'Color','b'); set(plot2,'LineStyle','-','LineWidth',1.5, 'Color','g'); set(plot3,'LineStyle','-','LineWidth',1.5, 'Color','r'); set(plot4,'LineStyle','-','LineWidth',1.5, 'Color','k'); %plot(y,x7); grid on;title('Effisiensi Spektrum User Rata-Rata','fontsize',12); grid on; legend('UFR','Treshold 5 dB','Treshold 10 dB','Treshold 15 dB'); xlabel('Jumlah User Femto Acces Point (FAP)','fontsize',12); ylabel('Effisiensi Spektrum (bps/Hz)','fontsize',12); zzeff=x7;
65
%% 3. AVERAGE Throughput for 12:12:72 User x=mean(test_drate12); x1=mean(test_drate24); x2=mean(test_drate36); x3=[0 0 0 0]; x4=mean(test_drate48); x5=mean(test_drate60); x6=mean(test_drate72); y=12:12:72; x7=[x;x1;x2;x4;x5;x6]; a1=x7(:,1); a2=x7(:,2); a3=x7(:,3); a4=x7(:,4); figure(3) plot1=plot(y,a1); hold on; plot2=plot(y,a2); hold on; plot3=plot(y,a3); hold on; plot4=plot(y,a4); hold on; grid on; set(plot1,'LineStyle','-','LineWidth',1.5, 'Color','b'); set(plot2,'LineStyle','-','LineWidth',1.5, 'Color','g'); set(plot3,'LineStyle','-','LineWidth',1.5, 'Color','r'); set(plot4,'LineStyle','-','LineWidth',1.5, 'Color','k'); %plot(y,x7); grid on; title('Data Rate User Rata-rata ','fontsize',12); grid on; legend('UFR','Treshold 5 dB','Treshold 10 dB','Treshold 15 dB'); xlabel('Jumlah User Femto Acces Point (FAP)','fontsize',12); ylabel('Data Rate (Mbps)','fontsize',12); zzrate=x7;
66