# SCATTER PHY: An Open Source Physical Layer for the DARPA Spectrum Collaboration Challenge
## 4 Experiment Results
The purpose of this experiment was to identify the lowest possible SNR at which SCATTER PHY could still correctly decode the user data. This experiment was run by adding a channel emulator between the Tx and Rx sides of a single PHY instance. At the Tx side, the generated subframes, instead of being sent to the USRP HW, were sent to an abstraction layer that emulated the HW and added AWGN noise to the transmitted signal. Next, the abstraction layer transferred the noisy signal to the receiving side of the PHY. The PRR was averaged over 10\({}^{4}\) trials, where at each trial, the Tx side of the PHY sent a single synchronization subframe. As can be seen, synchronization and control signals had a better PRR performance than that of the data decoding; however, SCATTER PHY's PRR performance was limited by the ability to decode correctly the data section of a subframe. Additionally, we see that the data PRR was better for the 1.26 MHz case, which was due to the fact that compared to the other BW values, MCS 0 for the 1.26 MHz case carried more redundancy bits, as shown by Table 2, making it more robust against noise. The other two signals, synchronization and control, presented similar PRR curves for all BW values. Moreover, it is noticeable that the data PRR was equal to 1 for SNR values greater than or equal to 0 dB. Figure 8: Comparison of CFO estimation error (MAPE) in the AWGN channel. Figure 10 presents the result of the comparison of single Rx data decoding and that of a simple Rx combining scheme that can be implemented with SCATTER PHY. The figure shows data decoding PRR results for both receiving schemes. Here in this case, after synchronization (Synch signal detection, CFO estimation/correction, control data decoding, and subframe alignment), the two independently synchronized subframes were combined through a simple average of both subframes as defined in (6). \[r_{\text{comb.}}(n)=\frac{1}{N_{\text{ant.}}}\sum_{i=1}^{N_{\text{ant.}}}r_{ \text{Rx}_{i}}(n), \tag{6}\]  
where \(N_{\text{ant. }}\) is the number of Rx antennas (in our case, \(N_{\text{ant. }}=2\)), \(r_{\text{Rx}_{i}}(n)\) is the subframe synchronized at the \(i^{\text{th}}\) antenna, and \(r_{\text{comb. }}(n)\) is the resulting combined subframe signal. The MCS value used in this experiment for all PHY BWs was zero. As can be seen, the Rx combining scheme employed in this experiment provided a processing gain ranging from 2.5 to 3 dB over the single Rx approach. With this scheme, SCATTER PHY was able to combine the received subframes for improved performance in low SNR scenarios. Figure 9: Comparison of the Packet Reception Rate (PRR) for the different signals carried by a SCATTER PHY subframe. Figure 11 presents the results on the variation of the maximum number of turbo decoding iterations for a PHY Tx BW of 1.27 MHz and three different MCS values, 0 (QPSK), 15 (16 QAM), and 31 (64 QAM). As can be seen, the PRR improved as the number of maximum iterations also increased. As can be also noticed, the PRR improvement was higher for higher MCS values, 15 and 31. This was due to the fact that as the MCS increased, the code rate increased, and consequently, the number of redundancy bits decreased, making the transmit data more prone to errors. Therefore, the probability of successful data decoding increased as the number of maximum turbo decoding iterations increased. Another important point is the trade-off between PRR improvement and the increase in decoding time. As can be verified, the PRR improved at the cost of longer decoding times for low to medium SNR values. Figure 10: Simple Rx combined with SCATTER PHY for several PHY BW values. Figure 12 depicts the memory and CPU utilization of SCATTER PHY, using 1.27, 2.7, 4.5, and 9 MHz bandwidths for several MCS values. The results presented in the figure were obtained by averaging memory and CPU usage values. The memory and CPU usage values were sampled every 200 ms for the experiment's duration.