## 3 Data Analysis
### Experimental Setup and Metrics  
We consider an urban deployment where a receiver (Rx) moves along a street and the transmitter (Tx) is fixed at a certain height. We explore different LoS/nLoS conditions of the channel between Tx and Rx by considering the following three scenarios:  
* _SceLoS_: Rx moves in a straight line in the line of sight of Tx (Figure 1a),
* _SceNLoS_: Rx moves in a straight line not in the line of sight of Tx (Figure 1b),
* _SceTurn_: Rx makes a 90-degree turn moving from LoS to nLoS of Tx (Figure 2).  
Before performing the ray-tracing modeling, we divide a considered Rx trajectory \(T\) into \(S\) segments of length \(\Delta s\). A receiver, \(\text{Rx}_{s}\), is then placed at the starting point of each segment, and ray-tracing between Tx and \(\text{Rx}_{s}\) is performed separately for each \(s=1,\ldots,S\). In what follows, we refer to the position of \(\text{Rx}_{s}\) as step \(s\) of trajectory \(T\), and to \(\Delta s\) as the step size. Note that depending on the considered application--speeding-up ray-tracing simulations or beam tracking--the step size may correspond to the size of the grid utilized for beam tracking or time intervals between beam-tracking events.  
Our task is to determine the similarity in the data between steps of the Rx's trajectory. We focus on three parameters of interest: (i) angle of arrival (AoA), (ii) angle of departure (AoD), and (iii) path loss. For each step \(s=1,\ldots,S\) of a trajectory \(T\), the ray-tracing procedure yields a set \(\mathcal{I}_{T}(s)=\{i_{s,1},i_{s,2},\ldots\}\) of rays that have reached \(\text{Rx}_{s}\) within the preset number of reflections. Because we usually consider one trajectory at a time, index \(T\) is omitted whenever practical. We denote the cardinality of the set by \(I(s)=|\mathcal{I}(s)|\geq 0\) and index the rays therein according to their path loss so that ray \(i_{s,1}\) is the strongest. For each ray \(i_{s,j}\in\mathcal{I}(s)\), we collect (i) its azimuth and elevation angles of arrival, which we denote by \(\varphi_{s,j}^{\text{AoA}}\) and \(\theta_{s,j}^{\text{AoA}}\), respectively; (ii) its azimuth and elevation angles of departure, denoted by \(\varphi_{s,j}^{\text{AoD}}\) and \(\theta_{s,j}^{\text{AoD}}\), respectively; and (iii) the path loss in dB, denoted by \(PL_{s,j}\). Thus, the elements of \(\mathcal{I}(s)\) are tuples of the form \(i_{s,j}=\left(\varphi_{s,j}^{\text{AoA}}\theta_{s,j}^{\text{AoA}},\varphi_{s, j}^{\text{AoD}},\theta_{s,j}^{\text{AoD}},PL_{s,j}\right)\). However, it can be practical to conduct analysis from the perspective of Tx using AoD and  
Figure 1: Straight\(-\)line scenarios, \(\Delta s=30\) cm.  
Figure 2: Considered Rx trajectories for scenario _SceTurn_ with different step sizes \(\Delta s\).  
from the perspective of Rx using AoA separately. Therefore, we split the previous tuples and consider two sets of triplets:  
\[\mathcal{I}^{\text{AoA}}(s) =\Big{\{}\Big{(}\varphi_{s,j}^{\text{AoA}},\theta_{s,j}^{\text{AoA} },PL_{s,j}\Big{)}:\Big{(}\varphi_{s,j}^{\text{AoA}},\theta_{s,j}^{\text{AoA}}, \theta_{s,j}^{\text{AoD}},\theta_{s,j}^{\text{AoD}},PL_{s,j}\Big{)}\in\mathcal{I }(s)\Big{\}},\] \[\mathcal{I}^{\text{AoD}}(s) =\Big{\{}\Big{(}\varphi_{s,j}^{\text{AoD}},\theta_{s,j}^{\text{AoD }},PL_{s,j}\Big{)}:\Big{(}\varphi_{s,j}^{\text{AoA}},\theta_{s,j}^{\text{AoA}}, \theta_{s,j}^{\text{AoD}},PL_{s,j}\Big{)}\in\mathcal{I}(s)\Big{\}}. \tag{1}\]