Turbo Decoding Implementation with MAP, LOG-MAP, and MAX-LOG-MAP Algorithms

Resource Overview

1. The program implements three Turbo decoding algorithms: MAP, LOG-MAP, and MAX-LOG-MAP 2. Four MAT files starting with "xxx" contain pre-computed parameters for four given Turbo codes to accelerate decoding speed 3. Supports both 1/2 and 1/3 code rate Turbo codes, where 1/2 rate is obtained through puncturing matrix [1 0; 0 1] 4. Program includes SNR table configuration for Eb/N0 calculations

Detailed Documentation

1. The Turbo decoding implementation incorporates three distinct algorithms: MAP (Maximum A Posteriori), LOG-MAP (Logarithmic MAP), and MAX-LOG-MAP (Maximum Logarithmic MAP) to enhance decoding accuracy and performance. The MAP algorithm provides optimal bit error rate performance but requires high computational complexity, while LOG-MAP reduces implementation complexity through logarithmic transformations, and MAX-LOG-MAP further simplifies calculations with approximate operations. 2. Four MAT files prefixed with "xxx" store pre-computed parameters for four predefined Turbo codes, enabling faster program execution by eliminating real-time parameter calculations. If simulating a Turbo code not included in the predefined set, users can generate custom parameters using the trellis function. The implementation typically involves calling trellis = poly2trellis(constraint_length, generator_matrix) to define the convolutional code structure. 3. The program supports both 1/2 and 1/3 code rate Turbo codes. The 1/2 rate code is generated through puncturing using matrix [1 0; 0 1], where specific parity bits are systematically removed. During decoding, zeros are inserted at punctured positions to reconstruct the original 1/3 rate codeword. This approach provides coding flexibility while maintaining the decoder structure compatibility. The puncturing pattern implementation involves creating a puncture matrix that selectively transmits bits from the encoder output. 4. The program's signal-to-noise ratio parameter represents Eb/N0 (energy per bit to noise power spectral density ratio). This parameter is used to calculate N0 (noise power spectral density), which then adds appropriate noise to transmitted signals to simulate real communication channel conditions. The noise addition is typically implemented using: noise = sqrt(N0/2) * randn(1, length(signal)) for AWGN channel simulation.