anexo i: código...

29
66 Anexo I: Código fuente Funciones para el modelo de sombra causada por árboles al borde del camino N.m %N(x) function N=N(x) N=-0.443*x+34.76; %x es el ángulo deseado de elevación del %trayecto M.m %M(x) function M=M(x) M=3.44+0.0975*x-0.002*x^2; %x es el ángulo deseado de %elevación del trayecto Al.m %Al function Al=Al(p,x) Al=-M(x)*log(p)+N(x); A20.m %A20(p,x,f) function A20=A20(p,x,f) fm=1.5; %1.5 GHz A20=Al(p,x)*exp(1.5*(1/sqrt(fm)-1/sqrt(f))); A.m %A(p,x,f) function A=A(p,x,f) if x>=7&x<20 x=20;

Upload: others

Post on 22-Jan-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

66

Anexo I: Código fuente

Funciones para el modelo de sombra causada por árboles al borde

del camino

N.m

%N(x)

function N=N(x)

N=-0.443*x+34.76; %x es el ángulo deseado de elevación del

%trayecto

M.m

%M(x)

function M=M(x)

M=3.44+0.0975*x-0.002*x^2; %x es el ángulo deseado de

%elevación del trayecto

Al.m

%Al

function Al=Al(p,x)

Al=-M(x)*log(p)+N(x);

A20.m

%A20(p,x,f)

function A20=A20(p,x,f)

fm=1.5; %1.5 GHz

A20=Al(p,x)*exp(1.5*(1/sqrt(fm)-1/sqrt(f)));

A.m %A(p,x,f)

function A=A(p,x,f)

if x>=7&x<20

x=20;

Page 2: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

67

end

if x>60

disp('El ángulo deseado no está dentro del margen')

else

if p>20&p<=80

A=A20(20,x,f)*(1/log(4))*log(80/(p)); %esto es

válido para 80%>=p>=20%

else

if p>=1&p<=20

A=A20(p,x,f); %esto es válido para 20%>=p>=1%

end

end

end

Sombra1.m %Sombra de los árboles para 60º de elevaación y 1.6GHz

function sombra1=sombra1(n)

switch n

case 1

sombra1=8.5; %A(1,60,1.6)

case 2

sombra1=5; %A(5,60,1.6)

case 3

sombra1=3.5; %A(10,60,1.6)

case 4

sombra1=2.6; %A(15,60,1.6)

case 5

sombra1=2; %A(20,60,1.6)

case 6

sombra1=1.4; %A(30,60,1.6)

end

sombra2.m %Sombra de los árboles para 60º de elevaación y 2.6GHz

function sombra2=sombra2(n)

switch n

case 1

sombra2=11; %A(1,60,2.6)

case 2

sombra2=6.5; %A(5,60,2.6)

case 3

sombra2=4.5; %A(10,60,2.6)

case 4

sombra2=3.4; %A(15,60,2.6)

case 5

sombra2=2.6; %A(20,60,2.6)

Page 3: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

68

case 6

sombra2=1.8; %A(30,60,2.6)

end

sombra3.m %Sombra de los árboles para 80º de elevaación y 1.6GHz

function sombra3=sombra3(n)

switch n

case 1

sombra3=4.1; %A(1,80,1.6)

case 2

sombra3=2; %A(5,80,1.6)

case 3

sombra3=1.5; %A(10,80,1.6)

case 4

sombra3=1.4; %A(15,80,1.6)

case 5

sombra3=1.3; %A(20,80,1.6)

case 6

sombra3=1.2; %A(30,80,1.6)

end

sombra4.m

%Sombra de los árboles para 80º de elevación y 2.6GHz

function sombra4=sombra4(n)

switch n

case 1

sombra4=9; %A(1,80,2.6)

case 2

sombra4=5.2; %A(5,80,2.6)

case 3

sombra4=3.8; %A(10,80,2.6)

case 4

sombra4=3.2; %A(15,80,2.6)

case 5

sombra4=2.8; %A(20,80,2.6)

case 6

sombra4=2.5; %A(30,80,2.6)

end

valor_1_6GHz.m

%Interpolación lineal para el valor calculado para 60º y

80º a 1.6 GHz

function valor_1_6GHz=valor_1_6GHz(i)

n=6;

Page 4: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

69

for i=1:n

if sombra1(i)>=sombra3(i)

valor_1_6GHz(i)=abs(sombra1(i)-

sombra3(i))/2+sombra3(i);

else

valor_1_6GHz(i)=abs(sombra1(i)-

sombra3(i))/2+sombra1(i);

end

end

valor_2_6GHz.m %Interpolación lineal para el valor calculado para 60º y

80º a 2.6 GHz

function valor_2_6GHz=valor_2_6GHz(i)

n=6;

for i=1:n

if sombra2(i)>=sombra4(i)

valor_2_6GHz(i)=abs(sombra2(i)-

sombra4(i))/2+sombra4(i);

else

valor_2_6GHz(i)=abs(sombra2(i)-

sombra4(i))/2+sombra2(i);

end

end

Funciones para el modelo de sombra causada por edificios al

borde del camino

p_bloqueo.m

% Porcentaje de probabilidad de bloqueo debido a los

%edificios. “teta” es el ángulo de elevación del rayo hacia

%el satélite por encima de la horizontal en grados y fi es

%el ángulo de acimut del rayo con respecto a la dirección

%de la calle en grados. Cf es el despejamiento de la zona

%de Fresnel.

