The Coded Modulation Library
The Iterative Solutions Coded Modulation Library (ISCML) is an open source toolbox for simulating capacity approaching codes in Matlab.
It is licensed as free software under the lesser GPL license.
The toolbox contains support for the following:
-
Rate 1/n convolutional codes with log-MAP, max-log-MAP, constant-log-MAP, and linear-log-MAP soft-in/soft-out SISO decoding, and Viterbi soft-in/hard-out decoding.
-
Binary parallel concatenated convolutional turbo codes with independently terminated trellises.
-
Low density parity check (LDPC) codes, both decoding and encoding (encoding limited to eIRA-LDPC codes).
-
Puncturing and rate-matching to change the base code rate to a desired rate.
-
log-MAP (APP) and Viterbi decoding of binary cyclic block codes (Golay, Hamming, etc).
-
Arbitrary complex modulation formats: BPSK, QPSK, M-ary PSK, QAM, APSK, with SISO demodulation.
-
FSK modulation with multiple tones, arbitrary modulation index (orthogonal or nonorthogonal), and either coherent or noncoherent demodulation.
-
Iterative demodulation and decoding, i.e. bit interleaved coded modulation with iterative decoding (BICM-ID).
-
Channel types: AWGN, fully-interleaved (ergodic) Rayleigh fading, or block Rayleigh fading.
-
Monte Carlo computation of modulation constrained channel capacity (in AWGN and ergodic fading) and information outage probability (in block fading).
-
Calculation of throughput of hybrid-ARQ systems.
-
Generation of s-random (spread) interleaver and interleavers conforming to UMTS, cdma2000, CCSDS, IEEE 802.16 and DVB-RCS standards.
-
Duo-binary PCCCs with a circular (tailbiting) trellis.
- Ability to run on a grid computer using the Frontier Compute Engine
While the system is generic, the following standards are incorporated as examples:
-
DVB-S2 LDPC code.
-
IEEE 802.16e (mobile WiMax) LDPC code.
-
IEEE 802.16e (mobile WiMax) convolutional turbo code (CTC).
-
UMTS (WCDMA) turbo code.
-
HSDPA hybrid-ARQ using a rate-matched UMTS turbo code and QPSK/16-QAM modulation.
-
CCSDS turbo code.
-
cdma2000 turbo code.
-
DVB-RCS turbo code.
-
LTE turbo code.
While the library runs natively in matlab, the most computationally intensive portions are coded in C and called as C-mex functions. This has the benefit of faster implementation and portability to stand alone C environments.
A large database of simulation data is included in the package, containing the results of hundreds of hours of simulation time.
|