1function g = loss_ITU1411_NLOS_over_rooftop (d, hb, hm, hr, f, l, b, st_w, phi, big) 2 3 %% 4 %% function g = loss_ITU1411_NLOS_over_rooftop(d, hb, hm, hr, f, l, b, st_w, phi, big) 5 %% 6 %% returns the loss at d meters for f frequency and mobile height m and 7 %% base station height of hb 8 9 assert(isscalar(f)); 10 assert(f > 0); 11 12 13 lambda = 299792458 / f; 14 fmhz = f/1e6; 15 Dhb = hb - hr; 16 ds = (lambda*d*d)/(Dhb*Dhb); 17 if (l>ds) 18 if (fmhz>2000) 19 kf = -8; 20 else 21 if (big==1) 22 kf = -4+1.5*((fmhz/925)-1); 23 else 24 kf = -4+0.7*((fmhz/925)-1); 25 endif 26 endif 27 if (hb>hr) 28 kd = 18; 29 if (fmhz>2000) 30 ka = 71.4; 31 else 32 ka = 54; 33 endif 34 Lbsh = -18*log10(1+Dhb); 35 else 36 kd = 18 - 15*(Dhb/hr); 37 Lbsh = 0; 38 if (d>=500) 39 ka = 54-0.8*Dhb; 40 else 41 ka = 54-1.6*Dhb; 42 endif 43 endif 44 Lmsd = Lbsh + ka + kd.*log10(d./1000) + kf*log10(fmhz) - 9*log10(b); 45 else 46 theta = atan (Dhb /b); 47 rho = sqrt(Dhb^2 + b^2); 48 if (abs(hb-hr)<1) 49 Qm = b./d; 50 elseif (hb>hr) 51 Qm = 2.35*((Dhb./d)*sqrt(b/lambda))^0.9; 52 else 53 Qm = (b/(2*pi.*d))*sqrt(lambda/rho)*((1/theta)-(1/(2*pi+theta))); 54 b 55 endif 56 Lmsd = -10*log10(Qm*Qm); 57 endif 58 Dhm = hr-hm; 59 if (phi<35) 60 Lori = -10+(0.354*phi); 61 elseif (phi<55) 62 Lori = 2.5+0.075*(phi-35); 63 else 64 Lori = 4- 0.114*(phi-55); 65 endif 66 Lrts = -8.2 -10*log10(st_w) + 10*log10(fmhz) + 20*log10(Dhm) + Lori; 67 68 Lbf = 32.4 +20*log10(d/1000) + 20*log10(fmhz); 69 g = zeros(size(d)); 70 if (Lrts+Lmsd>0) 71 L = Lbf + Lrts + Lmsd; 72 else 73 L = Lbf 74 endif 75 g(find(d > 0)) = L; 76 77 g(find(d <= 0)) = 1; 78