# On Mitigating the Effects of Multipath on GNSS Using Environmental Context Detection
## 4 Context-Aware Navigation (CAN)
### Working of a CAN-Enabled GNSS Receiver  
A GNSS receiver consists of a radio frequency (RF) front-end, signal-processing module and a data processing unit. The RF front-end performs amplification, frequency-down conversion and the digitization of a received signal. The digitized signal is then passed to a signal-processing module where acquisition and tracking is performed to recover the navigation message. Finally, in the data processing unit, the navigation message is decoded, and the positioning parameters are estimated. This is the case of a standard receiver, which is freely available. However, the CAN receiver has the added feature of context detection, which is achieved by forming a recursive closed loop of the position and navigation parameters block with the tracking loop. The position and navigation block passes the positioning parameters to the CAN algorithm block, which characterizes the environment and then adopts a mitigation strategy, which is based upon changing the tracking-loop parameters in order to handle the wider dynamics to counter the multipath effects. A complete design and working model of the CAN GNSS receiver is shown in Figure 5. The flow-chart of this receiver is given in Figure 6, which explains the working of the CAN receiver in detail. Figure 5: A GNSS receiver design based on the context-aware navigation (CAN) algorithm. The CAN receiver starts by acquiring the signals and then performing tracking of the desired constellations. In the case of the four constellations used in this paper, the minimum number of satellites required for a positioning solution is 7. If the locked satellites are greater than 7, the receiver passes the measurements to the next level for positioning estimation, and the same information is also passed to CAN for initializing the observation windows of 1 min. In each observation window, the average number of satellites (\(nSV_{avg}\)) and change factor (\(CF\)) are computed. The CAN uses \(nSV_{avg}\) and \(CF\) as the input parameters and then assigns categories to the measurements based on the context definitions given in Equation (1), which classifies the environment into three categories, named standard, degraded and highly degraded, which are encoded as 0, 1 and 2, respectively. The CAN recognizes the environment as standard when \(nSV_{avg}\geq 30\) and \(CF\leq 0.2\). The context definition for a degraded environment is \(30<nSV_{avg}\leq 15\) and \(0.2<CF\leq 0.6\) and a highly degraded environment is declared when \(nSV_{avg}<15\) and \(CF>0.6\). Once the working environment of the receiver has been detected and characterized, the CAN algorithm decides whether to update the CNR masking level in the case of a degraded environment or to update the tracking loop noise bandwidth in the case of a highly degraded environment. In the case of a standard environment, the algorithm does nothing, and the receiver works in its normal mode. It should be noted that we used four constellations to identify the environment; however, the context definition given in Equation (1) may be changed as per the user requirements based on how many navigation systems are opted for using CAN. \[f(nSV_{avg},CF)=\left\{ \begin{array}{ll}0\ (\text{Standard})&nSV_{avg}\geq 30, \\ &CF\leq 0.2\\ 1\ (\text{Degraded})&30<nSV_{avg}\leq 15,\\ &0.2<CF\leq 0.6\\ 2\ (\text{Highly degraded})&nSV_{avg}<15,\\ &CF>0.6\end{array} \right. \tag{1}\]  
Figure 6: A complete workflow of the context-aware navigation (CAN) algorithm, which can detect and characterize the working environment of a GNSS receiver into three categories and then apply an appropriate mitigation strategy as per the detected environment. where \(nSV_{avg}\) is the average number of satellites in an observation window of 1 min and \(CF\) is the change factor computed as  
\[CF=\frac{nSV_{max}-nSV_{min}}{nSV_{max}} \tag{2}\]  
where \(nSV_{max}\) and \(nSV_{min}\) are the maximum and minimum number of satellites tracked in an observation window of 1 min.