https://github.com/ucsdsysnet/sweepsense

SweepSense

This repository contains FPGA source code and GNURadio+UHD (Python3) based API for the prototype SweepSense implementation in our paper:

Guddeti, Y., Subbaraman, R., Khazraee, M., Schulman, A., & Bharadia, D. (2019). Sweepsense: Sensing 5 ghz in 5 milliseconds with low-cost radios. In 16th USENIX Symposium on Networked Systems Design and Implementation (NSDI 19) (pp. 317-330).

This readme explains the overall architecture briefly, goes through the folder structure and displays the license. For full technical details and evaluations are available in the extended paper.

Overview

We propose a new receiver architecture for spectrum sensing radios where sampling is done along with quick sweeping of the center frequency. This is motivated by the intuition that a sweeping radio may miss lesser transmissions than one that sequentially tunes to different bands.


We implement this using an open loop VCO fed with a sawtooth voltage waveform. The output of the VCO is used to drive a mixer and implement the sweeping radio.


The architecture has been prototyped on a USRP N210 with a CBX daughterboard.

VCO Core Sweeping Architecture

Downconverting while sweeping introduces distortions in the signal, which we remove using an "unsweeping" process and is discussed in the paper.

Example Results


A SweepSense capture of the 2.4 GHz ISM band showing WiFi and Bluetooth transmissions. We get close to 100 MHz bandwidth with only a 25 MSps radio.

Folder Structure

  1. fpga_src - Folder containing the fpga patch for the USRP N210 required to implement SweepSense.
  2. python_scripts - Folder containing the UHD-GNURadio api and demo codes to get started.
  3. docs - Images for markdown documentation.

Get in Touch!

If you have any questions or suggestions, please get in touch with the authors of the paper:

yguddeti@eng.ucsd.edu
rsubbaraman@eng.ucsd.edu
WCSNG UC San Diego
Sysnet UC San Diego