116 | | * {{{node_level_sic_fd_gui}}} - Demonstrates node-level self-interference cancellation (SIC) and allows the experimenter to configure the RF canceller printed circuitboard (PCB). |
117 | | * {{{ofdm_link_fd_gui}}} - Creates an FD link between the two FD radios integrated in COSMOS. |
118 | | * {{{prr_fd_gui}}} - Computes the packet reception ratio (PRR) for an FD link. |
119 | | |
120 | | If we open {{{ofdm_link_fd_gui.grc}}}, the following window will show: |
121 | | |
122 | | Finally, clicking the grey-green play button will run the experiment! |
123 | | |
124 | | ||||||Figure 4: An example FD experiment in the COSMOS testbed || |
125 | | || [[Image(GNURadioFDExperiment.2.png,480px)]] || [[Image(ofdm_link_fd_gui.png,480px)]] || |
126 | | || (a) The GNU Radio flowgraph || (b) The experiment GUI || |
| 118 | * {{{wifi_node_level_sic_tune}}} - This is used to configure the Gen-2 FD cancellers. |
| 119 | * {{{wifi_node_level_sic_viz}}} - Once the FD canceller is configured, this flowgraph provides a GUI to demonstrate the node-level operation of one FD radio. |
| 120 | |
| 121 | If we open {{{wifi_node_level_sic_tune.grc}}}, in GNU radio, the following window will show: |
| 122 | |
| 123 | ||||||Figure 4: The {{{wifi_node_level_sic_tune}}} GNU radio experiment, with different functional parts highlighted. || |
| 124 | || [[Image(wifi_node_level_sic_tune_flowgraph.png,640px)]] || |
| 125 | |
| 126 | This simple flowgraph contains three main components. First, highlighted in green, are the variables used to define important parameters for the experiment. {{{freq}}} is the centre frequency for the RF signal to be transmitted, and {{{samp_rate}}} is the bandwidth of the signal. By default, these values are 920 MHz and 10 MHz respectively. The {{{usrp_source_addr}}} and {{{usrp_sink_addr}}} are IP addresses for the USRP X310 we are using to receive and transmit - in this experiment, they should be identical. {{{subdev_spec}}} is the specific transceiver of the USRP X310, and {{{sub20_sn}}} is the serial number of the SUB-20 device for the combination of {{{usrp_source_addr}}} and {{{subdev_spec}}}. More details on these values is provided later on in the tutorial. |
| 127 | |
| 128 | Next, highlighted in blue, are the blocks used to define the GUI sliders for adjusting the configuration of the Gen-2 RF canceller. The "FDE Remote Config" block performs the configuration using the SUB-20 device by sending the values of each slider to the SUB-20 device over the network. |
| 129 | |
| 130 | Lastly, the blocks highlighted in yellow are the data flow for this experiment. The "File Source" block reads a complex-valued baseband signal from a file on the server - this signal represents 802.11a-like data packets with the BPSK 3/4 modulation and coding scheme. This baseband signal is connected to the "USRP Sink", which will transmit the signal from the USRP at the centre frequency specified by {{{freq}}} and the bandwidth specified by {{{samp_rate}}}. The "USRP Source" produces a complex baseband signal received by the radio, and this is fed into a "QT GUI Frequency Sink", which displays the signal on the GUI. |
| 131 | |
| 132 | To start the experiment, first change {{{samp_rate}}} to 20M, by double-clicking on the variable block and entering {{{20e6}}}. Then, press the play button on the top row of icons. After pressing play, the experiment will start loading, and the GUI in Figure 5 below should display. |
| 133 | |
| 134 | ||||||Figure 5: The {{{wifi_node_level_sic_tune}}} experiment GUI, showing a power spectrum of the self-interference and sliders for configuring the Gen-2 canceller. || |
| 135 | || [[Image(wifi_node_level_sic_tune_gui.png,640px)]] || |
| 136 | |
| 137 | The power spectrum shown on the left hand side of the GUI is the self-interference (SI) signal, after the RF canceller has performed RF SI cancellation (SIC) on it. The goal of the configuration GUI is to reduce the SI power as much as possible. It is sufficient for the time being to configure the sliders using the values in Figure 5. A table of "starter configurations" is provided later on in the tutorial for each of the four radios. |
| 138 | |
| 139 | ''Important note: It is not recommended to move the sliders by dragging them. This will cause many configuration requests to be sent to the SUB-20. The GNU Radio GUI elements do not let us specify when to apply the slider value, so it applies it for every value you slide over. It is best to enter values by clicking on the number next to each slider, or clicking along the slider to move it in steps.'' |
| 140 | |
| 141 | '''Node-Level Performance of the Configured FD Radio''' |
| 142 | |
| 143 | Now, we can open the {{{wifi_node_level_sic_viz.grc}}} file into GNU Radio. The flowgraph for this is more complex, and utilizes several blocks which have been developed specifically to support the FD experimentation on COSMOS. A description of each block is provided on the [https://github.com/Wimnet/flexicon_orbit/blob/master/gr-fullduplex/docs/README.md GitHub page] for the source code. |
| 144 | |
| 145 | Change the {{{samp_rate}}} variable to 20M as before, and then press the play button. In this flowgraph, we transmit 802.11a packets with QPSK 3/4 modulation and coding. You should see the GUI in Figure 6. |
| 146 | |
| 147 | ||||||Figure 6: The {{{wifi_node_level_sic_viz}}} experiment GUI, showing the time-domain received waveform after RF SIC and after digital SIC. Also shown are the corresponding constellation diagrams. || |
| 148 | || [[Image(wifi_node_level_sic_viz_gui.png,640px)]] || |
| 149 | |
| 150 | This GUI shows two important features. First is that, even after RF SIC, the SI can still be fully decoded, shown by the clear QPSK constellation diagram. However, after the second stage of SIC on the digital baseband signal, we can see that the constellation diagram shows only noise, and the time domain signal (the black line) is at the noise floor. |
| 151 | |
| 152 | '''Configuring the Other Radios''' |
| 153 | The procedure for the two flowgraphs can be repeated to configure and benchmark the three other FD radios in the testbed. Please see the table below, which provides the USRP IP address, the subdevice specifier, the SUB-20 serial number, and a useful initial configuration. |