This invention relates generally to determining three-dimensional diffraction paths, and more particularly to determining three-dimensional diffraction paths to enhance ray tracing for propagation simulating for wireless communication systems.
Determining diffraction in an arbitrary three-dimensional space is a complex problem. When the size of a scene and frequencies employed satisfy certain criteria, asymptotic methods such as geometrical or uniform theory of diffraction (GTD or UTD) can be used. An essential part of these approaches is the creation of so called “diffraction paths'” and determining corresponding diffraction points. These methods describe diffraction on the angular edge, possibly with the presence of multiple edges nearby. A complete solution would require accounting for all possible scatterers and thus making such a solution virtually impossible due to the enormous computational resources required. However, it is usually enough to account for the most significant scatterers only to obtain acceptable accuracy.
Algorithmic techniques have been proposed for solving problems which can be collapsed into a 2-D representation. For example, in simulating “over-the-roof” diffraction, a simulated base point is placed far below the rooftop. Paths from source (transmitter) to sink (receivers) are then traced taking advantage of the fact that only the sky is above the roofs and therefore only those edges encountered during the path are valid over-the-roof edges, thus allowing to employ fast convex hull algorithms. Over-the-roof diffraction is particularly important because it has been asserted that long-range wireless propagation typically occurs over the rooftops.
To account for more general cases, including around-the-side diffraction, a “crawling” approach is typically employed whereby a ray is traced out from the source to the sink, and if obstructed, crawls along the obstruction until it encounters the edge. The ray is then traced from this new point to the sink and if obstructed, crawling along the new obstruction proceeds. The process is repeated until all possible diffraction paths are accounted for and is fairly efficient in a 2-D plane, although it is necessary to “backtrack” and eliminate paths which are replaced by others. Extension to a 3-D case is possible, although it is recognized that the computational load can become unduly extensive. Thus, current techniques for determining three-dimensional diffraction paths are unsatisfactory from a practical standpoint.
Embodiments in accordance with the present invention can provide a method and system for determining optimal and full three-dimensional diffraction paths for the purposes of simulating a wireless communication system using deterministic analysis. The accuracy of the technique can be set to an arbitrary level and can be used with a 3-D propagation analysis tool.
In a first embodiment of the present invention, a method for computing wireless signal diffraction in a three-dimensional space can include the steps of selecting at least a source point, finding sinkpoints that fail to have a line-of-sight path to the source point and storing the sinkpoints found, placing diffraction points on all edges of a three-dimensional geometry, and building a visibility matrix based on weighted paths for all source points and all sink points. The method can further include the steps of applying a special path finding algorithm on the visibility matrix for each sink point to all source points and storing optimal paths for each source point to all sink points if they exist. The method can further include the step of determining if a last source point is selected before building the visibility matrix. The method can also include the step of finding all points visible to a current source point and storing the points visible and further keeping an index to the source point where the current source point is deemed a first generation. The method can further include picking a next point from a list of points in a current generation and determining if a next picked point in the list of points is a last point and if so incrementing the current generation. If a last generation is determined, then the method can apply weights based on a desired metric to a path defined by a previous generation point and current generation point. If the last generation has failed to be reached, then the method can get a list of points from the current generation. The method can further include determining if a next picked point in the list of points is a last point and if not, determining if the next picked point in the list of points is in line-of-sight to a sink point. The method can store all sink points with line of sight to the current source point until all sink points with the path are determined. The method can also find all points visible to the current source point and storing all points visible while keeping the index to the current point. The method can further apply weights based on a desired metric to a path defined by a previous generation point and a current generation point. The method can further control a number of diffractions by limiting a maximum number of generations of points.
In a second embodiment of the present invention, a computer program can be embodied in a computer storage medium and operable in a data processing machine for computing wireless signal diffraction in a three-dimensional space. The data processing machine can further be operable to function as otherwise previously described with the first embodiment described above.
The terms “a” or “an,” as used herein, are defined as one or more than one. The term “plurality,” as used herein, is defined as two or more than two. The term “another,” as used herein, is defined as at least a second or more. The terms “including” and/or “having,” as used herein, are defined as comprising (i.e., open language). The term “coupled,” as used herein, is defined as connected, although not necessarily directly, and not necessarily mechanically. A “source point” is general thought of as the source of a signal such as a transmitter. A “sink point” is generally considered the receiver of the signal from the source point. “Diffractions points” are points where measurements can begin for signal energy behind an obstruction. “Line-of-sight” generally refers to a direct unobstructed view between two points. A “visibility matrix” can mean a matrix construct that contains the visibility information of the vertices of a path including weighting information and direction designators as might be used by an algorithm for simulating diffractions paths in 3-D. “Weighted paths” are paths that are adjusted for other factors considered in a particular path finding algorithm. A “first generation” generally means the source point in the context of the embodiments herein.
The terms “program,” “software application,” “resizing program” and the like as used herein, are defined as a sequence of instructions designed for execution on a computer system. A program, computer program, or software application may include a subroutine, a function, a procedure, an object method, an object implementation, an executable application, an applet, a servlet, a source code, an object code, a shared library/dynamic load library and/or other sequence of instructions designed for execution on a computer system.
Other embodiments, when configured in accordance with the inventive arrangements disclosed herein, can include a system for performing and a machine readable storage for causing a machine to perform the various processes and methods disclosed herein.
While the specification concludes with claims defining the features of embodiments of the invention that are regarded as novel, it is believed that the invention will be better understood from a consideration of the following description in conjunction with the figures, in which like reference numerals are carried forward.
Embodiments herein can be implemented in a wide variety of ways using a variety of methods that can efficiently simulate diffraction effects for a wireless communication system. Diffraction is an important phenomenon in wireless communications. Diffraction is generally known as the bending, spreading and interference of waves when they meet an obstruction or gap. In wireless communication, diffraction allows for the reception of signal energy behind obstructions in the so-called “shadow” region. These diffraction problems are electrically large so there are strict demands to the computational method. It is most apparent in cellular systems with transmitter antennas on the top of high buildings where the diffracted energy reaches a subscriber below the rooftop. Thus, simulating diffraction effects and determining a generalized approach for treating all types of diffraction phenomena is important for successful deployment and operation of wireless systems.
An implementation of diffraction paths in a 3-D space can have several implementation constraints. Referring to the flow chart and method 20 of
In one particular embodiment, a method 20 as illustrated in the flow chart of
P=P
1+ρ(P2−P1) (1)
The next step is to build the so-called visibility graph. The visibility graph is a matrix construct that contains the visibility information of the vertices of the path along with the weights and direction designators as needed by the algorithm at step 24. The construction of a visibility matrix is an important element for the successful and optimal implementation of several embodiments herein. The process is as follows:
To significantly minimize the number of candidate diffraction points (and therefore the size of the visibility graph), some basic assumptions are made. First, it is noted that diffraction must bend “inward,” that is, the diffraction angle relative to an edge must not be greater than 180° as shown in
Second, the Uniform Theory of Diffraction or UTD algorithm requires that incoming and outgoing path segments' angles with the edge be the same. This condition helps filter significant amounts of visible but invalid diffraction paths and significantly reduces the visibility graph size and computation times.
To support this capability, each diffraction candidate point in a current generation must hold a reference to the corresponding previous generation point. The space in which the next candidate diffraction point can be located for the visibility graph is defined by the farthest facet plane (thick horizontal line in
The final step is weights the path elements appropriately such that the path finding algorithm determines an optimal path (see step 36 of method portion 30 of
Once the visibility graph is constructed, it is possible to apply the appropriate path finding algorithm to obtain the lowest-cost path. In MotoWavez, Dijkstra's algorithm is used, as it is optimal with a relatively low computational cost. It is also possible to apply the so-called “A-star” algorithm which employs a heuristic to improve the speed of the path finding method. Dijkstra's algorithm is the A-star algorithm with the heuristic set to zero. Dijkstra's implementation builds a predecessor tree which is used to build an inverse (weighted lowest-cost or shortest) path from each sink point to the source point. In MotoWavez, the path is reversed and passed to compute the diffraction at the points along the optimal path. The overall flow-chart of the technique is provided in
Referring again to
In one particular enhancement, to reduce the number of points considered during the search for visibility, it is appropriate to restrict the total area to be bound by a polygon consisting only of all source points and all sink points. Specifically, the enhancement can create a convex hull defined by the entire source and sink points and can include only the edges of the 3-D database that are within the space defined by this convex hull.
In MotoWavez, the diffraction points are selected midway between the endpoints corresponding to a single edge (ρ=0.5 in equation 1). However, it is possible to assign more points, the assignment depending upon metrics such as:
As stated earlier, the algorithm has been implemented in Motorola's MotoWavez tool to determine the optimal diffraction path for wireless signals in a 3-D environment. However, diffraction is a problem treated in many fields and this technique can be implemented in other simulation engines that operate with diffraction phenomena. In particular, areas where diffraction phenomena are treated include optics (atmospheric, etc.), X-rays, or acoustics and as such the claimed embodiments can also be applicable in these other fields.
Thus, the technique could be treated in a generic way, whereby the metrics of the path are defined via some physical (constraining) parameter and then the optimal path with the most contribution obtained. By removing solved paths in subsequent steps, it is possible to generate independent optimal diffraction paths that can be studied, correlated, etc.
The proposed method for determining the optimal diffraction paths in a 3-D environment can be used with UTD/GTD algorithms. The method as illustrated in
Again, referring to
In another embodiment of the present invention as illustrated in the diagrammatic representation of
The machine may comprise a server computer, a client user computer, a personal computer (PC), a tablet PC, personal digital assistant, a cellular phone, a laptop computer, a desktop computer, a control system, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine, not to mention a mobile server. It will be understood that a device of the present disclosure includes broadly any electronic device that provides voice, video or data communication or presentations. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The computer system 200 can include a controller or processor 202 (e.g., a central processing unit (CPU), a graphics processing unit (GPU, or both), a main memory 204 and a static memory 206, which communicate with each other via a bus 208. The computer system 200 may further include a presentation device such the display 210. The computer system 200 may include an input device 212 (e.g., a keyboard, microphone, etc.), a cursor control device 214 (e.g., a mouse), a disk drive unit 216, a signal generation device 218 (e.g., a speaker or remote control that can also serve as a presentation device) and a network interface device 220. Of course, in the embodiments disclosed, many of these items are optional.
The disk drive unit 216 may include a machine-readable medium 222 on which is stored one or more sets of instructions (e.g., software 224) embodying any one or more of the methodologies or functions described herein, including those methods illustrated above. The instructions 224 may also reside, completely or at least partially, within the main memory 204, the static memory 206, and/or within the processor or controller 202 during execution thereof by the computer system 200. The main memory 204 and the processor or controller 202 also may constitute machine-readable media.
Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays, FPGAs and other hardware devices can likewise be constructed to implement the methods described herein. Applications that may include the apparatus and systems of various embodiments broadly include a variety of electronic and computer systems. Some embodiments implement functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the example system is applicable to software, firmware, and hardware implementations.
In accordance with various embodiments of the present invention, the methods described herein are intended for operation as software programs running on a computer processor. Furthermore, software implementations can include, but are not limited to, distributed processing or component/object distributed processing, parallel processing, or virtual machine processing can also be constructed to implement the methods described herein. Further note, implementations can also include neural network implementations, and ad hoc or mesh network implementations between communication devices.
The present disclosure contemplates a machine readable medium containing instructions 224, or that which receives and executes instructions 224 from a propagated signal so that a device connected to a network environment 226 can send or receive voice, video or data, and to communicate over the network 226 using the instructions 224. The instructions 224 may further be transmitted or received over a network 226 via the network interface device 220.
While the machine-readable medium 222 is shown in an example embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present disclosure.
In light of the foregoing description, it should be recognized that embodiments in accordance with the present invention can be realized in hardware, software, or a combination of hardware and software. A network or system according to the present invention can be realized in a centralized fashion in one computer system or processor, or in a distributed fashion where different elements are spread across several interconnected computer systems or processors (such as a microprocessor and a DSP). Any kind of computer system, or other apparatus adapted for carrying out the functions described herein, is suited. A typical combination of hardware and software could be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the functions described herein.
In light of the foregoing description, it should also be recognized that embodiments in accordance with the present invention can be realized in numerous configurations contemplated to be within the scope and spirit of the claims. Additionally, the description above is intended by way of example only and is not intended to limit the present invention in any way, except as set forth in the following claims.