Skip to content

Commit

Permalink
Merge branch 'jcas-demo-2024' into 'master'
Browse files Browse the repository at this point in the history
Leakage Estimation Optimization & DSP Layer Port Selection

See merge request barkhauseninstitut/wicon/hermespy!174
  • Loading branch information
adlerjan committed Apr 3, 2024
2 parents 0b0e948 + de7f2ae commit 0a7c9e0
Show file tree
Hide file tree
Showing 135 changed files with 1,499 additions and 579 deletions.
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ image: python:3.11
variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
GIT_SUBMODULE_STRATEGY: recursive
HERMES_VERSION: "1.2.0"
HERMES_VERSION: "1.1.0"
HERMES_WHEEL_11: "hermespy-$HERMES_VERSION-cp311-cp311-linux_x86_64.whl"
HERMES_WHEEL_10: "hermespy-$HERMES_VERSION-cp310-cp310-linux_x86_64.whl"
HERMES_WHEEL_09: "hermespy-$HERMES_VERSION-cp39-cp39-linux_x86_64.whl"
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ add_subdirectory(submodules/affect)

# Add aff3ct bindings to hermes api
add_subdirectory(hermespy/fec/aff3ct)
install(TARGETS ldpc polar rs rsc turbo bch DESTINATION hermespy/fec/aff3ct)
install(TARGETS ldpc polar rs rsc turbo bch DESTINATION hermespy/fec/aff3ct)
File renamed without changes.
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,18 @@ multiple transmit and receive modems, which may operate at different carrier fre
In addition to simulating individual transmission links, HermesPy allows the analysis of both co-channel and
adjacent-channel interference among different communication systems.

## Features