function p_bloqueo=p_bloqueo(teta,fi,Cf)

hb=15; %Altura más común de los edificios (modal)

hm=1.5; %Altura del móvil por encima del suelo

dm=17.5; %distancia del móvil a la fachada de los edificios

f=1.6*10^9; %Frecuencia en GHz

h1=hm+(dm*tand(teta)/sind(fi)); %Altura del rayo por encima

del suelo en la fachada de los edificios

dr=dm/(sind(fi)*cosd(teta)); %Distancia en pendiente del

móvil a la posición a lo largo del rayo que

Page 5: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

70

%supera en sentido vertical la

fachada de los edificos

c=3*10^8; %velocidad de la luz

landa=c/f; %Longitud de onda

h2=Cf*(landa*dr)^(0.5); %distancia de despejamiento de

Fresnel necesaria por encima de los edificios

p_bloqueo=100*exp(-(h1-h2)^2/(2*hb^2));

MKFa.m % MKF de una calle.

function MKFa=MKFa(fi)

h=12; %altura media del edificio

w=48.76; %ancgura media de la calle

MKFa=atand(h*sind(fi)/(w/2));

MKFb.m % MKF de una calle con edificios a un solo lado.

function MKFb=MKFb(fi)

h=10; %altura media del edificio

w1=10; %anchura media de la calle

MKFb=atand(h*sind(fi)/(w1/2));

MKFc1.m

% MKF de un cruce. Primera función.

function MKFc1=MKFc1(fi)

h=15; %altura media del edificio

w1=13.18; %anchura media de una calle

w2=13.10; %anchura media de la otra calle

MKFc1=atand(h*sind(fi)/(w1/2));

MKFc2.m % MKF de un cruce. Segunda función.

function MKFc2=MKFc2(fi)

h=15; %altura media del edificio

w1=13.18; %anchura media de una calle

w2=13.10; %anchura media de la otra calle

MKFc2=atand(h*sind(90-fi)/(w2/2));

Page 6: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

71

MKFc.m % MKF de un cruce.

function MKFc=MKFc(h,w1,fi)

MKFc=MKFc1(fi)+MKFc2(fi);

Funciones para trayectos múltiples en entorno montañoso

p_mult_1.m

% Distribución de los valores del desvanecimiento debidos a

trayectos

% múltiples en terreno montañoso

% A: incremento del desvanecimiento (dB)

% f: frecuencia en GHz

% teta: ángulo de elevación

function p_mult_1=p_mult_1(A) %para la frecuencia 0.87 GHz y

%elevación teta=30º

a=34.52;

b=1.855;

p_mult_1=a*A.^(-b);

p_mult_2.m

% Distribución de los valores del desvanecimiento debidos a

trayectos

% múltiples en terreno montañoso

% A: incremento del desvanecimiento (dB)

% f: frecuencia en GHz

% teta: ángulo de elevación

function p_mult_2=p_mult_2(A) %para la frecuencia 0.87 GHz

%y elevación teta=45º

a=31.64;

b=2.464;

p_mult_2=a*A.^(-b);

Page 7: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

72

p_mult_3.m

% Distribución de los valores del desvanecimiento debidos a

trayectos

% múltiples en terreno montañoso

% A: incremento del desvanecimiento (dB)

% f: frecuencia en GHz

% teta: ángulo de elevación

function p_mult_3=p_mult_3(A) %para la frecuencia 1.5 GHz y

elevación teta=30º

a=33.19;

b=1.710;

p_mult_3=a*A.^(-b);

p_mult_4.m

% Distribución de los valores del desvanecimiento debidos a

trayectos

% múltiples en terreno montañoso

% A: incremento del desvanecimiento (dB)

% f: frecuencia en GHz

% teta: ángulo de elevación

function p_mult_4=p_mult_4(A) %para la frecuencia 0.87 GHz

y elevación teta=45º

a=39.95;

b=2.321;

p_mult_4=a*A.^(-b);

Funciones para trayectos múltiples en un ambiente de árboles

que bordean el camino

m_arboles_1.m

% Distribución de los valores del desvanecimiento debidos a

%trayectos múltiples en un mabiente de árboles que bordean

%el camino.

function m_arboles_1=m_arboles_1(A) %frecuencia=0.87GHz

u=125.6;

v=1.116;

m_arboles_1=u*exp(-v*A)

Page 8: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

73

m_arboles_2.m

% Distribución de los valores del desvanecimiento debidos a

%trayectos múltiples en un mabiente de árboles que bordean

%el camino.

function m_arboles_2=m_arboles_2(A) %frecuencia=1.5GHz

u=127.7;

v=0.8573;

m_arboles_2=u*exp(-v*A);

Funciones para la predicción de las estadísticas de

desvanecimiento para un solo enlace de satélites

PA_urb.m

% Probabilidad de aparición del estado A. El estado A se

%corresponde con la condición de visibilidad directa en

%medios despejados.

function PA_urb=PA_urb(teta) %para zonas urbanas

a=1.43*10^(-4);

PA_urb=1-a*(90-teta)^2; %para 10º<=teta<=90º

PA_surb.m

% Probabilidad de aparición del estado A. El estado A se

%corresponde con la condición de visibilidad directa en

%medios despejados.

function PA_surb=PA_surb(teta) %para zonas suburbanas

a=6*10^(-5);

PA_surb=1-a*(90-teta)^2; %para 10º<=teta<=90º

PB_urb.m

% Probabilidad de aparición del estado B. El estado B se

