Efficient implementation of a spectrum scanner on a software-defined radio platform

Similar documents
FPGA Digital Signal Processing. Derek Kozel July 15, 2017

DDC and DUC Filters in SDR platforms

Spartan-6 based Up Converter demonstrator for Direct RF synthesis

Modeling and Implementing Software-Defined Radio Communication Systems on FPGAs Puneet Kumar Senior Team Lead - SPC

FPGA Design. Part I - Hardware Components. Thomas Lenzi

EEM Digital Systems II

LFSRs as Functional Blocks in Wireless Applications Author: Stephen Lim and Andy Miller

LogiCORE IP CIC Compiler v2.0

LogiCORE IP Spartan-6 FPGA Triple-Rate SDI v1.0

Faculty of Electrical & Electronics Engineering BEE3233 Electronics System Design. Laboratory 3: Finite State Machine (FSM)

IP-DDC4i. Four Independent Channels Digital Down Conversion Core for FPGA FEATURES. Description APPLICATIONS HARDWARE SUPPORT DELIVERABLES

VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description

Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System

Ultra-Wideband Scanning Receiver with Signal Activity Detection, Real-Time Recording, IF Playback & Data Analysis Capabilities

Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line

Space Weather Station Project. John Ackermann N8UR

GALILEO Timing Receiver

AbhijeetKhandale. H R Bhagyalakshmi

Low Cost, High Speed Spectrum Analyzers For RF Manufacturing APPLICATION NOTE

AR SWORD Digital Receiver EXciter (DREX)

Design & Simulation of 128x Interpolator Filter

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS

Laboratory 4. Figure 1: Serdes Transceiver

Single Channel LVDS Tx

Major Differences Between the DT9847 Series Modules

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4)

Modeling Latches and Flip-flops

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

FPGA Design with VHDL

Intro to DSP: Sampling. with GNU Radio Jeff Long

Arria-V FPGA interface to DAC/ADC Demo

ni.com Digital Signal Processing for Every Application

VXI RF Measurement Analyzer

DT9857E. Key Features: Dynamic Signal Analyzer for Sound and Vibration Analysis Expandable to 64 Channels

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

Data Converters and DSPs Getting Closer to Sensors

Why FPGAs? FPGA Overview. Why FPGAs?

T1 Deframer. LogiCORE Facts. Features. Applications. General Description. Core Specifics

Contents Circuits... 1

Figure 1: Feature Vector Sequence Generator block diagram.

AC : DIGITAL DESIGN MEETS DSP

PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS

Smart Night Light. Figure 1: The state diagram for the FSM of the ALS.

SERDES Eye/Backplane Demo for the LatticeECP3 Serial Protocol Board User s Guide

Midterm Exam 15 points total. March 28, 2011

Radar Signal Processing Final Report Spring Semester 2017

DEPARTMENT OF ELECTRICAL &ELECTRONICS ENGINEERING DIGITAL DESIGN

Lab #10 Hexadecimal-to-Seven-Segment Decoder, 4-bit Adder-Subtractor and Shift Register. Fall 2017

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract

DVB-S2X for Next Generation C4ISR Applications

DESIGN OF A MEASUREMENT PLATFORM FOR COMMUNICATIONS SYSTEMS

Digital Fundamentals: A Systems Approach

Benchtop Portability with ATE Performance

Getting Started with UHD and C++

Lab Assignment 2 Simulation and Image Processing

DT9837 Series. High Performance, USB Powered Modules for Sound & Vibration Analysis. Key Features:

A MISSILE INSTRUMENTATION ENCODER

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

Inside Digital Design Accompany Lab Manual

ExtIO Plugin User Guide

Digital Front End (DFE) Training. DFE Overview

DSP in Communications and Signal Processing

Brilliance. Electron Beam Position Processor

DRS Application Note. Integrated VXS SIGINT Digital Receiver/Processor. Technology White Paper. cwcembedded.com

Low-Power Decimation Filter for 2.5 GHz Operation in Standard-Cell Implementation

Logic Analysis Basics

OL_H264e HDTV H.264/AVC Baseline Video Encoder Rev 1.0. General Description. Applications. Features

Logic Analysis Basics

Traffic Light Controller

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report

EECS150 - Digital Design Lecture 10 - Interfacing. Recap and Topics

Reconfigurable FPGA Implementation of FIR Filter using Modified DA Method

Hello and welcome to this presentation of the STM32L4 Analog-to-Digital Converter block. It will cover the main features of this block, which is used

DIGITAL FUNDAMENTALS

