4 Radio Map Solver

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.

Refer to caption
(a) Scene with a measurement plane.
Refer to caption
(b) Radio map for the measurement plane in (a).
Figure 25: (a) A measurement surface, which is here a plane parallel to the ground, is placed in the scene to capture paths without affecting their propagation, (b) the resulting radio map showing the spatial distribution of channel gains.

A radio map estimates the channel gain (5) from a source to each point on a measurement surface, as illustrated in Figure 25. The measurement surface is partitioned into measurement cells, which are assumed to be planar. 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 surface does not interact with the electromagnetic waves, but only serves to capture the paths that intersect it. Moreover, a ray can intersect the measurement surface at multiple points.

In Section 4.1, we present a definition of radio maps that allows for their efficient computation using SBR. This approach makes the computation of radio maps both fast and scalable.

4.1 Definition of Radio Map

We define radio maps as path integrals, similar to how measurements are defined in computer graphics [23, 24, Section 3.7]. Consider a point source 𝐬. The measurement surface, denoted by , is divided into NM cells Mi, for i=1,,NM, each of area |Mi|. Ignoring diffraction for now, let 𝒜 denote the union of all scatterer surfaces in the scene. We define

𝒜=𝒜××𝒜 times (39)

as the set of all sequences of vertices representing interactions with scatterers surfaces—that is, all paths of length that are not diffracted,

p=(𝐯(1),,𝐯()). (40)

A path from 𝐬 to a point 𝐭 can be written as (𝐬,p,𝐭), though for brevity we refer simply to the path p. Note that 𝒜0 corresponds to the LoS path from 𝐬 to 𝐭.

Focusing on paths of a fixed length , we define the radio map value for the i-th cell as follows:

Ci()=1|Mi|Mi𝒜e(p)𝒱(p)w(p)𝑑μ()(p)𝑑𝐭 (41)

where d𝐭 is an infinitesimal surface element on the measurement surface Mi, and μ()(p) is the area-product measure on the scattering surface, i.e.,

dμ()(p)=dA(𝐯(1))dA(𝐯()). (42)

𝒱(p) is the indicator function which equals to 1 if the path is not occluded and 0 otherwise, and e(p) is the channel gain for the path, defined as

e(p)=λ4π𝐓𝐂T(θT,φT)22. (43)

Here, λ is the wavelength, 𝐂T is the 2-dimensional complex vector of the transmit antenna pattern evaluated at the departure angles (θT,φT) of p, and 𝐓 is a 2×2 complex matrix modeling the effects of scatterers and free-space path loss along p. Unlike in (4), the receive antenna pattern is not applied; instead, the squared norm of the electric field is used. This corresponds to assuming a receiver equipped with an isotropic antenna whose polarization is matched to the one of the incident wave. Note that since e(p) is the squared norm of the electric field amplitude, the radio map represents a non-coherent sum of the path gains.

In (41), w(p) restricts which paths are considered:

w(p)=i=1w(i)(𝐤^i(i),𝐤^s(i)), (44)

where 𝐤^i(i) is the incident wave direction at the i-th interaction, 𝐤^s(i) is the scattered wave direction at the i-th interaction, and w(i) depends on the types of interactions considered for the i-th interaction. For instance, if only specular reflections and refractions are allowed at the i-th interaction,

w(i)(𝐤^i(i),𝐤^s(i))=δ(𝐤^s(i)𝐤^i(i)2(𝐧^𝖳𝐤^i(i))𝐧^s(i)𝐤^i(i)2(𝐧^𝖳𝐤^i(i))𝐧^s(i)2)Specular reflection+δ(𝐤^s(i)𝐤^i(i))Refraction (45)

where 𝐧^ is the normal to the scatterer’s surface. Although w(p) could in principle be absorbed into e(p), as usually done in the computer graphics literature, we keep it separate for clarity.

The overall radio map value for the i-th cell is given by summing over all possible path depths =0,1,,:

Ci==0Ci()=1|Mi|Mi=0𝒜e(p)𝒱(p)w(p)𝑑μ()(p)𝑑𝐭. (46)

Relation to computer graphics

Defining radio maps as path integrals closely parallels the measurement equation used in computer graphics (see, e.g., [24, Eq. 3.18]). Specifically, following [24, Chapter 8], the radio map definition (46) can be rewritten as:

Ci=1|Mi|Mi𝒜e(p)𝒱(p)w(p)𝑑μ(p)𝑑𝐭, (47)

where

