This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2008-87865, filed on Mar. 28, 2008, the entire contents of which are incorporated herein by reference.
An embodiment of the present invention relates to a turbo decoder which decodes a turbo code, a base station including the turbo decoder, and a decoding method for the turbo code. The turbo decoder, the base station, and the decoding method include, for example, a technique for speeding up alpha and beta computation and reducing the amount of memory.
A method using turbo codes is attracting attention as an encoding method for approaching the Shannon limit. A turbo code is based on the “turbo principle” that the error rate of data encoded by two or more convolutional encoders statistically uncorrelated with each other on the transmitting side is reduced by repeatedly performing a recursive operation on the data using the correlation absence on the receiving side.
The general configuration of a turbo encoder which performs turbo encoding will first be described.
A turbo encoder 10 illustrated in
The convolutional encoders 12 and 14 basically have the same configuration, and the configuration is illustrated in
Code computation defined by IEEE 802.16 (WiMAX) is illustrated in the example in
Processing in a turbo decoder which decodes a turbo code will be described. An overview of a maximum a posteriori probability (MAP) decoding algorithm using trellis state transitions, which is one turbo code decoding method, will first be described before describing the configuration of a turbo decoder.
To decode a convolutional data sequence generated by the turbo encoder illustrated in
A turbo decoder is configured to increase a transition probability by repeating a trellis transition (see
An α transition and a β transition depend on transitions of registers S1, S2, and S3 of the convolutional encoders 12 and 14 of the turbo encoder 10 illustrated in
Based on the above, the configuration of a turbo decoder will be described.
The state transition probability computing unit 51 obtains a state transition probability γ from data A and B, flags Y and W, and a priori probability Le from the previous stage. The forward trellis α 53 and backward trellis β 54 perform forward and backward trellis computations, respectively, based on the state transition probability γ obtained by the state transition probability computing unit 51. The λ normalization unit 52 obtains decoded data and the priori probability Le from the state transition probability γ obtained by the state transition probability computing unit 51 and α and β which are results of the forward and backward trellis computations performed by the forward trellis α 53 and backward trellis β 54. The priori probability Le is transmitted to a single turbo decoder in the next stage.
In order to increase trellis reliability, a trellis twice as long as decoded data is used. Let A0 to An, B0 to Bn, Y0 to Yn, and W0 to Wn be input data sequences, and γ0 to γn be obtained γ values. Since when γ0 to γn serve as inputs for α and β, there are eight states, a trellis is searched in the manner below. A first set of γ0 to γn is used only to increase trellis transition accuracy and is not used as λ inputs.
A single turbo decoder has been described above. A turbo decoder performs same processing on a code interleaved to increase a decoding ratio against burst noise. An overall turbo decoder thus has a configuration as illustrated in
An overall turbo decoder 60 illustrated in
On the decoder side, data obtained after normalization using forward search and backward search trellises in combination is accumulated as the priori probability Le. After an original data sequence is subjected to the processing, a data sequence obtained by interleaving the original data sequence is also subjected to the same processing. The accuracy of the priori probability Le obtained as the result is increased in this manner.
The details of an α metric computation will now be described.
As illustrated in
As illustrated in
The details of computation of a priori probability Le will be described.
Le has an initial value of “0.” As illustrated in
Various methods have been examined for increased turbo decoder speeds. For example, a turbo decoder is suggested which includes, in order to perform α and β metric computation, a technique for supplying a plurality of pipelined stages of γ metrics, and an ACS computation technique composed of a plurality of stages of cascade connections for receiving the plurality of pipelined γ metrics (see Japanese Patent Laid-Open No. 2001-320282). Also, a turbo decoder is suggested which selects, on the basis of the polarity of a computation result from an adder and the polarity of a selection output from a selector, one of the sum including a negative polarity, the selection result including a negative polarity, a sum of the sum and selection result, and zero by a second selector, wherein an α metric and a β metric are computed on the basis of an output from the second selector (see Japanese Patent Laid-Open No. 2001-24521). Additionally, an apparatus for computing in-place path metric addressing for a trellis processor is suggested (see Japanese Patent Laid-Open No. 2002-152057).
According to an aspect of the embodiment discussed herein, a turbo decoder includes a state transition probability computing unit which obtains a state transition probability from data, a flag, and a priori probability from a previous stage, an alpha and beta metric computing unit which obtains an alpha metric and a beta metric from the state transition probability by computing a plurality of processes concurrently in a time sequence, and a normalization unit which obtains decoded data and a priori probability for a next stage based on the state transition probability obtained by the state transition probability computing unit and on the alpha metric and the beta metric obtained by the alpha and beta metric computing unit.
According to another aspect of the embodiment, a turbo decoder includes a state transition probability computing unit which obtains a state transition probability from data, a flag, and a priori probability from a previous stage; an alpha and beta metric computing unit which obtains an alpha metric and a beta metric from the state transition probability obtained by the state transition probability computing unit; a normalization unit which obtains decoded data and a priori probability for a next stage based on the state transition probability obtained by the state transition probability computing unit and on the alpha metric and the beta metric obtained by the alpha and beta metric computing unit; a compression unit which compresses at least one of the alpha metric and the beta metric using an accumulated value of a maximum value of the state transition probability; and a storage unit which stores at least one of the alpha metric and the beta metric compressed by the compression unit.
Additional objects and advantages of the embodiment will be set forth in part in the description which follows, and in part will be understood from the description, or may be learned by practice of the embodiment. The object and advantages of the embodiment will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims.
It is to be understood that both the foregoing summary description and the following detailed description are exemplary and explanatory and are not restrictive of the embodiment, as claimed.
An embodiment is illustrated by way of example and not limited by the following figures.
As part of present invention, observations were made regarding problems with the related art that the method previously referred to in the Background.
As illustrated in
α metric values and β metric values to be computed are chronologically opposite. Accordingly, after β metrics are computed and stored in a memory in descending order, α metrics are computed in ascending order while the stored β metrics are read out in ascending order (chronologically opposite), and λ computation is performed, as illustrated in
For example, in WiMAX, the data size is variable, and the maximum data size is 2,400 words. Since one word equals 18 bits, and 2,400 words may be needed for each of eight states, the size of a memory for storing β metrics is 345,600 bits (2,400×18 bits×8). Since reservation of such a large memory area for storing β metrics in integrated circuit design is currently difficult, it is thus desirable to minimize the size of a memory for storing β metrics.
Hereinafter, examples of an embodiment of the disclosed turbo decoder, a base station including the turbo decoder and a decoding method for the turbo code will be described with reference to the drawings. Throughout the drawings, the same components are denoted by the same reference numerals.
<Reduction in Computation Time of α Metric and β Metric>
In α metric and/or β metric computation, the computation time may be reduced by performing two processes in a time sequence at one time.
A description will be given below with a focus on α(0). It will be apparent to those skilled in the art that the same applies to α metrics other than α(0).
α(0) at time point n is obtained by adding α(0) and γ(0,0) at time point n−1, adding α(6) and γ(0,1) at time point n−1, adding α(1) and γ(0,2) at time point n−1, adding α(7) and γ(0,3) at time point n−1, and selecting a maximum sum (MAX selection) of the sums. The same applies to α(6), α(1), and α(7) at time point n.
α(0) at time point n+1 is obtained by adding α(0) and γ(0,0) at time point n, adding α(6) and γ(0,1) at time point n, adding α(1) and γ(0,2) at time point n, adding α(7) and γ(0,3) at time point n, and selecting a maximum sum (MAX selection) of the sums. As described above, an α metric at time point n+1 is obtained from α metrics and a state transition probability γ at time point n−1 by two processes.
Addition of α and γ requires one clock, and maximum value selection of 1 out of 16 requires four clocks. The number of clocks required for the computation in
When
In order to obtain α(0) at time point n+1, elements in each row of the table in
The same applies to α(1) to α(7). When elements to be added in each case are put into a table, for reference, the tables become as illustrated in
α(0) and α(3) share common γ additions whose results are to be inputted, α(4) and α(7) share common γ additions whose results are to be inputted, α(1) and α(2) share common γ additions whose results are to be inputted, and α(5) and α(6) share common γ additions whose results are to be inputted. Each set includes 16 additions. Thus, performing 64 (=16×4) additions is sufficient.
α metric computation described with reference to
Circuitry 160 illustrated in
As has been described above, a reduction in the number of clocks for α value computation makes it possible to reduce the time required for turbo code decoding.
α metric computation has been described in the context of a reduction in computation time. However, it will be apparent to those skilled in the art that the same method may be applied to β metric computation. In consideration of this, the components 164A to 164D, which compute α metrics, are referred to as αβ computing units in
α metric computation has been described on the assumption that two processes are performed at one time. It is also possible to achieve a more significant time-saving effect by performing three or more processes at one time although this requires more complicated circuitry.
As for the design of a semiconductor integrated circuit, if the computation time for α metrics may not be reduced, an extra module for α metric computation is required. A reduction in computation time has the effect of eliminating the need for an extra module and allowing use of a region where such an extra module would otherwise be formed for other applications.
As described with reference to
Consider the meaning of a β metric. For any of eight states of β metrics, computation leading to convergence to a maximum value indicated by γ is performed. In other words, for any state, only a maximum value remains and is accumulated upon each trellis transition. That is, a β metric approaches a cumulatively added value of a γ maximum value as a reference. Based on this insight, a β metric (β value) and a value of “a cumulatively added value of a γ maximum value minus the β metric” were obtained by simulation. After a million random trials, a maximum β metric value was 553,796 while a value of “a cumulatively added value of a γ maximum value minus the β metric” was 2,258. Although these values, of course, depend on the number of input bits and the number of repetitions, at least the former value is a 20-bit value, and the latter value is a 12-bit value. This is noteworthy from a memory-saving standpoint.
For example, if a maximum value at each time point in a time sequence is used as a reference, maximum values, the number of which corresponds to a time length, may need to be recorded. In contrast, a cumulatively added value for γ may be immediately computed without recording in a memory, as will be described below. This allows use of a 12-bit memory instead of a 20-bit memory.
Before describing a memory for β metrics and peripheral circuits according to an embodiment, a memory for β metrics and peripheral circuits according to the related art will first be described.
A single turbo decoder including a memory for β metrics and peripheral circuits according to an embodiment will be described.
However, a value to be inputted to a λ normalization unit 1860 is a β value. Accordingly, an addition β restoration unit 1884 may reconstruct each β metric using the value of “the cumulatively added value of a γ maximum value minus the β metric” stored in the β memory 1850 together with a result of subjecting the γ maximum value obtained by the γ maximum value unit 1881 to cumulative subtraction in a cumulative subtraction unit 1885. The addition β restoration unit 1884 transmits a restored 20-bit β value to the λ normalization unit 1860. The λ normalization unit 1860 obtains decoded data and a priori probability Le from the state transition probability γ obtained by the state transition probability computing unit 1830, the α metrics obtained by the α/β circuit 1840, and the β metrics restored by the addition β restoration unit 1884. The priori probability Le obtained by the λ normalization unit 1860 is stored in the memory 1820 for Le. The turbo decoder 1800 further has an αβ switching control circuit 1870. The αβ switching control circuit 1870 transmits a control signal to the α/β circuit 1840 and switches the α/β circuit 1840 between α metric computation and β metric computation. The αβ switching control circuit 1870 also transmits a write address to the 12-bit β memory 1850 and causes the β memory 1850 to store a result of compression in the subtraction β compression unit 1883 (“a cumulatively added value of a γ maximum value minus a β metric”). Additionally, the αβ switching control circuit 1870 transmits a read address to the β memory 1850 and causes a β metric restored by the addition β restoration unit 1884 to be transmitted to the λ normalization unit 1860.
In the case of β computation, letting n be the number of pieces of data, the accumulative addition unit 1882 has a cumulatively added value of γ maximum values for pieces of data numbered n−1 to 0. When α computation is started after β computation, β values are required in order from the piece of data numbered 0. For example, if the accumulative subtraction unit 1885 performs cumulative subtraction to obtain, for the piece of data numbered 0, a final cumulatively added value; for the piece of data numbered 1, a value obtained by subtracting the γ maximum value for the piece of data numbered 0 from the final cumulatively added value; for the piece of data numbered 2, a value obtained by subtracting the γ maximum value for the piece of data numbered 1 from the value for the piece of data numbered 1; and so on, it is possible to restore each β value without storing a cumulatively added value for each of the n pieces of data.
As has been described above, the turbo decoder according to the embodiment may reduce the amount of memory (β memory) required for turbo code decoding.
The above description assumes that computation of β metrics in descending order is performed in advance, the results are stored in the memory, and the β metrics are read out in ascending order at the time of α metric computation. As illustrated in
In this case as well, each α value is computed to converge to a maximum value indicated by γ. In other words, for any state, only a maximum value remains and is accumulated upon each trellis transition.
An α metric (α value) and a value of “a cumulatively added value of a γ maximum value minus the α metric” were obtained by simulation. After a million random trials, a maximum α value was 553,796 while a value of “a cumulatively added value of a γ maximum value minus the α metric” was 2,258. Although these values depend on the number of input bits and the number of repetitions, at least the former value is a 20-bit value, and the latter value is a 12-bit value. This is noteworthy from a memory-saving standpoint.
For example, if a maximum value at each time point in a time sequence is used as a reference, maximum values, the number of which corresponds to a time length, may need to be recorded. In contrast, a cumulatively added value for γ may be immediately computed without recording in a memory, as will be described below. This allows for the use of a 12-bit memory instead of a 20-bit memory.
In order to describe a memory for α metrics and peripheral circuits according to an embodiment, a memory for α metrics and peripheral circuits according to the related art will first be described.
A single turbo decoder including a memory for α metrics and peripheral circuits thereto according to an embodiment will be described.
However, a value to be inputted to a λ normalization unit 2160 is an α value. Accordingly, an addition α restoration unit 2184 may reconstruct each α metric using the value of “the cumulatively added value of a γ maximum value minus the α metric” stored in the α memory 2150 together with a result of subjecting the γ maximum value obtained by the γ maximum value unit 2181 to cumulative subtraction in a cumulative subtraction unit 2185. The addition α restoration unit 2184 transmits a restored 20-bit α value to the λ normalization unit 2160. The λ normalization unit 2160 obtains decoded data and a priori probability Le from the state transition probability γ obtained by the state transition probability computing unit 2130, the β metrics obtained by the α/β circuit 2140, and the α metrics restored by the addition α restoration unit 2184. The priori probability Le obtained by the λ normalization unit 2160 is stored in the memory 2120 for Le. The turbo decoder 2100 further has an αβ switching control circuit 2170. The αβ switching control circuit 2170 transmits a control signal to the α/β circuit 2140 and switches the α/β circuit 2140 between α metric computation and β metric computation. The αβ switching control circuit 2170 also transmits a write address to the 12-bit α memory 2150 and causes the α memory 2150 to store a result of compression in the subtraction α compression unit 2183 (“a cumulatively added value of a γ maximum value minus an α metric”). Additionally, the αβ switching control circuit 2170 transmits a read address to the α memory 2150 and causes an α metric restored by the addition α restoration unit 2184 to be transmitted to the λ normalization unit 2160.
In the case of α computation, letting n be the number of pieces of data, the accumulative addition unit 2182 has a cumulatively added value of γ maximum values for pieces of data numbered n−1 to 0. When β computation is started after α computation, α values are required in order from the piece of data numbered n−1. For example, if the accumulative subtraction unit 2185 performs cumulative subtraction to obtain, for the piece of data numbered n−1, a final cumulatively added value; for the piece of data numbered n−2, a value obtained by subtracting the γ maximum value for the piece of data numbered n−1 from the final cumulatively added value; for the piece of data numbered n−3, a value obtained by subtracting the γ maximum value for the piece of data numbered n−2 from the value for the piece of data numbered n−2; and so on, it is possible to restore each α value without storing a cumulatively added value for each piece of data.
As has been described above, the turbo decoder according to the embodiment may reduce the amount of memory (α memory) required for turbo code decoding.
A method of subjecting a β value (or an α value) to subtraction compression and storing the resultant value in a memory and subjecting the value to addition restoration at the time of passing the value to a λ normalization unit has been described above. However, both an α value and a β value may be subjected to subtraction compression and be passed to the λ normalization unit without addition restoration. In this case, λ maximum value selection may be first performed, and a cumulative value may be added at the time of computation of a priori probability Le.
This is due to the following reason. As illustrated in
The above-described method may be implemented by circuitry as in
A single turbo decoder 2200 illustrated in
The turbo decoder 2200 further has an α cumulative addition unit 2292 which cumulatively adds the γ maximum value obtained by the γ maximum value unit 2281 and a subtraction α compression unit 2293 which subtracts each α value obtained by the α/β circuit 2240 from a cumulatively added value obtained by the cumulative addition unit 2292. With this configuration, the single turbo decoder 2200 according to the embodiment obtains a value of “the cumulatively added value of a γ maximum value minus each α metric” and transmits the value to the λ normalization unit 2260.
Note that although the α cumulative addition unit 2292 and the β cumulative addition unit 2282 are illustrated as separate blocks in
The αβ switching control circuit 2270 transmits a control signal to the α/β circuit 2240 and switches the α/β circuit 2240 between α metric computation and β metric computation. The αβ switching control circuit 2270 also transmits a write address and a read address to the β memory 2250 and controls writing of data from the subtraction β compression unit 2283 and reading of data from the β memory 2250.
As described above, the turbo decoder according to the embodiment does not additively restore a compressed α value and/or a compressed β value. Accordingly, the number of input bits to the λ arithmetic circuit may be reduced, and the numbers of bits of the addition circuits and the maximum value selecting circuits may be reduced. This allows an increase in operating speed and a reduction in circuit scale.
More specific examples will be described below.
A first example is a turbo decoder in which, with use in IEEE 802.16 (WiMAX) in mind, the computation time for two αβ computations has been reduced from six clocks to five clocks, and the amount of a β memory has been reduced.
The turbo decoder receives B, A, Y1, and Y2 as received data. As each of the received data B. A, Y1, and Y2, de-grouped data and/or de-subblocked data is generally inputted. A write control unit 2401 generates control signals for writing received data (an address and a write enable signal). The received data is stored in a received data storage memory 2402. As illustrated in
The read control unit 2403 generates a read address. In reading, pieces of data for β computation are first outputted in descending order (from address 47 to address 00), and pieces of data for α computation are then outputted in ascending order (from address 00 to address 47), as illustrated in
A γ computing unit 2404 performs computation determined by the configuration of an encoder. Since WiMAX does not use W1 and W2 when HARQ is not used, γ computation is substantially determined by A, B, Y1, Y2, and Le. Switching between Y1 and Y2 depends on whether standard processing or interleaving is to be performed. Y1 is selected at the time of standard processing, and Y2 is selected at the time of interleaving. The γ computing unit 2404 computes γ in the manner indicated by the γ computation correspondence table illustrated in
A γ maximum value acquiring unit 2405 obtains a maximum value of γ values outputted by the γ computing unit 2404.
An α/β circuit 2406 is a circuit which computes α metrics and β metrics. The details of the α/β circuit 2406 is illustrated in
As one α process, the following may be computed:
α(0)=MAX(α(0)+γ(0,0), α(6)+γ(0,1), α(1)+γ(0,2), α(7)+γ(0,3)),
α(1)=MAX(α(2)+γ(1,0), α(4)+γ(1,1), α(3)+γ(1,2), α(5)+γ(1,3)),
α(2)=MAX(α(5)+γ(1,0), α(3)+γ(1,1), α(4)+γ(1,2), α(2)+γ(1,3)),
α(3)=MAX(α(7)+γ(0,0), α(1)+γ(0,1), α(6)+γ(0,2), α(0)+γ(0,3)),
α(4)=MAX(α(1)+γ(0,0), α(7)+γ(0,1), α(0)+γ(0,2), α(6)+γ(0,3)),
α(5)=MAX(α(3)+γ(1,0), α(5)+γ(1,1), α(2)+γ(1,2), α(4)+γ(1,3)),
α(6)=MAX(α(4)+γ(1,0), α(2)+γ(1,1), α(5)+γ(1,2), α(3)+γ(1,3)), and
α(7)=MAX(α(6)+γ(0,0), α(0)+γ(0,1), α(7)+γ(0,2), α(1)+γ(0,3)).
As two α metric processes, the process of adding all input elements described above with reference to the tables in
As one β process, the following may be computed:
β(0)=MAX(β(0)+γ(0,0), β(7)+γ(0,1), β(4)+γ(0,2), β(3)+γ(0,3)),
β(1)=MAX(β(4)+γ(0,0), β(3)+γ(0,1), β(0)+γ(0,2),
β(7)+γ(0,3)), ·β(2)=MAX(β(1)+γ(1,0), β(6)+γ(1,1), β(5)+γ(1,2),
β(2)+γ(1,3)), ·β(3)=MAX(β(5)+γ(1,0), β(2)+γ(1,1), β(1)+γ(1,2),
β(6)+γ(1,3)), ·β(4)=MAX(β(6)+γ(1,0), β(1)+γ(1,1), β(2)+γ(1,2),
β(5)+γ(1,3)), ·β(5)=MAX(β(2)+γ(1,0), β(5)+γ(1,1), β(6)+γ(1,2),
β(1)+γ(1,3)), ·β(6)=MAX(β(7)+γ(0,0), β(0)+γ(0,1), β(3)+γ(0,2), β(4)+γ(0,3)),
and β(7)=MAX(β(3)+γ(0,0), β(4)+γ(0,1), β(7)+γ(0,2), β(0)+γ(0,3)).
As two β metric processes, the process of adding all input elements in the tables in
Referring back to
A cumulative subtraction unit 2410 is a circuit which subtracts values from a final value from the cumulative addition unit 2407 in order to compute a cumulatively added value used at the time of restoration in an addition β restoration unit 2411. The addition β restoration unit 2411 restores an original β value by adding a value from the cumulative subtraction unit 2410 and a value from the β memory 2409. A λ computing unit 2412 corresponds to a λ computing unit of a conventional turbo decoder.
A deinterleaving unit 2413 is a circuit for deinterleaving and rearranging data obtained from the λ computing unit 2412 which has been interleaved. As a result of repetitive operation, a value of a priori probability Le is stored in an Le memory 2414 and is supplied to the γ computing unit 2404.
A second example is a turbo decoder which, like the first example, is designed for use in IEEE 802.16 (WiMAX), receives a β compression result and an α compression result as γ inputs to a λ computing unit, and uses a cumulatively added value for Le computation.
In contrast to the cumulative addition unit 2407 in
Data to be transmitted is subjected to FEC (Forward Error Correction) coding using turbo codes in an FEC codec 3312. The coded data is stored in an SDRAM 3313 for MAP generation and is subjected to rearrangement from a logical channel format into a physical channel format in a rearrangement unit 3314. In a pilot inserting unit 3315, a pilot signal is inserted into the data. The data, into which the pilot signal has been inserted, is subjected to an inverse Fourier transform in an inverse Fast Fourier transform unit (iFFT) 3316 and is then serially transferred to an RF unit 3320 at high speed. The transferred data is converted into an RF signal by the RF unit 3320 and is transmitted to an antenna (not illustrated).
An RF signal received by the antenna is inputted to the RF unit 3320. After the RF signal is converted into digital data, the RF signal is serially transferred to the base band unit 3310 at high speed. The transferred data is inputted to a Fast Fourier transform unit 3331 and is Fast Fourier transformed into a frequency domain. A pilot signal is received from the data obtained after the transform in a pilot correcting unit 3332, and signal correction is performed based on the pilot signal. The data obtained after the correction is rearranged from the physical channel format into the logical channel format in a rearrangement unit 3333. The rearranged data is stored in the SDRAM 3313 and is decoded by an FEC decodec 3334. The FEC decodec 3334 includes a turbo decoder 3335 according to an embodiment. The turbo decoder may be, for example, the turbo decoder according to the first example illustrated in
According to the embodiment, a disclosed alpha and beta metric computing unit concurrently computes a plurality of processes in a time sequence. Therefore, the computation time for α metrics or β metrics may be reduced. The presence of a compression unit which compresses the α metrics or β metrics using a cumulatively added value of a maximum value of a state transition probability and a storage unit which stores the α metrics or β metrics compressed by the compression unit allows a reduction in the memory capacity of the storage unit.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2008-087865 | Mar 2008 | JP | national |