The present invention relates to a technique on Viterbi decoding for decoding a trellis-coded modulated signal.
As a conventional configuration for decoding a trellis-coded modulated signal, a Viterbi decoder as shown in
The operation of the Viterbi decoder in
A branch metric generator 601 determines Euclidean distances between a reception signal point and respective transmission symbol points, and outputs the results as branch metrics “BMs” (“s” denotes any of the subset numbers 0 to 7). One subset includes two transmission symbol candidates. A branch metric corresponding to the transmission symbol string of which the noncoding bit is “0” is denoted by BMs0, while a branch metric corresponding to the transmission symbol string of which the noncoding bit is “1” is denoted by BMs1.
A subset maximum likelihood estimator 602 selects one of the two transmission symbol candidates of each subset that has a smaller Euclidean distance, and outputs the selected one as the branch metric BMs for the subset concerned.
A noncoding bit detector 603 extracts the noncoding bit in each selected transmission symbol candidate based on the selection information output from the subset maximum likelihood estimator 602, and outputs the extracted noncoding bit. The noncoding bits are then delayed by j-level shift registers 604 by j levels that correspond to the number of delay levels in a path memory circuit 607.
An add-compare-select (ACS) circuit 605 adds the branch metrics output from the subset maximum likelihood estimator 602 to path metrics of survivor paths in each state at time t-1, that is, in a state before transition to a state at time t in the trellis diagram shown in
Adders 700a to 700d receive path metrics PMa to PMd and branch metrics BMa to BMd in accordance with the trellis diagram shown in
The order of {(PMa,BMa), (PMb,BMb), (PMc,BMc), (PMd,BMd)} input into the basic unit is set as follows for the respective states in the above conventional decoder.
<State 0>
The path select signals PS0 to PS7 output from the ACS circuit 605 are input into the path memory 607.
At the first level, the subset number itself is selected by the path select signal PSi. Accordingly, the subset numbers at each branch in the trellis diagram in
At the second level, a value stored in a register corresponding to the node number at the first level is selected. For example, in state 0, when the path select signal PS0 is “0”, (PM0,BM0) has been selected. Therefore, a selector 802 outputs the content of the register corresponding to state 0 at the first level, which is then stored in a register 803. Likewise, when the path select signal PS0 is “1”, “2”, and “3”, the selector 802 outputs the content of register 2, 4, and 6, respectively. In states 1 to 7, also, the selector 802 outputs the content of register x at the first level corresponding to the state number x represented by the value of each of the path select signals PS1 to PS7. The output results are stored in the respective registers 803.
The above configuration at the second level is repeated for the third and subsequent levels until the j-th level. In this way, values are shifted from the first level through the j-th level for j clocks. Thus, a value stored in register n at the j-th level is equal to the subset number in the state through which the survivor path in state n has passed j time points earlier. The outputs from the registers at the j-th level are input into a selector 608.
A most likely path decision circuit 606 receives the outputs PM0 to PM7 from the registers of the respective basic units of the ACS circuit 605, detects the state having the highest likelihood among the inputs, and outputs the number of the detected state. Selector 608 receives the output of the most likely path decision circuit 606 and selects the corresponding register output value. The register output value is equal to the subset number that will be obtained by going back along the most likely path by j levels. In the case of the encoder shown in
The above conventional configuration has the following problems.
First, used conventionally as the path memory is the configuration as shown in
Secondly, in the path memory as shown in
Thirdly, the path memory conventionally stores subset numbers themselves. With this configuration, when the encoding rate of a trellis encoder is reduced by increasing the number of bits of a code from 3 to 4 or even 5, for example, the number of bits of each subset number increases thereby increasing the number of bits stored in the path memory. This also results in increase in the circuit area of the entire device.
Objects of the present invention are providing a Viterbi decoder and a Viterbi decoding method for decoding a trellis-coded modulated signal, where a path memory is configured of a general RAM thereby reducing the circuit size and power consumption.
Specifically, the present invention provides a Viterbi decoder for decoding a trellis-coded modulated signal including: a subset selector section for receiving a reception signal, selecting a transmission symbol having the highest likelihood with respect to a reception symbol point for each subset, and outputting a branch metric corresponding to the selected transmission symbol and a subset select signal for specifying the selected transmission symbol; delays for delaying the subset select signals for a predetermined time; an add-compare-select (ACS) section for receiving the branch metrics, performing arithmetic operation to obtain path metrics in accordance with a trellis diagram, and outputting path select signals for selecting paths having high likelihood; a trace-back memory for storing the path select signals; a trace-back section for tracing back the path select signals stored in the trace-back memory by a predetermined trace-back length from a start node number as a start point; a subset number generator section for outputting, using the number of a first node through which a most likely path passes obtained by the trace-back section and in accordance with a trellis diagram, coding bits relating to transition to the first node and a subset number; a selector section for receiving the subset number and the subset select signals output from the delays and outputting a noncoding bit relating to the transition to the first node; and a LIFO memory for storing the coding bits output from the subset number generator section and the noncoding bit output from the selector section in combination and outputting the stored bits as a decoded signal.
The subset number generator section preferably generates the coding bits and the subset number using the first node number and a second node number through which the most likely path has passed one time point before the first node.
Alternatively, the subset number generator section preferably generates the coding bits and the subset number using the first node number and a path select signal corresponding to the first node.
Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.
Referring to
Delays 103 delay the subset select signals SSEL0 to SSEL7 output from the subset selector 100 by a predetermined time. An add-compare-select (ACS) circuit 104 receives the branch metrics BM0 to BM7 output from the subset selector 100, performs arithmetic operation to obtain path metrics PM0 to PM7 in accordance with the trellis diagram shown in
A trace-back circuit 107 traces back along path select signals PS0′ to PS7′ stored in the trace-back memory 106 by a predetermined trace-back length starting from a start node number. A subset number generator 108 generates, using a first node number ND1 through which a most likely path passes obtained by the trace-back circuit 107 and in accordance with the trellis diagram shown in
A most likely path decision circuit 105 receives the path metrics PM0 to PM7 obtained by the arithmetic operation by the ACS circuit 104, detects a path with the highest likelihood among the path metrics PM0 to PM7, and outputs a node number MND through which the path passes. Based on the node number MND output from the most likely path decision circuit 105, the trace-back circuit 107 determines the start node number for tracing back.
The operation of the Viterbi decoder with the above configuration will be described.
First, in the subset selector 100, the branch metric generator 101 generates branch metrics BMs0 and BMs1 for each branch (s is an integer in the range of 0 to 7 indicating the subset number) from a reception signal as in the conventional case. Herein, squared Euclidean distances (Rx−Tx)2+(Ry−Ty)2 between the reception signal (Rx, Ry) and respective transmission symbols (Tx, Ty) are used as the branch metrics. The other values, |Rx−Tx|+|Ry−Ty|, Rx·Tx+Ry·Ty, . . . , can be used for branch metrics. The subset decision circuit 102 compares the branch metrics BMs0 and BMs1 of each subset and selects one having higher likelihood. The subset decision circuit 102 outputs the selected branch metrics BM0 to BM7 to the ACS circuit 104, as well as the subset select signals SSEL0 to SSEL7 corresponding to the selected branch metrics to the respective delays 103.
In this embodiment, the subset selector 100 generates the subset select signals SSEL0 to SSEL7 so that they match respective noncoding bits corresponding to the selected transmission symbols. This enables the subset select signals SSEL0 to SSEL7 to be used as noncoding bits as they are without any special processing. This simplifies and facilitates the configuration of the selector 109. For each subset s, the branch metric for which the noncoding bit is “0” is denoted by BMs0, while the branch metric for which the noncoding bit is “1” is denoted by BMs1 as described above. Therefore, the subset select signal SSELs is “0” when the branch metric BMs0 is selected while it is “1” when the branch metric BMs1 is selected.
The subset select signals SSELs output from the subset decision circuit 102 are delayed by a predetermined time by the delays 103 and then output to the selector 109. The delay time by the delays 103 is equal to the time required for the series of processing from the input of the branch metrics BM0 to BM7 into the ACS circuit 104 until the generation of the subset number SSNO by the subset number generator 108.
The ACS circuit 104 selects paths to respective nodes using the branch metrics BMs output from the subset decision circuit 102, to update the path select signals PS0 to PS7 and the path metrics PM0 to PM7. The inner configuration of the ACS circuit 104 is substantially the same as the conventional one, but the order of {(PMa,BMa), (PMb,BMb), (PMc,BMc), (PMd,BMd)} input into the basic unit as shown in
<State 0>
In other words, in this embodiment, the ACS operation is performed so that each path select signal matches the coding bits {x2,x1} relating to the transition of the selected path, that is, the transition to the node corresponding to the path select signal concerned.
For example, in state 0, the order of input into the basic unit is {(PM0,BM0), (PM4,BM2), (PM2,BM4), (PM6,BM6)} as described above. If the basic unit selects (PMc,BMc)(=(PM2,BM4)), the path select signal PS0 is “10”. This is equal to the coding bits {x2,x1}={1,0} relating to the transition from node number 2 ({010}) to node number 0 ({000}), as is apparent from the trellis diagram shown in
The path select signals PS0 to PS7 output from the ACS circuit 104 are stored in the trace-back memory 106.
The first selector 203 selects one of the path select signals PS0′ to PS7′ output from the trace-back memory 106 that corresponds to the node number output from the second selector 202, and outputs the selected signal to the node number operator 204 (step S3). The node number operator 204 calculates the node number one time point earlier based on the current node number output from the second selector 202 and the corresponding path select signal output from the first selector 203 (step S4).
Specifically, each path select signal has been generated so as to match the input coding bits {x2,x1} relating to the transition as described above. Accordingly, in the case of the encoder shown in
D2′=D1^x1, D1′=D0^x2, D0′=D2 (1)
where “^” denotes exclusive OR. The calculated node number one time point earlier, {D2′,D1′,D0′}, is newly stored in a node number memory circuit 205 (step S6).
The above series of processing is repeated until the number of times of tracing reaches a predetermined trace-back length L (steps S1, S5, S7). Note that the second selector 202 selects the output from the node number memory circuit 205 storing the current node number at occasions other than the start-up of the tracing back.
As a result of the above processing, output from the trace-back circuit 107 are the first node number ND1 L time points earlier for the most likely path obtained from the tracing back and the second node number ND2 through which the most likely path has passed one time point before the first node. The subset number generator 108 generates the coding bits CB{x1,x2} and the subset number SSNO based on the node numbers ND1 and ND2 with reference to the table data as shown in
The subset number SSNO generated by the subset number generator 108 is input into the selector 109. The selector 109 selects one among the subset select signals SSELs delayed by the delays 103 that corresponds to the subset number SSNO, and outputs the selected subset select signal. In this embodiment, since the subset select signals SSELs are generated to match the respective noncoding bits, the selector 109 outputs a noncoding bit NCB{x3}. Thus, combining the coding bits CB{x1,x2} output from the subset number generator 108 with the noncoding bit NCB{x3} output from the selector 109, a decoded signal {x1,x2,x3} is generated.
As described above, in the Viterbi decoder of this embodiment for decoding a trellis-coded modulated signal, it is possible use a general RAM for the trace-back memory. This allows for reduction in circuit size and power consumption.
Further, in this embodiment, if the number of states increases in an encoder, a circuit supporting the increase can be easily formed by only increasing the number of bits of a RAM constituting the trace-back memory. This substantially reduces the circuit area compared with the conventional case.
Moreover, in this embodiment, stored in the trace-back memory are the path select signals that depend only on the coding bits. Accordingly, if the number of subsets increases, no increase in trace-back memory is required. In the conventional configuration where the subset numbers are stored in respective nodes, the circuit size is inevitably increased in such an occurrence.
As in the configuration in
Alternatively, the subset number may be obtained directly by performing encoding operation as is done by the encoder using, in place of the current node number, the node number one time point earlier output from the node number operator and the corresponding input coding bits. Otherwise, the encoding operation may be realized with table data stored in the ROM. By using table data, the configuration of the decoder can be easily changed to be usable for different encoders.
When the symbol input is comparatively slow, the tracing back processing may be performed every symbol. In this case, the start node number generator 201 desirably just passes the node number MND of the path having the currently highest likelihood output from the most likely path decision circuit 105 to the second selector 202. When the symbol input is fast, pipelined tracing back is effective. In this case, the configuration disclosed in Japanese Laid-Open Patent Publication No. 9-191258 (corresponding U.S. Pat. No. 6,041,433) may be adopted as the start node number generator 201. This will allow for substantial reduction in trace-back memory size.
By adopting the above configuration in which the single trace-back memory 106A replaces the delays 103 and the trace-back memory 106 shown in
In the above embodiment, the decoder was constructed by hardware. The Viterbi decoder of the present invention can also be constructed by software in the form of a program. In other words, in place of providing a Viterbi decoder, a software algorithm for implementing the Viterbi decoding method of the present invention may be provided.
As described above, in the Viterbi decoding according to the present invention, the path memory can be constructed of a trace-back memory using a general RAM. This reduces the circuit area and the power consumption of the device. This also provides easy adaptation to communication schemes using different encoders. Moreover, the circuit size is prevented from increasing even if the number of subsets generated from coding bits increases.
While the present invention has been described in a preferred embodiment, it will be apparent to those skilled in the art that the disclosed invention may be modified in numerous ways and may assume many embodiments other than that specifically set out and described above. Accordingly, it is intended by the appended claims to cover all modifications of the invention which fall within the true spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
11-281302 | Oct 1999 | JP | national |
This application is a continuation-in-part application of U.S. patent application Ser. No. 09/672,904 filed on Sep. 29, 2000 now U.S. Pat. No. 6,654,929.
Number | Name | Date | Kind |
---|---|---|---|
4583078 | Shenoy et al. | Apr 1986 | A |
4777636 | Yamashita et al. | Oct 1988 | A |
4905317 | Suzuki et al. | Feb 1990 | A |
5390198 | Higgins | Feb 1995 | A |
5446746 | Park | Aug 1995 | A |
5509021 | Todoroki | Apr 1996 | A |
5946361 | Araki et al. | Aug 1999 | A |
5987637 | Thomas | Nov 1999 | A |
5991341 | Shin | Nov 1999 | A |
5991343 | Oh et al. | Nov 1999 | A |
6031876 | Oh et al. | Feb 2000 | A |
6041433 | Kamada | Mar 2000 | A |
6094739 | Miller et al. | Jul 2000 | A |
6223324 | Sinha et al. | Apr 2001 | B1 |
6269129 | Rhee et al. | Jul 2001 | B1 |
6324226 | Sasagawa | Nov 2001 | B1 |
6337890 | Maru | Jan 2002 | B1 |
6385753 | Hatakeyama | May 2002 | B1 |
6408420 | Todoroki | Jun 2002 | B1 |
6452985 | Hatakeyama et al. | Sep 2002 | B1 |
6477208 | Huff | Nov 2002 | B1 |
20010049809 | Miyauchi et al. | Dec 2001 | A1 |
Number | Date | Country |
---|---|---|
0967 730 | Dec 1999 | EP |
5-335972 | Dec 1993 | JP |
6-104942 | Apr 1994 | JP |
11-186915 | Jul 1999 | JP |
11-186919 | Jul 1999 | JP |
11-186920 | Jul 1999 | JP |
1998-057719 | Sep 1998 | KR |
WO 9836500 | Aug 1998 | WO |
Number | Date | Country | |
---|---|---|---|
20040064781 A1 | Apr 2004 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 09672904 | Sep 2000 | US |
Child | 10673255 | US |