Chapter 4: One-Shots, Counters, and Clocks

THDB_ADA. High-Speed A/D and D/A Development Kit

VRT Radio Transport for SDR Architectures

Build Applications Tailored for Remote Signal Monitoring with the Signal Hound BB60C

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran

Wideband Downconverters With Signatec 14-Bit Digitizers

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

OL_H264MCLD Multi-Channel HDTV H.264/AVC Limited Baseline Video Decoder V1.0. General Description. Applications. Features

Prime Num Generator - Maker Faire 2014

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

FPGA Realization of Farrow Structure for Sampling Rate Change

mmwave Radar Sensor Auto Radar Apps Webinar: Vehicle Occupancy Detection

MASSACHUSETTS INSTITUTE OF TECHNOLOGY Department of Electrical Engineering and Computer Sciences

CS 110 Computer Architecture. Finite State Machines, Functional Units. Instructor: Sören Schwertfeger.

PEP-II longitudinal feedback and the low groupdelay. Dmitry Teytelman

860 DSP Digital Field Analyzer

FPGA Development for Radar, Radio-Astronomy and Communications

EECS150 - Digital Design Lecture 18 - Circuit Timing (2) In General...

Agilent E4430B 1 GHz, E4431B 2 GHz, E4432B 3 GHz, E4433B 4 GHz Measuring Bit Error Rate Using the ESG-D Series RF Signal Generators, Option UN7

Field Programmable Gate Array (FPGA) Based Trigger System for the Klystron Department. Darius Gray

Block Diagram. pixin. pixin_field. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. pixels_per_line. lines_per_field. pixels_per_line [11:0]

Understanding and Calculating Probability of Intercept

A 400MHz Direct Digital Synthesizer with the AD9912

T-COR-11 FPGA IP CORE FOR TRACKING OBJECTS IN VIDEO STREAM IMAGES Programmer manual

LogiCORE IP Video Timing Controller v3.0

Transcription:

Efficient implementation of a spectrum scanner on a software-defined radio platform François Quitin, Riccardo Pace Université libre de Bruxelles (ULB), Belgium 1

Context and objectives Regulators need to detect abusive usage of RF spectrum Lots of technicians driving around on all kind of missions Use (reasonably) cheap hardware to do opportunistic scanning How to use SDRs to do (pseudo)-realtime spectrum scanning? USRP-N210 Single-board host computer (e.g. Raspberry Pi form factor) No user intervention 2

Context and objectives What s wrong with existing codes? http://www.ni.com/white-paper/13882/en/ «Spectrum analyzer with USRP, GNU Radio and MATLAB» http://www.av.it.pt/conftele2009/papers/114.pdf https://github.com/edgarware/usrp_spec_analyzer Problems with these implementations? Scanning bandwidth may be larger than USRP bandwidth Fully software-based (Python, Labview, C++), so hard to do real-time on low-weight host Solution: implement the spectrum scanner on the USRP FPGA! Use software for scan coordination and data recording 3

Outline Overall system design Intro to FPGA: difference with μc Spectrum scanner design FPGA design FFT module Square magnitude module Energy detection module Data synchronizer module Software design Usefull low-level UHD commands Retuning and streaming GUI with gnuplot-iostream Some results Demo time! 4

What is an FPGA and why can it be faster than a microcontroller? - Executes 1 instruction / cycle - Serial processing - Compilation: converts HLL to microinstructions - Limited by duration of execution - HLL: C++, Python, - Processes N insctructions / cycle - Parallel processing - Synthesis and P&R: converts «HLL» to inter-connection diagram - Limited by size of circuitry - «HLL»: VHDL or Verilog 5

Digital up- and down conversion Decimation/interpolation The FPGA in the USRP Does some basic stuff, but still some space left! Formating of samples for UHD drivers Hardware elements available in the FPGA FPGA Xilinx Spartan 3A-DSP from ADC to DAC DDC DUC Decim Interp CIC UHD Network Driver Command & Control Data Streaming to/from Ethernet Default FPGA image Flip Flops 42% 4-input LUT 65% Slices 82% DSP48A 24% 32 bit RISC processor RAM16BWER 32% 6

Spectrum scanner design Mixed FPGA-software architecture FPGA to perform CPU-intensive task Software to coordinate retuning of carrier frequency and log data 7

Outline Overall system design Intro to FPGA: difference with μc Spectrum scanner design FPGA design FFT module Square magnitude module Energy detection module Data synchronizer module Software design Usefull low-level UHD commands Retuning and streaming GUI with gnuplot-iostream Some results Demo time! 8