The current release version 1.1.0 serves as a platform for joint development.
Its main focus is to provide a software architecture that can be easily extended.
Detailed core features as well as a release plan can be found in the
[features](https://hermespy.org/features.html) list.

## Documentation

For detailed [installation instructions](https://hermespy.org/installation.html),
tutorials and a full [API documentation](https://hermespy.org/api/api.html), please consult the official [documentation](https://hermespy.org/index.html) website.
tutorials and a full API documentation, please consult the official
[documentation](https://hermespy.org/index.html) website.

## Contributors

Expand All @@ -20,4 +28,4 @@ tutorials and a full [API documentation](https://hermespy.org/api/api.html), ple
* [Egor Achkasov](https://github.com/egor-achkasov)

## Copyright
Copyright (C) 2023 Barkhausen Institut gGmbH
Copyright (C) 2022 Barkhausen Institut gGmbH
4 changes: 2 additions & 2 deletions _examples/library/getting_started_loop.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@

# Configure the waveform to be transmitted over the link
link.waveform = RootRaisedCosineWaveform(symbol_rate=1e6, oversampling_factor=8,
num_preamble_symbols=10, num_data_symbols=100,
roll_off=.9)
num_preamble_symbols=10, num_data_symbols=100,
roll_off=.9)
link.waveform.channel_estimation = SingleCarrierLeastSquaresChannelEstimation()
link.waveform.channel_equalization = SingleCarrierZeroForcingChannelEqualization()

Expand Down
4 changes: 2 additions & 2 deletions _examples/library/getting_started_simulation.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@

# Configure the waveform to be transmitted over the link
link.waveform = RootRaisedCosineWaveform(symbol_rate=1e6, oversampling_factor=8,
num_preamble_symbols=10, num_data_symbols=100,
roll_off=.9)
num_preamble_symbols=10, num_data_symbols=100,
roll_off=.9)
link.waveform.channel_estimation = SingleCarrierLeastSquaresChannelEstimation()
link.waveform.channel_equalization = SingleCarrierZeroForcingChannelEqualization()

Expand Down
48 changes: 44 additions & 4 deletions bumpver.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[bumpver]

current_version = "1.2.0"
current_version = "1.1.0"
version_pattern = "MAJOR.MINOR.PATCH"
commit_message = "Bump to version {new_version}"
commit = false
Expand All @@ -16,8 +16,48 @@ push = false
".gitlab-ci.yml" = [ 'HERMES_VERSION: "{version}"' ]

# Source files
"hermespy/*/*.py" = [ '__version__ = "{version}"' ]
"hermespy/beamforming/*.py" = [ '__version__ = "{version}"' ]
"hermespy/bin/*.py" = [ '__version__ = "{version}"' ]
"hermespy/channel/*.py" = [ '__version__ = "{version}"' ]
"hermespy/core/*.py" = [ '__version__ = "{version}"' ]
"hermespy/fec/*.py" = [ '__version__ = "{version}"' ]
"hermespy/hardware_loop/*.py" = [ '__version__ = "{version}"' ]
"hermespy/hardware_loop/audio/*.py" = [ '__version__ = "{version}"' ]
"hermespy/hardware_loop/uhd/*.py" = [ '__version__ = "{version}"' ]
"hermespy/jcas/*.py" = [ '__version__ = "{version}"' ]
"hermespy/modem/*.py" = [ '__version__ = "{version}"' ]
"hermespy/modem/precoding/*.py" = [ '__version__ = "{version}"' ]
"hermespy/modem/tools/*.py" = [ '__version__ = "{version}"' ]
"hermespy/precoding/*.py" = [ '__version__ = "{version}"' ]
"hermespy/radar/*.py" = [ '__version__ = "{version}"' ]
"hermespy/simulation/*.py" = [ '__version__ = "{version}"' ]
"hermespy/simulation/coupling/*.py" = [ '__version__ = "{version}"' ]
"hermespy/simulation/isolation/*.py" = [ '__version__ = "{version}"' ]
"hermespy/simulation/noise/*.py" = [ '__version__ = "{version}"' ]
"hermespy/simulation/rf_chain/*.py" = [ '__version__ = "{version}"' ]
"hermespy/tools/*.py" = [ '__version__ = "{version}"' ]

# Test files
"tests/*/*.py" = [ '__version__ = "{version}"' ]
"tests/test_install.py" = [ '__version__ = "{version}"' ]
"tests/integration_tests/*.py" = [ '__version__ = "{version}"' ]
"tests/integrity_tests/documentation/*.py" = [ '__version__ = "{version}"' ]
"tests/integrity_tests/examples/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/bin/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/beamforming/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/channel/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/core/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/fec/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/hardware_loop/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/hardware_loop/audio/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/hardware_loop/uhd/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/jcas/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/modem/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/modem/precoding/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/modem/tools/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/precoding/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/radar/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/simulation/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/simulation/coupling/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/simulation/isolation/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/simulation/noise/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/simulation/rf_chain/*.py" = [ '__version__ = "{version}"' ]
"tests/unit_tests/tools/*.py" = [ '__version__ = "{version}"' ]
34 changes: 1 addition & 33 deletions docssource/api/modem.rst
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ and associated :doc:`Communication Waveforms<modem.waveform>`:
DuplexModem --|> TransmittingModem
DuplexModem --|> ReceivingModem

link CommunicationWaveform "modem.waveform.html"
link CommunicationWaveform "modem.waveform.waveform.html"
link BaseModem "modem.modem.BaseModem.html"
link TransmittingModem "modem.modem.TransmittingModem.html"
link ReceivingModem "modem.modem.ReceivingModem.html"
Expand Down Expand Up @@ -121,38 +121,6 @@ of communication systems:

.. include:: modem.evaluators._table.rst

Setting up a simulation evaluating the performance of a communication system
requires adding modems to devices and configuring the respective waveform:

.. literalinclude:: ../../_examples/library/getting_started_simulation.py
:language: python
:linenos:
:lines: 08-26

Afterwards, evaluators can be added freely and the simulation can be run:

.. literalinclude:: ../../_examples/library/getting_started_simulation.py
:language: python
:linenos:
:lines: 41-49

In the case of hardware evaluations, the waveform and modem configuartions remain the same,
however, the devices are replaced by hardware devices initialized from a hardware loop:

.. literalinclude:: ../../_examples/library/getting_started_loop.py
:language: python
:linenos:
:lines: 07-27

Then, similarly to the simulation, evaluators can be added and the loop can be run.
Additionally, visualizers plotting information generated by the communication system
can be added to supervise the evaluation:

.. literalinclude:: ../../_examples/library/getting_started_loop.py
:language: python
:linenos:
:lines: 29-43

.. toctree::
:glob:
:maxdepth: 1
Expand Down
15 changes: 1 addition & 14 deletions docssource/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,24 +91,11 @@
inheritance_graph_attrs = dict(
rankdir="TB",
size='"6.0, 8.0"',
fontsize=16,
fontsize=14,
ratio='compress',
fontweight='bold',
fontcolor='white',
fontname='"Helvetica Neue, Helvetica, Arial, sans-serif"',
bgcolor='transparent',
)
inheritance_node_attrs = dict(
color='"#263238"',
fillcolor='"#37474F"',
fontcolor='white',
)
inheritance_edge_attrs = dict(
color='"#263238"',
fillcolor='"#37474F"',
)

graphviz_output_format = 'svg'

# Intersphinx configuration
intersphinx_mapping = {
Expand Down
2 changes: 0 additions & 2 deletions docssource/developer_hints.rst
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,6 @@ It requires some additional dependencies which may be installed from PyPi via
pip install -e ".[documentation]"
Additionally, inheritance diagrams are generated by `Graphviz <https://graphviz.org/>`_,
which has to be installed manually on your system and added to the PATH environment variable.
The documentation source files are located under `/docssource/`, however,
most API information should be directly inserted into the source code files and inserted
by the `autodocs <https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html>`_
Expand Down
3 changes: 1 addition & 2 deletions docssource/examples/examples.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
======================
YAML Examples
Configuration Examples
======================

This chapter provides several configuration examples to the HermsPy command line interface.
Expand Down
Loading

0 comments on commit 0a7c9e0

Please sign in to comment.