𝒜 ==0𝒜, (48)
μ(P) ==0μ()(P𝒜) (49)

where P𝒜 is any set of paths. Intuitively, by defining (48) and (49), the infinite sum over path depths in (46) can be replaced with the integral in (47). This provides a path integral formulation for the radio map, analogous to [24, Eq. 8.5]. This analogy enables the use of computer graphics techniques for radio map computation, including methods for improving sample efficiency.

It is important to note that this analogy does not extend to the path solver, which is not concerned with evaluating an integral but rather with finding a set of paths, which are not aggregated into a single scalar value. However, if the objective is limited to calculating channel tap coefficients, then a similar analogy can be made. Considering a target 𝐭, the definition of a channel tap coefficient  [25, Eq. 2.36] can be rewritten as:

hi=𝒜a(p)𝒱(p)w(p)sinc(iτ(p)Ts)𝑑μ(p) (50)

where, i denotes the tap index, a(p) is the complex-valued path coefficient (4), τ(p) the propagation delay, and Ts the sampling period. Note that, as previously mentioned, p is a shorthand for the path (𝐬,p,𝐭). Unlike [25, Eq. 2.36], an integral is used (instead of a sum) to account for the continuous set of propagation directions. In this equation, each tap coefficient can be interpreted as a measurement. However, in contrast to computer graphics and radio map computations—which involve a non-coherent sum of amplitude magnitudes—the tap coefficients involve a coherent aggregation of the path contributions, since the complex-valued a(p) is used rather than only its amplitude. The same analogy applies to the channel frequency response (see, e.g., [25, Eq. 3.138]), for which each frequency bin is likewise treated as a measurement.

While the definition (46) is comprehensive, it is not practical for computation as-is. Indeed, directly integrating over the surfaces of the measurement cells would require connecting points on the measurement surface to the source, for example by placing one or more targets within each cell and using the path solver to compute the connecting paths. However, because accurately computing fine-grained radio maps typically demands a large number of target points, this approach is computationally prohibitive. Instead, we use Monte Carlo integration with a single SBR loop to efficiently estimate the value of each cell. However, SBR is not applicable to paths that include diffraction: as explained in Section 3.1, the probability of a ray intersecting an edge is zero. To address this, Sionna RT computes the radio map in two steps, as illustrated in Figure 26. First, the radio map is computed for all interaction types except diffraction using a single SBR loop; wedges near the source are detected and stored during this step. Second, only diffracted paths are computed. Currently, Sionna RT supports only first-order diffraction for radio map computation, i.e., paths connecting the source to the measurement surface through a single diffracting wedge. The two radio maps are then summed to obtain the final result. The following describes the computation for each step.

Refer to caption
Figure 26: Computation of the radio map in two steps: first, the radio map is computed for all interaction types except diffraction using a single SBR loop; second, only diffracted paths are computed. The two radio maps are then summed to obtain the final radio map.

4.2 Computation of Radio Map without Diffraction

When diffraction is ignored, the radio map can be efficiently computed using a single SBR loop. This is achieved by reformulating the radio map definition (46) so that the integration is performed over the directions of rays originating from points that spawn ray tubes intersecting the measurement surface, rather than directly over the measurement surface itself. This is enabled by applying the change of variables d𝐭=r2cosθdω, where r is the length of the ray tube on the measurement surface, θ is the angle between the incident ray and the normal of the measurement surface, and dω is the infinitesimal solid angle subtended by the ray tube (see Section 2.4). Thus, d𝐭 represents the intersection area of the ray tube on the measurement surface. With this change of variables, the radio map definition (46) can be rewritten as:

Ci=1|Mi|=0𝒜Ωe(p)𝒱(p)w(p)r2cosθ𝑑ω𝑑μ()(p). (51)

where Ω is the set of all directions of rays originating from points that spawn ray tubes intersecting the measurement surface, typically a hemisphere or a sphere.

Expression (51) can be estimated as follows. Paths are generated by launching NS rays from the source 𝐬 and tracing their interactions with the scene geometry, thus performing a Monte Carlo integration over the surfaces of the scatterers 𝒜. Intuitively, when a ray intersects a scatterer surface, it samples a surface element ΔA that corresponds to the ray tube intersection area, given by ΔA=r2cosθΔω, where r denotes the ray tube length, θ is the angle between the incident ray and the surface normal, and Δω is the solid angle subtended by the ray tube. The maximum path depth is set to L<, and since a single path may intersect the measurement surface at multiple depths, all path depths =0,1,,L are considered. Interaction types (specular reflection, refraction, or diffuse reflection) are sampled according to (20).

