Acceleration Techniques for Ray-Path Searching in Urban and Suburban Environments to Implement Efficient Radio Propagation Simulators Arno Formella
Fernando Aguado Agelet
HTW des Saarlandes Goebenstraße 40 D–66117 Saarbr¨ucken, Germany
E.T.S.I. Telecomunicaciones Universidad de Vigo E–33200 Vigo, Spain
[email protected] http://www.mobile-connect.de
[email protected]
Jos´e M. Hernando R´abanos E.T.S.I. de Telecomunicaci´on Universidad Polit´ecnica de Madrid E–28040 Madrid, Spain
[email protected] September 1999
DRAFT for Final Report
COST255-CP61b02
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
1
Contents 1 Introduction
2
2 Review of Previous Work
2
3 Environment and Propagation Model 3.1 2-1/2D Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Propagation Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Ray-Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 4 4
4 Calculating Interactions 4.1 Simple Interactions . . . . 4.2 Multiple Interactions . . . 4.3 Reflections on the Ground and on the Ceiling . . . . . 4.4 Mixed Interactions . . . . 4.5 Directional Paths . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 5 6
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9 9 9
5 2D Ray-Path Search Algorithm 5.1 2D Visible Areas . . . . . . . . 5.2 2D Polar Sweep Algorithm. . . . 5.3 2D Visibility Graph . . . . . . . 5.4 Speeding-up the 2D Polar Sweep Algorithm . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10 11 11 13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
6 Ray-Tracing Algorithm 7 3D Ray-Path Search Algorithm 7.1 Visible Areas . . . . . . . . . . 7.2 3D Polar Sweep Algorithm . . . 7.3 Visibility Graph . . . . . . . . . 7.4 Speeding-up the 3D Polar Sweep Algorithm . . . . . . . . . . . .
15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15 16 16 19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
8 Summary of the Ray-Path Search Algorithm
20
9 Extension of the Environment and further Interactions 9.1 Complex Building Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.2 Scattering and Attenuating Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9.3 Additional Interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21 21 22 22
10 Specific Optimization
23
11 RadioTracer
24
12 Conclusions
24
Bibliography
25
A. Formella, F. Aguado, J.M. Hernando
1 Introduction
COST255–CP61b02 Draft
2
2
Review of Previous Work
The simulation methods for wave propagation based on geometric optics and the uniform theory of diffraction can be classified into two categories: Ray-tracing and UTD (Uniform Theory of Diffracthe earlier ones using the ray-launching approach tion) techniques are already widely applied to siteand the more recent ones using ray-path search. specific radio propagation modeling for wireless applications. Software tools using such techniques may take considerable computation time for the Ray-Launching analysis of the propagation conditions in a given The ray-launching approach (sometimes called environment even for a short mobile terminal route. “shooting and bouncing rays method” or “pin cushEfficient acceleration techniques are required to ion method”) uses a forward ray-tracing algorithm make such analysis tools practical for the design of which simulates the propagation of the waves from modern radio communication systems. To reduce the source into the space [30, 34, 33, 35, 36]. For computation time, ray-tracing should be applied each region or location of interest the “informaonly in those areas where ray-paths are likely to extion” carried by the rays crossing the region or ist. This is achieved by using visibility search algopassing nearby the location is superposed to obtain rithms prior to performing any actual ray-tracing. the overall effect. Due to the sampling nature of In this chapter an efficient ray-path search algosuch an algorithm the prediction for areas farther rithm is presented. away from the source becomes more and more imprecise. Phase information cannot be calculated acThe rest of the text is organized as follows. Sec- curately. For more complex environments or sateltion 2 reviews previous work dealing with the de- lite scenarios a ray-launching approach becomes terministic approach of wave propagation and com- impractical, both due to its computational compares the methods qualitatively with our algorithm. plexity tracing a sufficiently large number of rays Section 3 describes how urban and suburban ar- and its difficulties to find the ray-paths which pass eas can be modeled. The section introduces briefly sufficiently close to diffractive edges and receivthe propagation model used for deterministic pre- ing locations. An advantage of the ray-launching dictions and defines the notion of ray-paths. Sec- approach is the fact that there are no restrictions tion 4 shows how the intermediate points of a ray- imposed on the environment, any shape of object path where the interactions take place are calcu- may be present. Improvements of the basic idea, lated. Section 5 describes the 2D version of the rather than tracing rays but ray-tubes or ray-cones, ray-path search algorithm which is sufficient when- would lead to similar techniques we presented in ever ray-paths passing over the objects in the envi- this chapter, because the intersection test between ronment should not be considered. Section 6 intro- a ray-cone and a set of objects is nothing else but duces ray-tracing which is used in Section 7 where calculating visible areas (see Sections 5.1 and 7.1). the 2D version is extended to a 3D ray-path search algorithm. Section 8 summarizes the main algo- Ray-Path Search rithm in pseudo-code. Section 9 shows how many of the restrictions on the environment imposed in Using imaging techniques for reflections and rotaSection 3 can be solved. Section 10 summarizes tions for diffractions (see Section 4), ray-paths fulsome optimizations strategies that can be employed filling Fermat’s principle are easy to calculate for under certain simulation runs to further improve the an ordered list of objects such as faces and edges. running time of the algorithm. Section 11 briefly A brute force ray-path search algorithm [6, 25, 37] describes the software tool RadioTracer which im- to find all ray-paths between a transmitting point and a receiving point in an polygonal enplements most of the algorithms described in this vironment would generate successively an ordered chapter. Conclusions are presented in Section 12.
A. Formella, F. Aguado, J.M. Hernando list of up to objects out of the edges and faces of the environment, calculate the ray-paths containing up to interactions, and finally verify whether the paths are obstructed by any face in the environment. A naive implementation of the ray-path testing can be implemented by a linear search. The running time would be proportional to
, or in other words, prohibitively large for many practical cases. Hence, acceleration methods have to be employed to reduce the number of lists of objects possibly involved in the ray path search and to speed-up the ray-path testing. Besides our approach [1, 2, 3, 4] and some heuristical algorithms, e.g., [13, 14, 12], two general methods have been published. An efficient method which is restricted to find 2D ray-paths (see Section 3.3 for a definition) is introduced in [18]. They use a delaunay-triangulation of the ground plane containing the projections of the building blocks to compute approximations of the visible area (see Section 5.1). which reduces significantly the search space for the ray-paths. The triangulation serves as well as a efficient guide-line for the ray-tracing part. An extension to 3D has not been reported, yet. It is an open question whether a three-dimensional delaunay-triangulation is competitive to the polar sweep approach enhanced with an adaptive space sub-division, as described in this chapter. Another method introducing a so-called angular buffer (AZB) is described in [9, 11, 10]. They use a regular angular sub-division (so-called anxels) to reduce the search space for interactions and simultaneously accelerate the ray-tracing kernel. Previously calculated buffer contents (so-called AZB matrices) are stored for future use. They use a quadratic time, exhaustive search preprocessing step to calculate all images of all edges, which restricts the algorithm—for practical reasons—to find up to two interactions on a ray-path (not counting possible ground reflection). Because of angular dispersion, the method runs into the same difficulties as the ray-launching approach when the environment is large compared to the size of the, possibly numerous, building blocks. If high-order diffraction paths are of interest, the search space is reduced only by a constant factor determined by the regular grid. An additional adaptive sub-division
COST255–CP61b02 Draft
3
has been suggested to overcome some of the limitations. The operations needed to be performed in an anxel resemble the calculation of a visible area or at least an approximation of the area. In that sense, the polar sweep algorithm can be seen as an improvement of the angular -buffer avoiding the regular angular grid, but using an adaptive space sub-division.
3
Environment and Propagation Model
This section describes how the environment is modeled geometrically in such a way that both an adequate representation of urban areas is achieved and fast algorithms can be employed. Also, the underlying propagation model for electromagnetic waves which is used to predict the parameters of the mobile channel is introduced.
3.1 2-1/2D Environment Looking more closely at the environments usually found in urban areas, one finds that certain restrictions on the orientation of faces and edges result in a valid approximation of the real morphography. Most of the walls of the buildings are perpendicular to and they usually start on the ground. For urban environments, the ground can be modeled sufficiently close by a simple plane surface. An example of such a 2-1/2D environment is given in Figure 1. Hence, the objects of the urban environments can be represented by building blocks with an arbitrarily shaped polygonal base and side faces perpendicular to a common ground plane. The top of a building block is flat and parallel to the ground. The objects can be described with their base polygons lying in one plane and the heights of the walls. In Section 9.1, some extensions will be described to overcome some of the restrictions on the environment as given here. For instance, how to introduce other types of roofs or additional obstructing objects. According to the location of the antennas a further classification of the environment is usually made:
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
4
ering only quasi-optical rays and their interactions with the environment by
Figure 1: Example for a 2-1/2D environment. Indoor pico-cells: Both the transmitter and the receiver are located within the same building. The floor and the ceiling are modeled by means of parallel planes. All walls go from the floor to the ceiling and thus have the same height.
specular reflections on the surfaces of the objects, diffraction on convex edges where two surfaces meet, scattering from small objects, attenuation in transmissive media.
The grounds for the electromagnetic calculations are geometric optics for the direct field and the specularly reflected field and the geometric theory of diffraction (GTD) in its uniform theory of diffraction (UTD) version [8, 27, 24, 26] for the diffracted field at an edge. Additional diffraction at corners may be added to guarantee continuity of the calculated field along mobile routes. However, this type of interaction will not be included in the discussion. Scattering of waves from small objects is approximated by the bistatic radar cross section (RCS). Attenuation in transmissive media is computed as a function of the accumulated distance through the media. All of these approximations are only applicable whenever the wave length is sufficiently short compared to the smallest object in the environment.
Street micro-cells: In this case, the transmitter and the receiver are located below the minimum height of the buildings encountered in 3.3 Ray-Paths the environment. However, the buildings have different heights and no ceiling is present. Several interactions can take place before a wave Outdoor macro-cells: Here, the transmitter an- emitted by a transmitter eventually reaches a retenna height exceeds the height of some of the ceiving point. Because the propagation is modnearby buildings. It may be located at the roof eled through optical rays, the overall propagation of polylines that consist of top of a tall building or at a tower sufficiently is described by a set , possibly some intermethe transmitting point high. The receiver is located well below the diate points where reflection or diffraction occurs, height of most of the buildings. and the receiving point . These points are conLand mobile satellite scenarios: The transmitter nected via straight line segments. At the intermeis located on a satellite. The distance to the diate points the laws of reflection and diffraction satellite is much larger than the size of the en- are fulfilled. In the sequel, such a polyline is called tire environment under study. The receiver is a ray-path. A ray-path reflects Fermat’s principle located within the streets below the roof tops which states that most of the energy is transported on the shortest path from the transmitting point of most of the surrounding buildings. possibly interacting with to the receiving point intermediate objects. See Figure 2 for an illustra3.2 Propagation Model tion of different ray-paths in a micro-cell environThe possible interactions of a wave with the ob- ment. jects can be approximated closely enough consid- In order to use a simple notation for the ray-paths,
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
5
Clearly, beside the line-of-sight (LOS), an arbitrary large number of ray-paths may exist be and the receivtween the transmitting point ing point . So their number must be limited to the—electromagnetically speaking—interesting cases. Possible end criteria for the search of raypaths include:
the maximum number of interaction points along the ray-path, the maximum length of the ray-path, and the contributing electromagnetic field of the ray-path.
Figure 2: Ray-paths in a micro-cell environment.
4
Calculating Interactions
the following naming scheme for the intermediate Reflection and diffraction are symmetric relations, points is used: hence, transmitting and receiving properties can be interchanged while the points along the ray-path repoint on a vertical wall reflection main the same. Geometrically, the shortest path diffraction point on a vertical edge between two points is the connecting straight line point on a horizontal edge ! diffraction segment. As long as we consider isotropic media, point on the ground " reflection this straight line segment defines the shortest path reflection point on the ceiling according to Fermat’s principle. point (see Section 9.2) # transmission scattering point (see Section 9.2)
4.1 Simple Interactions Additionally, the intermediate points along a raypath are numbered from 1 to $ starting at the re- As simple interactions we consider simple specu ceiving point . lar reflection and simple diffraction. The following The efficient ray-path search algorithm described paragraphs describe how Fermat’s principle can be in this chapter considers interactions that can take used to prove the correctness of the method how place only on the vertical faces of the building the intermediate points are calculated. blocks and all adjacent convex edges, i.e., both on the vertical and horizontal convex edges of a face. Simple Reflection Additionally, reflections on the ground plane will be considered. Reflections on plane roof tops of Given a reflective, plane surface # , and two points building blocks are not considered. However, Sec- and , the intermediate point where the retion 9.3 shows how this type of interaction can be flection occurs can be calculated as follows (see included in the ray-path search without huge effort. Figure 3). &% is the image of with reNote that the restriction to the 2-1/2D case allows the application of many optimization techniques and the use of very efficient geometric visibility algorithms. An important fact, for instance, is the reduction of three dimensional calculations to two dimensional ones within a projection plane. Numerical stability is an appreciated side effect of this projection method.
#
spect to the surface . Obviously, any point ' # has exactly the same distance on the surface (% . Hence, every polyline from than from * ) + ) have the same length as the &% would ' ) + ) ' # . The straight polyline segment % crossing isline from towards the shortest (% to . Let be the interpossible path from # section point of the line segment with the surface .
A. Formella, F. Aguado, J.M. Hernando
R
Rx’
R
S Tx
Rx
Rx’
Rx
3D-view
6
S
Tx
S
Tx
COST255–CP61b02 Draft
top-view
R
Rx’
Rx
side-view
Figure 3: Simple reflection.
,) )+
Now it is clear that the path mini*) ' )+ .has If such a mum length among all paths point does not exist, no reflection can take place. Note that the same point is obtained if the roles and are interchanged. of With the help of simple geometric arguments, the law of reflection is obtained which states that the incident ray and the reflected ray at a plane surface have the same angle respective to the normal of the surface and that the ray-path together with the virtual image point is contained in a plane.
To find the intermediate point due to a reflec# and tion given the surface and the two points , first the virtual image point % (or % ) is determined and then the intersection point of the line (or ) segment from the virtual image point to # with the surface is obtained. If no such an intersection point exist, no reflection can take place. In a 2-1/2D environment the procedure can be divided in two steps (so-called 2D-3D hybrid method [6]). The intersection point between the projection % )+ and the projection of the of the segment # surface on the ground plane is calculated. And, if such a point exists, the -coordinate is calculated and compared to the height of the surface to check whether the intersection point lies on the surface. Simple Diffraction
rotating around the edge - in such a way that . the point lies in the plane defined by - and Obviously, any point ' on the edge - has exactly than from &% . Hence, the same distance from *) ' )+ would have the same every polyline % ) ' )+ . The straight length as the polyline & % is crossing - towards line segment from % to . Let the shortest possible path from be the intersection point of the line segment with the edge - . If no such an intersection point exist, no diffraction can take place. Now it is clear that ,) )+ has minimum length among the path ,) ' )+ . The same point is oball paths and are interchanged. tained if the roles of Using simple geometric arguments the law of diffraction—known as Keller’s cone [23]—is obtained which states that the angle between the incident ray and the edge is equal to the angle towards a possible receiving point (see Figure 5). The segment/edge intersection check should be performed in a 2D plane, for instance in the dominant projection plane of the coordinate system. The 3D point is obtained by back projection onto the edge. The previous method can be applied to an arbitrary edge, but a simplification procedure can be considered for a diffraction on a vertical edge. Since all the points of the edge have the same - and . coordinates, it is only necessary to compute the coordinate that fulfill the Keller law.
Similar as in the case of reflection, Fermat’s principle can be used to compute the intermediate point 4.2 Multiple Interactions due to diffraction on a convex edge - (see Fig and and an As multiple interactions we consider ray-paths that ure 4). Again, the two points % edge - are given. Let be the point obtained by contain more than one intermediate point. With
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
7
Tx E D
Tx
E
Rx’
E
D
Rx
Rx’
Rx
3D-view
Tx
D
Rx’
Rx
top-view
side-view
Figure 4: Simple diffraction. Keller’s cone β β
D
Tx E
Figure 5: Keller’s cone. similar arguments as given in the previous section it can be shown that the calculation of the intermediate points is correct, i.e., the obtained ray-paths are the shortest paths among all paths interacting with the same set of objects. We distinguish paths with multiple reflections, multiple diffractions on a certain set of edges, reflections on both ground and ceiling, and combinations of reflections and diffractions along the paths.
# /.
Clearly, the ray-path does only exist if the intersection tests give points located on the surfaces. Note that if all surfaces are perpendicular to a third plane, as it is the case for the vertical surfaces in a 2-1/2D environment, all virtual images have the same distance to that ground plane along the entire ray-path. Most of the operations can be performed in the two dimensional projection onto the ground plane. The intermediate points along the polyline in the case of several interactions taking place along a ray-path are calculated with the 2D3D hybrid method as described for the simple case in the previous section. Multiple Diffractions
Multiple diffractions are somewhat more complex to calculate in the general case. However, due to changes in polarization at diffracting edges, the relevant interactions can be restricted to two important cases: i) the edges where the multiple diffractions occur are parallel to each other, or ii) they lie within the same plane. Hence, in a 2-1/2D environment, where all edges are either perpendicular or Multiple Reflections parallel to the ground only the special cases must A ray-path with multiple reflections is determined be considered. applying iteratively the method described for sim- i) The approach using rotations to find the diffrac ple reflection with the help of the virtual image tion point (as described in the previous section) ( % is the image of on can also be employed to find higher-order diffracpoints. See Figure 6. #*/ and % % is the image % on surface surface of tion paths. Figure 7 shows an example for the case #10 . The reflection point 0 is obtained by inter- of double-diffracted ray-path through two paral/ is constructed which *) % % with the surface lel aedges. secting the straight line the plane 2 #10 ; and the reflection point / is obtained by inter- is uniquelyFirst, determined by the four end points of 0 / % ) secting the straight line with the surface the edges - and - 0 . Next, the receiving point
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
8
Rx’’
S2 R2 Tx
S1 S2
R2
Rx Tx
S1 R1
Rx
3D-view
top-view
Rx’
Figure 6: Multiple reflections on surfaces. E2
E2
Rx’’ Tx
Rx’’
W2
Tx
D2 W2
D2
E1 E1 D1
Rx
D1
Rx Rx’
Rx’ W1
3D-view
W1
top-view
Figure 7: Multiple diffractions on parallel edges.
/
is rotated around the edge - until it lies in plane the transmit2 / . This point is called 0 % . Then, & % ting point , the edge - , and are processed in the same way as outlined for single diffraction: a 0 is determined by and the edge - 0 and plane 2 % 0 is rotated around edge - % % 0 until it lies in plane point is called . Obviously, , the 2 . This 0 ( % % edge - , and in a planar geometry. The 0 0 lie diffraction point on the edge - is the intersec-
%%
tion of the line from to with the edge. The / is the diffraction point intersection of the line / to (% with the edge - / . Of course, it is from / lies on the edge - / , and necessary to verify that 0 on the edge - 0 . Finally, the double diffraction ,) / ) 0 )+ , provided the two interpath is mediate points exist. The same result would have and been obtained by rotating both points around the appropriate edge until they lie in plane
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
9
2 0
and calculating both diffraction points in that / 0 plane. Interchanging the roles of - and - in the discussion, we obtain the second possible diffraction path, which—for simplification—has not been included in the figure.
all the walls and edges are either perpendicular or parallel to the ground. In that case, a ray-path including reflection on the ground has the same projection onto the ground plane as the ray-path without ground reflection. Hence, all necessary compuThe previous method can be applied to arbitrary tations are restricted to the -coordinate. Figure 9 oriented parallel edges. However, the simplifi- illustrates several ray-paths with this type of intercation procedure performing most of the calcula- actions. tions on the ground plane as presented in the previ- If there is no ceiling present, at most one intermeous paragraph can be applied literally to the mul- diate point on the ground may exist. However, in tiple vertical diffraction case. If ray-paths with the indoor case, an arbitrary number of ray-paths more than two parallel edges are to be calculated, may exist and the maximum number to be searched all edges, and the source points, respectively, are for must be provided beforehand. Note that—in a transformed by successive rotations into a single 2-1/2D environment—a ray-path with reflection on plane such that the distances and the order of the the ground does only exist if the ray-path without edges and the points along the ray-path are the reflection on the ground exists as well. same. Note that there may exist up to $3 different ray-paths interacting with $ parallel edges.
ii) Although it might seem at first sight that the geometry of none-parallel edge is different, the calculation method remains exactly the same. If the / and - 0 are lying in the same plane 2 edges / and 0 (see Figure 8), the diffraction points are calculated by rotating and, respectively, around the edges until they lie in the plane 2 as well. The resulting intersection points of the edges to determine the with the line segment from diffraction points on the edges, if these points exist at all.
4.4 Mixed Interactions
Mixtures of reflections and diffractions on vertical edges are easy to compute by introducing, consecutively, image points stemming either from the re or the transmitting point . The ceiving point processing is straightforward and will not be explained in detail here. However, note that in the special case of a 2-1/2D environment, many sections of ray-paths have identical projections onto the ground plane. This fact will be explored later to improve the running time of the algorithm which A special case occurs on edges belonging to the searches the ray-paths (see Section 5.3). same polygonal surface. Clearly, these edges lie It is not difficult to combine diffractions on horiwithin the same plane and the diffraction points can zontal edges with reflections on vertical surfaces or be obtained as stated above. Because a different the ground, as long as only first order diffraction is propagation model should be applied to creeping considered. Section 9.3 comes back to this topic. waves, those diffraction points should be marked differently. This type of diffraction will be called adjacent diffraction in the sequel. To find all pairs 4.5 Directional Paths of such adjacent diffractions on a roof top of a In land mobile satellite (LMS) applications, rather building each pair of edges of the limiting polygon than locating the transmitting satellite by its posimust be considered. tion it can be represented by its direction from the area under study. If the distance to the satellite is large, the error due to this simplification is negli4.3 Reflections on the Ground gible. The calculation of the intermediate points is and on the Ceiling straightforward, by applying similar arguments as by a Reflections on the ground—as well as on the ceil- given above, but replacing the location of ing for an indoor environment—can be introduced directional vector. Although the propagation is still with simple mirroring techniques [6], provided that symmetric, we are almost obliged to start from the
A. Formella, F. Aguado, J.M. Hernando E1
E2 Tx’
COST255–CP61b02 Draft
D1
Rx’ Tx’
Tx’’ Rx’’ Tx
E1
E2
D2
10
D1
D2
Rx
Rx’’ Tx
3D-view
Rx’
Rx
Tx’’ top-view
Figure 8: Multiple diffractions on edges contained in one plane. C’ C
C’’
C’ C
ceiling
Tx
Rx
C’’
ceiling
Tx Rx
G’’
G
3D-view
G’
ground
G
G’’
G’ ground
side-view
Figure 9: Reflection on the ground and the ceiling. receiving point to search for the ray-paths, because is modeled only 2-1/2 dimensional, it is sufficient the other way round the search space would be un- to search for the ray-paths in the two dimensional necessarily large. projection of the environment on the ground plane. Indoor pico-cells and urban micro-cells fulfill this assumption. Once a 2D ray-path has been found 5 2D Ray-Path Search Algorithm in a pico- or micro-cell, the corresponding 3D raypath is easily calculated using the 2D-3D hybrid The purpose of a ray-path search algorithm is to method. The rest of this section deals with the 2D find all possible ray-paths, from all transmitting lo- case. Extensions how to handle more general 3D cations to all receiving locations, that contain a cer- cases will be presented in Section 7. tain number and type of interactions as outlined in Section 3.2. The transmitting locations can either The main task of the 2D ray-path search algorithm be given by three dimensional points or as direc- is to find the two dimensional ray-paths, given the tions in case of satellites. The receiving points may two dimensional description of a 2-1/2D environbe located on a mobile route described by a poly- ment, i.e., its projection onto the ground plane. The line or they may be given on a two dimensional algorithm uses successively a polar sweep method grid. For simplicity, we assume that the mobile to calculate the visible areas of points. To reduce route or the grid are parallel to the ground. It is the complexity of the polar sweep algorithm, backeasy to extend the algorithm to handle other cases faces are eliminated in a first step. A space subas well. division is employed to exploit the locality propIn the case that a ray-path may not pass over the ob- erty inherent to the task. Multiple interactions are jects in the environment and that the environment searched for using an iteration over the visible ob-
A. Formella, F. Aguado, J.M. Hernando jects and a recursion over the length of the path. Special data structures, such as a visibility graph, are constructed to accelerate the algorithm. The rest of this section describes the details, a summary of the search algorithm in pseudo-code in given in Section 8.
5.1 2D Visible Areas From the discussion so far, it is clear that an important notion for an efficient ray-path search algorithm is the visibility of points or edges in the environment, i.e., the question “What does a certain point or edge see?”, because this visible regions are the primary candidates to the radiowave interactions. More formally, a point ' is visible from , if the straight line segment another point, e.g., to ' is not obstructed by any other object from in the environment. The set of all visible points ' from is called the visible area (or radiation area) of . Figure 10 shows on the left side a . The line-of-sight 2D visible area for a point between two points exists if one of the points lies within the visible area of the other. The vertexes of the polygons lying at the border of the visible area determine all possible locations where diffraction on vertical edges can occur. The segments enclosing the visible area of a point determine all possible walls where reflection can take place. The vis is a star-convex two dimensional ible area of . If the border of the set is point set with center stored as a sorted list of its bounding segments, a test whether a point ' lies within the visible area can be performed efficiently by a binary search algorithm. In a similar way, the visible area of an image point (% is can be defined, see right side of Figure 10. the image point of respective to the mirroring # &% is the set of all segment . The visible area of points ' such that the straight line segment from % to ' intersects # in a point , and no other object in the environment intersects the line segment from to ' . Again, the check whether a point ' lies within the visible area of an image point can be performed by a binary search algorithm. One efficient method to determine the visible area of a point is described in the following subsection.
COST255–CP61b02 Draft
11
5.2 2D Polar Sweep Algorithm.
, for which The point of interest, for instance we want to calculate its visible area is located at the center of the coordinate system. All polygons describing the environment are given as lists of two dimensional points in counter clockwise order. The order is marked by arrows on the left hand side of Figure 11. It is obvious that only those segments that do not belong to the back-faces of the building blocks contribute to the border of the visible area. Hence, in a first step all segments belonging to back-faces are eliminated. In a second step, the end points of all segments, i.e., the corners of the polygons, are sorted in decreas ing order according to their angle with the -axis. Ties are broken by comparing their distances to the center. To avoid difficulties, segments crossing the negative -axis are divided into two parts which are handled individually. Actually, the two steps, namely back-face culling and sorting, can be performed efficiently in a single run: a segment is a back-face if the order of its end points respective to the angle differs from the order of the points in the definition of the polygon. Figure 11 shows on the right hand side the remaining segments with their points numbered according to the sorting order. The third step implements the polar sweep. Con with direcsider a ray starting at the center tion of the negative -axis and sweeping around the center in clockwise direction (see Figure 12). The ray is called sweep line. Certain positions (A and B) of the sweep line are added in the figure by dotted lines. The border of the visible area is composed of segments or parts of segments being close to the center. While rotating the sweep line, a segment changes from being visible to becoming invisible only when the sweep line crosses an end point of a segment. The same is true for reverse case. The sweep algorithm iterates over the sorted list of end points and maintains a data structure that contains the list of segments being currently intersected by the sweep line. Each time a left end point of a segment is found the corresponding segment is inserted into the data structure. If the segment is closer than any other segment currently held, this
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
S
Tx
12
Tx’
visible area of image point
visible area of Tx
Figure 10: Visible area of a 2D point. 8 5
7 6
2
43
oriented polygons
3 4
9 12
15
Tx
42 39 37 34 41 40 35 38 36
17 20
11
13
1 45 44
-x Tx
14
10
16 19 18
22
21
23
26
24
28 29 33 30 32
31
25 27
sorted endpoints after back-face culling
Figure 11: Back-face culling and point sorting. A
B
sweep direction
14 13
11 12
16 15
-x
1 0
Tx
Figure 12: Polar sweep algorithm. segment determines the visible border. Otherwise the segment being recently visible remains visible. Each time a right end point of a segment is found the corresponding segment is deleted from the data structure. The segment being closest to the center becomes visible at the current angle. For instance, just before the sweep line reaches position A in Figure 12 the segment with right end point 13 is visible. At the halting position A (point 12) the segment with end points 12 and 15 becomes visible
and the previously visible segment becomes invisible. The next halting point is 13. There, the segment in the back is eliminated from the data structure, because its right end point has been reached. The visibility does not change. The next halting point is 14. Being a left end point of a segment, this segment is inserted into the data structure, but the visibility does not change, because the segment lies in the background. The next halting point is 15 reaching position B in the figure. Now, the right end point of segment (12,15) has been reached and the segment is deleted from the data structure. Clearly, the segment in the background becomes visible, i.e., the data structure must deliver the segment closest to the center currently cut by the sweep line. The point where the visibility starts is marked in the figure. Hence, the data structure requires the efficient implementation of the operations insert, delete and find-minimum on a linearly orderable set. A possible choice is a priority queue where insertion and deletion take a time proportional to 4657 98 where 8
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
sweep region for diffraction
13
sweep region for reflection
Figure 13: Polar sweep regions within an angle. is the current size of the queue. Finding the closest segment can be done in constant time. The running time of the complete polar sweep algorithm is proportional to $:4;57 $* where $ is the number of points describing the polygons. The memory requirements vary linearly with the number of points. The polar sweep algorithm need not to be performed necessarily in a full circle around the point of interest [2]. For instance, if the visible area of a diffractive edge has to be calculated, the polar sweep in confined by the two adjacent walls of the edge. Similarly, the visible region of an image point is calculated by sweeping within an angle defined through the extension of the mirroring segment. See Figure 13 for examples.
-
. Hence, if the visible area of - has been calculated previously, while computing the ray / ) // )+ e.g., , and stored in an appropriate path data structure, the information can be re-used 0/ )+ for a 0 ) faster calculation of the ray-path .
Rx1
E
Rx2
Tx
Figure 14: Multiple usage of visible areas.
5.3 2D Visibility Graph The visible areas contain very valuable information which can be used to speed up the search for raypaths. The calculation of a visible area needs some computation time, consequently, it is convenient to store already computed visible areas for a possible usage in a later stage of the ray-path search. For instance, in Figure 14, there are line-of-sights from / and 0 to the diffracboth receiving points tive edge - , i.e., they lie within the visible region lies within the of - . The transmitting point visible region of the edge as well. The two dimensional projections onto the ground the ray / ) // )+ and 0 ) 0/ )+ of have paths the part from the edge - to / in common, given that 0 / and / are located on both diffraction points
It has been pointed out that visibility is a symmetrical relation: one points sees the other and vice versa. An appropriate data structure to represent such a property among a set of points is an undirected graph (e.g., [15]). The transmitting points, the receiving points, and the convex corners of the building blocks represent the nodes of the graph. Each node has an attribute containing the visible area of the corresponding node, i.e., a list of parts of segments directly visible. An edge of the graph connects two nodes whenever one of the points lies within the visible area of the other point. Figure 15 shows an example for a visibility graph of all diffractive edges of an environment. Edges in the graph that would correspond to adjacent walls are omitted. Note that isolated nodes
A. Formella, F. Aguado, J.M. Hernando may exist. Algorithms to construct the visibility graph in the two-dimensional plane are available, e.g., in [29, 38]. Extensions to cope with the dynamic visibility while moving along a line are described in [21, 19, 20].
COST255–CP61b02 Draft
14
visible area of the point can be confined inside a rectangular area (see Figure 16), it would be sufficient to perform the polar sweep algorithm only with those points and segments lying within the rectangle.
The part of the graph for the convex corners can either be generated prior to the ray-path search in a Tx preprocessing step (and may be stored in a file) or the necessary parts can be generated dynamically during a simulation run. The decision depends on the size of the environment to be investigated and on the type and amount of interactions to be analyzed. The usage of a dynamic dictionary data structure to store the visibility graph is described in [1, 3]. In [32] a tree-like data structure is suggested, but no solution to the visibility problem is Figure 16: Confining the search space for the visible area. presented. Once the visibility graph of all convex corners of the environment has been calculated, the search for ray-paths with multiple diffractions on vertical edges reduces to calculating the visible areas of the transmitting and receiving points, inserting the appropriate nodes into the graph data structure, and then searching the visibility graph for possible paths up to the desired length. A good strategy for the graph search is to implement a breadth first search approach starting simultaneously from both the receiving and the transmitting ends.
There are many possibilities for planar subdivisions which can be used to exploit the locality property of the algorithm, e.g., Figure 17 shows a sub-division with a regular grid. Other choices are the quad-tree sub-division or the BSP-tree subdivision (binary space partition tree) [31]. The aim of such sub-divisions is to introduce rectangles or other types of shapes which contain almost a constant number of segments per region. If the visible area of a point is not contained entirely in the region where the point is located in, neighboring reBesides the simple visibility graph which stores the gions are visited until the visible area is computed first order visibility of diffractive edges, visibility completely. graphs of higher order can be defined. For instance, a second order graph contains edges between two nodes with their corresponding points seeing each Tx other with exactly one reflection. The edges of the graph are attached with a list of all possible ground projections of ray-paths that connect the two points of the nodes and contain one reflection.
5.4 Speeding-up the 2D Polar Sweep Algorithm As stated above, the running time of the polar sweep algorithm is proportional to $:4657 $* , $ being the number of points in the 2D description of the environment. For practical cases, the introduction of a sub-division of the plane can significantly improve the performance of the algorithm. If the
Figure 17: Combination of polar sweep and planar subdivision. Clearly, there is a trade-off between the computation time performing a polar sweep in a region of the sub-division and the number of regions that must be visited. In the case of a quad-tree sub-
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
visible corners
15
visibility graph
Figure 15: Example of a visibility graph. division, the running time decreases to a magnitude proportional to < =9> 4657 9> ?@4657 $*= , where > is the (constant) number of segments in a rectangle, and < is the number of rectangles that must be visited. The term 4657 $* is due to operations that must be performed in the data structure of a quad-tree. The memory requirements increase more than linearly with the number of segments, because a segment may intersect more than one rectangle. However, in most practical cases, segments are small and, usually, do not stretch over many rectangles of the quad-tree. Hence, the memory requirements generally is a quasi-linear function of the number of segments.
6 Ray-Tracing Algorithm The 2D version of a ray-path search algorithm which is based on calculating visible areas and locating points in star-convex point sets does not need traditional ray-tracing. However, going to 3D and introducing other types of objects in the environment, will need an efficient ray-tracing algorithm. Traditional ray-tracing algorithms perform the following task: Given a description of a three dimensional environment that contains certain types of basic objects (such as polygons, spheres, cylinders etc.), the ray-tracing algorithm finds the first intersection point of a ray starting at some point in space and pointing into some direction with any of the objects. If no such point exists, an appropriate value is returned. Usually, in the field of computer graphics, ray-tracing algorithms are not restricted to any special kind of environment, i.e., the basic objects can be arranged arbitrarily in space. The implementation of efficient ray-tracing kernels is not the purpose of this chapter, hence, it will not be discussed in more detail here. In the following, it will be assumed that a sufficiently fast subroutine is available that returns, for a given ray or ray
segment, the closest intersection point with any obstructive object in the environment [16, 22]. Obviously, such an algorithm can be used to verify whether a given point is located within the visible area of another point by simply tracing the ray defined through the straight line segment between the two points. This might be slower than a simple binary search as suggested above. However, any raytracing kernel can be extended to find transparent objects and to report the distance travelled by the ray through the transmissive media. Such objects might have not been considered during the computation of the visible areas, because they do not contribute as obstructive or reflective objects. However, the transparent objects, possibly, add certain amount of attenuation to the electromagnetic field along the ray-paths.
7
3D Ray-Path Search Algorithm
The main disadvantage of the 2D ray-path search algorithm presented in Section 5 is that it does not find any ray-paths which pass over the objects located in the environment. For indoor and microcell environments, the 2D algorithm with the 2D3D hybrid method finds all relevant ray-paths, because the ray-paths passing over objects do not exist. For macro-cell or satellite environments, however, the 2D polar sweep algorithm is severely limited in its usage for a sufficiently accurate prediction of the radio channel. To solve this shortcomings, the 2D algorithm is extended to a 3D polar sweep algorithm. Nevertheless, the environments where the algorithm is applied to stay being 2-1/2D models. The notion of visible areas and the data structure of a visibility graph are overtaken in a very similar manner. The details are presented in the following description, which is organized in a similar manner as the description of the 2D case.
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
16
7.1 Visible Areas
7.2 3D Polar Sweep Algorithm
The definition of the visible area of a point A in 3D is the same as in the 2D case: a point ' is visible from another point A , if the straight line segment from A to ' is not obstructed by any other object in the environment. However, in 3D, the visible area of A is confined by the parts of the walls which are seen directly by the point. In the following, such visible parts of a wall are called facets.
The 3D polar sweep algorithm computes the visible area of a 3D point in a 2-2/1D environment. The basic principle is much the same as that used in the 2D case. However, instead of sweeping a ray in clockwise polar direction in the ground plane, now, a half-plane perpendicular to the ground is swept around the point of interest. Figure 18 illustrates the situation.
The visible area of a point A is a star-convex three There are four main differences between the 2D dimensional point set with center A . The set either and the 3D case: The usefulness of back-face culling depends extends to infinity—e.g., towards the sky—or it is on the height of the point of interest respective enclosed by the facets seen from A and the ground to the height of the surrounding objects. plane. The checking if a point ' lies within the In is not sufficient to consider only the end visible area of A is more complex to implement, because no simple binary search can be used. The points (i.e., the vertical edges) of the walls as border of the star-convex set can be projected into a halting points of the sweep plane. The data structure which has to be maintained plane and the checking reduces to a point location test combined with a distance test. However, the dynamically is not as simple as in the 2D case. The existence of a ray-path without reflection checking can be performed as well with the help of a ray-tracing routine checking the existence of an on the ground does not guarantee the existence ) intersection point of the ray segment A 'B with of a ray-path including a reflection point on the environment. the ground. If a ray-tracing kernel is used, the visible area in The four points are explained thoroughly in the fol3D is not used to speed-up the calculation of line- lowing. of-sight ray-paths. Rather, the visible area—more precisely, the border of the visible area—is used to determine all edges being candidates to vertical or Back-face Culling horizontal diffraction and all walls (facets) where During the polar sweep, only the vertical walls dereflection occurs. scribed by their projections onto the ground and The definition of the visible area of an image point their heights are considered. The roof tops do not is similar to the definition given for the 2D case. enclose the visible area, as long as only mirroring Note that a given wall may be divided in many walls and diffractive edges are searched for. A facet facets. However, due to the restriction to 2-1/2D is found to be visible with the same argument as environments, never two of them belonging to the given above: if the direction of the corresponding same wall are stacked on top of each other. wall differs from the direction in the definition of the base polygon of the building block, the entire An important property of visible areas of points in 2-1/2D environments having the same - and . - wall and, hence, the facet is not invisible from the coordinates is the fact that the visible area of the front. point with larger -coordinate is a superset of the visible area of the point with smaller -coordinate. This statement reflects the common observation that climbing up a tower increases the visibility compared to the position close to the ground. The property is used later on during the generation of the 3D visibility graph.
Because we do not consider the rooftops, an invisible wall cannot be eliminated without changing the visible area of a point if the point is located at a higher -coordinate than a front wall of a building block. The situation is shown in Figure 19. We run into the trade-off: is it better to keep all the walls while performing the polar sweep, and thus
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
17
sweep plane visible facet
Rx Rx
3D-view
side-view
Figure 18: Sweep plane for the 3D polar sweep algorithm. increase the overall run time or is it better to eliminate the back-face walls and thus increase the visible areas, i.e., the size and possibly the number of facets identified? From a practical point of view, possibly, the elimination of the back-faces will yield better running times, because in macro-cells, usually, the receiving point is located below the height of most of the building blocks and, hence, the situation as depicted on the right hand side of Figure 19 does not occur frequently. Generally, increasing the visible area to some extent does not lead to incorrect results, because—as stated above—a ray-tracing step verifying whether a point lies within the correct visible area discards erroneous ray-paths. The extension, however, should not be too large such that the expansion of mirroring facets may increase the search space tremendously. In Section 9.1 slightly increased visible areas are used to deal with other types of roof tops for the building blocks.
eration, that handles the cross points, must be implemented. In more detail, the procedure is the following. As in the 2D case, all end points of the walls are sorted in clockwise order, according to their angle relative to the point of interest. The special case when a wall cuts the negative -axis, as well as the method of breaking ties are literally overtaken. The polar sweep iterates over the sorted list of points and returns a list of visible facets. However, the list of points is not fixed at the beginning of the iteration. Cross points are inserted dynamically during the sweep.
Every time a left end point, i.e., a vertical edge, is found, the corresponding wall is inserted into the appropriate data structures. The horizontal edge of the wall is compared to possible candidates which may have a cross point with the edge. Note that such a point is located in clockwise direction. If the data structures maintain a list sorted according height (in perspective view) of all walls that are currently intersected by the sweep plane, the next Cross Points cross point is easily found by searching just among the nearest neighbors in the list. The cross point is In the 2D polar sweep algorithm, it was sufficient inserted into the sorted sequence of points. to consider the halting points for the sweep only at the end points of the segments. This is no longer Every time a cross point is found, the correspondtrue for the 3D case. See Figure 20. A wall may be- ing walls change their relation respective to the come invisible at the point where horizontal edges point of interest: if one of the walls was visible cross in the perspective view respective to the point prior to the cross point and if it was located in the of interest. Hence, besides the insert and delete op- back, it becomes invisible; if one of the walls was erations described earlier, an additional update op- invisible prior to the cross point and if it was lo-
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
18
backwall Rx Rx
Figure 19: 3D back-face culling. sweep plane
cross point Rx Rx 3D-view
top-view
Figure 20: Cross points in the perspective view. cated in the back, it becomes visible. Note that the visibility of the walls in front does not change. Independently of the visibility of the walls, the data structures must be modified in order to reflect the change in topology and, possibly, introduce two more cross points.
(2) The second list contains all the cut walls, and is sorted according to the height in perspective view with respect to the point of interest. (3) The third list contains only those walls being currently visible, and is sorted according to the height in perspective view as well.
Every time a right end point of a wall is found, the corresponding wall is deleted from the data structures. Clearly, the walls becoming visible at that instant of the sweep must be reported. Additionally, we must check, if the neighbors in height intersect in a cross point which again must be inserted into the sorted list of all points.
Whenever an insert, delete, or update operation takes place, the lists are updated by binary search operations or by linear search operations starting at the location where the corresponding wall is placed in the lists or at the beginning of the lists. More precisely:
Data Structures One way—although theoretically not the most efficient one—to implement the requirements outlined above is the use of the following data structures. The walls currently intersected by the sweep plane are sorted in three ordered lists: (1) The first list contains all the cut walls, and is sorted according to the distance on ground along the sweep plane.
(1) The first list is only changed through insert and delete operations, because the order on the ground does not change at a cross point. Such operation takes a time proportional to 4;57 $* where $ is the length of the list. (2) The second list is changed through insert and delete operations as well. The running time is proportional to 4657 $* too. Additionally, the update operation at a cross point can be performed in constant time per point. The neighbors to check for further cross points are found in this list in constant time.
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
19
(3) The third list is more involved in each opera- Running Time and Memory Requirements tion:
A new wall to be inserted may cover currently visible walls. Because the list is sorted according height, we can step linearly over the list and report all facets that do not remain visible any more, until the place where to insert the new wall is found provided that the new wall is visible at all. Note that the visible facets of walls being located to the back of the new wall have to be reported anyway, thus, a linear operation is not very harmful.
A wall to be deleted may expose several other walls to visibility. One method to find them is stepping linearly over the first list (which is sorted according to the distance on the ground) starting at the position of the wall to be deleted. The search ends when the next wall having been visible previously is found. An update operation can be performed in constant time.
Two remarks should be added: The notion of height in the discussion above always means height in the perspective view relative to the point of interest. In order to have a simple ending criterion while searching the lists, it is convenient to add a virtual wall that is always visible at the end of each list, e.g, this virtual wall may be located at infinity and have infinite height.
The worst case running time of0 the 3D polar sweep algorithm is proportional to $ 4657 $* , where $ is the number of vertical edges in the environment, because we can construct an environment 0 such that for a certain point of interest about $ cross points exist. As a consequence—theoretically speaking— the operations on the lists containing the walls currently cut by the sweep plane, which are performed in linear time, do not increase the worst case behavior of the algorithm (remember that the operations on the lists required for cross points are done in constant time). However, in most of the practical cases the running time will be proportional to $CDE 4657 $* where is the number of facets being computed during the sweep. This is because usually the number of cross points per edge is limited by a small number. In real environments, the three lists of the walls remain small, so more sophisticated data structures avoiding the linear parts of the operations may not pay off. But this remains to be verified by experiments.
7.3 Visibility Graph
The first order visibility graph for the 3D case is similar to the visibility graph presented in the description of the 2D case (see Section 5.3). The nodes in the graph represent the vertical edges of the environment. A node is attributed by the visible area of the topmost point of the edge which is a superset of all the visible areas of the points located Reflection on the Ground below on the same edge. Two nodes are connected by an edge in the graph whenever the correspondIn the 2D version of the algorithm an existing raying points of the nodes see each other. path always guaranteed the existence of an appropriate ray-path including an additional ground re- The difference with respect to the 2D case lies in flection as well. As it is shown in Figure 21 this is the fact that the search for diffractive ray-paths in no longer the case in the 3D application. There, the the graph must be followed by a checking if the line-of-sight exists, however, the ground reflection ray-path defined by the vertical edges indeed is not is blocked by a building. Nevertheless, both ray- obstructed by any other object in the environment. paths have the same projection on the ground plane, The test is necessary because a diffraction point hence, a simple testing using the ray-tracing kernel being below the topmost point of an edge has a detects the correct ray-paths including a ground re- smaller visible area. In a similar way, higher order flection. visibility graphs can be constructed.
A. Formella, F. Aguado, J.M. Hernando Tx
COST255–CP61b02 Draft Rx
Tx
3D-view
20
Rx
side-view
Figure 21: Reflection on the ground.
7.4 Speeding-up the 3D Polar Sweep Algorithm A planar sub-division has been introduced in the 2D polar sweep algorithm to exploit the locality usually present in urban areas (see Section 5.4). The same mechanism enhanced with height information is applicable in the 3D case (see Figure 22). Whenever the visible area of a point is enclosed within a region of the sub-division, the computation can be stopped.
ground are treated as virtual walls. Hence, they are farther away than any other wall located within the rectangle. Their heights are considered infinity. The polar sweep is modified in such a way that in addition to reporting the visible facets of the real walls, it returns the visible facets of the virtual walls as well. Thus, a sort of skyline in the back on the virtual walls is computed. The need of searching in neighboring rectangles can be decided easily taking into account the actual heights of the building blocks in a rectangle. If a rectangle, as a box with the height of its highest building block inside, is below the plane defined through the point in the Figure 23) and the horizonof interest ( tal line through the lowest point in the skyline, the region can be skipped. Clearly, the operation can be applied to entire subtrees of a hierarchical subdivision such as a quad-tree.
8
Summary of the Ray-Path Search Algorithm
Figure 22: Regular sub-division with additional In Figure 24, the ray-path search algorithm is sketched in its simplest form using self-explaining height information. pseudo-code notation. The calculation of ground How can this information be obtained? In the de- or ceiling reflections would take place in the funcscription of the data structures of the polar sweep tion CheckAndOutputRayPath(). The polar sweep (see Section 7.2) a virtual wall at infinity was sug- algorithm would be contained in the function Calgested in order to make canonical certain tests in culateVisisbleArea(). the data structures. Obviously, it is sufficient to It is very important to implement the polar sweep place the virtual wall just farther away than any algorithm used to calculate the visible areas in such other wall and to select a height such that the wall a way that the data structures maintained during remains visible in all circumstances. A smart way the iteration always reflect a consistent topological is to combine both ideas, the sub-division and the view of the environment. Errors due to rounding of virtual walls. floating point numbers may lead to sign changes The limiting borders of the planar sub-division on in certain crucial operations (e.g., point location
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
21
virtual walls
Tx initial region
visited region
skipped region
visited region
Figure 23: Skipping regions in a sub-division. respective to a plane). Due to the discrete representation of numbers in a computer, care must be taken to implement robust subroutines, for instance, while trying to find the intersection point of two straight lines. The tie breaking decisions, during the sorting processes, must be selected in such a way that even the case that many points have the same polar angle is handled correctly. It is a challenge to implement both fast and robust algorithms. The reader is advised to seriously think about this problem prior to start implementing the algorithms presented in this chapter [7, 28]. There is a great amount of literature available which deals with the robustness of geometric algorithms.
9 Extension of the Environment and further Interactions The algorithms presented so far—in the 2D as well as in the 3D version—can handle only pure 2-1/2D environments. However, there are potential extensions available which make the polar sweep algorithm suitable for more complex environments. Note that adding more objects in the environment at most decreases the visibility, i.e., the visible areas computed by a polar sweep are always valid as a search space for ray-paths. If only additional obstructive objects that do not comply the restrictions of the 2-1/2D definition are added, they can just be handled by the ray-tracing kernel, so that invalid paths are discarded. An example of such an object is a non-planar ground modeled by a height-field or a set of triangles. However, for efficiency reasons or in order to find more interacting features, it
might be interesting to use some types of objects to further confine the visible areas as well.
9.1 Complex Building Blocks Roof Types Many houses commonly found in urban or suburban environments are covered with tilted roofs. With the help of a simple trick, approximations of the visible areas enclosed by these houses can be introduced. Figure 25 depicts the scenario. An additional virtual wall defining the ridge of the house is passed to the polar sweep algorithm. Consequently, the visible areas are slightly too large, but the verification of the ray-paths through ray-tracing routine discards impossible ray-paths.
Figure 25: Introducing tilted roofs. Because the gables are not modeled, reflections at these surfaces cannot be accounted for. However, rising the side walls until they reach the ridge and treating them both as transmissive and obstructive, allows these details to be handled whenever required. In a very similar way, roofs with hipped ends may be included.
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
22
F
Input:
F
set of simple, non-intersecting polygons with height information set of transmitting and receiving locations maximum number of diffractions and maximum number of reflections to search for
F F
Output: all ray-paths according to specified interactions Algorithm: RayPathSearch() begin BuildSpaceSubdivision() BuildVisibilityGraph() foreach receiver visible area=CalculateVisibleArea(receiver) foreach transmitter CreateRayPath(receiver,transmitter) FindRayPaths(ray path,diffractions,reflections,visible area) endfor endfor end FindRayPaths(ray path,diffractions,reflections,visible area) begin CheckAndOutputRayPath(ray path,visible area) if reflections not equal zero foreach facet in visible area image=CalculateImagePoint(ray path,facet) image visible area=CalculateVisibleArea(image) InsertInRayPath(ray path,image) FindRayPaths(ray path,diffractions,reflections-1,image visible area) endfor if diffractions not equal zero foreach diffractive edge of facet in visible area edge visible area=GetVisibleAreaFromVisibilityGraph() InsertInRayPath(ray path,edge) FindRayPaths(ray path,diffractions-1,reflections,edge visible area) endfor end
Figure 24: Pseudo-code for the ray-path search algorithm using a first order visibility graph. Cylinders and Poles Other commonly structures sometimes found in urban areas are cylindrical objects and poles. Although more complex to handle in order to compute interactions for the propagation of electromagnetic waves, it is straightforward to handle them in
the computation of the visible areas as long as their axes are perpendicular to the ground plane. Figure 26 illustrates the method. The cylinder, or the pole, is replaced during the sweep by a wall that is perpendicular both to the ground and to the line-of-sight between the center of the cylinder and the point of interest, e.g., .
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
23
9.3 Additional Interactions Diffraction on Horizontal Edges
Rx
virtual wall
Rx 3D-view
top view
Figure 26: Introducing cylinders and poles. The width of the wall is determined by the chord between the two points obtained by the tangents touching the cylinder and passing through . The height of the wall is taken as the height of the cylinder.
9.2 Scattering and Attenuating Objects Scatterers Scattering objects receive certain amount of energy from the transmitting source and re-transmit a fraction of this energy in the direction of the receiving point. Hence, from the transmitter’s point of view, they play the role of a receiver and from the receiver’s point of view, they play the role of a transmitter. Consequently, they can be handled as additional receiving and transmitting points having some special properties. However, in most practical cases, only first order interactions will be of interest. So the ray-tracing kernel can handle the search for line-of-sight ray-paths between scatterer and transmitting and receiving points. One should be aware that such scattering objects may add a huge number of additional ray-paths. The deterministic simulation approach might not be the method of choice in the case that many scattering objects have to be modeled. Attenuators As already mentioned in Section 4.4, transmissions without refraction can be handled easily whenever the ray-tracing kernel is able to report the location or, at least, the length of the path travelled by the ray through the transmissive media. An object being both reflective and transmissive can be handled in a straightforward way as well.
In the description of the ray-path search algorithm, we have not given details about the calculation of first order horizontal diffraction. The visible areas obtained as a result of the polar sweep algorithm provide a list of all visible facets. If such a facet has as topmost edge a horizontal edge of a building block—or at least a part of such an edge—, this edge is used to calculate a ray-path including horizontal diffraction applying the method described in Section 4.1. The ray-path search should take into account that a horizontal edge of a building block may contribute to several facets but only to one ray-path interacting with this edge (see Figure 27). Ray-paths with additional reflections on the ground are easily computed using the image points of the receiver or the transmitter, respectively. In practical cases, only the ray-paths where the reflection on the ground is the last interaction before reaching the receiving location are of interest. Because a horizontal edge always belongs to the polygon of the roof of a building block, ray-paths including adjacent horizontal diffraction can be found by iterating over the edges of the polygon. Similarly adjacent diffractions combining a vertical and a horizontal diffraction can be searched for. Reflections on Planar Rooftops Reflection on a planar rooftop can only occur when both the transmitter and the receiver are located at a position higher than the height of the building block, i.e., in macro cellular or satellite scenarios. As stated in Section 7.2 usually the back-faces of the building blocks are supressed before running the sweep algorithm. But this can be changed slightly to easily find the candidates of the rooftops in the 2-1/2D environment which might introduce a ray-path with reflection on the rooftop. A necessary condition for the visibility of the rooftop is that at least one back-face of the building block is visible provided that the rooftop itself is not considered obstructive (see Figure 28). Hence, if the and back-faces with heights less than both are maintained in the sweep algorithm, their visibility indicates the rooftop where the reflection
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
24
visible facets of Rx
H
H Tx Rx Rx
Tx
3D-view
side-view
Figure 27: Diffraction on horizontal edge. might occur. The search ends with an additional to precalculate the visibility graph considering the test whether the reflection point is located actually topmost points or to update the visibility graph dyon the rooftop and a test of the complete path for namically. not being obstructed. Special Optimization in the case of Satellites
10 Specific Optimization There are sime specific optimizations available that not have been considered in the discussion above. This section lists some of these optimizations and points out under which circumstances they should be implemented. Important Ray-paths
In the case of studies of satellite constellations, the following observation gives rise to certain types of optimizations: Given that the distance to a satellite is usually very large compared to the dimensions of the environment, the satellite can be modeled through its direction, e.g., with azimuth and elevation angles. Satellites being located in the same elevation angle generate equal diffraction points on vertical edges. Hence, in the searching for ray-paths from the receiving location towards the satellites, those satellites having the same elevation angle share the subray-paths until the last point of vertical diffraction. On the other hand, if a ray-path towards a certain satellite is discarded for being obstructed, all satellite positions with the same azimuthal angle but lower elevation angle are obstructed as well.
The most obvious optimization is to provide a feedback from the electromagnetic field computations that take the ray-paths as input data. If it is found, for instance, that the received power of a certain ray-paths falls below a certain threshold, one might stop the process of searching ray-paths with more interactions in that direction. In the same sense, the search in certain angles of diffraction may be excluded depending on the values of parameters such as frequency or the electromagnetic characteristics Antenna Patterns of the surfaces. Because the polar sweep algorithm already takes into account angular aspects of visibility, it is very Specializing the Visibility Graph easy to include antenna radiation patterns as well. It is sufficient to calculate the visible area for a ver- The visible areas of the transmitting (or the receivtical edge at the height equal to the maximum of ing) point can be just limited to the appropriate and . However, for an main radiation lobe. Alos actual data from meathe heights of both interactive application of the program, it is better sured antennas can provide information to what ex-
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
25
"visible" backface from Rx Tx
Rx
Tx
Rx
G
3D-view
G
side-view
Figure 28: Reflection on planar rooftop. tent the polar sweep should be performed. Moreover, certain statistics on the arrival time of different signals correlated to the arriving angle can be gathered easily.
and street micro-cells to conventional macro-cells and satellite cells (Land Mobile Satellite (LMS) scenarios). In this respect, the tool has being used for the characterization of the LMS propagation environment for the Global Satellite Navigation System GNSS-2 under European Space First Order Diffuse Reflection Agency contract No. 12223/96/NL/JSC [5]. In the Because the 3D polar sweep algorithm calculates project availability studies have been carried out for all visible facets exactly, it is be possible to incor- such systems using multiple satellite constellations porate first order diffuse reflections models into the made up of non-GEO-orbits. radio channel predictions. RadioTracer contains an efficient ray-tracing kernel which was implemented by one of the authors [17]. It adapts automatically to the environment and does Continuous Receiver Locations not need further user interaction to find a good Perhaps one of the most promising optimizations space subdivision. The ray-path search algorithm is the introduction of continuous sets for the spec- follows the description in this chapter, although ification of receiver locations. Up to now, it was some more optimization have been implemented to assumed that all receiver positions have been ob- deal with the practical cases. The electromagnetitained through a sampling process that might de- cal part of RadioTracer implements a computationpend on the frequency of the electromagnetic wave. ally improved version of the GTD/UTD approach The algorithm has the possibility to circumvent this taken from [27]. discrete model of the receiving locations. The def- The geometric part of RadioTracer is designed to inition of the visibility graph has to be modified in compute all ray-paths between a transmitting and a such a way that its nodes do not represent single receiving point in a 2-1/2D environment. The raypoints but entire point set such as segments or ar- paths may include as interactions eas. The development of the appropriate data struc an arbitrary number of reflections, tures and details of the algorithm are the topic of an arbitrary number of diffractions on vertical on-going work of one of the authors. edges, an arbitrary number of combinations of reflections and diffractions on vertical edges, 11 RadioTracer first order diffractions on horizontal edges, first order adjacent vertical and horizontal RadioTracer is a software package that implements diffractions, a site-specific propagation tool valid for a wide range of scenarios ranging from indoor pico-cells first order scatterers,
A. Formella, F. Aguado, J.M. Hernando
all of the above, including reflections on the ground, and the distance travelled through transmissive media. The objects of the environment include flat top houses with arbitrarily shaped basepolygon and, possibly, some walls in common, simple tilted roof-top houses with rectangular base-polygon, trees with one scatter point in the top trees with one scatter point in the top and another one in the trunk. Receiver locations can be single points, trajectories or grids. Transmitter locations can be single points or directional values (satellites). The number of objects in the environment is not restricted.
12 Conclusions This chapter described an efficient ray-path search algorithm which can be used for the analysis of the propagation conditions of electromagnetic waves applying geometrical optics and the geometric theory of diffraction in its uniform theory of diffraction version. The scenarios were restricted to 21/2D environments. However, certain extensions had been presented to overcome some of the limitations. The method is applicable for indoor picocell, micro-cell, macro-cell and satellite scenarios. The core idea of the algorithm is to first compute visible areas before using a ray-tracing kernel for a final check. The algorithm to compute the visible areas was based on the sweep plane paradigm from computational geometry. Sophisticated data structures—such as graphs, dictionaries, and space sub-divisions—had been introduced, to further reduce the computation time by dynamically storing intermediate results for a later fast lookup.
References [1] F. Aguado Agelet, F. P´erez Font´an, and A. Formella. Fast Ray Tracing for Microcellular and Indoor Environments. In Proc. of the 7G;H Biennial IEEE Conf. on Electromagnetic
COST255–CP61b02 Draft
26
Field Computation (IEEE CEFC’96), p. PA– 2, March 1996. [2] F. Aguado Agelet, F. P´erez Font´an, and A. Formella. UTD Electromagnetic Simulation for Microcell and Indoor Environments based on 2 1/2 D Ray Tracing. In Proc. of PIERS 1996, Progress In Electromagnetics Research Symposium, p. 599, University of Innsbruck, Austria, July 1996. [3] F. Aguado Agelet, F. P´erez Font´an, and A. Formella. Fast Ray Tracing for Microcellular and Indoor Environments. IEEE Transactions on Magnetics, 33(2):1484–1487, March 1997. [4] F. Aguado Agelet, F. P´erez Font´an, and A. Formella. Indoor and Outdoor Channel Simulator based on Ray Tracing. Proc. of the IEEE Vehicular Technology Conf.’97, Phoenix, pp. 2065–2069, May, 1997. [5] F. Aguado Agelet, A. Formella, and F. P´erez Font´an. Radio-tracer: A Tool for Deterministic Simulation of Wave Propagation. In B. Arbesser-Rastburg, editor, Proc. of the COST255 1th International Workshop on Radiowave Propagation Modelling for SatCom Services at Ku-band and above, Europeen Space Agency Publications Division, WPP– 146, pp.135–138, February 1999. [6] G.E. Athanasiadou, A.R. Nix, and J.P. McGeehan. A Ray Tracing Algorithm for Microcellular and Indoor Propagation Modelling. In Antennas and Propagation, no. 407, pp. 231–235, IEE Conference Publication, April 1995. [7] C. Burnikel, K. Mehlhorn, and S. Schirra. How to Compute the Voronoi Diagram of Line Segments: Theoretical and Experimental Result. In Proc. of the ESA’94, vol. 855 of LNCS, pp. 227–239, Springer-Verlag Berlin, 1994. [8] W.D. Burnside and K.W. Burgener. High Frequency Scattering by a Thin Lossless Dielectric Slab. IEEE Trans. on Antennas and Propagation, AP-31(1):104–110, January 1983.
A. Formella, F. Aguado, J.M. Hernando
COST255–CP61b02 Draft
[9] M.F. C´atedra, J. P´erez-Arriaga, A. Gonz´alez, F. Saez de Adana, and O. Guti´errez. Fast Computer Tool for the Analysis of Propagation in Urban Cells. In Proc. of Wireless Communications Conf., pp. 240–245, August [19] 1997. [10] M.F. C´atedra and J. P´erez-Arriaga. Cell Planning for Wireless Communications. Artech House, London, ISBN 0-89006-601-9, 1999.
27
Design of Indoor Wireless System: Practical Computation and Optimization. IEEE Computational Science and Engineering, pp. 58– 68, 1995. S. Ghali. Computation and maintenance of visibility and shadows in the plane. In V´aclav Skala, editor, Proc. of 6th International Conf. in Central Europe on Computer Graphics and Visualization. University of West Bohemia, ISBN 80-7082-360-7, pp. 117–124, February 1998.
[11] M.F. C´atedra, J. P´erez-Arriaga, F. Saez de Adana, and O. Guti´errez. Efficient RayTracing Techniques for 3D Analysis of Propagation in Mobile Communications. Appli- [20] S. Ghali and A.J. Stewart. Incremental Update of the Visibility Map as Seen by a Movcation to Picocell and Microcell Scenarios. ing Viewpoint in Two Dimensions. In Proc. IEEE Antennas and Propagation Magazine, of Eurographics Workshop on Computer Ani40(2):15–28, April 1998. mation and Simulation, pp. 1–11, 1996. [12] D.J. Cichon, T.C. Becker, and M. Dottling. Ray Optical Prediction of Outdoor and Indoor [21] S. Ghali and A.J. Stewart. Maintenance of the Set if Segments Visible from a Moving ViewCoverage in Macro and Micro Cells. In Proc. point in Two Dimensions. In Proc. 12th Anof IEEE Vehicular Technology Conf., Atlanta, nual ACM Symposium on Computational GeUSA, April 1996. ometry, pp. V3–V4, ACM Press, 1996. [13] D.J. Cichon and W. Wiesbeck. Indoor and Outdoor Propagation Modeling in Pico Cells. [22] A.S. Glassner, editor. An Introduction to Ray In PIMRC’94, pp. 491–495, 1994. Tracing. Academic Press, 1989.
[14] D.J. Cichon and W. Wiesbeck. Comprehensive Ray Optical Propagation Models for [23] J.B. Keller. Geometrical Theory of Diffraction. Journal Opt. Soc. Am., 52(2):116–130, Indoor and Outdoor Environments: The1962. ory and Applications. In Proc. of COMMSPHERE’95, pp. 201–208, Israel, January [24] R.G. Kouyoumjian and P.H. Pathak. A Uni1995. form Theory of Diffraction for an Edge in a Perfectly Conducting Surface. Proc. IEEE, [15] T.H. Corman, C.E. Leiserson, and R.L. 62(4):1448–1462, 1974. Rivest. Introduction to Algorithms. MITPress/McGraw-Hill, 1990. [25] M.C. Lawton and J.P. McGeehan. The Ap[16] J.D. Foley, A. van Dam, S.K. Feiner, and plication of a Deterministic Ray Launching J.F. Hughes. Computer Graphics: Principles Algorithm for the Prediction of Radio Chanand Practices (2nd Edition). Addison Wesley, nel Characteristics in Small-Cell Environ1990. ments. IEEE Trans. on Vehicular Technology, 43(4):955–969, 1994. [17] A. Formella and C. Gill. Ray Tracing: A Quantitative Analysis and a New Practical Al[26] R.J. Luebbers. Finite Conductivity Uniform gorithm. The Visual Computer, 11(9):465– GTD Versus Knife Edge Diffraction in Pre476, December 1995. diction of Propagation Path Loss. IEEE [18] S. Fortune, D. Gay, B. Kernighan, O. LanTrans. on Antennas and Propagation, APdron, R. Valenzuela, and M. Wright. WISE 32(1):70–76, 1984.
A. Formella, F. Aguado, J.M. Hernando [27] D.A. McNamara, C.W.I. Pistorius, and J.A.G. Malherbe. Introduction to the Uniform Geometrical Theory of Diffraction. Artech House, Boston, 1990. [28] K. Mehlhorn and St. N¨aher. LEDA, A Platform for Combinatorial and Geometric Computing. Communications of the ACM, 38(1):96–106, 1995.
COST255–CP61b02 Draft
28
ing Personal Communication System Design. IEEE Trans. on Vehicular Technology, 43(4):879–891, November 1994. [37] S.Y. Tan and H.S. Tan. A Microcellular Communications Propagation Model Based on the Uniform Theory of Diffraction and Multiple Image Theory. IEEE Trans. on Antennas and Propagation, 44(10):1317–1326, October 1996.
[29] M. Pocchiola and G. Vegter. Computing the Visibility Graph via Pseudo-triangulation. In [38] E. Welzl. Constructing the0 Visibility Graph for $ Line Segments in I $ Time. InformaProc. of the ACM Symposium on Computation Processing Letters, 20:167–171, 1985. tional Geometry, pp. 248–257, ACM Press, June 1995. [30] T.S. Rappaport, S.Y. Seidel, and K.R. Schaubach. Site-Specific Propagation for PCS System Design Wireless Personal Communications. pp. 281–315, Kluwer Academic Publishers, Boston, 1993. [31] H. Samet. The Design and Analysis of Spatial Data Structures. Addison-Wesley, Reading, Massachusetts, 1989. [32] M.G. S´anchez, L. de Haro, A.G. Pino, and M. Calvo. Exhaustive Ray Tracing Algorithm for Microcellular Propagation Prediction Models. IEE Electronics Letters, 32(7):624–625, 1996. [33] K.R. Schaubach and N.J. Davis. Microcellular Radio-Channel Propagation Prediction. IEEE Antennas and Propagation Mag., 36(4):25–34, August 1996. [34] K.R. Schaubach, N.J. Davis, and T.S. Rappaport. A Ray Tracing Method for Predicting Path Loss and Delay Spread in Microcellular Environments. In IEEE Vehicular Technology Conf., pp. 932–935, 1992. [35] S.Y. Seidel and T.S. Rappaport. A RayTracing Technique to Predict Path Loss and Delay Spread Inside Buildings. In Proc. of IEEE GLOBECOM, pp. 649–653, December 1992. [36] S.Y. Seidel and T.S. Rappaport. Site-Specific Propagation Prediction for Wireless in Build-