Changes between Version 28 and Version 29 of Tutorials/Wireless/Full Duplex


Ignore:
Timestamp:
Sep 17, 2020, 5:18:08 PM (4 years ago)
Author:
mpk2138
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/Full Duplex

    v28 v29  
    55* Manav Kohli, Columbia University: mpk2138[at]columbia.edu
    66
    7 Last updated: August 28, 2020
     7Last updated: September 17, 2020
    88
    99== Full-Duplex Wireless in COSMOS ==
    1010
    1111=== Description ===
    12 In this tutorial, we will use the two integrated Gen-2 FD radios equipped with USRP N210 software defined radios (SDRs) and the Gen-2 frequency-domain equalization (FDE) based RF canceller box. The testbed may be accessed via {{{ssh}}}. The PC contains several example experiments, which showcase the capabilities of the FD transceivers.
     12In this tutorial, we will use the two integrated Columbia [http://flexicon.ee.columbia.edu/ FlexICoN] Gen-2 Wideband FD radios equipped with USRP N210 software defined radios (SDRs) and the Gen-2 frequency-domain equalization (FDE)-based RF canceller box. The testbed may be accessed via {{{ssh}}}. The PC contains several example experiments, which showcase the capabilities of the FD transceivers.
    1313
    1414 ||||||Figure 1: Gen-2 FDE Canceller Boxes in COSMOS Sandbox 2 ||
     
    1919For more information about the integration of the FDE-based FD transceivers in COSMOS, please read:
    2020
    21 1. ''Manav Kohli, Tingjun Chen, Mahmood Baraani Dastjerdi, Jackson Welles, Ivan Seskar, Harish Krishnaswamy, and Gil Zussman, “Open-access full-duplex wireless in the ORBIT and COSMOS testbeds,” in Proc. ACM !MobiCom’20 Workshop on Wireless Network Testbeds, Experimental evaluation & CHaracterization (WiNTECH) (to appear) (invited), Sept. 2020'' [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/wintech2020_orbit_cosmos_fullduplex_integration.pdf (Download)]
     211. ''Manav Kohli, Tingjun Chen, Mahmood Baraani Dastjerdi, Jackson Welles, Ivan Seskar, Harish Krishnaswamy, and Gil Zussman, “Open-access full-duplex wireless in the ORBIT and COSMOS testbeds,” in Proc. ACM !MobiCom’20 Workshop on Wireless Network Testbeds, Experimental evaluation & CHaracterization (WiNTECH) (invited), Sept. 2020'' [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/wintech2020_orbit_cosmos_fullduplex_integration.pdf (Download)] [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/mobicom2020_cosmos_fullduplex_demo.pdf (Demo Abstract)]
    22222. ''Tingjun Chen, Mahmood Baraani Dastjerdi, Jin Zhou, Harish Krishnaswamy, and Gil Zussman, “Wideband Full-Duplex Wireless via Frequency-Domain Equalization: Design and Experimentation,” in Proc. ACM !MobiCom'19, Oct. 2019'' [https://wimnet.ee.columbia.edu/wp-content/uploads/2018/12/FDE_MobiCom19.pdf (Download)]
    2323
     
    116116'''Details on configuring the canceller PCB'''
    117117
    118 Using the experiment {{{node_level_sic_fd_gui}}}, the experimenter can configure the RF canceller PCB using the experiment GUI. There are 12 sliders:
     118Using the experiment {{{node_level_sic_fd_gui}}}, the experimenter can configure the RF canceller PCB using the experiment GUI. There are 14 sliders:
    119119 * {{{cap0, cap1, cap2}}} - these control the antenna tuner.
    120120 * {{{att0, att1}}} - The attenuator values for FDE tap 0 and tap 1. Higher values lead to greater attenuation.
     
    182182== Full-Duplex Wireless in ORBIT ==
    183183=== Description ===
    184 In this tutorial, we'll use node11-10 in the main grid (equipped with a USRP N210) to transmit and receive a single tone over the air to demonstrate full-duplex wireless capability using the Columbia [http://flexicon.ee.columbia.edu/ FlexICoN]'s Gen-1 Frequency-Flat Amplitude- and Phase-based RF Canceller. Pictures of the FlexICoN RF canceller and node11-10 in the main grid equipped with full-duplex capability are below:
     184In this tutorial, we'll use node11-10 in the main grid (equipped with a USRP N210) to transmit and receive a single tone over the air to demonstrate full-duplex wireless capability using the Columbia [http://flexicon.ee.columbia.edu/ FlexICoN]'s Gen-1 Narrowband Frequency-Flat Amplitude- and Phase-based RF Canceller. Pictures of the FlexICoN RF canceller and node11-10 in the main grid equipped with full-duplex capability are below:
    185185 ||||||Figure 1: The ORBIT-FlexICoN Full-Duplex Node||
    186186 || [[Image(FlexICoN-gen1-canceller.jpg, 325px)]] [[Image(FlexICoN-gen1-canceller-label.png, 350px)]] || [[Image(FlexICoN-gen1-node11-10.jpg, 400px)]] ||
    187187 || (a) The FlexICoN RF Canceller Box  || (b) Full-Duplex SDR at node11-10 in the ORBIT grid  ||
    188188
    189 ==== Technical Report ====
     189==== Publications ====
    190190For more information, please read:
    191191
    192 ''Tingjun Chen, Mahmood Baraani Dastjerdi, Guy Farkash, Jin Zhou, Harish Krishnaswamy, and Gil Zussman, “Open-access full-duplex wireless in the ORBIT testbed,” arXiv preprint: 1801.03069v2 [cs.NI], May 2018.'' [https://arxiv.org/abs/1801.03069 (arXiv report)] [http://wimnet.ee.columbia.edu/wp-content/uploads/2018/03/INFOCOM18Demo_FullDuplexORBIT.pdf (INFOCOM'18 Demo Abstract)]
    193 
    194 Please cite the above arXiv report if you use the hardware. Please email Tingjun Chen (tingjun [at] ee.columbia.edu) if you use (or plan to use) the full-duplex node or if you have any questions.
     192''Manav Kohli, Tingjun Chen, Mahmood Baraani Dastjerdi, Jackson Welles, Ivan Seskar, Harish Krishnaswamy, and Gil Zussman, “Open-access full-duplex wireless in the ORBIT and COSMOS testbeds,” in Proc. ACM !MobiCom’20 Workshop on Wireless Network Testbeds, Experimental evaluation & CHaracterization (WiNTECH) (invited), Sept. 2020'' [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/wintech2020_orbit_cosmos_fullduplex_integration.pdf (Download)] [https://wimnet.ee.columbia.edu/wp-content/uploads/2020/08/mobicom2020_cosmos_fullduplex_demo.pdf (Demo Abstract)]
     193
     194Please cite the above arXiv report if you use the hardware. Please email Tingjun Chen (tingjun [at] ee.columbia.edu) or Manav Kohli (mpk2138 [at] columbia.edu) if you use (or plan to use) the full-duplex node or if you have any questions.
    195195
    196196==== Updates ====
     197* [09/17/2020]: New full-duplex SDR image {{{flexicon-orbit-v4.ndz}}} released. The real-time OFDM-based full-duplex flowgraph and GNU OOT modules have been updated. Obsolete experiments have been removed.
    197198* [04/30/2019]: New full-duplex SDR image {{{flexicon-orbit-v3.ndz}}} released. Main new feature includes the implementation of a real-time OFDM-based full-duplex node.
    198199* [01/31/2019]: Developed real-time digital SIC as a GNU Radio OOT module.
     
    202203
    203204=== Hardware / Software Resources Utilized ===
    204 1. The Columbia FlexICoN Gen-1 RF Canceller, which is a frequency-flat amplitude- and phase-based RF canceller implemented using discrete components on a PCB. The Gen-1 RF canceller is optimized to have a center operating frequency at 900MHz.
    205 2. The source code for the full-duplex transceiver examples, which can be found at [https://github.com/Wimnet/flexicon_orbit this GitHub page]. We have also built an ORBIT node image {{{flexicon-orbit-v2.ndz}}} with all the required software installed to facilitate the experiments.
     2051. The Columbia FlexICoN Gen-1 RF Canceller, which is a frequency-flat ''narrowband'' amplitude- and phase-based RF canceller implemented using discrete components on a PCB. The Gen-1 RF canceller is optimized to have a center operating frequency at 900MHz.
     2062. The source code for the full-duplex transceiver examples, which can be found at [https://github.com/Wimnet/flexicon_orbit this GitHub page]. We have also built an ORBIT node image {{{flexicon-orbit-v4.ndz}}} with all the required software installed to facilitate the experiments.
    2062073. USRP N210 with {{{node11-10}}} in the ORBIT main grid.
    2072084. [http://www.xdimax.com/sub20/sub20.html SUB-20] is a multi-interface USB adapter for providing popular interfaces between PC (USB host) and different hardware devices. Specifically, we use the SUB-20 SPI module to control and configure the Gen-1 RF canceller (see Fig. 1(a)). The user manual can be found [http://www.xdimax.com/sub20/doc/sub20-man.pdf here]. We also built a GNU Radio Out-Of-Tree (OOT) module to allow controlling the canceller from within the GNU Radio GUI.
     
    2092106. The {{{Eigen C++}}} Library is used for basic algebra used in channel estimation and digital self-interference cancellation. The Eigen releases can be found on the [http://eigen.tuxfamily.org/index.php?title=Main_Page this website]. We used the latest stable release Eigen 3.3.4 through our testings and experiments.
    210211
    211 === Set Up ===
     212=== Tutorial ===
     213==== Set Up ====
    212214Before you can access the testbed, you need to [https://www.orbit-lab.org/schedule make a reservation] and get it approved. After receiving the reservation's confirmation (approval) email:
    213215
    214216 * Login into reserved domain: {{{ssh -X username@conslole.grid.orbit-lab.org}}} (the {{{-X}}} option is for enabling the X11 tunneing)
    215217 * Make sure that the full-duplex node is powered down for loading the desired image: {{{omf tell -a offh -t node11-10}}}
    216  * Load the most updated full-duplex node image (currently full-duplex SDR image {{{flexicon-orbit-v3.ndz}}} released) on the node (this process can take about a few minutes so please be patient): {{{omf load -i flexicon-orbit-v3.ndz -t node11-10}}}
     218 * Load the most updated full-duplex node image (currently {{{flexicon-orbit-v4.ndz}}}) on the node (this process can take about a few minutes so please be patient): {{{omf load -i flexicon-orbit-v4.ndz -t node11-10}}}
    217219 * Turn on the node: {{{omf tell -a on -t node11-10}}}
    218220 * Login into the node: {{{ssh -X root@node11-10}}}. After login into the node, a {{{flexicon_orbit}}} folder should exist under the home directory of {{{node11-10:~/}}} which contains the source code of this example. You can also retrieve the most recently updated code from [https://github.com/Wimnet/flexicon_orbit the GitHub repository].
     
    220222 * Run {{{sudo sysctl -w net.core.rmem_max=50000000}}} and {{{sudo sysctl -w net.core.wmem_max=50000000}}}
    221223 * Check the conection and serial number of the USRP N210: {{{uhd_find_devices}}}. The serial number should be {{{F331D4}}}.
    222 
    223 === Run the Experiments ===
    224 You will need to login into the full-duplex node (by {{{ssh root@node11-10}}}) in two separate terminal windows lo for running the experiment: one for the main full-duplex transceiver UHD program and one for controlling the RF canceller.
    225 
    226 === Example Experiment 1: A Real-Time Full-Duplex Radio with OFDM PHY (GNU Radio + UHD) ===
    227 * Within the FD node (i.e., {{{ssh -X root@node11-10}}}, open the GNU Radio flowgraph {{{~/flexicon_orbit/fd_transceiver_ofdm/grc/ofdm_node_fd.grc}}} in {{{gnuradio-companion}}}, as shown below.
    228 
    229  || [[Image(flexicon_orbit_grc_ofdm_node.png, 1000px)]] ||
    230  || GNU Radio flowgraph of the OFDM-based FD radio example experiment. ||
    231 
    232 * Run the experiments, three plots will show up: Time-domain Rx signal after RF SIC and digital SIC (@tab0), frequency-domain Rx signal after RF SIC and digital SIC (@tab1), and the estimated coefficients of the digital SI canceller taps (@tab2).
    233 
    234  || [[Image(flexicon_orbit_grc_ofdm_node_tab0.png, 333px)]]  || [[Image(flexicon_orbit_grc_ofdm_node_tab1.png, 333px)]]  || [[Image(flexicon_orbit_grc_ofdm_node_tab2.png, 333px)]] ||
    235  ||||||Time-domain and frequency-domain Rx signal after RF and digital SIC, and estimated digital SI canceller coefficients on the packet-level. ||
    236 
    237 === Example Experiment 2: A Simple Full-Duplex Radio Experiment (Terminal + UHD) ===
    238 
    239 ==== In Terminal 1 ====
     224 * Set an initial configuration for the Gen-1 canceller PCB:
     225{{{#!shell-session
     226root@node11-10:~ cd flexicon_orbit/fd_transceiver_simple/sub20
     227root@node11-10:~/flexicon_orbit/fd_transceiver_simple/sub20# ./rf_canc_gen1_config 0 127 16 6 6
     228Started...
     229Sub20 device found... Serial Number is 48AB
     230Device Opened!
     231...Finished programming DAC with value 0!
     232...Finished programming ATT with value 127!
     233...Finished programming CAP1 with value 16!
     234...Finished programming CAP2 with value 6!
     235...Finished programming CAP3 with value 6!
     236}}}
     237
     238==== Running experiments ====
     239We provide two sets of experiments. One set is for GNU Radio, which are identical to the experiments described above in COSMOS and located at {{{~/flexicon_orbit/experiments/grc/}}}. To run these experiments, open them from GNU radio after running the {{{gnuradio-companion}}} command. Please note that due to there only being one FD radio present in ORBIT, the two link experiments in GNU Radio are not supported. The flowgraphs are kept present for reference.
     240
     241The other set which are based on UHD, and are legacy experiments - they implement simpler full-duplex transceivers with no available GUI and are also kept for reference.
     242
     243'''Details on configuring the canceller PCB'''
     244
     245Using the experiment {{{node_level_sic_fd_gui}}}, the experimenter can configure the RF canceller PCB using the experiment GUI. There are 2 sliders:
     246* {{{att_0}}} - The attenuator value for the canceller. Higher values lead to greater attenuation.
     247* {{{dac0}}} - The phase shifter values for the canceller.
     248
     249=== Available Experiments ===
     250==== node_level_sic_fd_gui (GNU Radio) ====
     251The primary use of this experiment is to visualize the performance of the FD radio. As the Gen-1 canceller operates in a narrow band, the cancellation bandwidth will be noticeably less than the Gen-2 FD radios available in COSMOS.
     252
     253In this experiment, several performance metrics are visualized:
     254 * The received self-interference (SI) after RF SI cancellation (SIC) and after digital SIC.
     255 * The received power spectra after RF SIC and after digital SIC.
     256 * The complex-valued digital SIC filter taps.
     257 * The estimated SI channel.
     258
     259'''Tunable variables'''
     260 * {{{freq}}} - the carrier frequency used. The Gen-1 hardware can support roughly 900-1000MHz.
     261 * {{{samp_rate}}} - the bandwidth used. As the canceller is narrowband, we recommend using no more than a 5 MHz bandwidth.
     262
     263==== fd_transciever_simple (Terminal + UHD) ====
     264This experiment can be used to show the amount of achieved SIC in the RF and digital domains using a command-line interface. It is included here as reference and an example of a full-duplex transceiver implemented in UHD.
     265
     266We recommend using two terminals here, so one terminal can be used to run the experiment in the foreground while the second is used to control the FD radio.
     267
     268'''In Terminal 1'''
    240269 * Prepare the Eigen library (you can skip this step since the image already contains the Eigen library):
    241270{{{#!shell
     
    294323 In this example, since the TX power level is at 0dBm, a total amount of around 90dB self-interference cancellation is achieved, of which 45dB is obtained by the Gen-1 RF canceller, and 50dB is obtained by the digital cancellation.
    295324
    296 ===== In Terminal 2 (SUB-20) =====
     325'''In Terminal 2 (SUB-20)'''
    297326 * Build the RF canceller configuration code (this is already done in the loaded image):
    298327{{{#!shell
     
    307336}}}
    308337 In particular, the {{{PS-CODE=0,1,2,...,255}}} and {{{ATT-CODE=0,1,2,...,127}}} codes are for configuring the 8-bit phase shifter and the 7-bit attenuator of the Gen-1 RF canceller, respectively. It is recommended to use {{{C1-CODE=16, C2-CODE=6, C3-CODE=6}}}, which provides 20dB isolation from the antenna-circulator interface. You can play with the values of {{{ATT}}} and {{{PS}}} until you see good cancellation profile (e.g., low residual self-interference power level) in Terminal 1.
    309  * An example temrinal output is below:
     338 * An example terminal output is below:
    310339{{{#!shell-session
    311340root@node11-10:~/flexicon_orbit/fd_transceiver_simple/sub20# ./rf_canc_gen1_config 110 30 16 6 6
     
    320349}}}
    321350
    322 ==== A Secondary Transmitter Using Node13-8 ====
     351'''A Secondary Transmitter Using Node13-8'''
     352
    323353Once the full-duplex node11-10 is up and running, you can turn on another SDR to transmit to the full-duplex node. Below, we use {{{node13-8}}} as an example in the 3rd terminal window (Terminal 3).
    324354 * Load image, power on, and login into node13-8:
     
    336366 Now by analyzing the RX baseband data at node11-10, you will observe the received tone at 200kHz while the self-interence tone at 100kHz is cancelled to the USRP noise floor, which is around -90dBm.
    337367
    338 ==== Acknowledgements ====
     368The secondary transmitter can also be used while running the GNU radio flowgraph {{{node_level_sic_fd_gui}}} which will visualize the received signal from {{{node13-8}}}.
     369
     370=== Acknowledgements ===
    339371This work was supported in part by NSF grant ECCS-1547406, DARPA RF-FPGA program, DARPA SPAR program, a Qualcomm Innovation Fellowship, a National Instruments Academic Research Grant, Texas Instruments, and Intel. We thank Steven Alfano, Jelena Diakonikolas, Aishwarya Rajen, Jinhui Song, Mingyan Yu for their contributions to various aspects of the project. We thank Ivan Seskar, Jakub Kolodziejski, and Prasanthi Maddala from WINLAB, Rutgers University, for their help on the integration with the ORBIT testbed. We also thank Kira Theuer and Kendall Ruiz from NI and the NI technical support team for their help.