Implementation of the NPRACH detection algorithm from [A] using the Sionna link-level simulator.
We propose a neural network (NN)-based algorithm for device detection and time of arrival (ToA) and carrier frequency offset (CFO) estimation for the narrowband physical random-access channel (NPRACH) of narrowband internet of things (NB-IoT). The introduced NN architecture leverages residual convolutional networks as well as knowledge of the preamble structure of the 5G New Radio (5G NR) specifications. Benchmarking on a 3rd Generation Partnership Project (3GPP) urban microcell (UMi) channel model with random drops of users against a state-of-the-art baseline shows that the proposed method enables up to 8 dB gains in false negative rate (FNR) as well as significant gains in false positive rate (FPR) and ToA and CFO estimation accuracy. Moreover, our simulations indicate that the proposed algorithm enables gains over a wide range of channel conditions, CFOs, and transmission probabilities. The introduced synchronization method operates at the base station (BS) and, therefore, introduces no additional complexity on the user devices. It could lead to an extension of battery lifetime by reducing the preamble length or the transmit power.
Running this code requires Sionna. To run the notebooks on your machine, you also need Jupyter. We recommend Ubuntu 20.04, Python 3.8, and TensorFlow 2.8.
Two notebooks may serve as starting point:
- Train.ipynb : Implements the training loop of the deep learning-based synchronization algorithm.
- Evaluate.ipynb : Evaluates the trained deep learning-based synchronization algorithm and a baseline. This notebook reproduces the plots from the paper related to this repository [A].
These notebooks rely on the following modules:
- nprach/ : Implements the NPRACH waveform.
- synch/ : Implements two NPRACH synchronization algorithms, the deep learning-based one that we propose [A] and a strong baseline [B].
- e2e/ : Implements a model for simulating the end-to-end system, which includes NPRACH waveform generation, 3GPP UMi channel model, and synchronization using the two available algorithms.
In addition, the parameters.py file defines the key simulation parameters, and the results computed by the Evaluate.ipynb notebook are available in the results/ directory. Moreover, the weights resulting from the training of the deep learning-based synchronization algorithm are available here, which allows reproducing the results from [A] without retraining the neural network.
Copyright © 2022, NVIDIA Corporation. All rights reserved.
This work is made available under the Nvidia License.