# Advanced SDR-Based Custom OFDM Protocol for Improved Data Rates in HF-NVIS Links
## 2 Materials and Methods
### Development of a Standalone Application  
A standalone graphical application was developed as a means of facilitating the transmission and reception of HF OFDM. This involved the creation of a Python 3-based application, which employed GNU Radio libraries for signal processing and the Qt library for the development of a graphical user interface. The application was devised with the objective of facilitating HF chat messaging and file transfer utilizing the OFDM protocol and channel aggregation. The following section provides a comprehensive description of the implementation process. Flowgraph Design of GNU Radio  
GNU Radio Companion V.3.10 (GRC): The preliminary configuration of the signal processing sequence is developed within the GRC, a graphical user interface that facilitates the arrangement of blocks via a drag-and-drop mechanism, thus defining the signal processing chain. The aforementioned graphical workflow is responsible for the modulation, demodulation, and aggregation processes, as previously outlined. Integration with Python Script  
Figure 6: Combined packages received from different channels and output data. Generation of Python V.3 code: Once the flowgraph has been designed in GRC, it can be generated in a Python script. This script serves as the basic component of the application, taking responsibility for managing the data flow, signal processing, and interaction with the underlying hardware. The Python script can be customized to meet specific requirements. The generated Python script is then modified to facilitate integration with the Qt-based graphical user interface (GUI). This involves adding tabs and buttons to allow direct manipulation of various parameters, including frequency settings, modulation parameters, and channel aggregation options via the GUI. Qt-based graphical user interface (GUI)  
Qt library integration: The application uses the Qt library to build a standalone GUI. This is done using PyQt or PySide, Python bindings for the Qt library. These libraries allow developers to build sophisticated, cross-platform GUIs. The transmitter interface, which is responsible for transmitting the signal in the HF OFDM transmitter, is as follows:  
Figure 7 illustrates the transmitter interface. The figure shows a simple text box for sending messages, buttons for attaching files, and a real-time spectrum analyzer (Rx Spectrum) that displays the transmitted signal. The GUI allows users to send text messages or files by clicking on the appropriate buttons. The transmitted signal spectrum is displayed in real time, providing the user with visual feedback on the quality of the transmission and bandwidth utilization. The receiver interface (HF OFDM RECEIVER) is as follows:  
Figure 8 shows the receiver interface, which includes both a frequency sink and a waterfall sink graph. The graphs allow the visualization of the received signal in terms of frequency spectrum and time, respectively. Figure 7: HF OFDM TRANSMITTER—graphical user interface (GUI). Subsequently, an HF chat window is displayed to show incoming messages. In addition, the user has the option to save the messages or clear the chat history using the buttons provided. Furthermore, the receiver GUI includes controls for frequency adjustment and other settings (Figure 9), enabling the user to adapt to changing channel conditions or interference. Develop the standalone application  
Once this is complete, the application must be packaged. In order to create a standalone application, tools such as PyInstaller were employed to package the Python scripts and all dependencies into a single executable. This step is mandatory for deploying the application to different systems, and eliminates the need for users to manually install Python or GNU Radio. Improved usability: additional features such as file logging, error correction, and encryption could be integrated into the application to improve usability and security, especially for the chat and file transfer features.