Viterbi decoder with reduced number of bits in branch metric calculation processing
First Claim
1. A method of calculating a branch metric in Viterbi decoding for deriving a branch metric by comparing a codeword produced from a convolutional code with a sign of determination data obtained from conversion of received data for branch metric calculation, said method comprising the steps of:
- dividing said determination data into a sign and a metric and outputting them;
determining whether said divided sign matches said codeword or not and outputting a determination signal and an inverted determination signal as a result thereof;
outputting, on a time-division basis, either the determination signal or the inverted determination signal based on timing pulses;
selecting and outputting, based on an output of the outputting step, “
0”
when said divided sign matches said codeword or selecting and outputting said metric when said divided sign does not match said codeword; and
adding outputs selected when the signs match to outputs selected when the signs do not match to calculate a branch metric.
1 Assignment
0 Petitions
Accused Products
Abstract
A Viterbi decoder with a reduced number of bits in branch metric calculation processing is disclosed. In a branch metric calculator, word split circuits divide metric data 1 to 3 from respective latch circuits into the signs of the least 1 bit and metrics of k−1 bits, respectively. EX-OR gates determine whether or not the divided signs (1 bit) match codewords (1 bit) for each state produced from a convolutional code generated by a convolutional code generator and a counter. Each time-division switch for 1 bit selects the output of the match or mismatch with switched timing. Adders add outputs when the signs match to the divided metrics output from selectors when the signs do not match based on the selection to calculate a branch metric.
-
Citations
12 Claims
-
1. A method of calculating a branch metric in Viterbi decoding for deriving a branch metric by comparing a codeword produced from a convolutional code with a sign of determination data obtained from conversion of received data for branch metric calculation, said method comprising the steps of:
-
dividing said determination data into a sign and a metric and outputting them;
determining whether said divided sign matches said codeword or not and outputting a determination signal and an inverted determination signal as a result thereof;
outputting, on a time-division basis, either the determination signal or the inverted determination signal based on timing pulses;
selecting and outputting, based on an output of the outputting step, “
0”
when said divided sign matches said codeword or selecting and outputting said metric when said divided sign does not match said codeword; and
adding outputs selected when the signs match to outputs selected when the signs do not match to calculate a branch metric. - View Dependent Claims (12)
-
-
2. A Viterbi decoder for deriving a branch metric by comparing a codeword produced from a convolutional code with a sign of determination data obtained from conversion of received data for branch metric calculation, comprising:
-
metric data conversion means for outputting a plurality of metric data which are soft decision symbols converted from a received data sequence;
code generation means for generating and outputting said codeword;
branch metric calculation means for dividing the plurality of metric data from said metric data conversion means into signs and metrics, respectively, outputting them, determining whether the divided signs match the codewords from said code generation means and outputting a determination signal and an inverted determination signal based on the determination, outputting one of the determination signal and the inverted determination signal on a time-division basis, selecting and outputting, under control of the outputted one of the determination signal and the inverted determination signal, “
0”
when the divided signs match the codewords or selecting and outputting said metrics when the divided signs do not match the codewords, and adding outputs selected when the signs match to outputs selected when the signs do not match to calculate a branch metric;
add/compare/select operation means for adding the branch metric calculated by said branch metric calculation means to a survivor path metric, and making a comparison of two joining metrics paths to obtain a new path metric and a survivor path;
path metric memory means for storing the new path metric and the survivor path metric from said add/compare/select means and for supplying said add/compare/select operation means with a survivor path metric;
path information memory means for storing survivor paths with a plurality of states from said add/compare/select operation means; and
trace back processing means for decoding a state with the smallest path metric at final truncation of bits from said path metric memory means and the survivor paths with the plurality of states from said path information memory means.
-
-
3. A Viterbi decoder for deriving a branch metric by comparing a codeword produced from a convolutional code with a sign of determination data obtained from conversion of received data for branch metric calculation, comprising:
-
metric data conversion means for outputting a plurality of metric data which are soft decision symbols converted from a received data sequence;
code generation means for generating and outputting said codeword;
branch metric calculation means for dividing the plurality of metric data from said metric data conversion means into signs and metrics, respectively, outputting them, determining whether the divided signs match the codewords from said code generation means, selecting and outputting “
0”
when they match or selecting and outputting said metrics when they do not match based on the determination result of the match or mismatch, and adding outputs selected when the signs match to outputs selected when the signs do not match to calculate a branch metric;
add/compare/select operation means for adding the branch metric calculated by said branch metric calculation means to a survivor path metric, and making a comparison of two joining metrics paths to obtain a new path metric and a survivor path;
path metric memory means for storing the new path metric and the survivor path metric from said add/compare/select means and for supplying said add/compare/select operation means with a survivor path metric;
path information memory means for storing survivor paths with a plurality of states from said add/compare/select operation means; and
trace back processing means for decoding a state with the smallest path metric at final truncation of bits from said path metric memory means and the survivor paths with the plurality of states from said path information memory means, wherein said branch metric calculation means includes;
a plurality of division means for dividing each of the plurality of input metric data into signs and metrics and outputting them;
a plurality of determination means for determining whether or not the respective signs divided by each of said plurality of division means match the codewords input thereto;
a plurality of time-division selection means for selecting either outputs obtained by not inverting the results of the match or outputs obtained by inverting the results of the mismatch determined by each of said plurality of determination means; and
addition means for adding outputs from said pluralities of time-division selection means when the signs match to the metrics divided and output by said plurality of division means selected when the signs do not match to obtain a branch metric. - View Dependent Claims (4, 5, 6, 7, 8, 9, 10, 11)
-
Specification