# Software-Defined NB-IoT Uplink Framework--The Design, Implementation and Use Cases
## 3 Related Work
The paper [16] contains a description of a tool for generating the basic downlink synchronization signals only, excluding broadcast channel. Hence, this concept may be treated as the NB-IoT vector signal generator instead of integrated framework. In [1], authors described the process and issues involving development of the NB-IoT network simulator. The paper identified the key differences between the NB-IoT and LTE as well as the presence of NB-IoT in the 5G network. Moreover, authors also indicated the need for differentiating the analytical model and the network evaluation solutions. The evaluation solutions, understood as the network simulators, must be based on two parts: the main simulator and the testbed or emulator. In [1], the network simulator was developed, based on the ns-3 LENA and following a modular programming paradigm. This approach allowed authors to adapt existing software to realize new simulation features. Nevertheless, the presented research refers to an ongoing project and, thus, does not cover all the NB-IoT-related procedures. It is important to mention that, apart from a few similarities between [1] and the approach presented in this paper, the proposed framework supports low-level programming abilities based on extracted and block-structured physical layer procedures with an auxiliary set of reference vectors to provide the proper testing tools for every stage of NB-IoT implementation. Apart from the studies analyzing NB-IoT particularly, the didactic trends regarding programming education in general should be examined as well. The rapid expansion of the software itself into various branches of science determines the necessity of introducing the programming context within the academic courses. Furthermore, many researchers emphasize that this issue should concern the whole way of thinking rather than focus on specific syntax teaching [24; 25]. Multiple papers indicate the importance of block-structured programming teaching, involving real projects and active learning techniques to effectively encourage students to acquire knowledge and to provide them with the wider perspective of the given topic [24; 25; 26; 27]. The commercial market demands determine the additional aspects of the academic programming education, especially in the context of digital signal processing. Hence, more complex implementation issues should be also taken into account, e.g., testing or optimization and parallel computing [28; 29; 30; 31]. The literature review shows that the decomposition of the NB-IoT framework into separate and independent modules is desired, from both scientific and educational points of view. Since each functional module may be investigated separately, students may focus more precisely on the logical operations, which may improve the whole didactic process [32]. Such methodology is widely spread due to the growing popularity of information and communications technology (ICT) and technology in general. The mentioned didactic approach gives the possibility of adjusting the academic process with regard to students' capabilities and dynamic changes in technology [33; 34]. It allows students to implement their own functional modules, also as the Hardware Description Language (HDL) Intellectual Property (IP) cores for the Field-Programmable Gate Arra (FPGA) chips, and further test and optimize them. In the literature, the power consumption minimization directly related to optimal software implementation is stressed as well. Unfortunately, in the publications such as [35], authors were focused on investigating the modes of operations described in the standard, not the NB-IoT software implementation itself, due to the usage of the commercially available NB-IoT modems. As a consequence, no extensive modifications of the modem operation were allowed and possible. The provided framework eliminates this limitation and ensures a fully adjustable implementation of the transmitter path.