Version 5 (modified by 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.
Execution
- 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-black" for example
Imaging the nodes
- run
onaptutorial-min.rb -g group-black
- Test if the nodes are up, with
omf stat -t system:topo:group-black
- If not in state POWERON, run
omf tell -a on -t system:topo:group-black
- Once they're up, they will respond to ping, e.g.
ping node13-8
- Download the cluster setup script
wget -O create-cluster.sh
- Run the cluster setup script on the prepared nodes
./create-cluster.sh -c node14-7 -w node13-8
Set Up
Make a reservation on the Orbit Scheduler for using the grid.
Prepare Receive Node
- Load channel_sounder_x310.ndz on an ORBIT node.
prasanthi@console.grid:~$ omf load -i channel_sounder_x310.ndz -t node1-19
- Once imaging is done, turn the node on and log in
prasanthi@console.grid:~$ omf tell -a on -t node1-19 prasanthi@console.grid:~$ ssh root@node1-19
Prepare Receive USRPs
- Pick USRP X310s from the MIMO racks 23-1…8, 23-11…18, 24-1…8, 24-11…18 and load correlator FPGA image on them. The USRPs are programmed one at a time.
root@node1-19:~# uhd_image_loader --args="addr=10.10.24.12,type=x300" --fpga-path="/root/bit/corrmag63avg8k_v2_8_7.bit"
- Power cycle USRPs so that the new FPGA image is active
prasanthi@console.grid:~$ omf tell -a offh -t node24-12,node24-13 prasanthi@console.grid:~$ omf tell -a on -t node24-12,node24-13
- Running uhd_usrp_probe on the X310s with spectrum sensing FPGA image should give the following
| | / | | | RFNoC blocks on this device: | | | | | | * DmaFIFO_0 | | | * Radio_0 | | | * Radio_1 | | | * DDC_0 | | | * DUC_0 | | | * Corrmag63avg8k_0 | | | * FIFO_0
Prepare Transmit Node
A spectrum spreader RFNoC block is being used to generate wideband PN signal.
- Load prasanthi-channel-sounder.ndz on an ORBIT node.
prasanthi@console.grid:~$ omf load -i prasanthi-channel-sounder.ndz -t node14-20
- Once imaging is done, turn the node on and log in
prasanthi@console.grid:~$ omf tell -a on -t node14-20 prasanthi@console.grid:~$ ssh root@node14-20
Prepare Transmit USRP
- Pick a USRP X310 for transmitting, and load the spectrum spreader FPGA image
root@node1-20:~# uhd_image_loader --args="addr=10.10.24.11" --fpga-path="/root/bit/x310_spreader_4_28.bit"
- Power cycle the USRP so that the new FPGA image is active
prasanthi@console.grid:~$ omf tell -a offh -t node24-11 prasanthi@console.grid:~$ omf tell -a on -t node24-11
- Running uhd_usrp_probe on the X310 with spectrum spreader FPGA image should give the following
| | _____________________________________________________ | | / | | | RFNoC blocks on this device: | | | | | | * DmaFIFO_0 | | | * Radio_0 | | | * Radio_1 | | | * DUC_0 | | | * Spreader_0 | | | * FIFO_0 | | | * FIFO_1
Set up SSH tunnel from your local port 5100 to grid.orbit-lab.org:5100
ssh -L 5100:grid.orbit-lab.org:5100 username@grid.orbit-lab.org
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.1.19: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)
Run the experiment
- Run rfnoc_spec_sense_display on the receive node. The command below starts the application to receive spectrum sensing samples from 4 USRP X310s at 100MSPS.
root@node1-19:~/uhd/host/build/examples# ./rfnoc_spec_sense_display --args="addr0=10.10.23.11,addr1=10.10.23.12,addr2=10.10.23.13,addr3=10.10.23.14,skip_ddc,skip_duc" --freq 5e9 --gain 15 --ddc-args="input_rate=200000000.0,output_rate=100000000.0" --num-usrp 4 --spec-sense-args="avg_size=256"
- Run rfnoc_spreader on the transmit node. The command below starts the application to send a 50MHz wide PN signal on node23-17.
root@node14-20:~/uhd/host/build/examples# ./rfnoc_spreader_dmafifo --args="addr=10.10.24.11,skip_ddc,skip_duc" --freq 2e9 --gain 15 --duc-args="input_rate=100000000.0,output_rate=200000000.0"
- Download spec_sense_display.html and open it in your browser. Once you click the Start button, you should see power spectrum display as shown below.
Attachments (5)
- group_red_pdp.jpg (51.4 KB ) - added by 5 years ago.
-
Channel_Sounder.pdf
(448.9 KB
) - added by 5 years ago.
MOBICOM 2019 Channel Sounder Tutorial Presentation
- channel_sounding_display_orange.jpg (67.3 KB ) - added by 5 years ago.
- channel_sounding_display.html (4.6 KB ) - added by 5 years ago.
- channel_sounding_display_2.html (4.6 KB ) - added by 5 years ago.
Download all attachments as: .zip