Changes between Initial Version and Version 1 of Tutorials/Wireless/Channel Sounding Krypton


Ignore:
Timestamp:
May 16, 2020, 4:18:55 AM (4 years ago)
Author:
prasanthi
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Tutorials/Wireless/Channel Sounding Krypton

    v1 v1  
     1== Wideband Channel Sounding with USRP 2974s ==
     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 2974s on [wiki:Architecture/Domains/cosmos_sb1 COSMOS SandBox1].
     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 rooftop USRP 2974s (sdr2-md1, sdr2-s1-lg1) are required for this experiment.
     14=== Execution ===
     15
     16==== Prepare the host nodes ====
     17 
     18* Load channel-sounder.ndz on a pair of nodes
     19  {{{#!shell-session
     20  prasanthi@console.grid:~$ omf load -i channel-sounder.ndz -t node19-1,node20-1
     21  }}}
     22  or if you were assigned a topology,
     23  {{{#!shell-session
     24  prasanthi@console.grid:~$ omf load -i channel-sounder.ndz -t system:topo:group-red
     25  }}}
     26
     27* Turn the nodes on
     28  {{{#!shell-session
     29  prasanthi@console.grid:~$ omf tell -a on -t node19-1,node20-1
     30  }}}
     31  or
     32  {{{#!shell-session
     33  prasanthi@console.grid:~$ omf tell -a on -t system:topo:group-red
     34  }}}
     35
     36* Check the status
     37  {{{#!shell-session
     38  prasanthi@console.grid:~$ omf stat -t node19-1,node20-1
     39  }}}
     40  or
     41  {{{#!shell-session
     42prasanthi@console.grid:~$ omf stat -t system:topo:group-red
     43 
     44  -----------------------------------------------
     45  Node: node19-1.grid.orbit-lab.org       State: POWERON
     46  Node: node20-1.grid.orbit-lab.org       State: POWERON
     47  -----------------------------------------------
     48  }}}
     49
     50* ssh to the nodes
     51  {{{#!shell-session
     52prasanthi@console.grid:~$ ssh root@node19-1
     53  }}}
     54
     55==== Prepare the USRPs ====
     56* 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.
     57* Check if USRPs have the modules required for the experiment by running uhd_usrp_probe on each on of them.
     58{{{#!shell-session
     59root@node19-1:~# uhd_usrp_probe --args="addr=10.10.23.16"
     60 
     61|   |     _____________________________________________________
     62|   |    /
     63|   |   |       RFNoC blocks on this device:
     64|   |   |
     65|   |   |   * DmaFIFO_0
     66|   |   |   * Radio_0
     67|   |   |   * Radio_1
     68|   |   |   * DDC_0
     69|   |   |   * DUC_0
     70|   |   |   * Corrmag63avg8k_0
     71|   |   |   * Spreader_0
     72|   |   |   * SpecSense2k_0
     73|   |   |   * FIFO_0
     74|   |   |   * FIFO_1
     75}}}
     76  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.
     77* If not, load the required image using uhd_image_loader
     78{{{#!shell-session
     79root@node19-1:~# uhd_image_loader --args="addr=10.10.23.16,type=x300" --fpga-path=""spreader_corr_specsense_uhd_3_14.bit"
     80}}}
     81
     82==== Set up web based streaming ====
     83* Set up a web proxy for the receive node
     84  Use run-websock command to set up the proxy (this is required for remote web based streaming)
     85{{{#!shell-session
     86prasanthi@console.grid:~$ run-websock 5100 10.10.20.1:5100 --daemon
     87WARNING: no 'numpy' module, HyBi protocol will be slower
     88WebSocket server settings:
     89  - Listen on :5100
     90  - Flash security policy server
     91  - No SSL/TLS support (no cert file)
     92  - Backgrounding (daemon)
     93}}}
     94
     95==== Run the experiment
     96* 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.
     97{{{#!shell-session
     98root@node19-1:~# /root/uhd/host/build/examples/rfnoc_tx_mobicom --group red
     99}}}
     100  The same application can be run by passing different command line parameters as shown below
     101{{{#!shell-session
     102root@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"
     103}}}
     104
     105* 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
     106{{{#!shell-session
     107root@node20-1:~# ./uhd/host/build/examples/rfnoc_rx_mobicom --group red
     108}}}
     109  or the following could be used, when not using a topology
     110{{{#!shell-session
     111root@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"
     112}}}
     113* 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.
     114
     115    || [[Image(group_red_pdp.jpg)]]||