Changes between Version 1 and Version 2 of Tutorials/Wireless/Channel Sounding


Ignore:
Timestamp:
Oct 21, 2019, 5:45:30 PM (5 years ago)
Author:
prasanthi
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/Channel Sounding

    v1 v2  
    1 See [wiki:"tutorials/wideband"].
     1== Wideband Channel Sounding with USRP X310s ==
     2
     3=== Description ===
     4Channel sounding is the process of evaluating the characteristics of a radio environment. Evaluating the power delay profile (PDP) of a radio channel helps in developing statistical models for channel simulation.
     5
     6
     7This tutorial demonstrates how to use the RFNoC channel sounder design for obtaining the PDP of channels up to 100MHz wide. An FPGA correlator module computes real time correlation power, and an averaging module, averages contiguous sets of PDP over time, and sends the result to host CPU. This design is compatible with 3rd generation Ettus USRP devices. This tutorial uses USRP X310s on ORBIT grid.
     8
     9=== Prerequisites ===
     10In order to access the test bed, create a reservation and have it approved by the reservation service. Access to the resources is granted after the reservation is confirmed. Please follow the process shown on [wiki:cosmos_workflow the COSMOS work flow page] to get started.
     11
     12=== Resources required ===
     132 host nodes and 2 USRP X310s are required for this experiment. USRP X310 devices in ORBIT grid are located in the massive MIMO mini-racks [https://www.orbit-lab.org/wiki/Hardware/bDomains/aGrid#Massive-MIMOmini-racks].
     14
     15=== Execution ===
     16
     17==== Prepare the host nodes ====
     18
     19 Determine the set of nodes that you're using. If you have a topology assigned, it will be entered in the form "system:topo:group-red" for example.
     20* Load channel-sounder.ndz on a pair of nodes
     21  {{{
     22  prasanthi@console.grid:~$ omf load -i channel-sounder.ndz -t node19-1,node20-1
     23  }}}
     24  or if you were assigned a topology,
     25  {{{
     26  prasanthi@console.grid:~$ omf load -i channel-sounder.ndz -t system:topo:group-red
     27  }}}
     28
     29* Turn the nodes on
     30  {{{
     31  prasanthi@console.grid:~$ omf tell -a on -t node19-1,node20-1
     32  }}}
     33  or
     34  {{{
     35  prasanthi@console.grid:~$ omf tell -a on -t system:topo:group-red
     36  }}}
     37
     38* Check the status
     39  {{{
     40  prasanthi@console.grid:~$ omf stat -t node19-1,node20-1
     41  }}}
     42  or
     43  {{{
     44  prasanthi@console.grid:~$ omf stat -t system:topo:group-red
     45  }}}
     46  {{{
     47  -----------------------------------------------
     48  Node: node19-1.grid.orbit-lab.org       State: POWERON
     49  Node: node20-1.grid.orbit-lab.org       State: POWERON
     50  -----------------------------------------------
     51  }}}
     52
     53* ssh to the nodes
     54  {{{
     55  prasanthi@console.grid:~$ ssh root@node19-1
     56  }}}
     57
     58==== Prepare the USRPs ====
     59* Pick 2 USRP X310s from the MIMO racks 23-1...8, 23-11...18, 24-1...8, 24-11...18. If you are using a topology, USRPs are assigned by default. For example, group-red uses 23-16 as TX and 24-16 as RX.
     60* Check if USRPs have the modules required for the experiment by running uhd_usrp_probe on each on of them.
     61{{{
     62root@node19-1:~# uhd_usrp_probe --args="addr=10.10.23.16"
     63}}}
     64{{{
     65|   |     _____________________________________________________
     66|   |    /
     67|   |   |       RFNoC blocks on this device:
     68|   |   |
     69|   |   |   * DmaFIFO_0
     70|   |   |   * Radio_0
     71|   |   |   * Radio_1
     72|   |   |   * DDC_0
     73|   |   |   * DUC_0
     74|   |   |   * Corrmag63avg8k_0
     75|   |   |   * Spreader_0
     76|   |   |   * SpecSense2k_0
     77|   |   |   * FIFO_0
     78|   |   |   * FIFO_1
     79}}}
     80  If you see the above at the end of uhd_usrp_probe output, the USRPs are ready. Spreader_0 is used to spread the transmit signal, and Corrmag63avg8k_0 is the correlator on the receive side.
     81* If not, load the required image using uhd_image_loader
     82{{{
     83root@node19-1:~# uhd_image_loader --args="addr=10.10.23.16,type=x300" --fpga-path=""spreader_corr_specsense_uhd_3_14.bit"
     84}}}
     85
     86==== Set up web based streaming ====
     87* Set up a web proxy for the receive node
     88  Use run-websock command to set up the proxy (this is required for remote web based streaming)
     89{{{
     90prasanthi@console.grid:~$ run-websock 5100 10.10.20.1:5100 --daemon
     91WARNING: no 'numpy' module, HyBi protocol will be slower
     92WebSocket server settings:
     93  - Listen on :5100
     94  - Flash security policy server
     95  - No SSL/TLS support (no cert file)
     96  - Backgrounding (daemon)
     97}}}
     98* Set up SSH tunnel from your local port 5100 to grid.orbit-lab.org:5100 (See [https://wiki.cosmos-lab.org/wiki/tutorials/ssh_tunnel])
     99{{{
     100ssh -L 5100:grid.orbit-lab.org:5100 username@grid.orbit-lab.org
     101}}}
     102
     103==== Run the experiment
     104* Start transmit application on the TX node. If you were assigned a group, the command below will start the application on the assigned TX USRP, with a bandwidth of 100MHz.
     105{{{
     106root@node19-1:~# /root/uhd/host/build/examples/rfnoc_tx_mobicom --group red
     107}}}
     108  The same application can be run by passing different command line parameters as shown below
     109{{{
     110root@node19-1:~# /root/uhd/host/build/examples/rfnoc_tx_mobicom --args"addr=10.10.23.16,type=x300,skip_ddc,skip_duc" --freq 3e9 --gain 20 --duc-args="input_rate=50000000.0,output_rate=200000000.0"
     111}}}
     112
     113* Start receive application on the RX node. If you were assigned a group, the command below will start the application on the assigned RX USRP
     114{{{
     115  root@node20-1:~# ./uhd/host/build/examples/rfnoc_rx_mobicom --group red
     116}}}
     117  or the following could be used, when not using a topology
     118{{{
     119  root@node20-1:~# ./uhd/host/build/examples/rfnoc_rx_mobicom --args"addr=10.10.24.16,type=x300,skip_ddc,skip_duc" --freq 3e9 --gain 10 --ddc-args="output_rate=50000000.0,input_rate=200000000.0"
     120}}}
     121* Download channel_sounding_display.html attached to this tutorial and open it in your browser. Once you click the start button, you should see PDP of the channel.
     122
     123    || [[Image(group_red_pdp.jpg)]]||