Coded Modulation in C and MATLAB
- Created on Friday, 01 April 2011
This software, written separately in C and MATLAB as stand-alone packages with equivalent functionality, implements encoders and decoders for a set of nine error-correcting codes and modulators and demodulators for five modulation types. The software can be used as a single program to simulate the performance of such coded modulation.
The error-correcting codes implemented are the nine accumulate repeat-4 jagged accumulate (AR4JA) low-density parity-check (LDPC) codes, which have been approved for international standardization by the Consultative Committee for Space Data Systems, and which are scheduled to fly on a series of NASA missions in the Constellation Program. The software implements the encoder and decoder functions, and contains compressed versions of generator and parity-check matrices used in these operations.
The software supports the modulations of binary phase-shift keying (BPSK), quadrature PSK (QPSK), 8-PSK, 16-ary amplitude PSK (16-APSK), and 32-APSK. For each modulation type, the software modulator supports various bit-to-modulation-symbol mappings, including the natural order, the Gray code, the anti-Gray code, and the ordering specified by the Digital Video Broadcast Satellite Second Generation standard for 16-APSK and 32-APSK. The software supports hard and soft demodulation, and when soft, it supports both an exact log likelihood computation and an approximate log likelihood computation based on nearest neighbors.
The software supports all nine AR4JA LDPC codes of the CCSDS standard and all five modulations of the DVB-S2 standard, in any combination.