Code Program
A1. Source Code Program
A.1 Source Code Program
tic; clear all; clc; close all; s = 1;% Jumlah simulasi N = 2000; % jlh titik sampel %koordinat BTSD = 1000*sqrt(3); % jarak antara BTS berdekatan adalah.2000 meter
X_BTS = [2000-D*sin(60*pi/180) 2000 2000]; Y_BTS = [1+D/2 1 1+D]; ds = 1; % meter % Jarak Interval Sample 1 meter
theta = 20; % sudut arah pergerakan MS dari BTS1 % Koordinat awal MS
xk =[500*ones(s,1) zeros(s,N-1)];%sb-x
yk = [500*ones(s,1) zeros(s,N-1)];%sb-y
%Jarak awal MS terhadap BTS (2000,0)
d1k=[sqrt((X_BTS(1)-500)^2+(Y_BTS(1)-500)^2)*ones(s,1) zeros(s,N-1)]; d2k=[sqrt((X_BTS(2)-500)^2+(Y_BTS(2)-500)^2)*ones(s,1) zeros(s,N-1)]; d3k=[sqrt((X_BTS(3)-500)^2+(Y_BTS(3)-500)^2)*ones(s,1) zeros(s,N-1)]; for j = 1:s for k = 2:N xk(j,k) = xk(j,k-1)+ds*cos(theta*pi/180); yk(j,k) = yk(j,k-1)+ds*sin(theta*pi/180); d1k(j,k)=sqrt((X_BTS(1)-xk(j,k)).^2+(Y_BTS(1)-yk(j,k)).^2); d2k(j,k)=sqrt((X_BTS(2)-xk(j,k)).^2+(Y_BTS(2)-yk(j,k)).^2); d3k(j,k)=sqrt((X_BTS(3)-xk(j,k)).^2+(Y_BTS(3)-yk(j,k)).^2); end end
%% menentukan model shadowing--dist. lognormal
mu=0;%mean
tho=[3:12];%variansi
v= 20;%kecepatan MS (m/s)
ts= 0.5;%waktu sampling (s)
di=30;%korelasi jarak
ai=exp(-v*ts/di);%koefisien korelasi
K1=105; %dBm;% konstanta pathloss
K2=30; %dBm;% konstanta eksponen pathloss %truncated normal random
mu1=0;% mean
tho1=1;% variansi
xlo=-0.5;% batas bawah
xhi=0.5;% batas atas
% fungsi truncated normal random
[F1,F2,F3]=truncnormrnd(s,N,mu1,tho1,xlo,xhi);
ZBTS1=[ai*ones(s,1) zeros(s,N-1)]; ZBTS2=[ai*ones(s,1) zeros(s,N-1)]; ZBTS3=[ai*ones(s,1) zeros(s,N-1)];
% kuat sinyal terima pada posisi awal
S1(:,1)= K1-K2.*log10(d1k(:,1))+ ZBTS1(:,1); S2(:,1)= K1-K2.*log10(d2k(:,1))+ ZBTS2(:,1); S3(:,1)= K1-K2.*log10(d3k(:,1))+ ZBTS3(:,1);
% ruang matriks untuk kuat sinyal
S1=[S1(:,1).*ones(s,1) zeros(s,N-1)]; S2=[S2(:,1).*ones(s,1) zeros(s,N-1)]; S3=[S3(:,1).*ones(s,1) zeros(s,N-1)]; C=[0.0045,0.025,0.1,0.65]; for g=1:length(C) for var_tho=1:length(tho) for cc=1:s for dd=2:N ZBTS1(cc,dd)=ai*ZBTS1(cc,dd-1)+tho(var_tho)*sqrt(1-ai^2)*F1(cc,dd); ZBTS2(cc,dd)=ai*ZBTS2(cc,dd-1)+tho(var_tho)*sqrt(1-ai^2)*F2(cc,dd); ZBTS3(cc,dd)=ai*ZBTS3(cc,dd-1)+tho(var_tho)*sqrt(1-ai^2)*F3(cc,dd); end for ddd=2:N
% kuat sinyal terima
S1(cc,ddd)= K1-K2.*log10(d1k(cc,ddd))+ ZBTS1(cc,ddd); S2(cc,ddd)= K1-K2.*log10(d2k(cc,ddd))+ ZBTS2(cc,ddd); S3(cc,ddd)= K1-K2.*log10(d3k(cc,ddd))+ ZBTS3(cc,ddd); end S_123= [ S1; S2; S3]; end
%% Merata-ratakan kuat sinyal
ds = 1;%jarak setiap sampling (m)
dav = 10;% panjang rata-rata window
S1_rata=[S1(:,1) zeros(s,N-1)]; S2_rata=[S2(:,1) zeros(s,N-1)]; S3_rata=[S3(:,1) zeros(s,N-1)]; b=exp(-ds/dav); for e=1:s for f=2:N
%% merata-ratakan sinyal dengan metode eksponensial untuk memperhalus
%% komponen sinyal shadowing yang berfluktuasi
%%================================================================
%Sinyal 1
S1_rata(e,f)=exp(-(ds/dav)).*S1_rata(e,f-1)+(1-exp(-(ds/dav)))...
.*S1(e,f); %Sinyal 2 S2_rata(e,f)=exp(-(ds/dav)).*S2_rata(e,f-1)+(1-exp(-(ds/dav)))... .*S2(e,f); %Sinyal 3 S3_rata(e,f)=exp(-(ds/dav)).*S3_rata(e,f-1)+(1-exp(-(ds/dav)))... .*S3(e,f); %%================================================================ S123_rata = [S1_rata;S2_rata;S3_rata]; S11_rata_eks(e,f)=(K1-K2*log10(d1k(e,f)))+ai.*(S1(e,f-1)-(K1-K2*log10(d1k(e,f-1)))); S22_rata_eks(e,f)=(K1-K2*log10(d2k(e,f)))+ai.*(S2(e,f-1)-(K1-K2*log10(d2k(e,f-1)))); S33_rata_eks(e,f)=(K1-K2*log10(d3k(e,f)))+ai.*(S3(e,f-1)-(K1-K2*log10(d3k(e,f-1)))); %=================================================================
%ekspektasi==> mean dari Si & Si_rata
S1_rata_eks(e,f)=b.*S1_rata(e,f-1)+(1-b).*(ai.*S1(e,f-1)+... (1-ai)*K1-K2*log10(d1k(e,f)./(d1k(e,f-1).^ai))); S2_rata_eks(e,f)=b.*S2_rata(e,f-1)+(1-b).*(ai.*S2(e,f-1)+... (1-ai)*K1-K2*log10(d2k(e,f)./(d2k(e,f-1).^ai))); S3_rata_eks(e,f)=b.*S3_rata(e,f-1)+(1-b).*(ai.*S3(e,f-1)+... (1-ai)*K1-K2*log10(d3k(e,f)./(d3k(e,f-1).^ai))); end end %================================================================= %================================================================= %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%% Metode Suboptimal SDH %%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Smin = 0; %dBm; varians_kuadrat(var_tho)=tho(var_tho)*sqrt((1-(ai^2)).*(1-(b.^2)));% variansi sinyal rata-rata
for v=1:s for u=1:N-1 Z1(v,u)=qfunc((S1_rata_eks(v,u+1)-Smin)./(varians_kuadrat(var_tho))); Z2(v,u)=qfunc((S2_rata_eks(v,u+1)-Smin)./(varians_kuadrat(var_tho))); Z3(v,u)=qfunc((S3_rata_eks(v,u+1)-Smin)./(varians_kuadrat(var_tho))); end end % nilai cost (c)
% C=[1,0.95,0.85,0.75,0.65,0.55,0.45,0.35,0.25,0.13,0.1,0.06,0.04,0. 025,0.01,0.007,0.0045]; BTS= [1;2;3]; Z= [Z1(:,1) zeros(s,N-1)]; S_SDH=[S1(:,1) zeros(s,N-1)]; S_rata_SDH=[S1_rata(:,1) zeros(s,N-1)]; BTS_kontrol_SDH=[BTS(1)*ones(s,1) zeros(s,N-1)]; handoff = 1; % terjadi handoff
tidak_handoff = 0; % tidak terjadi handoff
Uk_SDH=zeros(s,N); delay_SDH=[];
S_mean_SDH= [S1_rata_eks(:,1) zeros(s,N-1)];
for h=1:s
for i=2:N %(titik sampel)
if i<=3 S_SDH(h,i)=S1(h,i); S_rata_SDH(h,i)=S1_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(1); Uk_SDH(h,i)=[tidak_handoff]; delay_SDH(h,i)=d1k(h,i); S_mean_SDH(h,i)= S11_rata_eks(h,i); else
%% keadaan sebelumnya BTS1 yang melayani MS
if BTS_kontrol_SDH(h,i-1)==BTS(1)
if S_rata_SDH(h,(i-3:i-1))<Smin & S1_rata(h,i)<Smin continue;
else
if Z1(h,i-1)>1)+C(g) && Z2(h,i-1)+C(g)<Z3(h,i-1)+C(g) S_SDH(h,i)=S2(h,i); S_rata_SDH(h,i)=S2_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(2); Uk_SDH(h,i)=[handoff]; delay_SDH(h,i)=d2k(h,i); S_mean_SDH(h,i)= S22_rata_eks(h,i); elseif Z1(h,i-1)>Z3(h,i-1)+C(g) && Z2(h,i-1)+C(g)>Z3(h,i-1)+C(g) S_SDH(h,i)=S3(h,i); S_rata_SDH(h,i)=S3_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(3); Uk_SDH(h,i)=[handoff]; delay_SDH(h,i)=d3k(h,i); S_mean_SDH(h,i)= S33_rata_eks(h,i); else S_SDH(h,i)=S1(h,i); S_rata_SDH(h,i)=S1_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(1); Uk_SDH(h,i)=[tidak_handoff];
delay_SDH(h,i)=d1k(h,i);
S_mean_SDH(h,i)= S11_rata_eks(h,i); end
end
%% keadaan sebelumnya BTS2 yang melayani MS
elseif BTS_kontrol_SDH(h,i-1)==BTS(2)
if S_rata_SDH(h,(i-3:i-1))<Smin & S2_rata(h,i)<Smin continue;
else
if Z2(h,i-1)>1)+C(g) && Z1(h,i-1)+C(g)<Z3(h,i-1)+C(g) S_SDH(h,i)=S1(h,i); S_rata_SDH(h,i)=S1_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(1); Uk_SDH(h,i)=[handoff]; delay_SDH(h,i)=d1k(h,i); S_mean_SDH(h,i)= S11_rata_eks(h,i); elseif Z2(h,i-1)>Z3(h,i-1)+C(g) && Z1(h,i-1)+C(g)>Z3(h,i-1)+C(g) S_SDH(h,i)=S3(h,i); S_rata_SDH(h,i)=S3_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(3); Uk_SDH(h,i)=[handoff]; delay_SDH(h,i)=d3k(h,i); S_mean_SDH(h,i)= S33_rata_eks(h,i); else S_SDH(h,i)=S2(h,i); S_rata_SDH(h,i)=S2_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(2); Uk_SDH(h,i)=[tidak_handoff]; delay_SDH(h,i)=d2k(h,i); S_mean_SDH(h,i)= S22_rata_eks(h,i); end end
%% keadaan sebelumnya BTS3 yang melayani MS
elseif BTS_kontrol_SDH(h,i-1)==BTS(3)
if S_rata_SDH(h,(i-3:i-1))<Smin & S3_rata(h,i)<Smin continue;
else
if Z3(h,i-1)>1)+C(g) && Z1(h,i-1)+C(g)<Z2(h,i-1)+C(g) S_SDH(h,i)=S1(h,i); S_rata_SDH(h,i)=S1_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(1); Uk_SDH(h,i)=[handoff]; delay_SDH(h,i)=d1k(h,i); S_mean_SDH(h,i)= S11_rata_eks(h,i); elseif Z3(h,i-1)>Z2(h,i-1)+C(g) && Z1(h,i-1)+C(g)>Z2(h,i-1)+C(g)
S_SDH(h,i)=S2(h,i);
S_rata_SDH(h,i)=S2_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(2); Uk_SDH(h,i)=[handoff];
delay_SDH(h,i)=d2k(h,i); S_mean_SDH(h,i)= S22_rata_eks(h,i); else S_SDH(h,i)=S3(h,i); S_rata_SDH(h,i)=S3_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(3); Uk_SDH(h,i)=[tidak_handoff]; delay_SDH(h,i)=d3k(h,i); S_mean_SDH(h,i)= S33_rata_eks(h,i); end end else
%% memilih kuat sinyal BTS terbaik ketika sebelumnya drop %% terjadi
if (S1_rata(h,i) > Smin) & (S1_rata(h,i) > S2_rata(h,i)) & (S1_rata(h,i) > S3_rata(h,i))
S_SDH(h,i)=S1(h,i); S_rata_SDH(h,i)=S1_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(1); Uk_SDH(h,i)=[tidak_handoff]; delay_SDH(h,i)=d1k(h,i); S_mean_SDH(h,i)= S11_rata_eks(h,i);
elseif (S2_rata(h,i) > Smin) & (S1_rata(h,i) < S2_rata(h,i)) & (S2_rata(h,i) > S3_rata(h,i))
S_SDH(h,i)=S2(h,i); S_rata_SDH(h,i)=S2_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(2); Uk_SDH(h,i)=[tidak_handoff]; delay_SDH(h,i)=d2k(h,i); S_mean_SDH(h,i)= S22_rata_eks(h,i);
elseif (S3_rata(h,i) > Smin) & (S1_rata(h,i) < S3_rata(h,i)) & (S2_rata(h,i) < S3_rata(h,i))
S_SDH(h,i)=S3(h,i); S_rata_SDH(h,i)=S3_rata(h,i); BTS_kontrol_SDH(h,i)=BTS(3); Uk_SDH(h,i)=[tidak_handoff]; delay_SDH(h,i)=d3k(h,i); S_mean_SDH(h,i)= S33_rata_eks(h,i); else continue; end end end end end std1(var_tho)=tho(var_tho).*sqrt((1-(ai^2))); delay_SDHO=(delay_SDH>(D*sqrt(3)/2)); Prob_Sdrop_SDH=qfunc((S_mean_SDH-Smin)./std1(var_tho)); %=================================================================
Uk_SDH_rata(var_tho,:)=1/s*sum(sum(Uk_SDH')); delay_SDH_rata(var_tho,:)=1/s*sum(sum(delay_SDHO')); Prob_Sdrop_SDH_rata(var_tho,:)= 1/s*sum(mean(Prob_Sdrop_SDH')); end Uk_SDH_rata_tho(:,g)=[Uk_SDH_rata]; delay_SDH_rata_tho(:,g)=[delay_SDH_rata]; Prob_Sdrop_SDH_rata_tho(:,g)=[Prob_Sdrop_SDH_rata]; end %================================================================= %================================================================= %Posisi MS terhadap BTS figure(1) % posisi BTS t = linspace(0, 2*pi,7); a1 = X_BTS(1)+ (1000)*cos(t);a2 = X_BTS(2)+ (1000)*cos(t);a3 = X_BTS(3)+ (1000)*cos(t);
b1 = Y_BTS(1)+ (1000)*sin(t);b2 = Y_BTS(2)+ (1000)*sin(t);b3 = Y_BTS(3)+ (1000)*sin(t);
plot(a1,b1,'-b',a2,b2,'-r',a3,b3,'-g') hold on;
plot(X_BTS(1),Y_BTS(1),'bp',X_BTS(2),Y_BTS(2),'rh',X_BTS(3),Y_BTS( 3),'g*');
hold on; plot(xk,yk) grid on;
%Bentuk level sinyal MS yang diproses tanpa metode rata-rata eksponensial figure(2) % posisi BTS plot(S1, 'b'); hold on; plot(S2(1,:), 'r'); hold on; plot(S3(1,:), 'g'); xlabel('sample ke-');
ylabel('level sinyal (dB)');
legend('sinyal1','sinyal2','sinyal3'); grid on;
%Bentuk level sinyal dari MS yang diproses dengan metode eksponensial
figure(3) % posisi BTS
plot(S1_rata(1,:), 'b'); hold on;
hold on;
plot(S3_rata(1,:), 'g'); xlabel('sample ke-');
ylabel('level sinyal (dB)');
legend('sinyal rata-rata1','sinyal rata-rata2','sinyal
rata-rata3');
grid on;
%pengaruh standar deviasi shadow fading terhadap jumlah sinyal degradasi
figure(4)
plot(tho,[Prob_Sdrop_SDH_rata_tho]); xlabel('tho (dB)');
ylabel('Sinyal Degradasi (dB)');
legend('c = 0.0045','c = 0.025','c = 0.1','c = 0.65'); grid on;
%variansi standar deviasi shadow fading dengan jumlah handoff
figure(5)
plot(tho,[Uk_SDH_rata_tho]) xlabel('tho (dB)');
ylabel('Jumlah Handoff');
legend('c = 0.0045','c = 0.025','c = 0.1','c = 0.65'); grid on;
%pengaruh standar deviasi shadow fading dengan delay
figure(6)
plot(tho,[delay_SDH_rata_tho]) xlabel('tho (dB)');
ylabel('Delay Rata-rata (m)');
legend('c = 0.0045','c = 0.025','c = 0.1','c = 0.65'); grid on;
A.2 Fungsi Truncnormrnd
function [F1,F2,F3]=truncnormrnd(s,N,mu1,tho1,xlo,xhi)
% truncnormrnd: truncated normal deviate generator % usage:z=truncnormrnd(N,mu1,tho1,xlo,xhi)
%
% (assumes the statistics toolbox, its easy % to do witho1ut that toolbox tho1ugh) %
% arguments: (input)
% N - size of the resulting array of deviates
% (note, if N is a scalar, then the result will be NxN.) % mu1 - scalar - Mean of underlying normal distribution
% tho1 - scalar - Standard deviation of underlying normal distribution
% xlo - scalar - Low truncation point, if any % xhi - scalar - High truncation point, if any %
% arguments: (output)
% z - array of truncated normal deviates, size(z)==N % defaults if (nargin<2)|isempty(mu1) mu1=0; end if (nargin<3)|isempty(tho1) tho1=0; end if (nargin<4)|isempty(xlo) xlo=-inf; plo=0; else plo=normcdf((xlo-mu1)/tho1); end if (nargin<5)|isempty(xhi) xhi=inf; phi=1; else phi=normcdf((xhi-mu1)/tho1); end
% test if trunation points are reversed
if xlo>xhi
error 'mu1st have xlo <= xhi if both provided'
end
% generate uniform [0,1] random deviates % r=rand(N); r1=rand(s,N); r2=rand(s,N); r3=rand(s,N); % scale to [plo,phi] % r=plo+(phi-plo)*r; r1=plo+(phi-plo)*r1; r2=plo+(phi-plo)*r2; r3=plo+(phi-plo)*r3;
% Invert through standard normal % F=norminv(r);
F1=norminv(r1); F2=norminv(r2); F3=norminv(r3);
% apply shift and scale % F=mu1+F*tho1; F1=mu1+F1*tho1; F2=mu1+F2*tho1; F3=mu1+F3*tho1;
DATA HASIL SIMULASI
B.1 Tabel variasi standar deviasi shadow fading dengan cost(c)
terhadap parameter jumlah sinyal degradasi.
B.2 Tabel variasi standar deviasi shadow fading dengan cost(c)
terhadap parameter jumlah handoff.
B.3 Tabel variasi standar deviasi shadow fading dengan cost(c)
terhadap parameter delay.
B1. Tabel variasi standar deviasi shadow fading dengan cost(c) terhadap
parameter jumlah sinyal degradasi
Lampiran B / Data Hasil Simulasi 2/3
B2. Tabel variasi standar deviasi shadow fading dengan cost(c) terhadap
parameter jumlah handoff
B3. Tabel variasi standar deviasi shadow fading dengan cost(c) terhadap
parameter delay
Flow Chart
C.1 Flow Chart Evaluasi Metode Handoff
C.2 Flow Chart Proses Handoff