Modules that can be cascaded FPGA design 2 inputs and outputs for each module One for the actual data Detailled FPGA architecture One that indicates if data is valid Two versions of the Energy Detection Module Fixed threshold (set manually from software) Automatic threshold (mostly automatic, partial manual setting possible) x[31:0] X[31:0] Y[31:0] Y[31:0] {I,Q} {I,Q} SQM[31:0] {D, Y 2 [30:0]} {D, Y 2 [30:0]} ENERGY FFT Y 2 DATA SYNCH DETECTION strobe_in dv_fft dv_sqm dv_y MODULE strobe_out MODULE 9

FPGA design Details of the different modules x[31:0] X[31:0] Y[31:0] Y[31:0] {I,Q} {I,Q} SQM[31:0] {D, Y 2 [30:0]} {D, Y 2 [30:0]} ENERGY FFT Y 2 DATA SYNCH DETECTION strobe_in dv_fft dv_sqm dv_y MODULE strobe_out MODULE FFT module 1024-point FFT (not configurable) 10

FPGA design Details of the different modules x[31:0] X[31:0] Y[31:0] Y[31:0] {I,Q} {I,Q} SQM[31:0] {D, Y 2 [30:0]} {D, Y 2 [30:0]} ENERGY FFT Y 2 DATA SYNCH DETECTION strobe_in dv_fft dv_sqm dv_y MODULE strobe_out MODULE Energy detection module i=1 M Y 2 > λ? size-m subwindow N-point FFT Fixed threshold: set manually by user from software Automatic threshold: λ = λ + αd window with D window = k=n n+m Y k 2 Y k 2 /N k=1 N Energy over current subwindow Average energy over 10MHz-window 11

FPGA design Details of the different modules x[31:0] X[31:0] Y[31:0] Y[31:0] {I,Q} {I,Q} SQM[31:0] {D, Y 2 [30:0]} {D, Y 2 [30:0]} ENERGY FFT Y 2 DATA SYNCH DETECTION strobe_in dv_fft dv_sqm dv_y MODULE strobe_out MODULE Data synchronizer module Readapt the rate of samples to USRP sample rate Ratio between USRP sample rate and f clock (=100 MHz) has to be an integer value Design fully compatible with host UHD drivers 12

FPGA design Ressource utilization of our additional blocks Our design is very cheap in ressource utilization! Default FPGA image Fixed threshold Automatic threshold Flip Flops 42% +3% +4% 4-input LUT 65% +3% +4% Slices 82% +2% +4% DSP48A 24% +7% +9% RAM16BWER 32% +12% +14% 13

Outline Overall system design Intro to FPGA: difference with μc Spectrum scanner design FPGA design FFT module Square magnitude module Energy detection module Data synchronizer module Software design Usefull low-level UHD commands Retuning and streaming GUI with gnuplot-iostream Some results Demo time! 14

Software design Some usefull low-level UHD commands Set FPGA register from host side (threshold, subwindow size, ) // set threshold of the energy detector module usrp->set_user_register(th_address,threshold,0); Specify time of command (retune of carrier frequency) // set the command in time usrp->set_command_time(cmpd_time[i]); t_result[i] = usrp->set_rx_freq(tune_request[i]); 15

Software design: re-tuning and streaming Send future retune commands while streaming for k=0 to k=7 do set command time @ cmd_time[k] tune_request[k] rx stream command @ cmd_time[k]+delta end for while (1) do receive samples k++ set command time @ cmd_time[k] tune_request[k] rx stream command @ cmd_time[k]+delta end while Retune lock time, typically 1 ms With this laptop: 250 ms for scanning 1 GHz band w/o overflows 16

Software design: light-weight GUI Using gnuplot-iostream Low refresh rate to avoid hogging CPU Data is also saved to a log file SQM.dat detection.dat 17

Outline Overall system design Intro to FPGA: difference with μc Spectrum scanner design FPGA design FFT module Square magnitude module Energy detection module Data synchronizer module Software design Usefull low-level UHD commands Retuning and streaming GUI with gnuplot-iostream Some results Demo time! 18

Bluetooth + Multicarrier signal Some results in the lab when connecting signal generator to USRP 19

Some results outside the lab Scanning for FM stations 20

Some results right here Demo time! Demo of GSM and 3G spectrum scan Code available on Github https://github.com/fquitin/energy_detection_system What s in the code? FPGA source code FPGA images, flashable on the USRP Host C++ source code and CMake files Some Matlab scripts with testbenches and postprocessing scripts 21