Iterative Solutions

Home of the Coded Modulation Library

A tutorial on CML and Mobile WiMAX will be given at ICC-2009 on June 18.  Click "Home" then "News" for more info.






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.

If you are interested in learning how to use CML, please attend the tutorial at ICC-2009.

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.
  • Tail-biting convolutional codes.
  • Two types of convolutional turbo codes (CTCs): (1) binary turbo codes with terminated trellises; (2) duo-binary tail-biting turbo codes.
  • Block turbo codes (BTCs).
  • Low density parity check (LDPC) codes, both decoding and encoding (encoding limited to certain types of 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, LTE, cdma2000, CCSDS,  IEEE 802.16 and DVB-RCS standards.
  • Ability to run on a grid computer using the Frontier Compute Engine

While the system is generic, the following standards are incorporated as examples:

  • IEEE 802.16e (mobile WiMax) tail-biting convolutional code.
  • IEEE 802.16e (mobile WiMax) convolutional turbo code (CTC).
  • IEEE 802.16e (mobile WiMax) block turbo code (BTC).
  • IEEE 802.16e (mobile WiMax) LDPC code.
  • DVB-RCS turbo code. 
  • DVB-S2 LDPC code.
  • UMTS (WCDMA) turbo code.
  • HSDPA hybrid-ARQ using a rate-matched UMTS turbo code and QPSK/16-QAM modulation.
  • LTE turbo code.
  • CCSDS turbo code.
  • cdma2000 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.



Copyright © 2007 Iterative Solutions. All rights reserved.