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.
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
.
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.
- F. Kayhan and G. Montorsi, "Constellation Design for Memoryless Phase Noise Channels," in IEEE Transactions on Wireless Communications, vol. 13, no. 5, pp. 2874-2883, May 2014
- A. Alvarado, T. Fehenberger, B. Chen and F. M. J. Willems, "Achievable Information Rates for Fiber Optics: Applications and Computations," in Journal of Lightwave Technology, vol. 36, no. 2, pp. 424-439, Jan 15, 2018.
- D. Pilori, "Advanced Digital Signal Processing Techniques for High-Speed Optical Links," Ph.D. Thesis, Mar 22, 2019.
This code is released under MIT License.