Technical Report
In the previous sections, we have detailed the path solver, which computes propagation paths and the related electric fields from a source to a target. Now, we turn our attention to the radio map solver, which computes a radio map (also known as coverage map or power map) for a given scene and source. While we describe the algorithm for a single source, Sionna RT can compute radio maps for multiple sources in parallel.
A radio map estimates the channel gain (5) from a source to each point on a measurement plane, as illustrated in Figure 22. The measurement plane is partitioned into measurement cells of identical size. For each cell, the solver estimates the average channel gain that would be observed by a target placed within that cell. Note that the measurement plane does not interact with the electromagnetic waves, but only serves to capture the paths that intersect it.
In Section 4.1, we present a definition of radio maps that allows for their efficient computation using Monte Carlo integration. This approach, detailed in Section 4.2, makes the computation of radio maps both fast and scalable.
Consider a point source . The measurement plane, denoted as , is partitioned into cells, each with an equal area . The radio map value for the -th cell, where , is defined as:
(33) |
Here, denotes the channel gain at the position on the measurement plane, considering all paths originating from the source . Assuming a discrete set of paths impacts the measurement plane at , can be expressed as
(34) |
where represents the set of all paths with depth that originate from and intersect the measurement plane at . The term is defined as:
(35) |
In this context, is the wavelength, is the number of scatterers along the path , is a complex-valued vector of dimension 2 representing the transmit antenna pattern evaluated at the angles of departure of , , and is a complex-valued matrix modeling the interaction with the -th scatterer. Unlike in (4), the receive antenna pattern is not applied here. Instead, the squared norm of the electric field is used. This is equivalent to assuming that a receiver positioned on the measurement plane uses a dual-polarized isotropic antenna, and that both components are combined non-coherently.
While the definition (33) is comprehensive, it is not directly practical for computation. A straightforward but inefficient method to compute a radio map is to calculate the paths for each measurement cell using the path solver (Section 3) by placing one or more targets within each cell. However, this approach becomes computationally prohibitive as the number of cells increases. Therefore, we reformulate the radio map definition (33) to enable efficient computation via Monte Carlo integration.
To build intuition, let’s first consider the scenario where all paths from the source to the measurement cells are specular chains, meaning they contain no diffuse reflections. In this case, for a given scene and source , a path of depth is fully characterized by its sequence of interaction types and its departure direction . This is because, in specular chains, the direction of the scattered wave at each interaction point is uniquely determined by the interaction type and the direction of incidence, as illustrated in Figure 23. In this case, the definition (33) can be reformulated over the unit sphere centered on , which represents all possible ray departure directions. To achieve this, we define as the path of depth from to , characterized by the departure direction and the sequence of interaction types . The length of the corresponding ray tube is denoted by , and the angle between the plane normal and the path’s incident direction is denoted by . By applying the change of variables , we can reformulate the definition (33) as:
(36) |
In this context, denotes the position on the measurement plane where the path intersects. The double summation is over all path depths (with corresponding to LoS) and all possible sequences of interaction types , excluding diffuse reflections. The indicator function equals if is within and otherwise. If the path does not intersect the measurement plane, then . The integration is carried out over the unit sphere, where represents the infinitesimal solid angle element corresponding to the ray tube in the direction .
To extend the definition to include diffuse reflections, we first modify the definition (36) to explicitly include the sequence of propagation directions of the scattered rays at the interaction points, denoted as . For this purpose, we introduce , representing the sequence of normals at these interaction points. We then define the function , which ensures that the direction of the scattered rays aligns with the interaction type, as follows:
(37) |
where
(38) |
and, is the Dirac delta distribution. The definition in (36) can be then be reformulated as
(39) |
Compared to (36), the definition in (39) integrates over all propagation directions of the scattered rays at the interaction points. The integral over combined with the function merely filters out invalid directions and, strictly speaking, does not perform any other function. However, while the definition in (39) is equivalent to (36), it facilitates the extension to paths with diffuse reflections:
(40) |
where the inner sum covers all possible sequences of interaction types of depth , including diffuse reflections. The path represents a path of depth from the source to the target . This path is defined by the initial propagation direction , the sequence of scattered ray directions , and the sequence of interaction types . Compared to (39), the paths depend on the directions of propagation of the scattered waves, which are not solely determined by the initial propagation directions and interaction types when diffuse reflection occurs. In (40), in (37) is extended to include diffuse reflections as follows:
(41) |
where is the indicator function, which equals if the condition is true and otherwise. Note that in (40), is the length of the ray tube impinging on the measurement plane, which, in the case of paths including diffuse reflections, corresponds to the distance from the intersection with the measurement plane to the last diffuse reflection point.
In practice, we estimate using Monte Carlo integration. Similar to the path solver, we employ random sampling of interaction types (see Section 3.1.2) and limit the integration to paths with a maximum depth of :
(42) |
Assuming samples for Monte Carlo integration, we sample the unit sphere around the source using samples, resulting in initial ray tubes with a solid angle of approximately . For diffuse reflection points, we emit a single ray on the hemisphere, leading to ray tubes with a solid angle of . This results in the following estimator
(43) |
Here, the subscript denotes the -th path, and represents the solid angles of the ray tubes corresponding to sampling the -th integral:
(44) |
In the case of diffuse reflections, the multiplication by the ray tube solid angle is already applied through the computation of the scattered electric field (123). It has been included here for the sake of clarity. As we will see in the next section, this estimator can be efficiently computed using a single SBR loop.
The proposed definition of radio maps involves a non-coherent summation of path gains (35). As a result, it does not capture fast fading effects, which result from the constructive and destructive interference of multiple paths. Figure 24 demonstrates this by comparing three scenarios: a radio map generated using the radio map solver (Section 4.2), a radio map created by non-coherently summing the path coefficients (4) calculated with the path solver (Section 3) by placing a single target at the center of each measurement cell, and a radio map produced by coherently summing the path coefficients (4) calculated with the path solver, also by placing a single target at the center of each measurement cell. The radio map obtained using the radio map solver aligns with the non-coherent summation of path coefficients calculated using the path solver, as anticipated. However, it does not account for fast fading effects, which requires the coherent summation of path coefficients.
The Sionna RT radio map solver supports antenna arrays of any size at the transmitter and allows for user-defined precoding vectors. However, it only supports synthetic arrays. In this setup, paths are generated from a single source located at the center of the array, and the channel response for each individual antenna is calculated by applying the appropriate phase shifts synthetically. This approximation holds true as long as the array size is small compared to the distance from the transmitter to the measurement plane and scatterers.
Using synthetic arrays enables efficient scaling with respect to the number of antennas. To see this, let denote the number of antennas at the transmitter, and let be the precoding vector. For a given path connecting the source to the measurement plane, let represent the electric field observed at the measurement plane. By employing a synthetic array, the corresponding electric fields for each antenna element are obtained by applying the array response vector (30), denoted as , leading to
(45) |
Here, is a matrix of size , where each column represents the electric fields radiated by each transmit antenna. The contribution of this path to the radio map is given by
(46) |
This expression allows the path’s contribution to the radio map to be represented as
(47) |
where is a scalar. Note that depends on the departure direction of the path from the transmitter and thus varies for paths originating from the source. However, it remains independent of the array size. By precomputing for each path, the effect of the transmitter array can be efficiently simulated by multiplying the electric field of each path by once.
The Sionna RT built-in radio map solver calculates the estimator (43) using a single SBR loop. Unlike the path solver described in Section 3, it does not require an image method-based algorithm, as it only needs to test intersections with the measurement plane rather than connecting paths to precisely located target points. Additionally, the electric field for each ray tube is computed dynamically during the SBR loop as the paths are traced.
Algorithm 3 outlines the SBR loop utilized by the Sionna RT radio map solver. While the algorithm is presented for a single path , the radio map solver processes all paths in parallel. The process begins by sampling the departure direction for each ray using a Fibonacci lattice, as detailed in Section 3.1.1. The electric field is initialized using the transmit pattern evaluated at the path’s departure direction . The ray tube length is initially set to zero, and its solid angle is set to , since the initial rays have departure directions on the unit sphere. The radio map is initialized to zero, and the path is marked as active. The SBR loop continues to trace the paths through the scene until a user-defined maximum depth is reached or the ray is deactivated. The loop’s first step involves checking for intersections with the measurement plane. If an intersection is detected, the radio map is updated using the function Add_To_Radio_Map. The ray-plane intersection-checking function is not detailed in this document but is assumed to return the position of the intersection point . The function Add_To_Radio_Map accumulates contributions to the radio map in the vector at the intersected cell entry, as described in (43). Note that by iterating over path depth and adding contributions to the radio map at every iteration, the radio map solver accounts for paths of all depths, from LoS to the maximum depth. The ray tube length is updated with the distance between the last intersection point and the measurement plane intersection point. Additionally, represents the normal vector to the measurement plane, and is the cosine of the angle between the ray direction and the measurement plane normal. The weight accounts for the transmitter array, as explained in Section 4.1.2. Next, the algorithm checks for intersections with the scene. If no intersection is found, the ray is deactivated as it has exited the scene. Otherwise, an interaction type is sampled using the probability distribution from Section 3.1.2, and the radio material is evaluated for the sampled interaction type. This results in the transfer matrix and the scattering direction . Unlike Algorithm 2, the function Sample_Evaluate_Interaction samples the interaction type, scattered direction, and evaluates the radio material. The electric field is updated by applying the transfer matrix and dividing by the probability of the sampled interaction type. If the interaction type is diffuse, the ray tube length is reset to zero, and the solid angle weight is set to , as diffuse reflection points act as new point sources, and as a single ray is emitted in the hemisphere containing the incident direction. Note that in the case of diffuse reflection, the matrix applies the scaling by . The SBR loop concludes by updating the ray tube length with the distance between the last and current intersection points. Finally, the radio map computation is completed by scaling by according to (35), and by the surface area of measurement cells, following the radio map definition in (33).
Figure 25(b) illustrates the computation time needed to generate a radio map for a single source as the number of samples and the number of transmit antennas are varied. The setup, depicted in Figure 25(a), employs the “simple street canyon” scene built into Sionna RT. The red ball indicates the source, positioned 20 meters above the ground. The radio map in Figure 25(a) is calculated using samples and a linear array of 512 transmit antennas. Notably, the radio map solver can compute radio maps with samples on a single NVIDIA RTX 4090 GPU. The computation time increases with both the number of samples and antennas, exceeding one second only for the most demanding computations. It is important to note that while the computation time increases with the number of antennas due to the precomputation of the array weighting factor , it does not increase the memory footprint of the radio map solver (see Section 4.1.2).
The radio map solver supports dual-polarized transmit antennas by considering two independent electric field vectors for each path. These are processed as if they were separate antenna elements (see Section 4.1.2).
A key benefit of the radio map solver is that the compute required to generate the radio map remains constant regardless of the number of measurement cells. However, increasing the number of measurement cells will naturally require more memory for storage. Additionally, when the size of the measurement cells is reduced, it may be necessary to increase the number of samples to maintain the accuracy of the estimator (43), as fewer paths will intersect with each measurement cell, resulting in noisier radio maps.
The radio map solver allows for early deactivation of paths using two techniques: Russian roulette and gain thresholding. With gain thresholding, a path with ray tube length is deactivated when the squared amplitude of the electric field falls below a user-defined threshold. With Russian roulette, at each iteration, a path continues with a probability given by
(48) |
where is the maximum probability, set by the user, for keeping the path active. Both features can be enabled simultaneously and are applied only after a user-defined depth is reached.
The Sionna RT solver currently supports the calculation of channel gain maps, which are radio maps that provide an estimate of the channel gain for each cell. It is possible to extend the solver to calculate other types of radio maps, such as root-mean-square delay spread maps and angular spread maps [18].