-
Notifications
You must be signed in to change notification settings - Fork 225
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: The Sionna Team <[email protected]>
- Loading branch information
Showing
99 changed files
with
13,375 additions
and
2,202 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,110 +0,0 @@ | ||
## | ||
## Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved. | ||
## | ||
## NVIDIA CORPORATION and its licensors retain all intellectual property | ||
## and proprietary rights in and to this software, related documentation | ||
## and any modifications thereto. Any use, reproduction, disclosure or | ||
## distribution of this software and related documentation without an express | ||
## license agreement from NVIDIA CORPORATION is strictly prohibited. | ||
## | ||
stages: | ||
- build | ||
- test | ||
documentation: | ||
image: gitlab-master.nvidia.com:5005/nvresearch-gcml/sionna/python-doc:latest | ||
stage: build | ||
before_script: | ||
- echo 'Cleanup environment...' | ||
- git branch -D $CI_DOCUMENTATION_BRANCH || IGNORE_FAILURE=true | ||
- git remote remove origin-rw || IGNORE_FAILURE=true | ||
- git config --local --replace-all user.name "${CI_GIT_USER_NAME}" || IGNORE_FAILURE=true | ||
- git config --local --replace-all user.email "${CI_GIT_USER_EMAIL}" || IGNORE_FAILURE=true | ||
script: | ||
- echo 'Building documentation...' | ||
- make doc | ||
- echo 'Fetch current state of documentation branch...' | ||
- REPO_URL=`echo $CI_REPOSITORY_URL | cut -d'@' -f 2` | ||
- git remote add origin-rw https://$CI_GIT_RW_NAME:$CI_GIT_RW_TOKEN@$REPO_URL | ||
- git remote -v | ||
- git fetch origin-rw $CI_DOCUMENTATION_BRANCH | ||
- git checkout -b $CI_DOCUMENTATION_BRANCH --track origin-rw/${CI_DOCUMENTATION_BRANCH} | ||
- echo 'Replace website folders with updated version...' | ||
- rm -rf docs | ||
- mv doc/build/html docs | ||
- echo 'Commit changes to git' | ||
- git add docs | ||
- git status | ||
- | | ||
if git diff --cached --quiet | ||
then | ||
echo 'No changes detected.' | ||
else | ||
git commit -m "update Documentation from commit ${CI_COMMIT_SHORT_SHA}" | ||
git log -n 1 | ||
git push origin-rw $CI_DOCUMENTATION_BRANCH | ||
fi | ||
- echo 'Done.' | ||
tags: | ||
artifacts: | ||
name: "$CI_PROJECT_NAME-docs-$CI_COMMIT_SHORT_SHA" | ||
paths: | ||
- docs | ||
only: | ||
- main | ||
all-tests: | ||
image: gitlab-master.nvidia.com:5005/nvresearch-gcml/sionna/test-sionna-tensorflow:2.8.0-gpu-jupyter | ||
stage: test | ||
script: | ||
- nvidia-smi | ||
- cd test | ||
- pytest --junitxml=report.xml | ||
tags: | ||
- test | ||
artifacts: | ||
when: always | ||
reports: | ||
junit: test/report.xml | ||
only: | ||
- main | ||
all-tests-tf-2.8.2: | ||
image: gitlab-master.nvidia.com:5005/nvresearch-gcml/sionna/test-sionna-tensorflow:2.8.2-gpu-jupyter | ||
stage: test | ||
script: | ||
- nvidia-smi | ||
- cd test | ||
- pytest --junitxml=report-tf-2.8.2.xml | ||
tags: | ||
- test | ||
artifacts: | ||
when: always | ||
reports: | ||
junit: test/report-tf-2.8.2.xml | ||
when: manual | ||
all-tests-tf-2.9.1: | ||
image: gitlab-master.nvidia.com:5005/nvresearch-gcml/sionna/test-sionna-tensorflow:2.9.1-gpu-jupyter | ||
stage: test | ||
script: | ||
- nvidia-smi | ||
- cd test | ||
- pytest --junitxml=report-tf-2.9.1.xml | ||
tags: | ||
- test | ||
artifacts: | ||
when: always | ||
reports: | ||
junit: test/report-tf-2.9.1.xml | ||
when: manual | ||
all-tests-tf-2.10.0: | ||
image: gitlab-master.nvidia.com:5005/nvresearch-gcml/sionna/test-sionna-tensorflow:2.10.0-gpu-jupyter | ||
stage: test | ||
script: | ||
- nvidia-smi | ||
- cd test | ||
- pytest --junitxml=report-tf-2.10.0.xml | ||
tags: | ||
- test | ||
artifacts: | ||
when: always | ||
reports: | ||
junit: test/report-tf-2.10.0.xml | ||
when: manual | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
Linear Codes | ||
############ | ||
|
||
This package provides generic support for binary linear block codes. | ||
|
||
For encoding, a universal :class:`~sionna.fec.linear.LinearEncoder` is available and can be initialized with either a generator or parity-check matrix. The matrix must be binary and of full rank. | ||
|
||
For decoding, :class:`~sionna.fec.linear.OSDecoder` implements the | ||
ordered-statistics decoding (OSD) algorithm [Fossorier]_ which provides close to | ||
maximum-likelihood (ML) estimates for a sufficiently large order of the decoder. | ||
Please note that OSD is highly complex and not feasible for all code lengths. | ||
|
||
*Remark:* As this package provides support for generic encoding and decoding | ||
(including Polar and LDPC codes), it cannot rely on code specific | ||
optimizations. To benefit from an optimized decoder and keep the complexity as low as possible, please use the code specific enc-/decoders whenever available. | ||
|
||
The encoder and decoder can be set up as follows: | ||
|
||
.. code-block:: Python | ||
pcm, k, n, coderate = load_parity_check_examples(pcm_id=1) # load example code | ||
# or directly import an external parity-check matrix in alist format | ||
al = load_alist(path=filename) | ||
pcm, k, n, coderate = alist2mat(al) | ||
# encoder can be directly initialized with the parity-check matrix | ||
encoder = LinearEncoder(enc_mat=pcm, is_pcm=True) | ||
# decoder can be initialized with generator or parity-check matrix | ||
decoder = OSDecoder(pcm, t=4, is_pcm=True) # t is the OSD order | ||
# or instantiated from a specific encoder | ||
decoder = OSDecoder(encoder=encoder, t=4) # t is the OSD order | ||
We can now run the encoder and decoder: | ||
|
||
.. code-block:: Python | ||
# u contains the information bits to be encoded and has shape [...,k]. | ||
# c contains codeword bits and has shape [...,n] | ||
c = encoder(u) | ||
# after transmission LLRs must be calculated with a demapper | ||
# let's assume the resulting llr_ch has shape [...,n] | ||
c_hat = decoder(llr_ch) | ||
Encoder | ||
******* | ||
|
||
LinearEncoder | ||
------------- | ||
.. autoclass:: sionna.fec.linear.LinearEncoder | ||
:members: | ||
:exclude-members: call, build | ||
|
||
AllZeroEncoder | ||
-------------- | ||
.. autoclass:: sionna.fec.linear.AllZeroEncoder | ||
:members: | ||
:exclude-members: call, build | ||
|
||
Decoder | ||
******* | ||
|
||
OSDecoder | ||
--------- | ||
.. autoclass:: sionna.fec.linear.OSDecoder | ||
:members: | ||
:exclude-members: call, build | ||
|
||
References: | ||
.. [Fossorier] M. Fossorier, S. Lin, "Soft-Decision Decoding of Linear | ||
Block Codes Based on Ordered Statistics", IEEE Trans. Inf. | ||
Theory, vol. 41, no.5, 1995. | ||
.. [Stimming_LLR_OSD] A.Balatsoukas-Stimming, M. Parizi, A. Burg, | ||
"LLR-Based Successive Cancellation List Decoding | ||
of Polar Codes." IEEE Trans Signal Processing, 2015. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.