1) Experiment Overview
Experiment Definition: This experiment is a GNU Radio based OFDM transmission between two AERPAW Nodes, one node acting as transmitter and one node acting as receiver. The minimal representative working environment for this experiment is with LW1 as the AFRN and any APRN. At the end of the experiment, the user can view test results from 3 files containing GNU Radio logging, raw output text, and timestamped output text.
Experiment Goals: The main goal of this experiment is to use GNURadio to send and receive data using an OFDM waveform.
Software version
Ubuntu version 18.04
GNU Radio version v3.8.5
UHD version 4.3
USRP Tx Gain (sets the gain of variable PA in the USRP in the range of 0 to 89 for B series, 0 to 30 for X310): default is 0 dBFS which has been determined for the external Tx RF front end.
USRP Rx Gain (sets the gain of variable PA in the USRP in the range of 0 to 76 for B series, 0 to 30 for X310): default is 0 dBFS which has been determined for the external Rx RF front end and Tx/Rx isolation.
USRP Sampling Rate
USRP Center Frequency
Tx/Rx Duration: sets the length of time that the Tx or Rx flowgraphs will run for in seconds. The default value is 60.
Modulation: sets the modulation used. Options include BPSK, QPSK, and 16QAM.
Fig. 1. OFDM RX Flowgraph in gnuradio-companion
Fig. 2. OFDM TX Flowgraph in gnuradio-companion
2) Performing the Experiment:
2.A) Choosing the Experiment Mode
Transmitter
We assume the transmitter is a fixed node. Login to the E-VM corresponding to the fixed node. Navigate to the folder containing all the Radio scripts
$ cd /root/Profiles/ProfileScripts/Radio
Copy the channel sounder transmitter script as startRadio.sh
$ cp Samples/startGNURadio-OFDM-TX.sh startRadio.sh
Use an editor to uncomment the line /Radio/startRadio.sh in /root/startexperiment.sh and run the following command:
$ /root/startexperiment.sh
Receiver
We assume the receiver is a portable node. Login to the E-VM corresponding to the portable node. Navigate to the folder containing all the Radio scripts
$ cd /root/Profiles/ProfileScripts/Radio
Copy the channel sounder transmitter script as startRadio.sh
$ cp Samples/startGNURadio-OFDM-RX.sh startRadio.sh
Use an editor to uncomment the line /Radio/startRadio.sh in /root/startexperiment.sh and run the following command:
$ /root/startexperiment.sh
3) Modifying the Experiment Configuration Parameters:
Navigate to the radio helpers folder:
$ cd /root/Profiles/ProfileScripts/Radio/Helpers
Open editor of your choice and edit startOFDMRX.sh and startOFDMTX.sh
$ vim startOFDMRX.sh
and
$ vim startOFDMTX.sh
Change Mode between BPSK (2), QPSK (4), 16QAM (16):
change MOD=4 (default QPSK) to either 2 for BPSK or 16 for 16QAM
In startOFDMTX.sh, the time duration parameter can be change as:
duration = 60 (or the time you want your flowgraph run for (in sec))
The shell script /root/Profiles/ProfileScripts/Samples/startGNURadio-OFDM-TX.sh calls the script /root/Profiles/ProfileScripts/Radio/Helpers/startOFDMTX.sh which can be edited by the experimenter to modify the parameters of the transmitter.
The shell script /root/Profiles/ProfileScripts/Samples/startGNURadio-OFDM-RX.sh calls the script /root/Profiles/ProfileScripts/Radio/Helpers/startOFDMRX.sh which can be edited by the experimenter to modify the parameters of the receiver.
4) Results:
The experiment generates three files under the /root/Results folder. One file contains the timestamped GNURadio logging output with SNR information. The second contains the text that was received by the receiver. The third file contains the same text with timestamped output. These files are shown in Figures 3, 4, and 5.
Fig. 3. Example GNU Radio log
Fig. 4. Example output text from out.txt
Fig. 5. Example output text from ts_out.txt
NOTE:
If MODULENOTFOUNDERROR occurs see https://wiki.gnuradio.org/index.php/ModuleNotFoundError
In the official gnu-radio wiki