SDR in ORBIT: Spectrum Sensing

Table of Contents

  1. 2015 Winlab Summer Internship
    1. Projects
    1. Indoor Localization
    2. Introduction
      1. Motivation
      2. What is ORBIT Lab?
      3. Overall Approach
      4. Resources
      5. Procedure
      6. Plan of Action
      7. Weekly Presentations
      8. Team
    1. SDR in ORBIT: Spectrum Sensing
      1. Introduction
      2. Team
      3. Objectives
      4. Weekly Progress
      5. Experiments
    1. LTE Unlicensed (LTE-U)
      1. Introduction
      2. Objectives
      3. Theory
      4. Analyzing Tools
      5. Experiment 1: Transmit and Receive LTE Signal
      6. Experiment 2: The Waterfall Plot
      7. Experiment 3: eNB and UE GUI
      8. Experiment 4: Varying Bandwidths
      9. Experiment 5: Working with TDD or FDD
      10. Experiment 6: TDD with Varying Bandwidths
      11. Experiment 7: TDD Waterfall Plot
      12. Poster
      13. Members
      14. Materials
      15. Resources
    1. Distributed Simulation of Power Grid
      1. Introduction
      2. Objectives
      3. People
      4. Resources
    1. Context-Aware IoT Application on MobilityFirst
      1. Introduction
      2. Objectives
      3. System Architecture
      4. Network Diagram
      5. Experiment Tools
      6. Results
      7. Future Work
      8. Team member
    1. Real-Time Cyber Physical Systems Application on MobilityFirst
      1. Github Repo
      2. Introduction
      3. Preliminary Goal
      4. Outline of the Project
      5. Tasks
      6. Image Processing
      7. Weekly Summary
      8. Team
      9. Presentation Slides
    1. GNRS Assited Inter Domain Routing
      1. Introduction
    1. GNRS Management
      1. Introduction
      2. Work Milestones
    1. Effective Password Cracking Using GPU
      1. Introduction
      2. Objectives
      3. GPU
      4. Experiment
      5. Tools and Resources
  2. Body Sensor Networks
    1. Introduction
    2. Project Overview
    3. Data Collection
      1. Initial BCI data
    4. Data Analysis
    5. Tools/ Resources
    1. Unity Traffic Simulation
      1. Introduction
      2. Objectives
      3. People
    1. Mobile Security
      1. Introduction
      2. Motivation
    2. Resources
  3. Dynamic Video Encoding
    1. Introduction
    2. Goals
    3. Background Information
      1. Anatomy of a Video File
      2. What is a CODEC?
      3. H.264 Compression Algorithm
      4. Scalable Video Coding
      5. Network Emulator Test Results
      6. DASH Multi-Bitrate Encoding
      7. DASH Content Generation
      8. Bitrate Profiles
      9. Video Encoding Algorithms
      10. GPAC
    4. Presentations
    5. People


Spectrum sensing is the systematic scanning of the available radio frequency spectrum for areas of high usage. Our project involves the use of Universal Software Radio Peripherals (USRPs) in ORBIT to detect which frequencies are in use at any given time. Using WINLAB's Wiserd framework and MATLAB/Octave for signal processing, we aim to detect with optimal speed and efficiency the frequency of any signal transmitted from an unknown source. Accomplishing this goal will help to identify available bands in the frequency spectrum, giving opportunities for more efficient usage.



Christina Baaklini
Electrical and Computer Engineering
Rutgers University
Michael Collins
Electrical and Computer Engineering
Rutgers University
Nick Cooper
High School Student
Montgomery High School
Nicole DiLeo
Electrical and Computer Engineering
Rutgers University

Project guided by Wade Trappe, Dola Saha, and Ivan Seskar.


  • Knowledge of basic Digital Signal Processing concepts
  • Knowledge of filter design
  • Utilization of ORBIT
    • Writing/editing scripts
    • Saving from console to local devices
    • Running experiments on the grid
  • Utilization of MATLAB to process signals
    • Fast Fourier Transform (FFT)
    • Inverse Fast Fourier Transform (IFFT)
  • Design of Signal Processing and Data Visualization Tools
    • Transform IQ samples to frequency domain
    • Analyze data and identify any transmitted frequencies
    • Generate waterfall plots, power vs. frequency plots, and other visuals
  • Real-Time Application
    • Display visuals in real-time
    • User interface for changing receiver carrier frequency, sampling rate, etc.

Weekly Progress

Weeks 1-2 (Presentation)

  • Formation of project group.
  • Development of project goals.
  • Preliminary research on software-defined radio.

Week 3 (Presentation)

  • Research on analog-to-digital conversion.
  • Familiarization with Fast Fourier Transform (FFT) in MATLAB.
  • USRP Tutorials using ORBIT.

