H.2 Path length and bearing
The method requires the path length, d, (km), which is available from the profile. It may be a useful check to calculate the path length directly from the terminal coordinates.
Calculate the difference in longitude between the terminals, given by:
degrees (H.2.1)
Calculate the quantity r:
(H.2.2)
Calculate the path length as the angle subtended at the centre of average-radius Earth:
(H.2.3)
Calculate the great-circle path length:
km (H.2.4)
where fdrad is fd in radians, and Re is given in Table 2.3.1.
As commented in § H.1 above, the value of dgc can be compared to d, as given in Table 2.2.1 and obtained in § 3.2, as a consistency test.
Calculate the quantities x1 and y1:
(H.2.5a)
(H.2.5b)
Calculate the bearing of the great-circle path from the transmitter towards the receiver, Bt2r, as the angle between due north at the transmitter eastwards (clockwise) to the direction of the path. For numerical reasons it is necessary to trap very small absolute values of the arguments of the inverse trigonometric function:
(H.2.6)
where the function “arctan2” calculates the angle between the line joining the Cartesian origin to a point at (x,y) and the X-axis, giving Bt2r in the correct quadrant, and allowing either x or y, but not both, to be zero.
If the function “arctan2” is not available from a library it can be implemented by inspecting x and y and using the normal inverse tangent function for an angle not exceeding 45 degrees, which can always be found.
H.3 Calculation of intermediate path point
The following calculation gives the latitude and longitude of any point along the path from transmitter to receiver. The value of the distance from the transmitter to the intermediate point, dpnt (in km), is defined at the place in the document where this section is used.
Calculate the distance to the point as the angle subtended at the centre of average-radius Earth:
rad (H.3.1)
Note that equation (H.3.1) gives fpnt in radians.
Calculate the quantity s:
(H.3.2)
The latitude of the intermediate point is now given by:
(H.3.3)
Calculate the quantities x2 and y2:
(H.3.4a)
(H.3.4b)
Calculate the longitude of the intermediate point, fpnte. For numerical reasons it is necessary to trap very small absolute values of the arguments of the inverse trigonometric function:
(H3.5)
If necessary, adjust fpnte to lie in the correct 360º range. Most implementations of the arctan2 function will return a value in the range −180º to 180º as required.
Appendix I
Iterative procedure to invert a cumulative distribution function
I.1 Introduction
This Appendix defines an iterative procedure that can be used to calculate the attenuation level A of a propagation mechanism for a given value of q% time for which A is exceeded. The function A(q) is an inverse cumulative distribution function. The iterative procedure is necessary when the propagation model is formulated to calculate the time percentage, q, for which a given level of attenuation A is exceeded. The function Q(A) is a cumulative distribution function.
The WRPM model fundamentally calculates A for a given value of q or p. However, the clear-air and precipitation sub-models are formulated to calculate q for a given value of A. Inversion of the cumulative distribution function is therefore required for these sub-models, and in particular for the combining of these two sub-models.
Note that although the procedure defined in this Appendix is formulated in terms of fades, A, it will handle both fades (A > 0) and enhancements (A < 0).
I.2 Iteration method
This section defines a function Aiter(q) which gives the attenuation due to the selected propagation mechanisms exceeded for q% time. In several places the procedure calls a function Qiter(A). Qiter(A) is the cumulative distribution function of the propagation model for which Aiter(q) is required. Qiter(A) is defined in the main text at the point where the iterative procedure of this Appendix is required.
Qiter(A) has a negative slope; therefore, it should be noted that whilst Ahigh is greater than Alow, qhigh is smaller than qlow.
The iteration proceeds in two stages. Firstly a search range of attenuation levels is found which is known to include the required percentage fade time. Secondly a binary search is used to refine the search until the resulting percentage time is within the given tolerance of the target percentage fade time.
Stage 1: setting the search range
The initial value of trial attenuation, Ainit, can be set to any non-zero positive value. There may be efficiency reasons to calculate Ainit on some objective basis. However, simply setting Ainit to 10 dB has been found to give reasonable efficiency in the iteration process.
Set the initial values of the high and low search limits for attenuation and the attenuation step size, given by:
dB (I.2.1)
dB (I.2.2)
dB (I.2.3)
Initialize the percentage times attenuations Ahigh and Alow are exceeded:
dB (I.2.4a)
dB (I.2.4b)
Stage 1: initial search range iteration:
If q < qhigh, proceed as follows:
Re-evaluate Alow = Ahigh;
Re-evaluate qlow = qhigh;
Re-evaluate Astep = 2 × Astep;
Re-evaluate Ahigh = Ahigh + Astep;
Re-evaluate qhigh using equation (I.2.4a);
Loop back to the start of search range iteration and repeat from there.
If q > qlow, proceed as follows:
Re-evaluate Ahigh = Alow;
Re-evaluate qhigh = qlow;
Re-evaluate Astep = 2 × Astep;
Re-evaluate Alow = Alow − Astep;
Re-evaluate qlow using equation (I.2.4b);
Loop back to the start of initial search range iteration and repeat from there.
Otherwise, that is if q ≥ qhigh and q ≤ qlow, proceed to stage 2. The initial search range loop will normally require only a few iterations. To ensure numerical stability, the loop should be terminated after 10 iterations irrespective of the values of qlow and qhigh, and the calculation continued from stage 2.
Stage 2: binary search
Evaluate Atry:
dB (I.2.5)
Start of binary search iteration:
Calculate the percentage time attenuation Atry is exceeded:
% (I.2.6)
If qtry < q re-evaluate Ahigh = Atry.
Otherwise, re-evaluate Alow = Atry.
Re-evaluate Atry using equation (I.2.5).
Loop back to the start of binary search iteration and repeat from there. The number of iterations of the binary search loop, niter, determines the absolute accuracy of the calculated function Aiter(q). To achieve an accuracy better than Aacc set niter to the smallest integer value greater than or equal to . Aacc = 0.01dB should be adequate. Once niter iterations have been completed, continue below.
The attenuation exceeded for q% time is approximated by:
dB (I.2.7)
Appendix J
Structure of the wide-range propagation model
J.1 Introduction
This Appendix describes the structure of the overall wide-range propagation model and explains how the methods used to combine the sub-models reflect the underlying correlation properties of the sub-models.
The model is based on the notion of combining seven sub-models representing seven separate propagation mechanisms. These are diffraction, ducting, troposcatter, sporadic-E, gaseous absorption, precipitation attenuation and multipath/focusing. The first four are mechanisms that provide end-to-end paths from transmitter to receiver. The radio waves for each of these in principle follow a different path through the atmosphere, and the four paths act “in parallel”. The last three do not by themselves provide signal paths between transmitter and receiver. Rather they are additive attenuation mechanisms that produce additional loss on the four end-to-end paths.
Combining the seven models is not trivial because they are time-dependent, statistical, models. The correlation properties of the models are central to the method. The model correlations reflect the correlations of the underlying meteorological mechanisms that cause the time variability. A recent re-examination of long-term, global meteorological data was used to define the correlations between the various sub-models. Simplifications had to be made in order to develop a model that was relatively simple to implement – in general numerical methods would be required to represent the full statistical properties of the propagation mechanisms.