SDR in ORBIT: Spectrum Sensing
Table of Contents
- 2015 Winlab Summer Internship
- LTE Unlicensed (LTE-U)
- Introduction
- Objectives
- Theory
- Analyzing Tools
- Experiment 1: Transmit and Receive LTE Signal
- Experiment 2: The Waterfall Plot
- Experiment 3: eNB and UE GUI
- Experiment 4: Varying Bandwidths
- Experiment 5: Working with TDD or FDD
- Experiment 6: TDD with Varying Bandwidths
- Experiment 7: TDD Waterfall Plot
- Poster
- Members
- Materials
- Resources
- LTE Unlicensed (LTE-U)
- Body Sensor Networks
- Dynamic Video Encoding
Introduction
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.
GitHub: https://github.com/ThePomelo/Spectrum-Sensing
Team
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.
Objectives
- 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
Experiments
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.
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.
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.
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.
Attachments (25)
-
WINLAB Weeks 1-2.pptx
(602.4 KB
) - added by 10 years ago.
Presentation 1
- collins.jpg (106.2 KB ) - added by 10 years ago.
- nicole.PNG (80.3 KB ) - added by 10 years ago.
- christina.jpg (44.6 KB ) - added by 10 years ago.
- Spectrum Sensing Weeks 1-2.pdf (410.0 KB ) - added by 10 years ago.
- Spectrum Sensing Week 3.pdf (364.5 KB ) - added by 10 years ago.
- Spectrum Sensing Week 4.pdf (351.0 KB ) - added by 10 years ago.
- waterfall_plot.fig (92.6 KB ) - added by 10 years ago.
- exp1_2.gif (280.7 KB ) - added by 10 years ago.
- exp1_1.2.png (5.4 KB ) - added by 10 years ago.
- exp1_1.png (19.2 KB ) - added by 10 years ago.
- exp1_2.2.gif (824.6 KB ) - added by 10 years ago.
- exp1_3.png (191.1 KB ) - added by 9 years ago.
- Spectrum Sensing Week 5.pdf (467.2 KB ) - added by 9 years ago.
- grid_exp1.png (7.3 KB ) - added by 9 years ago.
- Spectrum Sensing Week 6.pdf (269.1 KB ) - added by 9 years ago.
- Spectrum Sensing Week 7.pdf (922.8 KB ) - added by 9 years ago.
- nick.png (520.8 KB ) - added by 9 years ago.
- exp2_1.png (120.6 KB ) - added by 9 years ago.
- exp2_2.png (25.3 KB ) - added by 9 years ago.
- Spectrum Sensing Presentation to NYIT.pdf (3.0 MB ) - added by 9 years ago.
- Spectrum Sensing Week 9.pdf (320.8 KB ) - added by 9 years ago.
- Spectrum Sensing Week 10.pdf (406.3 KB ) - added by 9 years ago.
- Spectrum Sensing Week 11.pdf (250.6 KB ) - added by 9 years ago.
- Spectrum Sensing Week 12.pdf (667.8 KB ) - added by 9 years ago.