kit-cel / gr-cbmc

Cumulant-Based Modulation Classification with GNU Radio

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

gr-cbmc

A Cumulant-Based Modulation Classification module for GNU Radio

Features

  • Classification of the modulation of a signal
    • Detection of BPSK, QPSK, 16-QAM and 8-PSK possible
    • Classification and phase correction is done by one block
  • The necessary synchronisation is perfomed by custom-built blocks
    • Frequency and Symbolrate estimation
    • Time synchronization (modified version of pfb_clock_sync)
  • The result is a stream of symbols (with 1 sample per symbol) without phase-/frequency-/timing-offset, which includes the current modulation as stream tags

Usage

There is a flowgraph in examples/ which demonstrates the classification receiver chain. The receiver of the flowgraph is displayed here:

Example flowgraph

Further information is available in this bachelor thesis (german). This module was built as part of the thesis. An additional interesting source is the doctoral thesis by Michael Sebastian Mühlhaus: Automatische Modulationsartenerkennung in MIMO-Systemen.

Installation

To install this module, run these commands:

$ mkdir build
$ cd build
$ cmake ../
$ make
$ sudo make install
$ sudo ldconfig

The build process has been tested with

  • cppunit, version 1.14.0
  • gnuradio, version 3.7.10
  • doxygen, version 1.8.13

Current Constraints

  • Just setting stream tags, no actual demodulation of the signal
  • If there is only noise, always 8PSK will be classified

About

Cumulant-Based Modulation Classification with GNU Radio

License:GNU General Public License v3.0


Languages

Language:CMake 51.8%Language:C++ 41.7%Language:Python 5.9%Language:C 0.6%