{"id":39447840,"url":"https://github.com/ant-uni-bremen/gr-symbolmapping","last_synced_at":"2026-01-18T04:26:26.640Z","repository":{"id":73782825,"uuid":"247098278","full_name":"ant-uni-bremen/gr-symbolmapping","owner":"ant-uni-bremen","description":"GNU Radio blocks for standardized symbolmapping","archived":false,"fork":false,"pushed_at":"2023-04-04T14:43:56.000Z","size":249,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-09T08:38:11.073Z","etag":null,"topics":["communication","gnu","gnuradio","mapping","sdr","symbol"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ant-uni-bremen.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":".zenodo.json","notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-03-13T15:04:22.000Z","updated_at":"2025-03-04T09:54:32.000Z","dependencies_parsed_at":"2023-09-21T04:47:06.240Z","dependency_job_id":null,"html_url":"https://github.com/ant-uni-bremen/gr-symbolmapping","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ant-uni-bremen/gr-symbolmapping","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ant-uni-bremen%2Fgr-symbolmapping","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ant-uni-bremen%2Fgr-symbolmapping/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ant-uni-bremen%2Fgr-symbolmapping/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ant-uni-bremen%2Fgr-symbolmapping/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ant-uni-bremen","download_url":"https://codeload.github.com/ant-uni-bremen/gr-symbolmapping/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ant-uni-bremen%2Fgr-symbolmapping/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28529549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["communication","gnu","gnuradio","mapping","sdr","symbol"],"created_at":"2026-01-18T04:26:26.584Z","updated_at":"2026-01-18T04:26:26.634Z","avatar_url":"https://github.com/ant-uni-bremen.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![DOI](https://zenodo.org/badge/247098278.svg)](https://zenodo.org/badge/latestdoi/247098278) [![Run CI tests](https://github.com/ant-uni-bremen/gr-symbolmapping/actions/workflows/run-test.yml/badge.svg)](https://github.com/ant-uni-bremen/gr-symbolmapping/actions/workflows/run-test.yml)\n\n\n# GNU Radio Symbolmapping\n\n\nIn digital communication, we rely on symbol mapping such as QPSK, 16QAM, etc.\n\nThere exists a set of common definitions for these mappings in across a wide variety of standards (WiFi, LTE, 5G NR, ...).\nUnfortunately, GNU Radio does not implement this standard set.\n\nFurther, we want fast and efficient demappers that employ efficient approximations for these common mappings.\n\n## Interleavers\n\nIn 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.\nThus, we add bit interleavers as well. Sometimes this interleaver is called channel interleaver.\n\n__The interleaver block is available in GNU Radio 3.10.4+ in gr-blocks__\n\n## Python interface\n\nFinally, 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.\n\n## Prerequisites\nWe 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.\n\n### Debian/Ubuntu packages\nFor the python interface\n- build-essential\n- git\n- cmake\n- libvolk2-dev\n- liborc-0.4-dev\n- python3-dev\n- python3-distutils\n- python3-pybind11\n\n### GNU Radio installation\nIn case you want to use the whole system with GNU Radio and Python interface, GNU Radio should already provide everything.\n\nGNU Radio 3.9 is required to use this module!\n\n## Usage\n\nThis is the symbolmapping-write-a-block package meant as a guide to building\nout-of-tree packages. To use the symbolmapping blocks, the Python namespaces\nis in 'symbolmapping', which is imported as:\n\n    import symbolmapping\n\nSee the Doxygen documentation for details about the blocks available\nin this package. A quick listing of the details can be found in Python\nafter importing by using:\n\n    help(symbolmapping)\n\n\n## Contributions\n\nPull Requests are highly welcome to add more standardized mappings aka constellations aka alphabets.\n\n\n## References\nFor reference have a look at the following papers and standard documents\n\n* [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)\n* [Caire et al. \"Bit-Interleaved Coded Modulation\"](https://doi.org/10.1109/18.669123)\n* [Tosato et al. \"Simplified soft-output demapper for binary interleaved COFDM with application to HIPERLAN/2\"](https://doi.org/10.1109/ICC.2002.996940)\n* [Allpress et al. \"Exact and Approximated Expressions of the Log-Likelihood Ratio for 16-QAM Signals\"](https://doi.org/10.1109/ACSSC.2004.1399245)\n* [Mao et al. \"A low complexity 256QAM soft demapper for 5G mobile system\"](https://doi.org/10.1109/EuCNC.2016.7560996)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fant-uni-bremen%2Fgr-symbolmapping","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fant-uni-bremen%2Fgr-symbolmapping","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fant-uni-bremen%2Fgr-symbolmapping/lists"}