Texas Instruments TURBO-DECODER COPROCESSOR 2 TMS320C6457 DSP Benutzerhandbuch

Seite von 79
4.4
Stopping Test Unit
4.4.1
SNR Threshold Termination
4.4.2
CRC Termination
www.ti.com
Standalone (SA) Mode
The CRC-based stopping criterion can be used by setting the CRC polynomial length (CRCLEN) and the
number of CRC iterations required to pass CRCITERPASS. After each iteration, hard decisions are
computed and a CRC is performed. The CRC polynomial is a programmable 32-bit number. To avoid
situations where a CRC test passes for a very noisy frame of data, the hard decisions need to pass the
CRC test for a number of consecutive iterations, which is user-defined via the CRCITERPASS bit field.
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.
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.
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 non-interleaved MAP decode.
These bits are processed by the CRC block within the decoder. If the last crc_length bits match the CRC
pattern, then the CRC check has passed. The turbo decoder will stop executing after CRCITERPASS
number of consecutive CRC passes as programmed in TCPIC4.
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 non-interleaved MAP
decode. These bits are processed by the CRC block within the decoder. If the last set of frame bits match
the CRC pattern, then the CRC check has passed. The turbo decoder must pass a number of consecutive
iterations to terminate before max_iter. The number of consecutive iterations passed is defined with the
crc_iter_pass parameter. The crc_iter_pass parameter can be set from 0 to 31, a zero is equal to 1
iteration. The dec_pass output parameter will be set to a 1 if the decoder terminated due to a passing
CRC.
During the sub-block execution, up to 256 sets of data will be stored in a double buffered RAM whose size
is 265x7x2. Two bits each will be stored for x0, p0, and p1. One bit is the sign bit and the other bit is set if
the symbol is equal to a zero. These 6 bits will be used for re-encoding. The seventh bit will be the hard
decision bit. This bit is the sign of the following summation: (x+a+w).
SPRUGK1 – March 2009
TMS320C6457 Turbo-Decoder Coprocessor 2
17