www.ti.com | Standalone (SA) Mode |
The
4.4Stopping Test Unit
Turbo decoders are iterative decoders. Each iteration consists of two MAP decodes except the last iteration that executes only the first MAP decode. The turbo decoder can iterate up to 32 iterations. The decoder will continue to iterate until one of the following conditions occur: meet parameter conditions, CRC passed, or SNR threshold passed.
4.4.1SNR Threshold Termination
The stopping criteria algorithm generates the first two moments of the extrinsics, generates an SNR ratio, and compares the ratio with a threshold. If the calculated ratio exceeds the threshold, then the decoder has found an optimum solution. The decoder can then stop executing any further iterations. The calculated SNR ratio is generated after each MAP process. The threshold is a user input and can range from 0 to 100. Larger thresholds give better results but require more iterations. Smaller thresholds require fewer iterations and give can give poorer results. Setting the threshold to 0 disables the stopping criteria algorithm.
The stopping criteria contains two parts. The first part executes on each extrinsic value. The sum of the extrinsics and the sum of the extrinsics squared are calculated. The second part is executed once at the end of each MAP block. The first moment is squared and multiplied by the sum of 1 plus the inverse of the threshold. The second moment is multiplied by the number of symbols per frame. The two results are compared. If the result is positive, then the stopping criteria has been met.
The turbo decoder will generate a block of extrinsics after each MAP decode. The SNR stopping criteria block calculates the mean and the variance for this block. It will divide the two and compare the result with the snr_threshold. If the result is greater then the snr_threshold for two consecutive MAP decodes, then the decoder will stop executing. The DSP sets the snr_threshold parameter. The SNR stopping criteria can be turned off with a value of 0. Enabled values for snr_threshold range from 1 to 100. A value of 100 gives the best BER performance at a cost of the most iterations executed, and a value of 1 gives the worst BER performance at a cost of the fewest iterations. Recommended setting for this parameter is 100.
4.4.2CRC Termination
A frame of data is sent through a CRC block which appends crc_length number of bits to the frame. This frame is encoded by the turbo encoder. The polynomial for the CRC check is defined with the crc_poly parameter. The turbo decoder will generate hard decision bits after each
The coefficients and the size of the CRC polynomial are programmable. The size of the polynomial is defined with the parameter crc_length and can be set from 0 to 32 bits. A value of 0 disables the CRC check, values between 1 and 32 enable the CRC check. The CRC polynomial is defined with the crc_poly parameter. The CRC unit will not be enabled until the decoder iteration count is equal or greater than the min_iter parameter. The turbo decoder will generate hard decisions after each
During the
TMS320C6457 | 17 |