# Software-Defined NB-IoT Uplink Framework--The Design, Implementation and Use Cases
## 6 Analysis of the Results and the Use Cases  
In this section, the benchmark tests of the NPUSCH module of the NB-IoT uplink path are presented. It is one of the possible framework realizations which could be treated as the starting point for the students to work on their own implementations. The framework modules are set to generate a set of complex samples at the output, i.e., the IQ waveform of the radio signal with the 1.92 MHz sampling frequency (compatible with, e.g., SDR USRP devices). Computations were performed on the PC class computer with the Intel Core i7-10700 2.9 GHz processor and 32 GB of DDR4 type RAM. However, as previously mentioned, the framework can be easily executed and investigated on various hardware platforms. Thus, to present results in a more universal and useful way, the normalized times (by means of the total computation time) for sequential processing are presented, where the measurement accuracy was 1 \(\upmu\)s. It should be noted that the framework must operate in real time, which means that cumulative preparation time of one 10 ms radio frame must be shorter than the frame itself. For the benchmark purposes, the prepared input sensor data were generated randomly with uniform distribution, but the TBS ranges were adjusted to maintain the constraints described in the standard. It should be noted that, as an original part of the provided framework, authors share the package for each module or decomposed function, i.e., the input and output vectors with additional parameters of the test matrix that are available under the terms of the CC BY license for educational purposes. At this point, it is worth mentioning that the presented simulation studies were carried out for different sizes of the \(N_{RU}\), \(N_{slots}^{UL}\) and \(N_{SC}\) to obtain the results that will correspond to the real 3 GPP-based NB-IoT network cases. In the real NB-IoT user terminal, the transmission parameters are received from the eNB in the broadcast channel within the master information block (MIB) and system information block (SIB) messages received by the sensor device before the communication. However, for research and teaching purposes, they can be generated separately for different student groups. During the didactic use cases, the data streams can be adjusted, e.g., to the real operation of the data sensors or even show the dependencies how the propagation conditions determine the transmission parameters and the final energy usage of the sensor data transmission. It means that data can be generated more frequently (divided into smaller TBS [38]) for the sensor devices which monitor environmental parameters that change dynamically, e.g., wind speed, or with large time intervals. For the purpose of the sample analysis presented in the article, configurations with all the sizes of the available TBSs were checked, which corresponds to more than 1000 transmissions with a length of 1 frame up to 39 frames. Taking into consideration the character of the computations, such as formulation of the radio frames and the complex signal processing, it was expected that the OFDM generation functional block (Section 5.8.2) will be the one which is the most time-consuming. Thus, it was decided to firstly analyze the proportions of execution time between this module and the rest of the processing chain as a function of the output radio signal length. In Figure 7, the normalized execution time of all the modules, except the OFDM generation, as a function of the generated number of radio frames are shown. As expected, by means of procedural single-thread usage, the disproportion between the OFDM module and the sum of execution times of other modules can be clearly seen. The dependency between the execution time is exponential rather than linear in this case, where minimum value was 1.3% and maximum value reached 19.1%.