%corresponde con la condición de sombra leve (causada por

%árboles y/o pequeños obstáculos, tales como los portes de

%las compañías de servicios públicos.

function PB_urb=PB_urb(teta) %para zonas urbanas

b=1/4;

PB_urb=b*PC_urb(teta);

Page 9: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

74

PB_surb.m

% Probabilidad de aparición del estado B. El estado B se

%corresponde con la condición de sombra leve (causada por

%árboles y/o pequeños obstáculos, tales como los portes de

%las compañías de servicios públicos.

function PB_surb=PB_surb(teta) %para zonas suburbanas

b=4;

PB_surb=b*PC_surb(teta);

PC_urb.m

% Probabilidad de aparición del estado C. El estado C se

%corresponde con la condición de bloqueo total (debida a

%obstáculos importantes, tales como montañas y edificios.

function PC_urb=PC_urb(teta) %para zonas urbanas

b=1/4;

PC_urb=(1-PA_urb(teta))/(1+b);

PC_surb.m

% Probabilidad de aparición del estado C. El estado C se

%corresponde con la condición de bloqueo total (debida a

%obstáculos importantes, tales como montañas y edificios.

function PC_surb=PC_surb(teta) %para zonas suburbanas

b=4;

PC_surb=(1-PA_surb(teta))/(1+b);

MrA_urb.m

%Potencia multitrayecto media en los estados A, B y C.

function MrA_urb=MrA_urb(teta) %zonas urbanas

if teta==30 %teta=30º

MrA_urb=0.158;

else

if teta>=45 %teta>=45º

MrA_urb=0.1;

else

MrA_urb=(0.158-0.1)/2; %Interpolación lineal de

los valores cuando teta=30º(0.185) y teta=45º(0.1)

end

end

Page 10: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

75

MrA_surb.m

%Potencia multitrayecto media en los estados A, B y C.

function MrA_surb=MrA_surb(teta) %zonas suburbanas

if teta==30 %teta=30º

MrA_surb=0.0631;

else

if teta>=45 %teta>=45º

MrA_surb=0.0398;

else

MrA_surb=(0.0631-0.0398)/2; %Interpolación lineal

%de los valores cuando

%teta=30º (0.0631) y

%teta=45º (0.0398)

end

end

fxA_urb30.m

%Función fxA para zonas urbanas y ángulo de elevació 30º.

%La integral de fxA nos da fA.

function fxA_urb30=fxA_urb30(x)

fxA_urb30=@(x)((2.*x./MrA_urb(30)).*exp(-

(1+x.^2)./MrA_urb(30)).*besseli(0,2.*x./MrA_urb(30)));

fxA_surb30.m

%Función fxA para zonas suburbanas y ángulo de elevación

%30º. La integral de fxA nos da fA.

function fxA_surb30=fxA_surb30(x) %

fxA_surb30=@(x)((2.*x./MrA_surb(30)).*exp(-

(1+x.^2)./MrA_surb(30)).*besseli(0,2.*x./MrA_surb(30)));

fxA_urb45.m

%Función fxA para zonas urbanas y ángulo de elevació 45º.

%La integral de fxA nos da fA.

function fxA_urb45=fxA_urb45(x)

fxA_urb45=@(x)((2.*x./MrA_urb(45)).*exp(-

(1+x.^2)./MrA_urb(45)).*besseli(0,2.*x./MrA_urb(45)));

Page 11: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

76

fxA_surb45.m

%Función fxA para zonas suburbanas y ángulo de elevació

%45º. La integral de fxA nos da fA.

function fxA_surb45=fxA_surb45(x)

fxA_surb45=@(x)((2.*x./MrA_surb(45)).*exp(-

(1+x.^2)./MrA_surb(45)).*besseli(0,2.*x./MrA_surb(45)))

fA_urb30.m

%Función fA(x<=x0)para zonas urbanas y ángulo de elevación

%30º.

function fA_urb30=fA_urb30(x0)

fA_urb30=quad(fxA_urb30,0,x0);

fA_surb30.m

%Función fA(x<=x0)para zonas suburbanas y ángulo de

%elevación 30º.

function fA_surb30=fA_surb30(x0)

fA_surb30=quad(fxA_surb30,0,x0);

fA_urb45.m

%Función fA(x<=x0)para zonas urbanas y ángulo de elevación

%45º.

function fA_urb45=fA_urb45(x0)

fA_urb45=quad(fxA_urb45,0,x0);

fA_surb45.m

%Función fA(x<=x0)para zonas suburbanas y ángulo de

%elevación 45º.

function fA_surb45=fA_surb45(x0)

fA_surb45=quad(fxA_surb45,0,x0);

Page 12: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

77

fxzB.m

%Función fxzB. La integral de fxzB nos da fB.

function fxzB=fxzB(x,y)

MrB=10^(-1.5); %-15dB

m=0.1; %-10dB

sigma=10^0.3; %3dB

fxzB=@(x,z)(6.930./(sigma.*MrB).*x.*(1-(1./z.*exp(-

(20.*log10(z)-m).^2./(2.*sigma.^2)-

(x.^2+z.^2)./MrB).*besseli(0,2.*x.*z./MrB))));

fB.m

%Paso 2: Cálculo de la distribución acumulativa del nivel

%de señal x en el estado B. Función fB(x0).

function fB=fB(x0)

epsilon=0.001;

fB=dblquad(fxzB,0,x0,0,epsilon);

fC.m

%Paso 3: cálculo de la distribución acumulativa del nivel

%de señal x en el estado C.

function fC=fC(x0)

MrC=10^(-2); %-20dB

fC=1-exp(-x0^2/MrC);

Page 13: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

78

FDA.m

%Paso 4: cálculo de la FDA cuando el nivel de señal x es

%inferior al nivel umbral x0 con una probabilidad P, en

%condiciones de propagación mixta.

function FDA=FDA(teta,zona,prof_desv)

x0=10^(-prof_desv/20);

if zona==0 %Zona urbana

PA=PA_urb(teta);

PB=PB_urb(teta);

PC=PC_urb(teta);

if teta==30 %Ángulo de elevación 30º

fA=fA_urb30(x0);

else %Ángulo de elevación 45º

fA=fA_urb45(x0);

end

else %Zona suburbana

PA=PA_surb(teta);

PB=PB_surb(teta);

PC=PC_surb(teta);

if teta==30 %Ángulo de elevación 30º

fA=fA_surb30(x0);

else %Ángulo de elevación 45º

fA=fA_surb45(x0);

end

end

FDA=100*(PA*fA+PB*fB(x0)+PC*fC(x0));

vector.m

%Obtención del vector para poder representar en una gráfica

%logarítmica la Figura 3.26.

function v=vector(teta,zona)

for i=0:30

v(i+1)=FDA(teta,zona,i);

end

Page 14: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

79

Funciones para la diversidad de satélites caso sin correlación

teta_n.m %Elevación de cada satélite. Vamos a suponer que el número

%de satélites visibles (N) es 3.

function teta_n=teta_n(i)

if i==1

teta_n=30;

else

if i==2

teta_n=50;

else

teta_n=70;

end

end

PA_n_urb.m % Probabilidad de aparición del estado A en sistemas OSG.

%El estado A se corresponde con la condición de visibilidad

%directa en medios despejados.

function PA_n_urb=PA_n_urb(i) %para zonas urbanas

a=1.43*10^(-4);

PA_n_urb=1-a*(90-teta_n(i))^2; %para 10º<=teta<=90º

PA_n_surb.m % Probabilidad de aparición del estado A en sistemas OSG.

%El estado A se corresponde con la condición de visibilidad

%directa en medios despejados.

function PA_n_surb=PA_n_surb(i) %para zonas suburbanas

a=6*10^(-5);

PA_n_surb=1-a*(90-teta_n(i))^2; %para 10º<=teta<=90º

PA_div_urb.m %La probabilidad de que aparezca el estado A tras la

%diversidad con selección de estado para sistemas OSG.

function PA_div_urb=PA_div_urb %Zonas urbanas

N=3; %Hemos supuesto 3 satélites visibles

productoA=1; %inicialmente vale 1

for i=1:N

productoA=productoA*(1-PA_n_urb(i));

Page 15: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

80

end

PA_div_urb=1-productoA;

PA_div_surb.m

%La probabilidad de que aparezca el estado A tras la

%diversidad con selección de estado para sistemas OSG.

function PA_div_surb=PA_div_surb %Zonas suburbanas

N=3; %Hemos supuesto 3 satélites visibles

productoA=1; %inicialmente vale 1

for i=1:N

productoA=productoA*(1-PA_n_surb(i));

end

PA_div_surb=1-productoA;

PC_n_urb.m % Probabilidad de aparición del estado Cpara sistemas OSG.

%El estado C se corresponde con la condición de bloqueo

%total (debida a obstáculos importantes, tales como

%montañas y edificios.

function PC_n_urb=PC_n_urb(i) %para zonas urbanas

b=1/4;

PC_n_urb=(1-PA_n_urb(i))/(1+b);

PC_n_surb.m % Probabilidad de aparición del estado C para sistemas OSG.

%El estado C se corresponde con la condición de bloqueo

%total (debida a obstáculos importantes, tales como

%montañas y edificios.

function PC_n_surb=PC_n_surb(i) %para zonas suburbanas

b=4;

PC_n_surb=(1-PA_n_surb(i))/(1+b);

PC_div_urb.m %La probabilidad de que aparezca el estado C tras la

%diversidad con selección de estado para sistemas OSG.

function PC_div_urb=PC_div_urb %Zonas urbanas

N=3; %Hemos supuesto 3 satélites visibles

productoC=1; %inicialmente vale 1

for i=1:N

productoC=productoC*PC_n_urb(i);

end

Page 16: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

81

PC_div_urb=productoC;

PC_div_surb.m %La probabilidad de que aparezca el estado C tras la

%diversidad con selección de estado para sistemas OSG.

function PC_div_surb=PC_div_surb %Zonas suburbanas

N=3; %Hemos supuesto 3 satélites visibles

productoC=1; %inicialmente vale 1

for i=1:N

productoC=productoC*PC_n_surb(i);

end

PC_div_surb=productoC;

PB_div_urb.m %La probabilidad de que aparezca el estado B tras la

%diversidad con selección de estado para sistemas OSG.

function PB_div_urb=PB_div_urb %Zonas urbanas

PB_div_urb=1-PA_div_urb-PC_div_urb;

PB_div_surb.m %La probabilidad de que aparezca el estado B tras la

%diversidad con selección de estado para sistemas OSG.

function PB_div_surb=PB_div_surb %Zonas suburbanas

PB_div_surb=1-PA_div_surb-PC_div_surb;

Page 17: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

82

FDA_OSG.m %Paso 4: cálculo de la FDA cuando el nivel de señal x es

%inferior al nivel umbral x0 con una probabilidad P, en

%condiciones de propagación mixta y diversidad de satélites

%en sistemas OSG. En este caso se van a mantener constantes

%otros valores de parámetros con teta=30º a efectos de una

%utilización provisional. Los ángulos de elevación de los

%satélites visibles se controlan desde teta_n(i).

function FDA_OSG=FDA_OSG(zona,prof_desv)

x0=10^(-prof_desv/20);

if zona==0 %Zona urbana

PA=PA_div_urb;

PB=PB_div_urb;

PC=PC_div_urb;

fA=fA_urb30(x0); %Se considera sólo la fA de 30º

else %Zona suburbana

PA=PA_div_surb;

PB=PB_div_surb;

PC=PC_div_surb;

fA=fA_surb30(x0);

end

FDA_OSG=100*(PA*fA+PB*fB(x0)+PC*fC(x0));

Vector_OSG.m

%Obtención del vector para poder representar en la gráfica

%en escala logarítmica.

function v=vector_OSG(zona)

for i=0:30

v(i+1)=FDA_OSG(zona,i);

end

teta_noOSG.m %Elevación de cada satélite en sistemas no OSG. Vamos a

%suponer que el número de satélites

%visibles (N) es 3. El ángulo de elevación del satélite en

%estos sistemas varía con el tiempo.

%Hemos considerado que los satélites se encuentran a una

%altura de 2000Km(LEO más alto) sobre la Tierra, por lo que

%la velocidad del satélite es 9.747Km/seg(vLEO). La

%velocidad de la Tierra es 0.46511Km/seg(vT).

function teta_noOSG=teta_noOSG(i,t)

vLEO=9.747; %km/seg

vT=0.46511; %Km/seg

Page 18: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

83

hs=2000; %Km

if i==1

teta_noOSG=30+atand((vLEO-vT)*t/hs); %en el instante

t=0 suponemos que el satélite tiene un águlo de elevación

de 30º

else

if i==2

teta_noOSG=50+atand((vLEO-vT)*t/hs); % entre un

satélite y otro hay una diferencia de 20º

else

if i==3

teta_noOSG=70+atand((vLEO-vT)*t/hs); % entre

un satélite y otro hay una diferencia de 20º

end

end

end

PA_n_urb_noOSG.m % Probabilidad de aparición del estado A en sistemas no

%OSG. El estado A se corresponde con la condición de

%visibilidad directa en medios despejados.

function PA_n_urb_noOSG=PA_n_urb_noOSG(i,t) %para zonas

urbanas

a=1.43*10^(-4);

PA_n_urb_noOSG=1-a.*(90-teta_noOSG(i,t)).^2; %para

10º<=teta<=90º

PA_n_surb_noOSG.m % Probabilidad de aparición del estado A en sistemas no

%OSG. El estado A se corresponde con la condición de

%visibilidad directa en medios despejados.

function PA_n_surb_noOSG=PA_n_surb_noOSG(i,t) %para zonas

suburbanas

a=6*10^(-5);

PA_n_surb_noOSG=1-a.*(90-teta_noOSG(i,t)).^2; %para

10º<=teta<=90º

prodA_urb.m function prodA_urb=prodA_urb(t)

N=3; %Hemos supuesto 3 satélites visibles

for i=1:N

if i==1

prodA_urb=1-PA_n_urb_noOSG(i,t);

else

Page 19: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

84

prodA_urb=prodA_urb.*(1-PA_n_urb_noOSG(i,t));

end

end

prodA_surb.m

function prodA_surb=prodA_surb(t)

N=3; %Hemos supuesto 3 satélites visibles

for i=1:N

if i==1

prodA_surb=1-PA_n_surb_noOSG(i,t);

else

prodA_surb=prodA_surb.*(1-PA_n_surb_noOSG(i,t));

end

end

PA_div_urb_noOSG.m %La probabilidad de que aparezca el estado A tras la

5diversidad con selección de estado para sistemas no OSG.

function PA_div_urb_noOSG=PA_div_urb_noOSG(t) %Zonas

urbanas

PA_div_urb_noOSG=@(t)(1-prodA_urb(t));

PA_div_surb_noOSG.m %La probabilidad de que aparezca el estado A tras la

%diversidad con selección de estado para sistemas no OSG.

function PA_div_surb_noOSG=PA_div_surb_noOSG(t) %Zonas

%suburbanas

PA_div_surb_noOSG=@(t)(1-prodA_surb(t));

PAm_urb_noOSG.m %La probabilidad media de aparición del estado A en

%sistemas no OSG,una vez que ha actuado la diversidad de

%satélites del instante t1 al t2.

function PAm_urb_noOSG=PAm_urb_noOSG(t2) %zonas urbanas

t1=0; %suponemos que el intante inicial es 0 segundos.

PAm_urb_noOSG=1/(t2-t1)*(quad(PA_div_urb_noOSG,t1,t2));

Page 20: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

85

PAm_surb_noOSG.m

%La probabilidad media de aparición del estado A en

%sistemas no OSG,una vez que ha actuado la diversidad de

%satélites del instante t1 al t2.

function PAm_surb_noOSG=PAm_surb_noOSG(t2) %zonas

suburbanas

t1=0; %suponemos que el intante inicial es 0 segundos.

PAm_surb_noOSG=1/(t2-t1)*(quad(PA_div_surb_noOSG,t1,t2));

PC_n_urb_noOSG.m

% Probabilidad de aparición del estado Cpara sistemas no

%OSG. El estado C se corresponde con la condición de

%bloqueo total (debida a obstáculos importantes, tales como

% montañas y edificios.

function PC_n_urb_noOSG=PC_n_urb_noOSG(i,t) %para zonas

%urbanas

b=1/4;

PC_n_urb_noOSG=(1-PA_n_urb_noOSG(i,t))./(1+b);

PC_n_surb_noOSG.m % Probabilidad de aparición del estado C para sistemas no

%OSG. El estado C se corresponde con la condición de

%bloqueo total (debida a obstáculos importantes, tales como

% montañas y edificios.

function PC_n_surb_noOSG=PC_n_surb_noOSG(i,t) %para zonas

%suburbanas

b=4;

PC_n_surb_noOSG=(1-PA_n_surb_noOSG(i,t))./(1+b);

productoC_urb.m function prodC_urb=prodC_urb(t)

N=3; %Hemos supuesto 3 satélites visibles

for i=1:N

if i==1

prodC_urb=PC_n_urb_noOSG(i,t);

else

prodC_urb=prodC_urb.*PC_n_urb_noOSG(i,t);

end

end

Page 21: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

86

productoC_surb.m function prodC_surb=prodC_surb(t)

N=3; %Hemos supuesto 3 satélites visibles

for i=1:N

if i==1

prodC_surb=PC_n_surb_noOSG(i,t);

else

prodC_surb=prodC_surb.*PC_n_surb_noOSG(i,t);

end

end

PC_div_urb_noOSG.m %La probabilidad de que aparezca el estado C tras la

%diversidad con selección de estado para sistemas no OSG.

function PC_div_urb_noOSG=PC_div_urb_noOSG(t) %Zonas

%urbanas

PC_div_urb_noOSG=@(t)(prodC_urb(t));

PC_div_surb_noOSG.m %La probabilidad de que aparezca el estado C tras la

%diversidad con selección de estado para sistemas no OSG.

function PC_div_surb_noOSG=PC_div_surb_noOSG(t) %Zonas

%suburbanas

PC_div_surb_noOSG=@(t)(prodC_surb(t));

PCm_urb_noOSG.m %La probabilidad media de aparición del estado C en

%sistemas no OSG,una vez que ha actuado la diversidad de

%satélites del instante t1 al t2.

function PCm_urb_noOSG=PCm_urb_noOSG(t2) %zonas urbanas

t1=0; %suponemos que el intante inicial es 0 segundos.

PCm_urb_noOSG=1/(t2-t1)*(quad(PC_div_urb_noOSG,t1,t2));

PCm_surb_noOSG.m %La probabilidad media de aparición del estado C en

%sistemas no OSG,una vez que ha actuado la diversidad de

%satélites del instante t1 al t2.

function PCm_surb_noOSG=PCm_surb_noOSG(t2) %zonas

Page 22: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

87

%suburbanas

t1=0; %suponemos que el intante inicial es 0 segundos.

PCm_surb_noOSG=1/(t2-t1)*(quad(PC_div_surb_noOSG,t1,t2));

PB_div_urb_noOSG.m %La probabilidad de que aparezca el estado B tras la

%diversidad con selección de estado para sistemas no OSG.

function PB_div_urb_noOSG=PB_div_urb_noOSG(t) %Zonas

%urbanas

PB_div_urb_noOSG=@(t)(prodA_urb(t)-prodC_urb(t));

PB_div_surb_noOSG.m %La probabilidad de que aparezca el estado B tras la

%diversidad con selección de estado para sistemas no OSG.

function PB_div_surb_noOSG=PB_div_surb_noOSG(t) %Zonas

%suburbanas

PB_div_surb_noOSG=@(t)(prodA_surb(t)-prodC_surb(t));

PBm_urb_noOSG.m

%La probabilidad media de aparición del estado B en

%sistemas no OSG,una vez que ha actuado la diversidad de

%satélites del instante t1 al t2.

function PBm_urb_noOSG=PBm_urb_noOSG(t2) %zonas urbanas

t1=0; %suponemos que el intante inicial es 0 segundos.

PBm_urb_noOSG=1/(t2-t1)*(quad(PB_div_urb_noOSG,t1,t2));

PBm_surb_noOSG.m %La probabilidad media de aparición del estado B en

sistemas no OSG,una vez

%que ha actuado la diversidad de satélites del instante t1

al t2.

function PBm_surb_noOSG=PBm_surb_noOSG(t2) %zonas

%suburbanas

t1=0; %suponemos que el intante inicial es 0 segundos.

PBm_surb_noOSG=1/(t2-t1)*(quad(PB_div_surb_noOSG,t1,t2));

Page 23: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

88

FDA_noOSG.m %Paso 4: cálculo de la FDA cuando el nivel de señal x es

%inferior al nivel umbral x0 con una probabilidad P, en

%condiciones de propagación mixta y diversidad de satélites

%en sistemas OSG. En este caso se van a mantener constantes

%otros valores de parámetros con teta=30º a efectos de una

%utilización provisional. Los ángulos de elevación de los

%satélites visibles se controlan desde teta_noOSG(i,t).

function FDA_noOSG=FDA_noOSG(zona,prof_desv,t2) %Depende

%del instante t2(la diversidad de satélites actúa del

%instante t1=0 hasta el intane t2).

X0=10^(-prof_desv/20);

if zona==0 %Zona urbana

PA=PAm_urb_noOSG(t2);

PB=PBm_urb_noOSG(t2);

PC=PCm_urb_noOSG(t2);

fA=fA_urb30(x0); %Se considera sólo la fA de 30º

else %Zona suburbana

PA=PAm_surb_noOSG(t2);

PB=PBm_surb_noOSG(t2);

PC=PCm_surb_noOSG(t2);

fA=fA_surb30(x0);

end

FDA_noOSG=100*(PA*fA+PB*fB(x0)+PC*fC(x0));

vector_no OSG.m %Obtención del vector para poder representar en la gráfica

%en escala logarítmica.

function v=vector_noOSG(zona,t2)

for i=0:30

v(i+1)=FDA_noOSG(zona,i,t2);

end

Page 24: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

89

Funciones para la diversidad de satélites caso con correlación

p_bloqueo1.m % Porcentaje de probabilidad de bloqueo debido a los

%edificios. teta1 es el ángulo de elevación del rayo hacia

%el satélite 1 por encima de la horizontal en grados y ang1

%es el ángulo de acimut del rayo con respecto a la

%dirección de la calle en grados. Cf es el despejamiento de

%la zona de Fresnel.

function p_bloqueo1=p_bloqueo1(teta1,Cf)

hb=15; %Altura más común de los edificios (modal)

hm=1.5; %Altura del móvil por encima del suelo.

dm=17.5; %distancia del móvil a la fachada de los edificios

w=2*dm; %anchura media de las calles

l=250; %longitud de la calle considerada (l>=200)

f=1.6*10^9; %Frecuencia en GHz

x1=sqrt((hb/tand(teta1))^2-(w/2)^2);

if (x1^2)>(l/2)

x1=l/2;

end

if (x1^2)<0 %si el satélite 1 se encuentra en

%condiciones de visibilidad directa

p_bloqueo1=0; %para toda separación acimutal

else

ang1=round(atand((w/2)/x1)); %Acimut 1

%h1>h2

h1=hm+(dm*tand(teta1)/sind(ang1)); %Altura del rayo por

%encima del suelo en la fachada de los

%edificios. Es válido para 0<teta1<90ºy 0<ang1<180.

dr=dm/(sind(ang1)*cosd(teta1)); %Distancia en pendiente

%del móvil a la posición a lo

%largo del rayo que supera en

%sentido vertical la fachada

%de los edificios. Es válido

%para 0<teta1<90º y 0<ang1<180.

c=3*10^8; %velocidad de la luz

landa=c/f; %Longitud de onda

h2=Cf*(landa*dr)^(0.5); %distancia de despejamiento de

%Fresnel necesaria por encima de

%los edificios. Es válido para

%0<teta1<90ºy 0<ang1<180.

p_bloqueo1=100*exp(-(h1-h2)^2/(2*hb^2));

end

Page 25: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

90

p_ploqueo2.m % Porcentaje de probabilidad de bloqueo debido a los

%edificios. teta2 es el ángulo de elevación del rayo hacia

%el satélite 2 por encima de la horizontal en grados y ang2

%es el ángulo de acimut del rayo con respecto a la

%dirección de la calle en grados. Cf es el despejamiento de

%la zona de Fresnel.

function p_bloqueo2=p_bloqueo2(teta2,Cf)

hb=15; %Altura más común de los edificios (modal)

hm=1.5; %Altura del móvil por encima del suelo.

dm=17.5; %distancia del móvil a la fachada de los edificios

w=2*dm; %anchura media de las calles

l=250; %longitud de la calle considerada (l>=200)

f=1.6*10^9; %Frecuencia en GHz

x2=sqrt((hb/tand(teta2))^2-(w/2)^2);

if (x2^2)>(l/2)

x2=l/2;

end

if (x2^2)<0 %si el satélite 2 se encuentra en

%condiciones de visibilidad directa

p_bloqueo2=0; %para toda separación acimutal

else

ang2=round(atand((w/2)/x2)); %Acimut 2

%h1>h2

h1=hm+(dm*tand(teta2)/sind(ang2)); %Altura del rayo por

%encima del suelo en la fachada de los

%edificios. Es válido para 0<teta1<90ºy

%0<ang1<180.

dr=dm/(sind(ang2)*cosd(teta2)); %Distancia en pendiente

%del móvil a la posición a lo

%largo del rayo que supera en

%sentido vertical la fachada

%de los edificios. Es válido

%para 0<teta1<90º y 0<ang1<180.

c=3*10^8; %velocidad de la luz

landa=c/f; %Longitud de onda

h2=Cf*(landa*dr)^(0.5); %distancia de despejamiento de

%Fresnel necesaria por encima de

%los edificios. Es válido para

%0<teta1<90ºy 0<ang1<180.

p_bloqueo2=100*exp(-(h1-h2)^2/(2*hb^2));

end

Page 26: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

91

sepacion.m %Cálculo de la separación acimutal.

function separacion=separacion(teta1,teta2,punto)

h=15; %Altura más común de los edificios (modal)

dm=17.5; %distancia del móvil a la fachada de los edificios

w=2*dm; %anchura media de las calles

l=250; %longitud de la calle considerada (l>=200)

x1=sqrt((h/tand(teta1))^2-(w/2)^2);

x2=sqrt((h/tand(teta2))^2-(w/2)^2);

if (x2^2)>(l/2)

x2=l/2;

end

ang1=round(atand((w/2)/x1)); %Acimut 1

ang2=round(atand((w/2)/x2)); %Acimut 2

if punto=='A'|punto=='D'

separacion=0;

end

if punto=='B'

separacion=ang2-ang1; %separación acimutal del punto B

%en grados.

end

if punto=='C'

if (ang1+ang2)<=90

separacion=ang1-ang2; %separación acimutal del

%punto C en grados.

else

separacion=180-ang1-ang2; %separación acimutal del

%punto C en grados

end

end

Page 27: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

92

coef_cc.m %Cálculo del coeficiente de correlación cruzada function coef_cc=coef_cc(teta1,teta2,punto) h=15; %Altura más común de los edificios (modal) dm=17.5; %distancia del móvil a la fachada de los edificios w=2*dm; %anchura media de las calles l=250; %longitud de la calle considerada (l>=200) %Paso 1: definición de valores auxiliares. x1=sqrt((h/tand(teta1))^2-(w/2)^2); x2=sqrt((h/tand(teta2))^2-(w/2)^2); %La siguiente situación se da cuando existe visibilidad para el

satélite 1 y/o 2 %solamente a ambos extremos de la calle: if (x1^2)>(l/2) x1=l/2; end if (x2^2)>(l/2) x2=l/2; end if (x1^2)>=0&(x2^2)>=0 ang1=round(atand((w/2)/x1)); %Acimut 1 ang2=round(atand((w/2)/x2)); %Acimut 2 M1=(ang1+0.5)/90; M2=(ang2+0.5)/90; %Paso 2: cálculo de la información auxiliar relacionada con los

%puntos del %modelo A y D. %Para el punto A: N11A=4*ang1+2; N00A=360-4*ang2-2; N01A=4*(ang2-ang1); N10A=0; %Para el punto D: if (ang1+ang2)<=90 N11D=0; N00D=360-4*ang1-4*ang2-4; N01D=4*ang2+2; N10D=4*ang1+2; else %si ang1+ang2>90º N11D=4*ang1+4*ang2+4-360; N00D=0; N01D=360-4*ang1-2; N10D=360-4*ang2-2; end %Paso 3: cálculo del coeficiente de correlación cruzada en los

%puntos A y D sigma1=sqrt(((4*ang1+2)*(1-M1)^2+(360-4*ang1-2)*(0-M1)^2)/359); sigma2=sqrt(((4*ang2+2)*(1-M2)^2+(360-4*ang2-2)*(0-M2)^2)/359); if (punto=='A')|(punto=='B') %para el punto A o B coef_cc=1/359*(N11A*(1-M1)*(1-M2)+N00A*(0-M1)*(0-M2)+N10A*(1-

M1)*(0-M2)+N01A*(0-M1)*(1-M2))/(sigma1*sigma2); else if (punto=='D')|(punto=='C') %para el punto D o C coef_cc=1/359*(N11D*(1-M1)*(1-M2)+N00D*(0-M1)*(0-

M2)+N10D*(1-M1)*(0-M2)+N01D*(0-M1)*(1-M2))/(sigma1*sigma2); end end %Paso 4: en el punto B el coeficiente de correlación es el mismo

%que en el

Page 28: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

93

%punto A y su separación acimutal viene dada por: if punto=='B' acimutB=ang2-ang1; %separación acimutal del punto B en grados end %Paso 5: En el punto C el coeficiente de correlación es el mismo

%que en el punto D y su separación acimutal viene dada por: if punto=='C' if (ang1+ang2)<=90 acimutC=ang1-ang2; %separación acimutal del punto C en

%grados else acimutC=180-ang1-ang2; %separación acimutal del punto C

%en grados end end else %Paso 6: En este caso, para una o ambas elevaciones, aiempre existen %condiciones de visibilidad directa. El coeficiente de correlacón se %calcula de forma ligeramente distinta a la del Paso 3: if (x1^2)<0&(x2^2)<0 %Si ambos satélites son siempre visibles coef_cc=1; else if (x1^2)<0 ang2=round(atand((w/2)/x2)); %Acimut 2 N11=4*ang2+2; coef_cc=(N11/180-1); end if (x2^2)<0 ang1=round(atand((w/2)/x1)); %Acimut 1 N11=4*ang1+2; coef_cc=(N11/180-1); end end end

p_indisp.m %La improbabilidad de la disponibilidad después de la

%diversidad de satélite.

function p_indisp=p_indisp(teta1,teta2,Cf,punto)

indisp=coef_cc(teta1,teta2,punto)*sqrt(p_bloqueo1(teta1,Cf)

*(1-p_bloqueo1(teta1,Cf)))*sqrt(p_bloqueo1(teta1,Cf)*(1-

p_bloqueo2(teta2,Cf)))+p_bloqueo1(teta1,Cf)*p_bloqueo2(teta

2,Cf);

if indisp<0

p_indisp=-1; %cuando se obtengan valores de p_indisp=-

%1, se está diciendo que el coef_cc no es válido

else

p_indisp=indisp;

end

Page 29: Anexo I: Código fuentebibing.us.es/proyectos/abreproy/11930/descargar_fichero/Anexo+I+-+Código+fuente.pdf66 Anexo I: Código fuente Funciones para el modelo de sombra causada por

94

p_disp.m %La probabilidad de la disponibilidad después de la

%diversidad de satélite

function p_disp=p_disp(teta1,teta2,Cf,punto)

p_disp=1-p_indisp(teta1,teta2,Cf,punto);