[[Include(WikiToC)]] == Wideband Channel Sounding with USRP 2974s (In Progress)== === 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 2974s on [wiki:Architecture/Domains/cosmos_sb1 COSMOS SandBox1]. === 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 [wiki:cosmos_workflow the COSMOS work flow page] to get started. === Resources required === 2 rooftop USRP 2974s (sdr2-md1, sdr2-s1-lg1) are required for this experiment. === Tutorial Setup === Follow the steps below to gain access to the [wiki:/hardware/Domains/sb1 sandbox 1 console] and set up nodes with appropriate images. 1. If you don't have one already, sign up for a [https://www.cosmos-lab.org/portal-2/ COSMOS account] 1. [wiki:/GettingStarted#MakeaReservation Create a resource reservation] on sandbox 1 1. [Documentation/Short/Login Login] into sandbox 1 console (console.sb1.cosmos-lab.org) with two SSH sessions. 1. Make sure all the nodes and devices used in the experiment are turned off: {{{#!shell omf tell -a offh -t sdr2-md1,sdr2-s1-lg1 }}} 1. The image channel-sounder.ndz has UHD, GnuRadio installed, with RFNoC enabled. Custom RFNoC modules required for channel sounding are also installed. Load channel-sounder.ndz on sdr2-md1,sdr2-s1-lg1. {{{#!shell omf load -i channel-sounder.ndz -t sdr2-md1,sdr2-s1-lg1 }}} 1. Turn all the required resources on and check the status {{{#!shell omf tell -a on -t sdr2-md1,sdr2-s1-lg1 }}} {{{#!shell omf stat -t system:topo:allres }}} 1. ssh to the nodes, use option -Y for using GUI. When opening a session into console.sb1.cosmos-lab.org, [wiki:to_migrate/ssh_tunnel set up a tunnel] from localhost:5105 to console.sb1.cosmos-lab.org:5100. This will be used by the web application to connect to a server running on one of the SDRs. === Execution === ==== Prepare the USRPs ==== * Check if USRPs have the modules required for the experiment by running uhd_usrp_probe on each on of them. {{{#!shell-session root@sdr2-md1:~# uhd_usrp_probe --args="type=x300" | | _____________________________________________________ | | / | | | 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. ==== Set up web based streaming ==== * Set up a web proxy for the receive node. Use run-websock command on SB1 console to set up the proxy (this is required for remote web based streaming) {{{#!shell-session user@console:~$ run-websock 5100 sdr2-s1-lg1.sb1.cosmos-lab.org:5100 --daemon WebSocket server settings: - Listen on :5100 - Flash security policy server - No SSL/TLS support (no cert file) - Backgrounding (daemon) }}} There is SSH tunnel setup from your localhost port 5105 to console.sb1.cosmos-lab.org:5100, which acts as a proxy for sdr2-s1-lg1.sb1.cosmos-lab.org:5100, webserver for the channel sounder receive application. ==== Run the experiment * Start transmit application on the TX node. {{{#!shell-session root@sdr2-md1:~# /root/uhd/host/build/examples/rfnoc_tx_spreader --args="type=x300,skip_ddc,skip_duc" --freq 3e9 --gain 30 --duc-args="input_rate=50000000.0,output_rate=200000000.0" }}} * Start receive application on the RX node. {{{#!shell-session root@sdr2-s1-lg1:~# uhd/host/build/examples/rfnoc_rx_channel_sounder --args="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. || [[Image(group_red_pdp.jpg)]]||