# Software-Defined NB-IoT Uplink Framework--The Design, Implementation and Use Cases
## 3 Related Work  
The SDR-based concept of modern radiocommunication systems is widely presented in the literature. Available powerful simulation environments, such as Matlab [16], Simulink [17], or Labview [18], provide toolkits for developing sample testbeds or analyzing the real radio signals. Each of the mentioned tools and methods may be used for didactic purposes, especially if the goal is to analyze the LTE protocol stack and the physical layer. Nevertheless, conducting the didactic or research activities, when the signals generated in the simulation environment must be processed in real time, e.g., for the SDR platform, is problematic. Furthermore, except for scientific and educational benefits that may be derived from simulation software usage, such tools may be questionable in the context of industry, where every part of software must meet the requirements of real hardware platforms and cannot contain licensed code from the third parties with licensing restrictions. At the academic stage of education, the low-level programming and implementation should be definitely used to demonstrate the principles of basic radiocommunication operations and signal processing methods. In the state-of-the-art research studies, many examples of the IoT and NB-IoT networks may be found. Nevertheless, none of the presented examples allow decomposition of the basic operations within NB-IoT uplink and downlink enabling thorough study concerning low-level programming of signal processing procedures. According to the publications review, a few trends may be observed, where the main goal was to make the development of the NB-IoT networks simple and well investigated. In [19], authors presented the scope of IoT simulators, e.g., the OMNeT++ and IOTSim, underlining the increase in the popularity of the IoT networks and the need for testing the proof-of-concept during the research studies. Although the paper [19] presents an extensive study of the simulators, they cannot be used for the NB-IoT interface decomposition due to the incompatibility with the standards. In [3; 14], authors investigated the operation of the entire NB-IoT networks deployed on a wide area. Naturally, these frameworks are advanced in the scope of protocol layers analysis or even considering the energy efficiency of the NB-IoT nodes [3]; nonetheless, they are directed at scientific research rather than educational purposes, and cover neither the issue of the physical layer analysis nor NB-IoT software development. In other research [20], authors presented a realization of a protocol simulator for the NB-IoT communication. The content of the paper is focused on the uplink physical layer, channel, and transmission scheduling. In the paper, authors presented the definition and organization of the Narrowband Physical Uplink Shared (NPUSCH) channel, as well as the transmission operation chain. Mentioned operations are compliant with [2; 21] 3 GPP standards and correspond to the framework described in the given paper, yet the final realization is different. The developed software [20], based on Matlab and Python languages, should be treated as a high-level programmed black box or the model for partial NB-IoT simulations, e.g., without the extensive studies of the SC-FDMA scheme or execution on several platforms. In [16; 22], the authors proposed a software-defined tool suitable for generating the NB-IoT downlink signal or complete uplink frames. Software described in [22] is based on the open-source LTE-Sim simulator [23]. It provides extensive LTE network simulations, including the physical layer functionalities, protocols development, and architecture optimization. Despite following Release 9 of the 3 GPP standard, authors introduced additional functionalities dedicated to the NB-IoT interface that were included in Release 13. Nevertheless, the proposed tool was designed to simulate the entire network operation rather than analyze the particular communication layers.