Research Article | Open Access
Naveen S. Gowdayyanadoddi, James T. Curran, Ali Broumandan, Gérard Lachapelle, "A Ray-Tracing Technique to Characterize GPS Multipath in the Frequency Domain", International Journal of Navigation and Observation, vol. 2015, Article ID 983124, 16 pages, 2015. https://doi.org/10.1155/2015/983124
A Ray-Tracing Technique to Characterize GPS Multipath in the Frequency Domain
Multipath propagation is one of the major sources of error in GPS measurements. In this research, a ray-tracing technique is proposed to study the frequency domain characteristics of multipath propagation. The Doppler frequency difference, also known as multipath phase rate and fading frequency, between direct (line-of-sight, LOS) and reflected (non-line-of-sight, NLOS) signals is studied as a function of satellite elevation and azimuth, as well as distance between the reflector and the static receiver. The accuracy of the method is verified with measured Doppler differences from real data collected in a downtown environment. The use of ray-tracing derived predicted Doppler differences in a receiver, as a means of alleviating the multipath induced errors in the measurement, is presented and discussed.
Ever increasing Global Navigation Satellite System (GNSS) based applications require reliable and accurate navigation solutions in challenging environments such as cities and indoors. In such environments, receiver accuracy and reliability are limited by signal shadowing, blockage, and multipath. These factors lead to increased position errors. Signal shadowing, where the signal is present but attenuated, leads to poor acquisition and tracking performance, while complete signal blockage leads to increased dilution of precision, and, finally, multipath leads to poor measurement accuracy and fading. These challenges and some solutions are discussed in [1–6], for instance. Multipath is one of the major error sources and is a function of the type and number of reflectors in the receiver environment . Many methods have been proposed to alleviate the effects of code multipath by employing various discriminators such as the narrow correlator, the strobe correlator, replica waveform (Double Delta) correlator, and parametric multipath estimation methods such as the multipath estimating delay lock loop (MEDLL) [7, 8]. These methods work on the code (delay) domain and do not completely remove multipath errors and are limited by the radio frequency (RF) signal bandwidth of the GNSS front-end as discussed in . The first two methods work on the composite autocorrelation triangle, the combination of direct, or line-of-sight, (LOS), and reflected, or non-line-of-sight, (NLOS) signals to reduce the errors induced into the measurements; therefore it is not possible to separate direct and reflected signals. The MEDLL attempts to estimate the delay, amplitude, and phase of all reflected signals but it becomes computationally intensive as the number of assumed reflected signals increases . There are methods in the literature to increase the processing speed of correlation, for example, Synthetic Multicorrelators  which could be used in relatively open-sky conditions where integration time periods are small. However, other than the computational load, it is difficult to estimate the number of reflected signals in a given environment. The efficiency of these methods also depends on the received signal power, which is greatly affected in such environments, and on the code delay resolution, which is a function of the RF signal bandwidth . Therefore, it is necessary to further understand the characteristics of multipath signals to design more effective multipath mitigating techniques.
Multipath propagation is examined here in the frequency domain. The separation of direct and reflected signals in that domain is studied in [10, 11]. The advantages of the frequency domain approach are that it may separate or resolve the direct and multiple reflected signals and allows one to estimate the power, delay, and phase of each reflected signal independently. The degree of separation depends, other than the actual direct-reflected Doppler difference, on the attainable frequency resolution which, in turn, depends on the coherent integration period and receiver motion. Compared to code delay resolution, the frequency resolution is independent of the RF signal bandwidth. The maximum practical integration period is limited by the relative dynamics of the receiver, amongst other factors . With aiding, the effect of relative dynamics can be compensated and then the main challenge is the requirement for a precise oscillator to overcome the oscillator instability affecting the coherent integration period [12–16].
The use of precise oscillators is limited due to cost, size, and power consumption at this time. Hence, there is not much study of multipath characterization done in the frequency domain. There is hope that the development of Chip Scale Atomic Clocks (CSAC) and nano-/microclocks  may lead to next generation oscillators which will alleviate cost, size, and power consumption issues. This hope motivates further research in the frequency domain.
In the kinematic case, the Doppler spread of the reflected signals in urban canyons is studied in  and it was shown that with a maximum vehicle speed of ~15 m/s the Doppler frequency difference () between the direct and reflected signals was spread between ±40 Hz considering the extreme cases when the direct signal vector is both parallel and orthogonal to the velocity vector of the vehicle. By introducing slow movement in the antenna, in an indoor scenario the frequency separation between direct and reflected signals is increased to improve position accuracy . Due to the variety of possible multipath environments, it is not practically possible to collect and process data in all such scenarios. Hence, extensive studies of reflected signals in the frequency domain using real signals are limited.
Nievinski and Larson  list and classify a number of multipath simulation techniques. Eissfeller and Winkel  and Franchois and Roelens  describe a mathematical model for multipath and discuss numerical results with respect to pseudorange errors. Weiss et al.  discuss a GNSS code multipath model for semiurban, aircraft, and ship environments using the ray-tracing technique and present a comparison of simulated and real data results with focus on pseudorange error occurrence, multipath temporal variability, and amplitude. Lau and Cross  present a ray-tracing approach to study carrier-phase multipath effects. Irsigler  uses a multiray signal model to characterize the Doppler frequency difference in static multipath environments and presents the simulation results discussing the distribution of Doppler frequency for a static antenna scenario for multiple reflector cases. Not much focus is given on using the ray-tracing based technique to study Doppler frequency differences. The ray-tracing technique facilitates accurate simulation of reflected signals in an urban environment using an urban city model . As reported by Irsigler , Doppler frequency differences are very small and therefore a standard receiver cannot resolve them in its tracking loops.
This research proposes a method using the ray-tracing methodology to study the between direct and reflected signals in a static receiver with a single static, specular reflector. Using real data collected in a location surrounded by buildings with an ultrastable oscillator to allow for a long coherent integration period, separation of direct and reflected signals in the frequency domain is demonstrated. Ray-tracing has been used for various applications such as evaluating GPS indoor positioning performance , modeling code multipath in urban environments using city models , developing a hardware emulator to test the effects of multipath on wireless positioning system , and improving GPS positioning performance in urban canyons using 3D city models . The proposed method can also be extended to analyze multipath characteristics in an environment where the receiver is moving and the environment consists of multiple reflectors. In a moving case, as shown in , receiver velocity greatly influences the frequency characteristics of the multipath signals.
The concept of separating, or resolving, the composite signal is described in Section 2. The assumptions used in this research are discussed in Section 3. The mathematical expression for the between direct and reflected signals is described in Section 4. The theoretical development of the ray-tracing method based computation is presented in Section 5. Simulation results from the developed method for a static case are presented and analyzed in Section 6. Based on the simulation results from the proposed model, real data from a city environment scenario is processed to verify whether or not the static multipath can be resolved in the frequency domain and the corresponding procedure and the results are discussed in Sections 7 and 8. Potential applications of ray-tracing based Doppler difference computation in static positioning are described in Section 9.
2. Resolving Direct and Reflected Signals in the Frequency Domain
As shown by Irsigler  even in the static case there is a nonzero Doppler difference between direct and reflected signals that will be a few tens of millihertz. Because the direct and reflected signals arrive at the receiver with small Doppler differences, the autocorrelation function (ACF) of the PRN code computed with a small coherent integration period will be a sum of the ACF of the direct and the reflected signal. The receiver will observe two ACFs with different delays overlapping with each other, resulting in a distorted ACF. To illustrate this, a dataset collected in a city core location surrounded by buildings is used and a cross-ambiguity-function (CAF), also known as Delay-Doppler Map (DDM), was generated for one PRN (PRN 14) using 10 s of coherent integration time. The code and frequency domain views of this CAF are shown in Figure 1 (top subplots). As can be seen, the ACF, is slightly distorted. The frequency domain view, at 0.15 Hz, indicates slight separation of the signals but this is not significant enough to resolve signals with varying delays. This can also be observed in the contour plot, top-view of the CAF, with a coherent integration time of 10 s (Figure 2, top subplot). When the coherent integration time is increased to 120 s, which provides a frequency resolution of 8.3 mHz (1/120 s), multiple peaks are observed in the frequency domain (Figure 1, bottom right subplot) indicating the presence of one or more components in the frequency domain and from the corresponding code domain, it can be observed that there are at least two dominant ACFs with different delays, one at 0 m and the other at −60 m. This is clearly depicted in the contour plot, the bottom subplot in Figure 2, where the zero delay ACF corresponds to a Doppler of 45 mHz and the −60 m delay ACF corresponds to a Doppler of 105 mHz. Hence, with long coherent integration time periods, it is possible to resolve the composite direct and reflected signal into its constituent components. However, this will not directly identify which of the resolved components is a direct signal component and which are reflected signals.
A single uniform reflector causing specular reflection is assumed to develop and verify the ray-tracing approach and the reflection coefficient is assumed to be a complex constant. As the size of the reflector is small compared to the distance to the satellite, the angle of incidence of the satellite signal on the reflector can be assumed to be nearly the same at all points. Therefore, the rate of change of the phase and amplitude of the signal are negligible. Hence, the magnitude of the reflection coefficient becomes insignificant when restricting the study to the Doppler difference. Naturally, its value becomes critical when there is a need to analyze the effect of the reflected signals on the direct ones and in turn on the measurements. In this study, the receiver antenna related effects and edge diffraction effects are not considered. Hence, this method falls into the category of “Geometrical” simulators of “Plates” type as defined by Nievinski and Larson .
The reflector is assumed to be a triangle to simplify the construction of various other shapes, for example, rectangles and other polygons, and to perform the ray-tracing computation efficiently. In reality, the shape of the majority of the reflectors is rectangular which can easily be constructed using two triangles. Three vertices of the triangular reflector are assumed to be known along with the receiver position.
Due to the large distance of over 20,000 km , between a reflector and GPS satellites, the angle of incidence on any point on the reflector (of a given size) is assumed to be the same (far field assumption).
4. Doppler Frequencies of Direct and Reflected Signals
This section describes the Doppler frequency difference, , between the direct and reflected signals using the diagram of Figure 3 showing the reflector, receiver, and satellite geometry.
As direct and reflected signals travel along different paths they are observed at different Doppler frequencies at the receiver antenna. The , between the direct signal frequency, , and that of the reflected signal frequency, , can be derived by considering the effect of the point movement as [6, 10, 19]Setting for a static case results inwhere is the Doppler frequency due to satellite motion, is the Doppler frequency due to receiver motion, is the Doppler frequency due to the local oscillator drift, is the satellite velocity vector, is the receiver velocity vector, is the unit vector from the receiver to the satellite, is the clock drift in m/s, is the GPS signal carrier wavelength, is the unit vector from point on the reflector to the satellite, and is the unit vector from the receiver to point . is also the satellite signal incident point on the reflector and it moves slowly on its surface as the satellite moves in its orbit; ’s velocity on the surface of the reflector is denoted by . Equation (2) gives the as a function of satellite and receiver velocities, receiver, reflector, and satellite positions. For a moving receiver, the Doppler frequency is highly influenced by its velocity  whereas for a static receiver, as per (3), is a function of the distance between receiver and reflector (first term) and of the motion of on the reflector (second term). Since satellites are about 20,000 km away from the earth, the unit vector from the receiver to the satellite and the unit vector from the reflector to the satellite are nearly identical but not equal, resulting in very low , namely, of the order of tens of mHz.
The velocity of the satellite and the receiver is known and by using the position of the receiver and the satellite, the can be computed. However, to find the Doppler frequency it is required to know the point of reflection (or point of incidence) of the signal to compute and . Section 5 describes a method to find using the ray-tracing methodology and then .
5. Ray-Tracing Methodology to Find
Ray-tracing is used commonly in computer graphics for image synthesis. Specifically, the path of a ray of light from its source is followed (or traced) as it bounces multiple times around the scene  to correctly illuminate it. In this research, the scene consists of a reflector, a receiver, and a satellite. The satellite is the source and its signal is traced as it moves towards the receiver through space and the receiver-reflector scene. The direct path along with the reflected path are determined using the ray-tracing algorithm and then the between the two paths is studied as explained below.
Consider Figure 4, which shows a triangular reflector with its center at and whose surface normal is parallel to the ground (i.e., reflector is standing perpendicular to the ground). The vertices of the triangle are known and defined in the earth-centered-earth-fixed (ECEF) coordinate system. is the satellite and is the receiver. The vector is the direct vector between the satellite and the receiver. The point represents an arbitrary point on the surface of the reflector at which the signal from the satellite is reflected (or incident) and then reaches the receiver . The point of incidence (POI) is found using the ray-tracing algorithm described in the appendix. Comprehensive information about ray-tracing and its implementation can be found in Pharr and Humphreys . Once the point is found, then and are computed.
The process of finding the POI of a ray and computing the range of the direct and reflected signals is continued for every change in satellite position. Then the Doppler frequencies of the direct and the reflected signals are computed as a rate of change of the range over time leading to the determination of the between the direct and reflected signals as shown in (4) in which and represent consecutive time instants, is the time interval between those two time instants, and represents the magnitude of the vectors, differentiated by the subscript, across the time interval. Due to the slow movement of the POI, is assumed to be linear over . Equation (4) is rewritten to obtain (5) in terms of direct vector, , and components to compare it with (3). Here, represents the difference term corresponding to the vectors indicated by its subscript. In (5), the first term represents the due to the distance between the reflector and the receiver whereas the second term represents the due to the movement on the reflector as a function of time. The same behavior is observed in the theoretical expression (3):
6. Simulation Results and Analyses
6.1. Static Receiver Case
A simulation was performed using the equations derived in the previous section to study the characteristics of reflected signals in the frequency domain. Table 1 lists the parameters used for the simulation. An isosceles triangle with base width of 600 m and height of 300 m is assumed as the reflector and its orientation is defined by its surface normal vector in north/east/up coordinates. The placement of the reflector relative to the receiver, as shown in Figure 5, is such that it is kept at a distance of 20 m south of the receiver, indicated by the red dot. Hence, only the satellites that are in front, or north of the reflector, can cause a reflection that can reach the receiver. The center of the base of the reflector is aligned north-south with the receiver. The Doppler frequency is computed at an interval of one second to reduce the computational load, for all the visible satellites.
To illustrate the movement of the POI, the ray-tracing simulation results for PRN 30, whose elevation and azimuth angles are available in Figure 6, are plotted in Figure 5. The satellite incident and reflected rays are color coded. Although the simulation is performed with an interval of one second, the rays are plotted at an interval of 100 s to improve readability. The labels “First ray” and “Last ray” identify the first and last visible ray of a satellite during its pass; intersection with the reflector is such that the corresponding reflected rays reach the receiver. There are many rays that intersect the reflector but not all of the corresponding reflected rays reach the receiver. As discussed earlier, the POI is not a fixed point on the reflector as it moves slowly from the POI of the First ray to the POI of the Last ray and is depicted by an arrow in Figure 5. The POI movement is not linear and its trajectory on the reflector is a function of the position of the satellite and receiver, relative to the reflector. The left-right movement of the POI is along the direction of the satellite movement projected on the horizontal plane (i.e., as azimuth changes). Its up-down movement is greatly influenced by the elevation angle but describing it mathematically is difficult. It can be seen that the range between the reflector and the receiver is changing as the POI moves. As shown in (5), this change in range corresponds to the second term in the equation contributing to the between direct and reflected signals.
Figure 6 shows the between direct and reflected signals, elevation, and azimuth as a function of time for eight PRNs identified in the legend. From these plots several observations can be made.
For a given set of visible PRNs and receiver location and with a reflector kept at a distance of 20 m south of the receiver, the maximum observed is within ±30 mHz. At any given time, different PRNs have different values which are a function of satellite elevation and azimuth; hence the is not constant over time. As shown, depending upon PRN location, could be zero in which case it is not possible to distinguish between direct and reflected signals in the frequency domain. The occurrence of zero which manifests itself as a constant bias in the pseudorange measurements, even in the case of very long coherent processing, was proven by Kelly et al. .
In reality, the reflectors will not be as large as 600 × 300 m. However, for illustration purpose and to reduce the processing time during the simulation, one single large triangle is chosen instead of multiple smaller triangles. To understand the characteristics of reflected signals in the frequency domain, only a small portion of this triangle is sufficient for a given period of time. Reflectors of smaller sizes, for instance, 50 × 30 m, are more likely and therefore only a small portion of the triangle where the transmit ray intersects the triangle is considered for further analysis. It is interesting to note that the slopes of the curves of all the PRNs are negative except for PRN 5 –in which case it gradually changes from negative to positive. The maximum slope observed is 23.3 μHz/s. The absolute maximum of is observed either when the PRN becomes visible or when the PRN disappears at the horizon. PRN 5 is an exception to this as its absolute maximum Doppler frequency occurs a few tens of minutes before it is out of the visible range. No specific pattern is found for the minimum of absolute .
To study the effect of the distance between reflector and receiver, the simulation is carried out with various reflector distances for the case south of the receiver. The visibility of reflected signals at the receiver changes as the reflector distance varies. The visibility is much influenced by the PRN elevation angle. For this case, the effect of azimuth is not observable. As the distance increases, high elevation PRNs no longer experience reflected propagation. For example, for 50 m or greater, reflections are not present for PRN 7 and PRN 30 due to the change in the angle of incidence and in turn in the angle of reflection.
From a point of view of separating the direct and reflected signals in the frequency domain, it is sufficient to observe the absolute . Therefore, the discussion will now focus on absolute values. Generally, the maximum of absolute increases as the distance increases, as observed over the common period where the reflected signals for various PRNs are visible for all the distances. The minimum of absolute increases for PRNs 2, 5, and 21 but it remains at zero for PRNs 7, 16, 19, 26, and 30 even though the curve over the simulation duration is shifting, either upwards or downwards, with an increase in distance.
As show in Figure 7, when the of a PRN is scaled down by the reflector distance, then all of the resulting curves corresponding to different distances overlap. As discussed earlier, reflected signals are not visible all the time for all considered distances. Hence, only the visible parts of curves from various distances overlap exactly. This suggests that is approximately linearly proportional to the distance, up to 100 m, between the reflector and the receiver.
In real scenarios, to separate the direct and reflected signals in the frequency domain due to the small compared to the Doppler frequency of a PRN, long coherent integration periods are required. Based on the allowable frequency mismatch loss, during aided acquisition searching process, the coherent integration period can be selected as described in . As shown in Figure 7, the absolute minimum is zero for some PRNs and during this time, it is not possible to separate direct and reflected signals. However, since the is not constant over time, performing coherent integration consecutively on blocks of real data separated by a few tens of minutes ensures nonzero values, leading to direct and reflected separation. At a given time, most PRNs have nonzero , therefore choosing a coherent integration period greater than (1/) is sufficient to resolve the direct and reflected signals in the frequency domain.
The implementation of this method is validated by comparing the results obtained for a large planar ground reflector with that of the simple geometry model. A large planar and horizontal reflector with a surface normal defined as in north/east/up coordinates with an antenna height of 100 m from the reflector’s surface is used for the simulation. In the simple geometry model, the reflected-minus-direct delay difference is given by , where is the height of the antenna and is the satellite elevation angle in radians [23, 32]. The Doppler frequency difference is obtained by dividing the first order differentiation of the delay difference with respect to time by the signal wavelength and is . A large triangle with the same orientation and antenna setup is used in the ray-tracing based method to find the Doppler frequency difference. The differences between the Doppler frequency differences obtained from these two methods are shown in Figure 8. This difference for each PRN is within a few micro Hertz and the RMS difference for all the PRNs is under 3.2 micro Hertz which is 2 to 3 order of magnitude less than that of the actual Doppler difference. Hence, the implementation of the proposed method appears to be accurate.
6.2. Moving Receiver Case
Though the focus is on the static case, this method can be directly used for the moving receiver case in an environment of static or dynamic reflectors, as long as the receiver and reflector velocities are known. The factor that causes the difference is the velocity of the receiver, as shown in (2). is proportional to its velocity and is scaled according to the direction of its movement, relative to the reflector and satellite. The increase in reduces the coherent integration period required for separating direct and reflected signals. As reported in , in a typical downtown scenario the value is spread between ±40 Hz for a vehicular case. The maximum occurs when the receiver is moving towards (or away from) the reflector and the minimum occurs when the receiver is moving parallel to the reflector. For typical downtown scenarios, a minimum coherent integration period of 25 ms appears reasonable, considering an absolute maximum of 40 Hz as reported in , to separate the direct and reflected signals. If the direct signal power is greater than that of the reflected signals, then there will be an improvement in the measurement accuracy if a sufficient coherent integration period is used. For this reason, high-sensitivity receivers that can integrate for a few tens of milliseconds inherently have a better probability of reflected signals rejection (in the case of stronger direct signal) by isolating them in the frequency domain.
7. Data Collection Setup and Processing
The data was collected in a partially open-sky environment of downtown Calgary and the corresponding sky plot is shown in Figure 9. A NovAtel pinwheel antenna, placed on the rooftop of a parked vehicle, was used and the signals were digitized with a two-channel National Instruments data acquisition system at a sampling frequency of 5 MHz. The digitized samples were rendered to 16-bit complex values. The data acquisition system was synchronized to an external 10 MHz ultrastable oscillator exhibiting a short term stability of 2.5 × 10−13 over 1 to 30 seconds, namely, the Boîtier à Vieillissement Amélioré (BVA) technology based oscillator from Oscilloquartz (OCXO 8607). Data was collected for approximately five minutes.
The data was processed using a modified version of GSNRx  which can perform coherent integration more than 20 ms using aiding parameters. Using the initial few tens of seconds, the software extracts the time, ephemeris, Doppler frequency, and code delay and then uses aiding parameters such as reference receiver position (obtained using the differential GPS technique) and raw navigation data bits (obtained from a reference station) to extend the coherent integration period. Since the focus is on , having a reference receiver position accurate to 2 m is sufficient. The extracted Doppler frequency and code delay are used to reduce the acquisition search space and processing load. The Doppler rate aiding is derived using the reference position and broadcast ephemeris. The accuracy of the derived Doppler rate is sufficient to perform coherent integration of a few 100s of seconds . The coherent integration period is chosen based on the data set and reflector distances. The code delay within ±350 m is searched in steps of 3 m and the Doppler frequency of ±83 mHz is searched in steps of 1 mHz.
8. Experimental Results and Analysis
Based on geometry and the environment, PRN 11 is expected to be affected by multipath. To confirm this, the pseudorange errors of PRN 11 due to multipath are obtained by removing other error sources including ionospheric and tropospheric, orbit, and satellite clock, via differential processing using a base station located 10 km away. The pseudoranges are obtained using the normalized noncoherent early-minus-late envelope discriminator  with a 0.8 chip spacing between early and late code correlators. The magnitude and oscillating behavior of code multipath errors in the pseudorange measurements of PRN 11 are shown in Figure 10. Since these measurements are obtained from a static vehicle, there is a slow oscillating behavior resulting from the periodic constructive and destructive interference of the reflected signals.
Aided acquisition with coherent integration of 155 s is performed. Using an initial 35 seconds of data, the signals are acquired and tracked as in a standard receiver to obtain time, ephemeris, code delay, and approximate Doppler frequency offset for each PRN. These parameters are then used to initialize the fine search process to reduce the search space. The known position, computed time, and ephemeris are used to derive the Doppler rate to compensate for the change in the Doppler due to satellite motion during the coherent integration period. The search space size is selected to accommodate the possible frequency and code delay spread due to reflected signals. Since the center frequency and code delay for each PRN are derived from the initial data, any residual frequency offset due to the local oscillator frequency and any bias in the code delay are removed. Figure 11 shows the frequency domain view of the CAF (upper subplot). Each of these points corresponds to the maximum value in each frequency bin; however they may belong to different code delay bins. Only the values within 10 dB from the maximum value of the CAF are considered. The delay corresponding to each of these points is also shown in Figure 11 (lower subplot).
Examining the CAF values in the upper subplot of Figure 11, it can be seen that the majority of the received signal power is concentrated around zero delay and zero Doppler, with another portion of the power concentrated at approximately −20 mHz and 70 meters of delay. In this case, due to a limited RF front-end bandwidth of 4 MHz the code delay resolution is not accurate; also any uncertainty in the true position shifts the peak of the direct signal. Nonetheless, it is evident that the use of very long coherent integrations has facilitated the separation of the two dominant signal components, which would be observed as a single distorted signal where they were observed over a shorter integration period.
From Figure 9, by looking at the buildings which are within 50 m from the receiver and using the ray-tracing model simulation results, it is possible to predict that the absolute Doppler frequency difference of a few reflected signals will be in the range of 0 to 70 mHz. This frequency estimate is in agreement with the frequency at which the multipath error period fluctuates, as shown in Figure 10. Hence, the 155 seconds of coherent integration period is likely to provide sufficient frequency resolution to separate at least the reflected signals with a Doppler difference greater than 13 mHz.
To compare the measurements from the real data case with that of the ray-tracing based simulation, a building that is 43 m south of the receiver is considered a reflector and a simulation is performed. The Doppler frequency difference and multipath delay for PRN 11 at the time that corresponds to the beginning of the 155 s coherent integration are found. The multipath delays and Doppler frequency differences obtained from the simulation and the measurement of real signals are listed in Table 2. The measured values are affected by uncertainties in the receiver clock estimates, user position estimate, satellite ephemeris, and rounding effects due to the 4 MHz RF front-end bandwidth. The simulation values are affected by any uncertainty in the satellite ephemeris and the position estimate of the reflector. Also, it is unlikely that all the assumptions that were made during the simulation fully model the real world propagation channel. Given these uncertainties, the level of agreement observed between the measured values and simulation results are encouraging, agreeing to within 17 meters and 6 mHz in delay and Doppler, respectively.
The reflected signals are always delayed relative to the direct signal. However, these reflected signals cause an advance or delay of pseudorange measurements depending on whether they interfere with direct signals destructively or constructively. This is the reason for seeing valid points with both positive and negative delays in Figure 11 (lower subplot). A reflected signal which is completely resolved in the frequency domain, such that it does not interfere with the direct signal or other reflected signals, will certainly appear as being delayed. Furthermore, the shape of the ACF of such a reflected signal will not be affected; namely, its properties will be the same as that of ACF of the direct signal . When the product of the and the coherent integration period is not greater than unity, then the reflected signals cannot be resolved and will induce constructive and destructive interference. Depending on the number of interfering signals, their relative power levels, and the discriminator type, the pseudorange measurement may also be affected.
As an example, three ACFs from various different frequency bins of PRN 11 are shown in Figure 12. The “constructive” ACF depicts the effect of constructive interference which results in delayed code measurements. The “destructive” ACF shows a distorted ACF as a result of destructive interference which in turn results in advanced code measurements. The “unaffected” ACF depicts an ACF unaffected by any reflected signals.
The advantage of separating the direct and reflected signals in the frequency domain is that it is independent of the RF signal bandwidth. Traditionally, multipath mitigation has relied on observing only the few meters around the zero delay of the autocorrelation function, where there is little multipath, and the bias induced by multipath that is present is low. When doing so, achieving high discriminator gain requires high signal bandwidth. In contrast, if multipath is resolved in the frequency domain, the requirement for high signal bandwidth can be relaxed. This might allow one to slightly reduce the sampling frequency, which in turn may reduce the processing load.
After resolving the composite signals in the frequency domain, with sufficient frequency resolution, then what remains to be done to generate correct measurements is to identify which one of detected signals correspond to the line-of-sight. In an ideal case, the detected signal with minimum delay should correspond to the direct signal and all the remaining signal components should correspond to the non-line-of-sight propagation. Selection of the earliest signal component is influenced by the code delay resolution which is a function of the RF front-end bandwidth. Hence, depending on the method used to generate the range measurements, the accuracy may remain as, to an extent, a function of the RF front-end bandwidth.
As the choice of coherent integration period depends on the satellite geometry, the location of the reflectors, and the received signal strength, there is no globally optimum choice. However, from Figure 7, it can be seen that a coherent integration period of 50 seconds serves as a good starting point as it can resolve the direct and reflected signals for most PRNs when the reflector distance is above 20 m.
The theoretical and experimental results show that it would be possible to separate direct and reflected signals in the frequency domain using very long coherent integration periods for a static receiver and reflector. This method is well suited for characterizing the multipath environment at permanent fixed sites such as reference stations as it can separate multiple reflected signals and allows one to easily identify the number of reflected signals, their delay, and their power levels relative to direct signal.
9. Applications in Positioning
This section describes how the ray-tracing algorithm can be used to predict the Doppler difference between direct and reflected signals, which can be used in positioning applications. Three potential uses of the Doppler difference information are suggested including prediction of the position solution convergence time; coherent integration period selection for improved measurement generation; and selective measurement rejection or weighting based on multipath error period.
9.1. Ray-Tracing to Predict the Position Solution Convergence Time in Static Positioning
The Doppler difference between the direct and reflected rays predicted by the ray-tracing algorithm can be used to determine the approximate averaging time required to obtain a position solution in which the multipath error has averaged to near zero, for example, when employing a batch least-squares position estimation.
A location in the downtown of Calgary, Canada, with tall buildings on its north, south, and east, was selected as a test location to illustrate the application. The test location and surrounding area are shown in Figure 13. For the ray-tracing simulation, the approximate building positions were obtained from the Google Maps. Buildings on the north side were considered as a large triangular reflector with surface normal approximately given by in east/north/up coordinates and the building on east side is considered a large triangular reflector with surface normal approximately given by in east/north/up coordinates. The visible PRNs with their corresponding azimuth and elevation angles during the time of testing are shown in Figure 14. The simulation was carried out for 10 minutes using the real PRN passes computed using the ephemeris. PRNs 14, 18, 19, 21, 22, and 27, which were visible at that location, were selected for the analysis. Looking at the geometry formed by the PRNs, building reflectors, and the test location, it was concluded that PRNs 14, 19, 21, and 27 had a high probability of producing multipath signals.
The Doppler differences computed using the ray-tracing algorithm are listed in the second column of Table 3 for each PRN. The other columns of this table will be discussed in the paragraphs below. Reflected signals were found for PRNs 14, 19, 21, and 22 but no reflections were found for PRNs 18 and 22 due to their higher elevation angle relative to other PRNs and no nearby reflectors.
Before going into position domain analysis, it is important to confirm presence of reflected signals and the accuracy of the Doppler differences computed by the ray-tracing algorithm. To accomplish this code-minus-carrier (CMC) measurements were generated by processing the IF-data. Data was collected as complex samples at a rate of 20.25 MHz with precise 10 MHz oscillator as reference using Tele Orbit’s front-end. The IF data was processed with the GSNRx software-defined GNSS receiver, and the code and carrier phase measurements were generated at a rate of 1 Hz for a total duration of 10 minutes. The CMC measurements of each PRN are biased by the presence of many errors, including code multipath error, carrier phase multipath error, two times the ionosphere delay, code multipath error, carrier phase multipath error, clock bias, carrier phase integer ambiguity, and code and carrier phase measurement noise. Since the data was collected using a precise oscillator, the clock bias can be treated as constant over the period of data collection and ionosphere delay over the data collection time can be reasonably assumed to be a constant over such a short period. By design, the carrier phase ambiguity term is constant and hence the bias in the CMC measurements is treated as a constant bias and is removed. What remains is the variation caused by the code and carrier phase multipath errors due to constructive and destructive interferences. The carrier-phase multipath, which will be less than 5 cm for the case when the direct signal power is greater than that of the reflected signal , can be neglected in comparison with the tens of meters of code multipath errors which can be observed in downtown scenarios. It is verified from the CAF of each PRN that the power of the direct signal is higher than that of the reflected signals. Therefore, the majority of the variation of the CMC measurements after bias removal can be attributed to the code multipath errors. These variations are shown in the upper subplot of Figure 15. The fluctuation of the multipath error is due to the changes in the relative delay of the direct and reflected signals, and so its frequency is equal to the Doppler difference. Thus, a measurement of the frequency of this fluctuation can be used to verify the predictions made by the ray-tracing algorithm. Taking the fast-Fourier-transform (FFT) of the bias-removed-CMC measurements a direct comparison can be made with the ray-tracing simulation output.
The normalized (with respect to PRN 14) magnitude of the FFT output of the bias-removed-CMC measurements is shown in the lower subplot of Figure 15. As predicted in the ray-tracing simulation, there are no significant peaks observed in the FFT output for PRNs 18 and 22. For PRN 14, there is a dominant peak at 60 mHz and two other tones at 120 mHz and 180 mHz—these tones are harmonics as they repeat exactly at the integer multiples of 60 mHz with corresponding reduction in amplitudes. The 60 mHz peak of PRN 14 exactly matches the ray-tracing simulation output reported in Table 3. There is a small difference of 3 mHz between the ray-tracing simulation output and the CMC based Doppler difference for PRN 19. Multiple dominant peaks are observed for PRNs 21 and 27 indicating the presence of multiple reflected signals for each of these PRNs. The Doppler frequency of the three dominant peaks for PRN 21 and two dominant peaks for PRN 27 are listed in Table 3. Out of the two values for PRN 27, the Doppler difference of 70 mHz matches with that of the ray-tracing simulation output. Since not all the possible reflectors are used in the ray-tracing simulation, it is hard to find the source of the other reflections. For PRN 21, the closest match with the ray-tracing simulation output results in a difference of 15 mHz. The inaccuracy in the ray-tracing simulation output could be attributed to uncertainty in the reflector position and the true location of the receiver. It is expected that a use of 3D city model would give more accurate results. In this case, Doppler differences computed for 3 out of 4 PRNs match closely with that of the Doppler differences obtained from the CMC based measurements.
Having generated these Doppler difference predictions, the goal is to determine a time after which the position solution converges to a solution without large multipath errors. Firstly, to determine the best averaging time at the measurement level to alleviate the multipath errors, moving averages of the bias-removed-CMC measurements were computed for various averaging-window sizes over the entire duration of the data. Secondly, measurement averaging was done at the position level to observe the improvement in the position accuracy with respect to averaging time. The RMS bias-removed-CMC errors for various moving-average window sizes are shown in Figure 16 for each PRN.
It is apparent that the RMS errors decrease rapidly with increasing averaging time, up until the averaging time is equal to the inverse of the Doppler difference reported in Table 3. Beyond this point, the reduction in RMS error with increased averaging time is more gradual. This can be clearly observed for PRN 14 and PRN 19. For PRN 19, the RMS error reduces rapidly until 16.7 seconds, which is exactly the inverse of 60 mHz of the predicted Doppler difference. Similarly, for PRN 19 the error reduces rapidly until 51 seconds, again close to the inverse of the 17 mHz predicted Doppler difference. As PRN 21 and PRN 27 have multiple reflected signals, it is difficult to predict reduction in RMS error, as it is a function of multiple reflections and will be sensitive to the relative power of the reflected signals.
Nonetheless, from examination of the errors associated with PRN 14 and PRN 19, it is evident that the ray-tracing simulation output can be used to select appropriate measurement averaging times that will ensure significant reduction of the multipath induced errors. For the PRNs with multiple reflected signals, the smallest of all the Doppler differences can be chosen as a conservative estimate of the required averaging time.
To observe the effect of averaging at the position level, the least-squares method of position estimation is employed . Here, it is implemented as batch-least-squares algorithm, in which pseudorange measurements from more than one epoch are processed simultaneously to estimate a position with least sum of squares of residuals. Depending on the averaging window size many measurements and corresponding positions of the PRNs information are fed into the least-squares. Combining measurements from different times is reasonable, in this case, because the state variables (, , and coordinates of test location and clock bias) do not change over the time, as the receiver is static and the clock is stable over the averaging duration. The average PDOP and GDOP for the selected six PRNs over the position computation time is 3.1 and 3.8, respectively. The RMS 3D position error for different averaging times is also shown in Figure 16.
After averaging time of 16.7 s, the error contribution associated with PRNs 14, 21, and 22 has significantly reduced; however the error from PRN 19 continues to dominate. Beyond an averaging time of 59 seconds the error associated with PRN 19 also reduces. Beyond this time the improvement in the position accuracy is small. This suggests that the majority of the error is due to multipath propagation and that it can be effectively averaged out within a period equal to the inverse of the Doppler difference. Hence, an averaging time can be determined by inverting the smallest Doppler difference derived from the ray-tracing simulation.
9.2. Active Multipath Rejection Using Long Coherent Integration
The predicted Doppler difference from the ray-tracing simulation can also be used to prescribe the length of coherent integration required to reduce effect of the reflected signals on the ACF of the direct signal. To illustrate this, for the selected PRNs, CAFs were generated with various coherent integration times. Examining the maximum value of the CAF, early () and late () amplitudes were determined at ±0.5 chips away from the maximum peak, respectively. Then, a normalized () noncoherent envelope discriminator was employed to generate the measurements . The RMS errors in the measurements computed over the entire data duration are shown as a function coherent integration time in Figure 17. The trend of the multipath error in the measurements for different coherent integration times closely matches that of the bias-removed-CMC measurements for different averaging window sizes. Note also that the multipath error converges to near its final value within the reciprocal of the predicted Doppler difference value presented in Table 3 for each PRN. This suggests that ray-tracing simulation derived Doppler difference can also be used to determine the minimum coherent integration time that is required to significantly reduce the multipath error. Further increasing the coherent integration period beyond this point does continue to reduce multipath error but at a much reduced rate. As this diminishing return is observed, it is convenient to use the ray-tracing predictions as a means of selecting the coherent integration period at which the bulk of the benefits are attained.
9.3. Measurement Rejection Duration
There may be scenarios where it is not convenient to apply an averaging time equal to the reciprocal of the minimum predicted Doppler difference of all PRNs in view. In such cases, the measurements with Doppler differences that require excessive averaging might simply be rejected or deweighted while computing the solution. Of course, it should first be ascertained whether or not the DOP of the remaining PRNs is acceptable to the positioning application. Although further detailed analysis is required to test this possibility, the potential use of ray-tracing as a means of identifying measurement quality is interesting.
A mathematical model was developed to characterize direct and reflected signals in the frequency domain by adopting a ray-tracing technique. The simulation results were positively verified using results from a ground reflector geometry model. The Doppler differences computed using this model for a city core location match closely measured Doppler differences using long coherent integration of live GNSS data. This data was used to demonstrate how ray-tracing derived Doppler differences can be used to determine the solution convergence time in a static positioning case and to estimate the appropriate coherent integration time to reduce multipath errors in range measurements.
Ray-Tracing Method to Find Point of Intersection (POI)
Consider Figure 4, which shows a triangular reflector with its center at and whose surface normal is parallel to the ground (i.e., reflector is standing perpendicular to the ground). The vertices of the triangle are known and defined in the earth-centered-earth-fixed (ECEF) coordinate system. is the satellite and is the receiver. The vector represents the signal ray from the satellite to the reflector, but for future derivation purpose, its magnitude is derived from point to . The vector is the normal vector to the reflector plane and is its unit vector. The angle of incidence is given by . The vector is the reflected ray corresponding to the incident ray, . The vector is the direct vector between the satellite and the receiver. The point represents an arbitrary point on the surface of the reflector at which the signal from the satellite is reflected and then reaches the receiver . The direction of the vector is the same as the direction of . is the angle of incidence of the signal from the satellite at point . The two right-angle triangles and will be used to find the reflected ray at .
Three vertices of the reflector, satellite position, and receiver position are used to find the point by following these three main steps:(i)Find the center point and the normal to the reflector surface.(ii)Find the direction of the reflected ray at point using a summation of vectors that form the two right angle triangles and .(iii)Assuming the direction of the reflected ray at point to be the same as that of , considering as origin, which results in a vector in a direction opposite to the direction of , find the point of intersection (POI) using the ray-triangle intersection algorithm.
The position vector at center point is computed as the average of the three position vectors (vertices) of the triangle; that is, . The normal to the reflector plane is (cross product) and its corresponding unit normal is .
Since the angle between and is equal to the angle between and due to the law of reflection which states that the reflection angle is equal to the angle of incidence , the vectors along and are equal to (). Hence, using the summation of vectors, one can writeand then substituting (A.1) in (A.2),
The magnitude of is the projection of and its direction is given by . Using the right angle triangle and the definition of the dot product, , where is the angle between the two vectors and , and the unit vector of is given byThus, (A.5) provides the direction of the reflected ray as a function of only the incident ray and the unit normal to the reflector.
As stated earlier, the direction of () is assumed to be the same as that of . It is verified that, for a triangle with a base width of 600 m and a height of 300 m, the maximum absolute difference between the angle of incidence at point and at any point is under one micro degree, which would result in a of less than one μHz, which is negligible. Therefore, the direction of can be reasonably assumed to be the same as that of .
To find point , a ray from the point is sent to the triangle in the direction and is expected to intersect with it at . The angle this ray makes with the surface normal PT is equal to ; therefore the reflection of this ray at reaches the satellite. Given the origin of the ray (the receiver position, ), three vertices of the triangle, and the direction of the incident ray, the POI can be obtained by using the method of ray-triangle intersection described in . This algorithm is implemented in Matlab and is available under the file exchange program on the MathWorks website . The algorithm produces three parameters: the first is whether or not the ray intersects the triangle, the second is the POI, and the third is the distance between the intersection point and the origin. Then, at a given time, using the computed POI, , the satellite, and receiver positions, the ranges of the reflected and direct signals are computed.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
Mr. Rakesh Kumar is acknowledged for his ray-tracing discussion session and Mr. Ranjith Kumar is acknowledged for providing an IF data set.
- G. Lachapelle, H. Kuusniemi, D. T. H. Dao, G. Macgougan, and M. E. Cannon, “HSGPS signal analysis and performance under various indoor conditions,” Navigation, vol. 51, no. 1, pp. 29–43, 2004.
- S. Schön and O. Bielenberg, “On the capability of high sensitivity GPS for precise indoor positioning,” in Proceedings of the 5th Workshop on Positioning, Navigation and Communication (WPNC '08), pp. 121–127, Hannover, Germany, March 2008.
- G. Dedes and A. G. Dempster, “Indoor GPS positioning—challenges and opportunities,” in Proceedings of the IEEE 62nd Vehicular Technology Conference (VTC '05), vol. 1, pp. 412–415, IEEE, September 2005.
- A. Angrisano, S. Gaglione, and C. Gioia, “RAIM algorithms for aided GNSS in Urban scenario,” in Proceedings of the Ubiquitous Positioning, Indoor Navigation, and Location Based Service (UPINLBS '12), pp. 1–9, Helsinki, Finland, October 2012.
- Y. Cui and S. S. Ge, “Autonomous vehicle positioning with GPS in urban canyon environments,” IEEE Transactions on Robotics and Automation, vol. 19, no. 1, pp. 15–25, 2003.
- P. Misra and P. Enge, Global Positioning System: Signals, Measurements, and Performance, Ganga Jamuna Press, 2006.
- M. S. Braasch, “Performance comparison of multipath mitigating receiver architectures,” in Proceedings of the IEEE Aerospace Conference, vol. 3, pp. 1309–1315, Big Sky, Mont, USA, March 2001.
- R. D. J. van Nee, “The multipath estimating delay lock loop,” in Proceedings of the 2nd IEEE International Symposium on Spread Spectrum Techniques and Applications (ISSTA '92), pp. 39–42, IEEE, Yokohama, Japan, November-December 1992.
- C. Stöber, F. Kneissl, B. Eissfeller, and T. Pany, “Analysis and verification of synthetic multicorrelators,” in Proceedings of the 24th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS '11), pp. 2060–2069, Portland, Ore, USA, September 2011.
- P. Xie and M. G. Petovello, “Measuring GNSS multipath distributions in urban canyon environments,” IEEE Transactions on Instrumentation and Measurement, vol. 64, no. 2, pp. 366–377, 2015.
- N. S. Gowdayyanadoddi, A. Broumandan, G. Lachapelle, and J. T. Curran, “Indoor GPS positioning using a slowly moving antenna and long coherent integration,” in Proceedings of the International Conference on Localization and GNSS (ICL-GNSS '15), pp. 1–6, Gothenburg, Sweden, June 2015.
- T. Pany, B. Riedl, J. Winkel et al., “Coherent integration time: the longer, the better,” Inside GNSS, 2009.
- P. Gaggero and D. Borio, “Ultra-stable oscillators: limits of GNSS coherent integration,” in Proceedings of the 21st International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS '08), pp. 16–19, Savannah, Ga, USA, September 2008.
- F. Dovis, R. Lesca, D. Margaria, G. Boiero, and G. Ghinamo, “An assisted high-sensitivity acquisition technique for GPS indoor positioning,” in Proceedings of the IEEE/ION Position, Location and Navigation Symposium (PLANS '08), pp. 1350–1361, Monterey, Calif, USA, May 2008.
- R. Watson, G. Lachapelle, R. Klukas, S. Turunen, S. Pietilä, and I. Halivaara, “Investigating GPS signals indoors with extreme high-sensitivity detection techniques,” Navigation, vol. 52, no. 4, pp. 199–213, 2005.
- N. S. Gowdayyanadoddi, A. Broumandan, J. T. Curran, and G. Lachapelle, “Benefits of an ultra stable oscillator for long coherent integration,” in Proceedings of the 27th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS '14), pp. 1578–1594, The Institute of Navigation, Tampa, Fla, USA, September 2014.
- M. Shkel, “Precision navigation and timing enabled by microtechnology: are we there yet?” in Micro- and Nanotechnology Sensors, Systems, and Applications III, vol. 8031 of Proceedings of SPIE, p. 9, Orlando, Fla, USA, May 2011.
- F. G. Nievinski and K. M. Larson, “An open source GPS multipath simulator in Matlab/Octave,” GPS Solutions, vol. 18, no. 3, pp. 473–481, 2014.
- B. Eissfeller and J. O. Winkel, “GPS dynamic multipath analysis in urban areas,” in Proceedings of the 9th International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GPS '96), pp. 719–727, Kansas City, Mo, USA, September 1996.
- A. Franchois and L. Roelens, “Determination of GPS positioning errors due to multi-path in civil aviation,” in Proceedings of the 2nd International Conference on Recent Advances in Space Technologies (RAST '05), pp. 400–403, June 2005.
- J. P. Weiss, P. Axelrad, and S. Anderson, “A GNSS code multipath model for semi-urban, aircraft, and ship environments,” Navigation, Journal of the Institute of Navigation, vol. 54, no. 4, pp. 293–307, 2007.
- L. Lau and P. Cross, “Development and testing of a new ray-tracing approach to GNSS carrier-phase multipath modelling,” Journal of Geodesy, vol. 81, no. 11, pp. 713–732, 2007.
- M. Irsigler, “Characterization of multipath phase rates in different multipath environments,” GPS Solutions, vol. 14, no. 4, pp. 305–317, 2010.
- M. Jacob, S. Schön, U. Weinbach, and T. Kürner, “Ray tracing supported precision evaluation for GPS indoor positioning,” in Proceedings of the 6th Workshop on Positioning, Navigation and Communication (WPNC '09), pp. 15–22, Hannover, Germany, March 2009.
- J. Bradbury, M. Ziebart, P. A. Cross, P. Boulton, and A. Read, “Code multipath modelling in the urban environment using large virtual reality city models: determining the local environment,” Journal of Navigation, vol. 60, no. 1, pp. 95–105, 2007.
- J. He, K. Pahlavan, S. Li, and Q. Wang, “A testbed for evaluation of the effects of multipath on performance of TOA-based indoor geolocation,” IEEE Transactions on Instrumentation and Measurement, vol. 62, no. 8, pp. 2237–2247, 2013.
- R. Kumar and M. Petovello, “A novel GNSS positioning technique for improved accuracy in urban canyon scenarios using 3D city model,” in Proceedings of the 27th International Technical Meeting of the Satellite Division of the Institute of Navigation (ION GNSS '14), pp. 2139–2148, The Institute of Navigation, Tampa, Fla, USA, September 2014.
- Trimble GNSS planning, August 2015, http://www.trimble.com/gnssplanningonline/#/SkyPlot.
- A. S. Glassner, An Introduction to Ray Tracing, Academic Press, 1989.
- M. Pharr and G. Humphreys, Physically Based Rendering: From Theory to Implementation, Morgan Kaufmann Publishers, 2010.
- J. M. Kelly, M. S. Braasch, and M. F. DiBenedetto, “Characterization of the effects of high multipath phase rates in GPS,” GPS Solutions, vol. 7, no. 1, pp. 5–15, 2003.
- V. U. Zavorotny, S. Gleason, E. Cardellach, and A. Camps, “Tutorial on remote sensing using GNSS bistatic radar of opportunity,” IEEE Geoscience and Remote Sensing Magazine, vol. 2, no. 4, pp. 8–45, 2014.
- M. G. Petovello, C. O'Driscoll, G. Lachapelle, D. Borio, H. Murtaza, and M. G. Petovello, “Architecture and benefits of an advanced GNSS software receiver,” in Proceedings of the International Symposium on GPS/GNSS, p. 11, Tokyo, Japan, November 2008.
- E. D. Kaplan and C. J. Hegarty, Understanding GPS: Principles and Application, Artech House, Norwood, Mass, USA, 2nd edition, 2006.
- E. M. Mikhail, Observations and Least Squares, Harper & Row, 1976.
- F. A. Jenkins and H. E. White, Fundamentals of Optics, McGraw-Hill, 3rd edition, 1957.
- T. Möller and B. Trumbore, “Fast, minimum storage ray-triangle intersection,” Journal of Graphics Tools, vol. 2, no. 1, pp. 21–28, 1997.
- J. P. Mena-Chalco, “Ray/Triangle Intersection,” 2015, http://www.mathworks.com/matlabcentral/fileexchange/25058-ray-triangle-intersection.
Copyright © 2015 Naveen S. Gowdayyanadoddi et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.