Skip to content

anollba/hermespy-1

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HermesPy

HermesPy (Heterogeneous Radio Mobile Simulator - Python) is a semi-static link-level simulator based on time-driven mechanisms.

It provides a framework for the link-level simulation of a multi-RAT wireless link, consisting of multiple transmit and receive modems, which may operate at different carrier frequencies. Besides simulating individual transmission links, HermesPy allows the analysis of both co-channel and adjacent-channel interference among different communication systems.

You can find an introductory video here: https://www.barkhauseninstitut.org/opensource/hermespy

Features

The curent release "Platform Release" serves as a platform for joint development. Beside some core functionality, that can be found beside the release plan, its main focus is to provide a software architecture that can be easily extended.

Installation

  • git clone <this-repo>
  • Change to hermespy/

Windows users:

  • conda create -n <envname> python=3.7 (can be omitted for ubuntu users)
  • conda activate <envname> (can be omitted for ubuntu users)
  • conda install pip (can be omitted for ubuntu users)
  • pip install -r requirements.txt

Ubuntu users:

  • Ensure python is linked to python3.7
  • python -m venv env
  • . env/bin/activate
  • pip install -r requirements.txt

Quadriga channel model v2.1.30 is supported by HermesPy. For it to be used, some preliminary steps need to be taken for it to be used. It can be run with either Octave or matlab. For octave, under Windows, you need to set the environemnt variable that tells python where to find octave-cli executable by calling

setx PATH "%PATH%;<path-to-octave-cli>

and install oct2py via pip install oct2py (Ubuntu sets the environment variable automatically).

If you want to run matlab, you must use the matlab.engine package proided by Matlab. Refer to this link.

Running the simulator

  1. Activate your virtual environment:
    1. Windows: conda activate <envname>
    2. ubuntu: . env/bin/activate
  2. The simulator can be called by python hermes.py <param> <output_dir>.

The main execution file is hermes.py -p <settings-directory -o <results-directory>. Both command line parameters are optional arguments. <settings-directory> contains settings files for the simulation and <results-directory> tells the simulator where to put the result files. Both are relative paths and have default values namely _settings and results. Plase refer to our documentation (see below).

Some examples may be found in the _examples folder. Check the readmes.

Quadriga

Set Multipath=QUADRIGA for all channels in settings_scenario.ini. The Quadriga channel model will then use a combination of the values provided in all settings_*.ini files. Quadriga-specific values are located in the settings_quadriga.ini. Check before first use.

Important note: As SNR-Values, use SNR=CUSTOM. Setting this value to custom, values provided for snr_vector are interpreted as actual noise variance (in dB/Hz). Check test files for actual values.

Important note: If you decide to run with matlab/octave, ensure you installed matlab/octave and octpy/matlab.engine. Otherwise the program will crash. Although some catches are implemented, this can lead to errors.

Running the tests

Tests may be run by calling pytest in the root directory. They test for

  • type linting using mypy
  • basic checks on pep8
  • unit tests.

If only unit tests are to be executed, call python run_unit_tests.py.

Attention: Due to current GIT LFS storage issues, integrity tests will be uploaded in the future.

Documentation

Documentation can be found here. It is auto-generated by the github action. Quadriga documentation can be found in hermes/docs.

Authors

Copyright

Copyright (C) 2021 Barkhausen Institut gGmbH

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 85.7%
  • JavaScript 10.4%
  • CSS 2.7%
  • MATLAB 1.1%
  • Makefile 0.1%