摘要:
A decoder for a wireless communication device comprising a calculator for calculating the modulo of a linear approximation of a MAX* function; and a selector for selecting a MAX* output value from the group a(n)modF, b(n)modF, and the calculated modulo based upon a determination as to whether a predetermined threshold value for |a(n)−b(n)| has been met, where a(n) is a first state metric, b(n) is a second state metric, C is the predetermined threshold value and F is a value greater than |a(n)−b(n)|.
摘要:
The present invention is a turbo product code decoder decoding multi-dimensional coding schemes. The decoder may be implemented in any digital communication system receiving an encoded stream of data. The decoder is configured for receiving soft decision values. The decoder iteratively decodes the data by generating new soft difference values for each axis-iteration of decoding. These soft difference values represent the change in soft decision values after each axis-iteration. The soft difference values from each axis-iteration are then summed with the original soft decision values in decoding each of the other axis. After any full iteration—i.e. after all axis dimensions have been decoded one full time, the previous difference values for any axis are discarded when that axis is decoded in subsequent iterations. Accordingly, the same information is not continuously fed into the decoder during each subsequent iteration, thereby decreasing the likelihood of error and offering improved decoding. Moreover, using unique nearest neighbor computation logic, the decoder generates valid nearest neighbors more efficiently without requiring the use of a look-up table, thereby reducing the amount of time required to decode. Finally, the decoder utilizes four decoders arranged in parallel along with a unique memory array accessing scheme such that multiple rows or columns may be decoded at the same time, thereby increasing the data throughput time of the decoder.
摘要:
Operands (90) that are represented in two's complement format are prepared for use in binary arithmetic. For each operand, it is determined (91, 93) whether an original value thereof is within a predetermined proximity of a maximum positive/maximum negative value boundary associated with the two's complement format. If any of the original operand values is within the predetermined proximity, all of the original operand values are adjusted (95) to produce respectively corresponding adjusted operand values (96) for use in a binary arithmetic operation.
摘要:
The present invention provides a means for optimization and re-use of hardware in the implementation of Viterbi and Turbo Decoders using carry save arithmetic. Successful provision for each target application requires that two main issues be confronted. These are: merging the computation of summation terms (a2−b2+c2) with (x2+y2+z2); and (a3+b3−c3) with (x3+y3+z3); implementing an efficient method of computing (a4−b4−c4); and merging this computation with (x4+y4+z4). The invention solves both of these issues and successfully merges the Viterbi instructions with a complete reuse of the hardware that is required for the implementation of Turbo instructions. The hardware required by both classes of instructions is optimized by efficiently employing carry save arithmetic.
摘要:
A decoder for a wireless communication device comprising a calculator for calculating the modulo of a linear approximation of a MAX* function; and a selector for selecting a MAX* output value from the group a(n)mod F, b(n)mod F, and the calculated modulo based upon a determination as to whether a predetermined threshold value for |a(n)−b(n)| has been met, where a(n) is a first state metric, b(n) is a second state metric, C is the predetermined threshold value and F is a value greater than |a(n)−b(n)|.
摘要:
Operands (90) that are represented in two's complement format are prepared for use in binary arithmetic. For each operand, it is determined (91, 93) whether an original value thereof is within a predetermined proximity of a maximum positive/maximum negative value boundary associated with the two's complement format. If any of the original operand values is within the predetermined proximity, all of the original operand values are adjusted (95) to produce respectively corresponding adjusted operand values (96) for use in a binary arithmetic operation.
摘要:
A decoder for a communication system includes an iterative decoding module configured to receive soft-input information bits. The iterative decoding module iterates on probability estimates of the soft-input information bits to generate hard-decision output information. The iterative decoding module includes a plurality of arithmetic modules operating to generate and process both backward and forward metrics substantially simultaneously using modulo arithmetic operations.
摘要:
An execution unit and a new set of instructions for performing Viterbi decoding are provided. The instructions can be built into an execution unit which executes other instructions, or in their own execution unit. In an example implementation, the new set of instructions are used in implementing a modem for a high bit rate single-pair high speed digital subscriber line (“SHDSL”) system. In the example implementation, the execution unit includes registers to hold the input metrics, so the same metrics do not need to be supplied for each instruction that uses them. The execution unit also includes registers to accumulate decision values, so that as many can be retrieved at once as makes best use of the data path out of the execution unit. The instructions may employ modulo arithmetic to avoid the necessity to rescale the state metrics.
摘要:
An index value generation circuit for use in a turbo decoder for computing the index value znullnullx1nullx2null for addressing a table used for computing the function log(ex1nullex2) or 1n(ex1nullex2) is described. Parameters x1 and x2 are first and second argument values derived from the input data. The index value generation circuit computes the difference of the first argument x1 and the second argument value x2 by taking the 2's compliment of the second argument value and adding the first argument value to the negative value of the second argument value x2. If the difference is a negative number, the index value generation circuit computes the absolute value of the difference by taking the 1's compliment of the difference x1-x2. In this manner, the index value z used to address the table for computing the function log(ex1nullex2) or 1n(ex1nullex2) in the decoding operation can be generated quickly. Furthermore, the index value generation circuit of the present invention simplifies the computation process and enhances the performance of the turbo decoder.
摘要:
The present invention is a turbo product code decoder capable of decoding multi-dimensional coding schemes. The decoder may be implemented in any digital communication system capable of receiving an encoded stream of data. The decoder is configured for receiving soft decision values. The decoder iteratively decodes the data by generating new soft difference values for each axis-iteration of decoding. These soft difference values represent the change in soft decision values after each axis-iteration. The soft difference values from each axis-iteration are then summed with the original soft decision values in decoding each of the other axis. After any full iteration—i.e. after all axis dimensions have been decoded one full time, the previous difference values for any axis are discarded when that axis is decoded in subsequent iterations. Accordingly, the same information is not continuously fed into the decoder during each subsequent iteration, thereby decreasing the likelihood of error and offering an improvement over prior decoders. Moreover, using unique nearest neighbor computation logic, the decoder of the present invention is able to generate valid nearest neighbors more efficiently without requiring the use of a look-up table, thereby reducing the amount of time required to decode. Finally, the decoder of the present invention utilizes four decoders arranged in parallel along with a unique memory array accessing scheme such that multiple rows or columns may be decoded at the same time, thereby increasing the data throughput time of the decoder over prior turbo product code decoders.