wiki:Tutorials/Wireless/ChannelSounding

Version 2 (modified by prasanthi, 5 years ago) ( diff )

Wideband Channel Sounding with USRP X310s

Description

Channel 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.

This 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.

Prerequisites

In 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 the COSMOS work flow page to get started.

Resources required

2 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.

Execution

Prepare the host nodes

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.

  • Load channel-sounder.ndz on a pair of nodes
    prasanthi@console.grid:~$ omf load -i channel-sounder.ndz -t node19-1,node20-1
    
    or if you were assigned a topology,
    prasanthi@console.grid:~$ omf load -i channel-sounder.ndz -t system:topo:group-red
    
  • Turn the nodes on
    prasanthi@console.grid:~$ omf tell -a on -t node19-1,node20-1
    
    or
    prasanthi@console.grid:~$ omf tell -a on -t system:topo:group-red
    
  • Check the status
    prasanthi@console.grid:~$ omf stat -t node19-1,node20-1
    
    or
    prasanthi@console.grid:~$ omf stat -t system:topo:group-red
    
    -----------------------------------------------
    Node: node19-1.grid.orbit-lab.org       State: POWERON
    Node: node20-1.grid.orbit-lab.org       State: POWERON
    -----------------------------------------------
    
  • ssh to the nodes
    prasanthi@console.grid:~$ ssh root@node19-1
    

Prepare the USRPs

  • 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.
  • Check if USRPs have the modules required for the experiment by running uhd_usrp_probe on each on of them.
    root@node19-1:~# uhd_usrp_probe --args="addr=10.10.23.16"
    
    |   |     _____________________________________________________
    |   |    /
    |   |   |       RFNoC blocks on this device:
    |   |   |
    |   |   |   * DmaFIFO_0
    |   |   |   * Radio_0
    |   |   |   * Radio_1
    |   |   |   * DDC_0
    |   |   |   * DUC_0
    |   |   |   * Corrmag63avg8k_0
    |   |   |   * Spreader_0
    |   |   |   * SpecSense2k_0
    |   |   |   * FIFO_0
    |   |   |   * FIFO_1
    
    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.
  • If not, load the required image using uhd_image_loader
    root@node19-1:~# uhd_image_loader --args="addr=10.10.23.16,type=x300" --fpga-path=""spreader_corr_specsense_uhd_3_14.bit"
    

Set up web based streaming

  • Set up a web proxy for the receive node Use run-websock command to set up the proxy (this is required for remote web based streaming)
    prasanthi@console.grid:~$ run-websock 5100 10.10.20.1:5100 --daemon
    WARNING: no 'numpy' module, HyBi protocol will be slower
    WebSocket server settings:
      - Listen on :5100
      - Flash security policy server
      - No SSL/TLS support (no cert file)
      - Backgrounding (daemon)
    
  • 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)
    ssh -L 5100:grid.orbit-lab.org:5100 username@grid.orbit-lab.org
    

Run the experiment

  • 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.
    root@node19-1:~# /root/uhd/host/build/examples/rfnoc_tx_mobicom --group red
    
    The same application can be run by passing different command line parameters as shown below
    root@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"
    
  • 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
      root@node20-1:~# ./uhd/host/build/examples/rfnoc_rx_mobicom --group red
    
    or the following could be used, when not using a topology
      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"
    
  • 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.

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.