• Stars
    star
    270
  • Rank 152,189 (Top 3 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created over 8 years ago
  • Updated 5 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Signal Analysis Toolbox for GNU Radio

The Inspector (gr-inspector)

Introduction

This GNU Radio module is developed to realize signal analysis abilities in typical block-structure. The module is capable of the following:

  • Energy detection of continuous signals
  • Filtering of detected signals
  • OFDM parameter estimation (carrier spacing, symbol time)
  • Blind OFDM synchronization
  • Resampling of signals to constant rate
  • 3D Visualisation of FAM data, from gr-specest (not on GR 3.8 yet)
  • Using TensorFlow models for AMC (not on GR 3.8 yet)

Installation

To install the Inspector, the following dependencies are required:

  • GNU Radio 3.8
    • gr-blocks, gr-filter, gr-fft
    • Optional for tests: gr-analog, gr-channel
  • Qt5
  • Qwt 6.1.0

This OOT follows the GNU Radio development model, there are different branches for compatibility with different GNU Radio versions.

Install by the following shell commands:

git clone [email protected]:gnuradio/gr-inspector.git
cd gr-inspector
mkdir build
cd build
cmake ..
make -j4
sudo make install

Usage

Get inspired by the examples. There are flowgraphs for each block that should explain how to use them.

For detailed information about each block, visit the Doxygen HTML pages.

Brief block description

A typical inspector flowgraph could look like this: A typical inspector flowgraph

Signal Detector

Performs an energy detection of continuous input signals. A threshold in dB can be set or an autmatic threshold calculation can be used.

Inspector GUI

GUI where the spectrum is displayed along with signal markers for the detected signals. Also, signal can be selected manually in this block.

Signal Separator

Takes the signal info from the previous blocks and performs a down-mixing, filtering and decimation of each detected signal. The samples for each signal are passed on as a message.

Signal Extractor

Adapter block to extract the samples of one signal out of the messages from the Signal Separator. Output is again a complex stream.

Resampling can be used to assure a constant output sample rate of the stream. (Needed for FM demod for instance.)

OFDM Estimator

Estimates the parameters subcarrier spacing, symbol time, FFT size and cyclic prefix length for a input signal. The signal should not be oversampled for this block.

OFDM Synchronizer

After OFDM parameter estimation, the signal is frequency synced and symbol beginnings are marked with stream tags.

Google Summer of Code

This GNU Radio module is part of the Google Summer of Code (GSoC) program 2016. The target is to develop a signal analysis / signal intelligence toolbox with the following capabilities:

  • Automatic signal detection
  • Automatic modulation classification
  • OFDM parameter estimation and synchronization
  • GUI feedback
  • Doxygen documentation

Read the full proposal here.

This project was developed in cooperation with the Communications Engineering Lab of the Karlsruhe Institute of Technology.

The modulation classification is developed by @chrisruk during ESA Summer of Code in Space program.

Pybind11 QT binding issues

Trying to generate the qt_gui_inspector_sink_vf module python bindings, you may get an error that the "qapplication.h" include cannot be found. Use this command and modify the include directory according to your system:

gr_modtool bind qtgui_inspector_sink_vf --addl_includes /usr/include/x86_64-linux-gnu/qt5/,/usr/include/x86_64-linux-gnu/qt5/QtWidgets -D"__PIC__ 2"

Add to the qtgui_inspector_sink_vf_python.cc :

#include <QtWidgets/qwidget.h>

License

This software is Copyright ยฉ 2016 Free Software Foundation, Inc. and part of GNU Radio. It is free software, and is released under the GPLv3 License.

Contact/Help

If you run into problems installing or using gr-inspector, the GNU Radio mailing list is the right place to get help. There are many people who will provide assistance. Please do provide a complete problem description containing

  1. What exactly where you trying to do?
  2. What steps did you perform to achieve this?
  3. What happend (with complete verbose output)?
  4. Why do you think something went wrong? What should have happend instead?

Visit How to report errors for more detailed instructions.

Please only use GitHub issues for actual bugs and improvements! "This command is not working on my machine" is not a bug.

Maintainer of this module:

Sebastian Mรผller
gsenpo[at]gmail.com

Christopher Richardson
chrisrichardsonuk[at]gmail.com

If you want to know more about the development process, please visit the blog.

More Repositories

1

gnuradio

GNU Radio โ€“ the Free and Open Software Radio Ecosystem
C++
4,965
star
2

volk

The Vector Optimized Library of Kernels
C++
532
star
3

pybombs

PyBOMBS (Python Build Overlay Managed Bundle System) is the GNU Radio install management system for resolving dependencies and pulling in out-of-tree projects.
Python
413
star
4

SigMF

The Signal Metadata Format Specification
Python
238
star
5

gr-recipes

Main GNU Radio recipe repository for use with PyBOMBS
121
star
6

gr-tutorial

A tutorial OOT module for GNU Radio
CMake
113
star
7

gr-etcetera

Additional PyBOMBS recipes that aren't in gr-recipes
83
star
8

gr-bokehgui

Web based display for GNU Radio applications
C++
82
star
9

gr-dpd

Digital Pre-Distortion implementation in GNU Radio
C++
36
star
10

greps

GNU Radio Enhancement Proposals
31
star
11

gnuradio-livesdr

Scripts for creating GNU Radio Live SDR Environment.
Shell
29
star
12

newsched

The GNU Radio 4.0 Runtime Proof Of Concept
C++
22
star
13

gnuradio-docker

Script automation for creating canonical GNU Radio docker images
Dockerfile
19
star
14

gr-verilog

C++
14
star
15

gnuradio-buildbot

Configuration for the GNU Radio CI system powered by Buildbot
Dockerfile
13
star
16

gr-cuda

CUDA Custom Buffers and example blocks
C++
13
star
17

hugo-website

Sources for the GNU Radio hugo website
CSS
12
star
18

pmt

pmt
C++
11
star
19

cgran

cgran.org Django website
Python
11
star
20

cusp

Library of CUDA Kernels for Signal Processing
C++
11
star
21

pybombs-docker

Dockerfiles for running PyBOMBS
Dockerfile
10
star
22

recipes_legacy

Repository containing a set of recipes for pybombs
9
star
23

gnuradio-companion

Python
5
star
24

gr-logo

The official GNU Radio logo
TeX
4
star
25

gr-website

4
star
26

gnuradio-ngsched

GNU Radio fork for capturing major changes to the scheduler before merging back into the main repo
C++
4
star
27

gr-governance

GNU Radio Rules of Association
3
star
28

pybombs_legacy

Original oldschool PyBOMBS1 code.
Python
2
star
29

gnuradio-metadata

Metadata associated with the GNU Radio Repository
Python
1
star
30

sigmf-python

Python
1
star
31

pkg-gnuradio

1
star
32

pkg-volk

1
star