Communications Research Centre Canada
Symbol of the Government of Canada

8-State Turbo Codecs

The RCSP group has produced a number of C-based implementations of 8-state Turbo codecs on different platforms that may be purchased or licensed. Both the W-CDMA (3GPP) and cdma2000 (3GPP2) TurboCode standards are supported. Some technical details are given below; additional information regarding licensing terms and fees may be obtained via e-mail
(fec-info (at) crc.ca).

While these codecs do include patented CRC innovations, they are written in ANSI C to allow flexibility and portability to other platforms. This means that they are not able to achieve the extremely high speeds of the CRC Ultra-fast 16-state Turbo codec, since the latter is written in highly optimized Assembly language. However, they still deliver throughputs in the hundreds of kilobits per second for 8 full decoding iterations and may be adapted for a variety of platforms.

The standard package includes an 8-state Turbo codec in the form of a dynamic link library (DLL) that may be called from your own C code, a MEX file that may be called from MATLAB, as a stand-alone simulation program or as a MATLAB simulation program.

There are two major code types supported, namely:

  1. the W-CDMA (3GPP) codec, i.e., a base rate 1/3 Turbo code with polynomials (13,15)8, and
  2. the cdma2000 (3GPP2) codec, i.e., a base rate 1/5 Turbo code with polynomials (13,15,17)8.

The first polynomial in each list corresponds to the feedback path, the others to feed-forward paths.

CRC has developed interleaver banks for the (13,15)8 polynomials that give exceptional performance, significantly exceeding that of the interleavers in the 3GPP standard (see the Interleaver Technology page). A number of trellis termination options are also supported: no termination, terminating the first trellis, terminating both trellises and the termination method used in the W-CDMA and cdma2000 standards (i.e., the output of the feedback path is applied to the encoder input). The decoding algorithm used is enhanced max-log-APP, an algorithm that typically performs within 0.2 of a dB of true APP decoding. Incorporated into the codec is an efficient early stopping criterion similar to that used in the Ultra-fast 16-state Turbo codec.