Refer to caption
(a) Specular reflection
Refer to caption
(b) Diffuse reflection
Figure 27: A specular reflection (left) deviates the incident ray tube, while a diffuse reflection (right) spawns a new ray tube. Shown in 2D for clarity.

This process leads to the following Monte Carlo estimator for the radio map (51):

C^i=1|Mi|n=1NS=0Le(pn())𝕀(pn())βn()Pr(𝝌n()), (52)

where pn() denotes the n-th path at depth ; 𝕀(pn()) is an indicator function equal to 1 if pn() intersects the measurement surface at depth and 0 otherwise; and Pr(𝝌n()) is the probability of sampling the specific sequence of interaction types 𝝌n() corresponding to pn(). βn() is a weighting factor that incorporates the intersection area of the ray tubes on the scatterer and measurement surfaces, and thus absorbs the factor r2cosθ,

βn()=i=1nrtri2cosθiΔωi, (53)

where, for the n-th path at depth , nrt is the number of ray tubes that constitute the path, ri is the length of the i-th ray tube, θi is the angle between the incident ray tube and the surface normal, and Δωi is the solid angle subtended by the i-th ray tube. In the current propagation model of Sionna RT, only the source 𝐬 and diffuse reflection points act as point sources that spawn new ray tubes, whereas specular reflection and refraction points merely deviate existing ray tubes rather than spawning new ones. This is illustrated in Figure 27. The source emits NS ray tubes, each subtending a solid angle of 4πNS, while each diffuse reflection point spawns a single ray tube, uniformly sampled over the hemisphere, with a solid angle of 2π. Thus, nrt equals the number of diffuse reflection points along the path plus one.

4.3 Computation of Radio Map due to Diffraction

The Sionna RT radio map solver currently supports only first-order diffraction, i.e., paths connecting the source to the measurement surface via a single diffracting wedge. For clarity, we consider diffraction on a single edge , defined by an origin 𝐨, an edge vector 𝐞^, and length L. Sionna RT processes all such wedges found near the source (see Figure 26) in parallel.

For a single diffraction wedge, the radio map definition (46) is rewritten by integrating along the edge instead of the scattering surface 𝒜:

Ci(𝒟)=1|Mi|Mi0Le(p)𝒱(p)w(p)𝑑x𝑑𝐭. (54)

Here, the inner integral is over the diffraction point position x along the edge , i.e., 𝐯=𝐨+x𝐞^, while the outer integral is over the measurement cell Mi. The function w(p) ensures the scattered wave lies on the Keller cone:

w(p)=δ((𝐯𝐬)𝖳𝐞^𝐯𝐬2cosβ0(𝐭𝐯)𝖳𝐞^𝐭𝐯2cosβ0=0), (55)

where β0 and β0 are the angles between the edge and the incident and diffracted wave, respectively (see Figure 5(b)).

Direct integration over the measurement surface is inefficient, as it would require connecting surface points to the source (for example, by placing targets within each cell and running the path solver). To overcome this, consider an orthogonal basis (𝐭^0,𝐧^0,𝐞^), where 𝐧^0 is the normal to a wedge face and 𝐭^0×𝐧^0=𝐞^, as illustrated in Figure 28. For a given angle of incidence β0, any point on Mi that can be reached by a diffracted ray can be written as:

𝐭=𝐨+x𝐞^𝐯+γ(sinβ0cosϕ𝐭^0+sinβ0sinϕ𝐧^0+cosβ0𝐞^)𝐤^s. (56)

Here, 𝐯 is a point on the edge parametrized by x, 𝐤^s is the direction of the diffracted ray (with ϕ the Keller cone azimuth), and γ>0 is the distance for which the ray from 𝐯 in direction 𝐤^s intersects the measurement cell Mi (see Figure 28). Since a ray and a plane intersect at most once, 𝐭 is uniquely determined by x and ϕ, and thus 𝐭(x,ϕ) forms a reparametrization of the subset of Mi that can be reached by a diffracted ray when the angle of incidence is β0.

Refer to caption
(a) 3D view
Refer to caption
(b) 2D cross-section
Figure 28: A measurement point 𝐭 reachable by a diffracted ray from a wedge is determined by a distance along the edge x and the Keller cone azimuth ϕ, while the cone opening angle is β0.

With this reparametrization, (54) becomes:

