-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathExtendedHata_PropLoss.m
150 lines (138 loc) · 7.04 KB
/
ExtendedHata_PropLoss.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
% =========================================================================
%
% This software was developed by employees of the National Institute of
% Standards and Technology (NIST), an agency of the Federal Government.
% Pursuant to title 17 United States Code Section 105, works of NIST
% employees are not subject to copyright protection in the United States
% and are considered to be in the public domain. Permission to freely use,
% copy, modify, and distribute this software and its documentation without
% fee is hereby granted, provided that this notice and disclaimer of
% warranty appears in all copies.
%
% THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT ANY WARRANTY OF ANY KIND,
% EITHER EXPRESSED, IMPLIED, OR STATUTORY, INCLUDING, BUT NOT LIMITED TO,
% ANY WARRANTY THAT THE SOFTWARE WILL CONFORM TO SPECIFICATIONS, ANY
% IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
% AND FREEDOM FROM INFRINGEMENT, AND ANY WARRANTY THAT THE DOCUMENTATION
% WILL CONFORM TO THE SOFTWARE, OR ANY WARRANTY THAT THE SOFTWARE WILL BE
% ERROR FREE. IN NO EVENT SHALL NASA BE LIABLE FOR ANY DAMAGES, INCLUDING,
% BUT NOT LIMITED TO, DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES,
% ARISING OUT OF, RESULTING FROM, OR IN ANY WAY CONNECTED WITH THIS
% SOFTWARE, WHETHER OR NOT BASED UPON WARRANTY, CONTRACT, TORT, OR
% OTHERWISE, WHETHER OR NOT INJURY WAS SUSTAINED BY PERSONS OR PROPERTY
% OR OTHERWISE, AND WHETHER OR NOT LOSS WAS SUSTAINED FROM, OR AROSE OUT
% OF THE RESULTS OF, OR USE OF, THE SOFTWARE OR SERVICES PROVIDED
% HEREUNDER.
%
% Distributions of NIST software should also include copyright and
% licensing statements of any third-party software that are legally bundled
% with the code in compliance with the conditions of those licenses.
%
% =========================================================================
%
% National Institute of Standards and Technology (NIST)
% Communications Technology Laboratory (CTL)
% Wireless Networks Division (673)
% By: Thao Nguyen
% Date: 09/01/2016
%
% Description: function to compute the extended Hata propagation loss.
% The extended Hata propgation model was developed in [1] with the
% following steps;
% - Revisit the Okumura et al. basic median attenuation curves [2],
% - Extend Hata's empirical formulae in both distance & frequency range[3],
% - Apply the "Urban Factor" approach suggested by Longley [4],
% - Implement site-specific corrections to the median attenuation
% including effective height corrections, median and fine corrections for
% rolling hilly terrain, general slope of terrain correction, isolated
% mountain, and mixed land-sea path correction [1,2].
%
% Inputs:
% - freq_MHz : frequency (in MHz), in the range of [1500, 3000] MHz
% - hb_ant_m : antenna height (in meter) of the base station,
% in the range of [30, 200] m.
% Note, base station and Tx will be used interchangeably.
% - hm_ant_m : antenna height (in meter) of the mobile station,
% in the range of [1, 10] m.
% Note, mobile station and Rx will be used interchangeably.
% - region : region of the area ('DenseUrban', 'Urban', 'Suburban')
% - elev : an array containing elevation profile between Tx & Rx,
% where:
% elev(1) = numPoints - 1
% (note, numPoints is the number of points between Tx & Rx)
% elev(2) = distance between points (in meters).
% (thus, elev(1)-1)*elev(2)=distance between Tx & Rx)
% elev(3) = Tx elevation (in meters)
% elev(numPoints+2) = Rx elevation (in meters)
%
% Outputs:
% - LossEH : total propagation loss (in dB)
%
% References:
% [1] U.S. Department of Commerce, National Telecommunications and
% Information Administration, 3.5 GHz Exclusion Zone Analyses and
% Methodology (Jun. 18, 2015), available at
% http://www.its.bldrdoc.gov/publications/2805.aspx.
% [2] Y. Okumura, E. Ohmori, T. Kawano, and K. Fukuda, Field strength and
% its variability in VHF and UHF land-mobile radio service, Rev. Elec.
% Commun. Lab., 16, 9-10, pp. 825-873, (Sept.-Oct. 1968).
% [3] M. Hata, Empirical formula for propagation loss in land mobile radio
% services, IEEE Transactions on Vehicular Technology, VT-29, 3,
% pp. 317-325 (Aug. 1980).
% [4] Anita G. Longley, Radio Propagation in Urban Areas, United States
% Department of Commerce, Office of Telecommunications, OT Report
% 78-144 (Apr.1978), available at
% http://www.its.bldrdoc.gov/publications/2674.aspx.
%
% History:
% - 2016/09/01: released version 1.0
function LossEH = ExtendedHata_PropLoss(freq_MHz, hb_ant_m, hm_ant_m, ...
region, elev)
% Check region classification
if (~strcmp(region, 'DenseUrban') && ~strcmp(region, 'Urban') && ...
~strcmp(region, 'Suburban'))
disp(['ExtendedHata_PropLoss.m: Unknown region type.',...
'Valid types: DenseUrban, Urban, Suburban']);
LossEH = NaN;
return;
end
% Extract data from elevation profile
numPoints = elev(1) + 1; % number of points between Tx & Rx
pointRes_km = elev(2)/1e3; % distance between points (km)
d_Tx_Rx_km = (numPoints-1)*pointRes_km; % distance between Tx & Rx (km)
% Compute terminals' "effective height" corrections (for both base station
% and mobile)
[hb_eff_m, hm_eff_m] = ExtendedHata_EffHeightCorr(hb_ant_m, hm_ant_m, elev);
% Compute median basic transmission loss
[LossEHMedian, ~] = ExtendedHata_MedianBasicPropLoss(freq_MHz, ...
d_Tx_Rx_km, hb_eff_m, hm_eff_m, region);
% Compute "median" and "fine" correction for rolling hilly terrain
% (applied in the vicinity of the mobile station only).
[Krh, ~, ~] = ExtendedHata_RollingHillyCorr(elev);
% Compute the general slope of terrain correction (applied in the
% vicinity of the mobile station only)
Kgs = ExtendedHata_GeneralSlopeCorr(elev);
% Compute the isolated mountain (or isolated ridge) correction
% (applied only the single horizon paths)
Kir = ExtendedHata_IsolatedRidgeCorr(elev);
% Compute the mixed land-sea path correction
Kmp = ExtendedHata_MixedPathCorr(elev);
% Adjust the median basic transmission loss with the site-specific
% correction factors
if (Kir == 0) % No isolated ridge correction
LossEH = LossEHMedian + Krh - Kgs - Kmp;
% Note: the median basic transmission loss is:
% - increased as the rolling hilly terrain correction Krh increases
% - decreased as terrain rises from Tx to Rx (theta_m>0, Kgs>0), and
% increased otherwise.
% - decreased by the mixed land-sea path correction
else % Isolated ridge correction is applied, rolling hilly
% terrain and general slope corrections are NOT applied
LossEH = LossEHMedian + Kir - Kmp;
% Note: the median basic transmission loss is:
% - increased as the isolated rigde correction factor Kir increases
% - decreased by the mixed land-sea path correction
end
% Adjust the propagation loss based on location variability
sigma = ExtendedHata_LocationVariability(freq_MHz, region);
LossEH = LossEH + sigma*randn;