Spectrum Consumption Model Builder and Analysis Tool
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



The ** Spectrum Consumption Model Builder and Analysis Tool (SCMBAT) ** facilitates the construction of Spectrum Consumption Models (SCMs) and the analysis of compatibility between transmitters and receivers for which an SCM describes their boundaries of spectrum use.

The structure of SCMs and the mechanisms to determine non-interfering use of spectrum when devices express their spectrum use boundaries via SCMs are defined in the IEEE Standard 1900.5.2 elaborated by the IEEE 1900.5 Working Group on Policy Language and Architectures for Managing Cognitive Radio for Dynamic Spectrum Access Applications. http://grouper.ieee.org/groups/dyspan/5/index.htm

Overall, SCMBAT aims to incentivize the use of SCMs, uncover the potential benefits of their use, collect feedback for their improvement and contribute to the development of spectrum sharing techniques.

System requirements

The code for the tool has been built in Java and uses scripts written in Octave (a numerical computation language with similarities to Matlab) and some shell scripts.


  • The tool has been tested in Ubuntu 16.04.
  • Please note that the java file with the main( ) method is the Home.java file in the SCM_home folder.

Code structure

  • The src folder contains Java code components
  • The Octave folder contains scripts written in octave for SCMBAT operations
  • The Models folder contains an example of a SCM for a transmitter and a receiver which can be loaded and explored in SCMBAT.
  • The libraries folder contains jar libraries required by SCMBAT
  • The Reports folder contains templates for the generation of SCM compatibility report (HTML based) and is where the reports will get stored
  • The MaxPow.sh and TotPow.sh files are required for adequate execution of compatibility computations in SCMBAT
  • The HomeDirectoryPath.txt file. This file should be updated to contain the directory path of your installation of SCMBAT.

Installing SCMBAT

For a Ubuntu (debian) system, download the latest SCMBAT.tar.gz file from github and use the scmbatinstall.sh script which will install all the required libraries and configure the system environment to run SCMBAT.

As an alternative, you can compile the java code of the tool, generate and executable JAR file. However, please note that the following elements should be present in the same directory where you have your executable JAR file:

  • a sub-directory called “Octave” with all the octave scripts for the tool in it.
  • The scripts MaxPow.sh and TotPow.sh
  • (optional) a sub-directory containing the commons-logging and javaoctave jar libraries (depends on the options you used to compile the code)
  • A “Models” directory where the spectrum consumption model directories and files will be created by default.
  • A directory with the license files

Also make sure your system meets the requirements mentioned previously

  • IMPORTANT: The HomeDirectoryPath.txt file must be edited to contain the directory path of your installation of SCMBAT.

Starting SCMBAT

Once SCMBAT is installed (or compiled) locate the directory with the SCMBAT.jar file and use the following command sequence to run SCMBAT:

java -jar SCMBAT.jar

Please note that once SCMBAT is started, it will create a "logs" directory to store its execution log.

Tool use – Notes/Observations

  • Spectrum Consumption Models are saved as xml files compatible with the IEEE 1900.5.2 XML Schema for SCM. The XML file with the SCM information will be stored inside the Models folder.

  • When saving the data for a SCM, the application reconfirms that you are saving it into a Transmitter model (Tx) or a receive model file (Rx) depending on how you started building the model. Additionally, it provides a warning window indicating data that is missing (which may be intentional from a modelers perspective) or data that should be numeric and isn't (potential data entry error).

Bug reports / Feature requests / Code contributions

Please look at the guidelines mentioned in Contributing.md


Video tutorial

A tutorial document is currently under preparation.

Introduction to Spectrum Consumption Models:

Detailed explanations on SCMs and Model-Based Spectrum Managment can be found in:


In addition to the contributors mentioned in Contributors.md the project originators would like to thank Google Inc. who provided initial support to start this project via a Google Faculty Award.

Copyright and License

Code and documentation Copyright Syracuse University 2016. Code is released under a GPLv3 license