Ci(𝒟)=1|Mi|0Lnπ0Le(p)𝒱(p)w(p)δ𝐭δx×δ𝐭δϕ2𝑑x𝑑ϕ𝑑x (57)

where nπ is the wedge exterior angle, and δ𝐭δx×δ𝐭δϕ2 accounts for the change of variables [26].

The condition in (55) is only satisfied when x=x for a given ϕ, leading to:

Ci(𝒟)=1|Mi|0Lnπe(p)𝒱(p)δ𝐭δx×δ𝐭δϕ2𝑑x𝑑ϕ. (58)

To estimate (58), NS samples are drawn on the wedge: x uniformly in [0,L] and ϕ uniformly in [0,nπ]. This yields the Monte Carlo estimator:

C^i(𝒟)=1|Mi|LnπNSn=1NSe(pn)𝕀(pn)δ𝐭δx×δ𝐭δϕ2 (59)

where pn is the n-th path, 𝕀(pn) is 1 if pn intersects the measurement surface and is not occluded by other scatterers and 0 otherwise, and the weighting factor δ𝐭δx×δ𝐭δϕ2 is computed as described in Annex D.

4.4 Non-Coherent vs. Coherent Radio Maps

The proposed definition of radio maps involves a non-coherent summation of path gains (43). As a result, it does not capture fast fading effects, which result from the constructive and destructive interference of multiple paths. Figure 29 demonstrates this by comparing three scenarios: a radio map generated using the radio map solver, 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.

Refer to caption
Figure 29: Comparison of radio maps: one computed using the radio map solver, one by non-coherently summing path coefficients from the path solver, and one by coherently summing path coefficients from the path solver. The transmitter is depicted as a red ball. All radio maps are computed with a maximum depth of L=3, cell sizes of 10×10 cm, using isotropic antenna patterns on both the transmitter and receiver, and for the “box” scene built in Sionna RT. The “non-coherent sum” and “coherent sum” radio maps are generated by placing a single target point at the center of each measurement cell.

4.5 Handling Multiple Transmit Antennas

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 NAtx denote the number of antennas at the transmitter, and let 𝐮PNAtx be the precoding vector. For a given path connecting the source to the measurement plane, let 𝐄2 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 (36), denoted as 𝐮Atx, leading to

𝐄A=𝐄(𝐮Atx)𝖳. (60)

Here, 𝐄A is a matrix of size 2×NAtx, where each column represents the electric fields radiated by each transmit antenna. The contribution of this path to the radio map is given by

𝐄A𝐮P22. (61)

This expression allows the path’s contribution to the radio map to be represented as

𝐄A𝐮P22=(𝐄(𝐮Atx)𝖳𝐮P)22=𝐄α22 (62)

where α=(𝐮Atx)𝖳𝐮P is a scalar, which depends on the departure direction of the path from the transmitter and thus varies for paths originating from the source. By precomputing α for each path, the effect of the transmitter array can be efficiently simulated by multiplying the electric field of each path by α whenever the path intersects the measurement surface. This operation does not depend on the size of the array.

Refer to caption
(a) Scene with the radio map.
Refer to caption
(b) Computation time vs. number of samples NS.
Figure 30: Computation time for calculating radio maps using an NVIDIA RTX 4090 GPU for a single transmitter with a linear array of 1 to 1024 antennas.

Figure 30(b) illustrates the computation time needed to generate a radio map for a single source as the number of samples NS and the number of transmit antennas NAtx are varied. The setup, depicted in Figure 30(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 30(a) is calculated using 108 samples and a linear array of 512 transmit antennas. Notably, the radio map solver can compute radio maps with 109 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 usage of the radio map solver.

Handling of Dual-Polarized Transmit Antennas

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.5).

4.6 Practical Notes

Mesh-based Measurement Surface

Sionna RT supports mesh-based measurement surfaces, which are defined as collections of triangles (see Section 2.1). In this case, each triangle serves as a measurement cell. Meshes can possess arbitrary topology, making this feature well suited for computing radio maps over complex terrains.

Scaling with the Number of Measurement Cells

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 NS to maintain the accuracy of the estimators (52) and (59), as fewer paths will intersect with each measurement cell, resulting in noisier radio maps.

Early Termination with Russian Roulette and Gain Thresholding

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 r is deactivated when the squared amplitude of the electric field 𝐄22 falls below a user-defined threshold. With Russian roulette, at each iteration, a path continues with a probability given by

prr=min(r2𝐄22,prr,max) (63)

where prr,max 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.

Extension to other Types of Radio Maps

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 [27].