This paper describes the design and C99 implementation of a free and open-source Low-Density Parity-Check (LDPC) codes encoder and decoder focused primarily on the Quasi-Cyclic LDPC (QCLDPC) codes utilized in the IEEE 802.11ax-2021 (Wi-Fi 6) and IEEE 802.16-2017 (WiMAX) standards. The encoder is designed in two variants: the first one universal, the other a minimal memory usage design. The decoder provides a single- and multi- threaded implementation of the layered singlescan min-sum LDPC decoding algorithm both for floating point and fixed-point arithmetic. Both encoder and decoder are directly callable from MATLAB using the provided MEX wrappers but are designed to be simply used in any C project. A comparison of throughput and error performance with the recent commercial closed-source MEX implementation of an LDPC encoder and decoder introduced in MATLAB R2021b Communications Toolbox is provided. Source code portability to alternative nonx86 architectures is facilitated by using only the standard C99 constructs, GNU tools, and POSIX libraries. The implementation maintains low-memory requirements, enabling its deployment in a constrained-architecture in the context of Internet of Things. All source codes are freely available on GitHub under a permissive BSD license.
翻译:暂无翻译