Skip to content
/ gr-cbmc Public
forked from kit-cel/gr-cbmc

Cumulant-Based Modulation Classification with GNU Radio

License

Notifications You must be signed in to change notification settings

nlhnt/gr-cbmc

 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CMake 51.8%
  • C++ 41.7%
  • Python 5.9%
  • C 0.6%