The code on this page is provided as is. In case you spot a bug, please let me know. If you use some piece of code for your own work, please consider citing the corresponding article(s).

Non-Linear Self-Interference Cancellation Using Neural Networks

Download (ZIP file, 901 KB)

This python code implements the neural network based non-linear self-interference cancellation method desribed in [1], as well as a baseline polynomial non-linear self-interference canellation method for comparison purposes. The ZIP file also contains the measurements from a full-duplex testbed that are used as a dataset. A working installation of Keras is required to run the code. The default values in the code exactly reproduce (up to the randomness of the mini-batch learning procedure for the neural network) the results in [1].

[1] A. Balatsoukas-Stimming, "Non-linear digital self-interference cancellation for in-band full-duplex radios using neural networks," in IEEE International Workshop on Signal Processing Advances in Wireless Communications (SPAWC), Jun. 2018 [paper, poster]

Look-Up Table Based LDPC Decoders

LUT-LDPC (GitHub repository)
LUT-LDPC-VHDL (GitHub repository)
Official Website

LUT-LDPC is a collection of software tools that can be used to design and test LDPC decoders based on discrete message passing decoding using lookup tables (LUTs) [1,2]. It is mainly written in C++ and relies on the IT++ for abstracting basic linear algebra and signal processing operations. Consequently, the LUT decoders can easily be integrated into more complex communication systems including concatenated coding and/or modulation. The collection also includes LUT-LDPC-VHDL, which is is a software tool that uses the optimized LUTs designed by the LUT-LDPC software in order to generate VHDL code and simulation files for a fully-unrolled LDPC hardware decoder [3,4].

[1] M. Meidlinger, A. Balatsoukas-Stimming, A. Burg, and G. Matz, "Quantized message passing for LDPC codes," in Asilomar Conference on Signals, Systems, and Computers, May 2015 [paper, poster]
[2] M. Meidlinger and G. Matz, “On irregular LDPC codes with quantized message passing decoding,” IEEE International Workshop on Signal Processing Advances in Wireless Communications (SPAWC), Jul. 2017 [paper]
[3] A. Balatsoukas-Stimming, M. Meidlinger, R. Ghanaatian, G. Matz, and A. Burg, "A fully-unrolled LDPC decoder based on quantized message passing," in IEEE International Workshop on Signal Processing Systems (SiPS), Oct. 2015 [paper, slides]
[4] R. Ghanaatian, A. Balatsoukas-Stimming, C. Müller, M. Meidlinger, G. Matz, A. Teman, and A. Burg, "A 588 Gbps LDPC decoder based on finite-alphabet message passing," IEEE Transactions on Very Large Scale Integration Systems, Feb. 2018 [paper]

Metric Sorters for Successive Cancellation List Decoding of Polar Codes

Download (ZIP file, 10 KB)

This software package contains VHDL code that implements all the metric sorters for successive cancellation list decoding of polar codes that we described in [1]. Specifically, it contains implementations of a radix-2L sorter (full & pruned), a bitonic sorter (full & pruned), as well as a simplified bubble sorter.

[1] A. Balatsoukas-Stimming, M. Bastani Parizi, and A. Burg, "On metric sorting for list successive cancellation decoding of polar codes," in IEEE International Symposium on Circuits and Systems (ISCAS), May 2015 [paper, slides]

Design of LDPC Codes for the Two-User Gaussian MAC

Download (ZIP file, 7 KB)

This MATLAB code implements the EXIT-chart based LDPC code design method for the unequal power two-user Gaussian multiple access channel described in [1]. A working installation of the CVX toolbox is required to run the code. The default values exactly reproduce the results for the first case of Table I in [1].

[1] A. Balatsoukas-Stimming and A. P. Liavas, "Design of LDPC codes for the unequal power two-user Gaussian multiple access channel," IEEE Wireless Communications Letters, May 2018 [paper]