Skip to content

dario-pilori/capacity-functions

Repository files navigation

DOI

Capacity functions

This project contains some simple C functions to evaluate basic information-theoretical quantities in a communication system. These functions were designed for optical communications, but they may be applied to any communication system.

All those functions are included in the capacity_functions.c file, that is ment to be included in other programs with the aid of the header file capacity_functions.h.

Since most of people use MATLAB, this code includes MEX-functions to call the C functions using MATLAB.

System requirements and compilation instructions

The code has been designed for 64-bit Linux. Windows-specific instructions are available here.

To compile it under Linux, it requires the following software/libraries:

  • MATLAB R2018a (or newer versions)
  • OpenMP
  • GCC
  • Make

To compile it, just run make.

Included functions

Full documentation of the function is written using Doxygen.

The included functions, for the time being, allow:

  • Monte-Carlo evaluation of AWGN Mutual Information (MI) for the AWGN channel for real (PAM) and complex (QAM) modulation formats.
  • Calculation of bit-wise Log-Likelihood Ratios (LLRs) for the AWGN channel for real (PAM) and complex (QAM) modulation formats.
  • Analytical evaluation of Mutual Information (MI) for the AWGN and AWGN-BICM channel using Gauss-Hermite quadrature for real (PAM) and complex (QAM) modulation formats.
  • Calculation of bit-wise Log-Likelihood Ratios (LLRs) for the AWGN channel with residual phase noise.

References

License

This code is released under MIT License.