https://github.com/ant-uni-bremen/gr-symbolmapping
GNU Radio blocks for standardized symbolmapping
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 8 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.8%) to scientific vocabulary
Keywords
communication
gnu
gnuradio
mapping
sdr
symbol
Last synced: 6 months ago
·
JSON representation
Repository
GNU Radio blocks for standardized symbolmapping
Basic Info
Statistics
- Stars: 9
- Watchers: 1
- Forks: 3
- Open Issues: 0
- Releases: 0
Topics
communication
gnu
gnuradio
mapping
sdr
symbol
Created almost 6 years ago
· Last pushed almost 3 years ago
https://github.com/ant-uni-bremen/gr-symbolmapping/blob/master/
[](https://zenodo.org/badge/latestdoi/247098278) [](https://github.com/ant-uni-bremen/gr-symbolmapping/actions/workflows/run-test.yml)
# GNU Radio Symbolmapping
In digital communication, we rely on symbol mapping such as QPSK, 16QAM, etc.
There exists a set of common definitions for these mappings in across a wide variety of standards (WiFi, LTE, 5G NR, ...).
Unfortunately, GNU Radio does not implement this standard set.
Further, we want fast and efficient demappers that employ efficient approximations for these common mappings.
## Interleavers
In most systems, interleavers are employed right before symbol mapping in order to leverage full diversity in frequency-selective fading scenarios. Especially, multicarrier systems such as OFDM, GFDM or FBMC benefit from this approach.
Thus, we add bit interleavers as well. Sometimes this interleaver is called channel interleaver.
__The interleaver block is available in GNU Radio 3.10.4+ in gr-blocks__
## Python interface
Finally, we need those functions in GNU Radio but also with a Python3 interface for use in simulations. Thus, we add a PyBind11 interface that offers just that.
## Prerequisites
We provide a `Dockerfile` to compile the Python interface only. This is only for test purposes. In case you want to compile and use the Python interface only, you need several packages.
### Debian/Ubuntu packages
For the python interface
- build-essential
- git
- cmake
- libvolk2-dev
- liborc-0.4-dev
- python3-dev
- python3-distutils
- python3-pybind11
### GNU Radio installation
In case you want to use the whole system with GNU Radio and Python interface, GNU Radio should already provide everything.
GNU Radio 3.9 is required to use this module!
## Usage
This is the symbolmapping-write-a-block package meant as a guide to building
out-of-tree packages. To use the symbolmapping blocks, the Python namespaces
is in 'symbolmapping', which is imported as:
import symbolmapping
See the Doxygen documentation for details about the blocks available
in this package. A quick listing of the details can be found in Python
after importing by using:
help(symbolmapping)
## Contributions
Pull Requests are highly welcome to add more standardized mappings aka constellations aka alphabets.
## References
For reference have a look at the following papers and standard documents
* [ETSI 138.211 TS "5G; NR; Physical channels and modulation"](https://www.etsi.org/deliver/etsi_ts/138200_138299/138211/16.02.00_60/ts_138211v160200p.pdf)
* [Caire et al. "Bit-Interleaved Coded Modulation"](https://doi.org/10.1109/18.669123)
* [Tosato et al. "Simplified soft-output demapper for binary interleaved COFDM with application to HIPERLAN/2"](https://doi.org/10.1109/ICC.2002.996940)
* [Allpress et al. "Exact and Approximated Expressions of the Log-Likelihood Ratio for 16-QAM Signals"](https://doi.org/10.1109/ACSSC.2004.1399245)
* [Mao et al. "A low complexity 256QAM soft demapper for 5G mobile system"](https://doi.org/10.1109/EuCNC.2016.7560996)
Owner
- Name: Arbeitsbereich Nachrichtentechnik
- Login: ant-uni-bremen
- Kind: organization
- Location: Bremen, Germany
- Website: http://www.ant.uni-bremen.de/de/home/
- Repositories: 6
- Profile: https://github.com/ant-uni-bremen
Department of Communication Engineering at University of Bremen
GitHub Events
Total
Last Year
Dependencies
.github/workflows/automerge.yml
actions
- actions/checkout v3 composite
- conda-forge/automerge-action master composite
.github/workflows/check-formatting.yml
actions
- actions/checkout v3 composite
- gnuradio/clang-format-lint-action v0.5-4 composite
.github/workflows/conda-build.yml
actions
- actions/checkout v3 composite
- actions/upload-artifact v3 composite
- conda-incubator/setup-miniconda v2 composite
.github/workflows/run-test.yml
actions
- actions/checkout v3.1.0 composite
.github/workflows/webservices.yml
actions
- conda-forge/webservices-dispatch-action master composite
Dockerfile
docker
- ubuntu focal build