Week 4 (Presentation)

  • Research on filter design.
  • Writing/Modification of OEDL scripts. See Experiment 1.
  • Development of a MATLAB script for signal visualization.

Week 5 (Presentation)

  • Introduction of FPGA into the project.
  • Use of OML to gather raw IQ samples from USRPs.
  • Development of a MATLAB spectrogram script.

Week 6 (Presentation)

  • FPGA Programming Using VHDL.
  • Experimentation on the ORBIT Grid. See Experiment 2.
  • Filtering and Peak-Finding in MATLAB.

Week 7 (Presentation)

  • Design of a Sequential Circuit.
  • Implementation of Scanning Receiver Readings.
  • Start of Implementation of MATLAB Code in c++.

Week 8 Presentation to NYIT Summer Research Interns.

Week 9 (Presentation)

  • Implementation of State Machines in VHDL.
  • Incorporation of FFTW Library into C++ Implementation.
  • Plotting with Gnuplot in C++

Week 10 (Presentation)

  • Start of Packet Fragmentation Unit Development for Spectrum Sensing App.
  • Finalization of MATLAB Implementation.
  • Integration of C++ Code into Wiserd Framework

Week 11 (Presentation)

  • Development of Real-Time Plotting Module
  • Evaluation of Alternative Plotting Methods

Week 12 (Presentation)

  • Development of Browser-Based Visualization
  • Development of PFU for Spectrum Sensing Application
  • Project Conclusion


Experiment 1: Signal Transmission and Processing with USRP2 and wiserd

In this experiment we modify the Spectrum sensing with USRP2 and wiserd (OEDL and OML) tutorial.

The tutorial uses two USRPs: one transmitter and one receiver. The transmitter starts at 798 MHz and increases to 802 MHz over a span of 5 seconds. The receiver has a carrier frequency of 800 MHz and bandwidth of 5 MHz.

As our first experiment we modified the tutorial. We increase the sampling rate to 10 MHz, so we can accurately receive frequencies up to 5 MHz greater or lesser than the receiver's carrier frequency. We then randomly select frequencies from 796 to 804 MHz to transmit for one second each.

Using OML, we save the receiver readings to a file for processing in MATLAB/Octave. Using a MATLAB script, we generate a waterfall plot of the data, along with an animated power vs. frequency plot. See Figure 1.

Figure 1. Waterfall plot (left) and animated power vs. frequency plot (right) for Experiment 1 generated using wiserd FFT data.

Update: Raw IQ Samples and Processing in MATLAB

Next, using the same frequencies and sampling rate as the original tutorial, we modified the OEDL script in order to collect raw time domain samples using ORBIT as opposed to samples that had already been converted into the frequency domain.

We then wrote a MATLAB script entitled "spectro" which we used to convert the raw data into the frequency domain. From there, we again generate a waterfall plot of the data. See Figure 2.

Using the raw IQ samples instead of preprocessed FFT data allows for more flexibility in our signal processing. We now have access to a much larger collection of data, and we can produce more accurate frequency domain transforms.

Figure 2. Waterfall plot generated from raw IQ samples from Experiment 1.

Experiment 2: Signal Transmission and Processing with Two Transmitters and One Receiver

In this experiment, we write an OEDL script that uses two transmitters and one receiver to collect preprocessed FFT samples. Utilizing three USRP2 radios on the grid, two nodes were used as transmitters, and one as a receiver.

The first transmitter starts at a frequency of 798 MHz and increases to 802 MHz, while the second transmitter starts at a frequency of 804 Mhz and increases to 808 MHz all over a span of 2.5 seconds. The receiver has a carrier frequency of 803 MHz and a bandwidth of 12 Mhz.

We then save the FFT data from the receiver to our local device and process in MATLAB, where we generated a waterfall plot of the data. See Figure 3.

Figure 3. Waterfall plot containing frequencies from two transmitters, generated using wiserd FFT data from Experiment 2.

Once we have the experiment set up, we can extract IQ samples from the receiver and use them in our MATLAB processing script.

To reduce the size of our output data, we reduced the receiver sampling rate, shortened the time span of the experiment to 1.5 seconds, and confined the transmitters to a smaller spectrum of frequencies.

The MATLAB script currently generates a waterfall plot, plots individual FFTs and applies a simple peak-finding algorithm to identify possible transmitted frequencies. See Figure 4.

Figure 4. Waterfall plot (left) and an example of the peak-finding algorithm applied to an FFT (right), generated using IQ samples from Experiment 2.
Last modified 23 months ago Last modified on 08/13/15 14:32:19

Attachments (25)