Using an array of CRC Turbo code technology, this free design and simulation tool allows you to evaluate Turbo code interleavers and puncturing patterns quickly and easily. For comparison purposes, example parameter files are provided for several block sizes using dithered relative prime (DRP) interleavers either with or without data puncturing. Other features include:
DRP interleavers are highly structured Turbo code interleavers that yield excellent distance properties and are ideal for designing low-memory interleaver banks. They can be stored and implemented using just M index increments, where typically M=4, 8, 16, or 32. More details are available in the appropriate references (i.e., [CRO04a] [CRO05a] [CRO05b]) or on the Interleaver technology page.
Data puncturing involves removing some data bits in addition to parity bits in order to achieve higher code rates (see [CRO05b] [GRA06b]). This is a useful technique for improving the flare performance of 8-state Turbo codes, especially for high code rates, but care must be taken to avoid catastrophic puncturing. With highly structured interleavers (e.g., DRP interleavers), catastrophic puncturing may be systematically avoided in both constituent codes. The appropriate amount of data puncturing depends on the overall code rate and a trade-off between flare (i.e., asymptotic) and waterfall performance.
Click the following figure for example PER performance results using random (RAN), high-spread random (HSR), and DRP interleavers:
Click the following figure for examples of BER performance results using random (RAN), high-spread random (HSR), and DRP interleavers:
The package consists of a .zip file containing a single Windows executable plus parameter files, interleaver files, a MATLAB function for plotting results, and some additional documentation including instructions on using the program. A separate parameter file is provided for each combination of interleaver, block size, and code rate supported by the tool. Test your own interleavers and puncture masks by matching the format specified in the interleaver files and modifying a parameter file as required.