ENCODER, DECODER AND ENCODING METHOD WITH LOW ERROR FLOOR
20170324429 · 2017-11-09
Inventors
- Heinrich VON KIRCHBAUER (Munich, DE)
- Stephan WITTE (Munich, DE)
- Stefano Calabro (Munich, DE)
- Bernhard Spinnler (Oberhaching, DE)
Cpc classification
H03M13/1111
ELECTRICITY
H03M13/1108
ELECTRICITY
H03M13/1174
ELECTRICITY
International classification
Abstract
Disclosed herein is an encoder for encoding digital data, said encoder comprising one or more component encoders, one or more interconnections between component encoders, one or more inputs and one or more outputs. The encoder is configured to carry out the following steps:—combining internal input bits received via an interconnection and external input bits received via a corresponding input, to assemble a local information word,—encoding the local information word such as to generate a local code word,—outputting a reduced local code word and handing the same reduced local code word over to said interconnect for forwarding said same reduced local code word via said interconnect to another component encoder or to itself, wherein said encoder is configured to forward on each interconnect the bits of the reduced local code in parallel but with delays that are mutually different for at least a subset of the reduced local code word bits.
Claims
1. An encoder for encoding digital data, said encoder comprising one or more component encoders, each component encoder being a systematic block encoder suitable for encoding a local information word such as to generate a local code word including the local information word and a number of parity bits, one or more interconnections, said interconnections connecting different ones of said component encoders or connecting a component encoder with itself, one or more inputs for inputting external digital information to corresponding one or more of the component encoders, and one or more outputs for outputting encoded digital data from at least a subset of the component encoders, wherein the encoder is configured to carry out a sequence of processing steps, each processing step comprising the following steps: combining, at at least a subset of said component encoders, internal input bits received via a corresponding one of said interconnections and external input bits received via the corresponding input, if present, to assemble a local information word, encoding the local information word such as to generate a local code word including the local information and a number of parity bits, and outputting, from at least some of said component encoders, a reduced local code word via the corresponding output, and handing the same reduced local code word over to a corresponding one of said interconnections for forwarding said same reduced local code word via said interconnection to another component encoder or to itself, wherein said reduced local code word corresponds to the parity bits and the external input bits, but not the internal input bits received via the interconnection, wherein said encoder is configured to forward on each interconnection bits of the reduced local code word in parallel but with delays that are mutually different for at least a subset of the reduced local code word bits, wherein a number of component encoders is one, or wherein a number of component encoders is two or more, of which at least one component encoder does not have an input for inputting external digital information.
2. The encoder of claim 1, wherein each component encoder is connected to receive reduced code words via at least one interconnection.
3. The encoder of claim 1, wherein each component encoder has a corresponding output for outputting a reduced code word.
4. The encoder of claim 1, wherein a number of the inputs for inputting external digital information is one half of or less than one half of the number of component encoders.
5. The encoder of claim 1, wherein the number of unit encoders is one, two or four.
6. The encoder of claim 1, wherein a minimum delay between bits on at least two different interconnections within the encoder are chosen to be different from each other.
7. The encoder claim 1, wherein sets of delays on at least two different interconnections have a different constant offset.
8. The encoder of one of claim 6, wherein the difference in minimum delay and/or the offset are chosen such as to increase minimum free distance of a resulting encoding as compared to operating the same encoder with identical minimum delays and/or identical constant offset.
9. The encoder of one of claim 6, wherein width of the reduced code words forwarded on a first interconnection is m and the minimum delay between bits is S.Math.t.sub.0, and wherein a width of the reduced code words forwarded on a second interconnection is n and the minimum delay between bits is at least m.Math.S.Math.t.sub.0, where S is a positive integer and t.sub.0 is a unit time, in particular a clock cycle time.
10. The encoder of claim 9, wherein m<n.
11. The encoder of one of claim 9, wherein the delays on the first interconnection have a first constant offset Δ.sub.1.Math.t.sub.0 and the delays on said second interconnection have a second constant offset Δ.sub.2.Math.t.sub.0, wherein Δ.sub.1 and Δ.sub.2 are non-negative integers chosen such that 2(Δ.sub.1+Δ.sub.2) is not a multiple of S, preferably such that (Δ.sub.2+Δ.sub.1) is not a multiple of S.
12. The encoder of claim 1, wherein each processing step corresponds to one clock cycle of an encoder clock.
13. The encoder of claim 1, wherein each interconnection is formed by a parallel bus having a plurality of lanes, wherein a corresponding delay is associated with each lane.
14. A decoder for decoding a code generated by an encoder according to claim 1, comprising at least one component decoder corresponding to each of the component encoders of said encoder, each component decoder having twice as many ports as the corresponding component encoder.
15. The decoder according to claim 14, wherein the ports of the component decoders are connected by interconnections corresponding to the interconnections in the underlying encoder, where on interconnections with reverse direction as compared to the underlying encoder, the sign of the delays is reversed.
16. A method for encoding digital data using an encoder, said encoder comprising one or more component encoders, each component encoder being a systematic block encoder suitable for encoding a local information word such as to generate a local code word including the local information word and a number of parity bits, one or more interconnections, said interconnections connecting different ones of said component encoders or connecting a component encoder with itself, one or more inputs for inputting external digital information to corresponding one or more of the component encoders, and one or more outputs for outputting encoded digital data from at least a subset of the component encoders, said method comprising a sequence of processing steps, each processing step comprising the following steps: combining, at at least a subset of said component encoders, internal input bits received via a corresponding one of said interconnections and external input bits received via the corresponding input, if present, to assemble a local information word, encoding the local information word such as to generate a local code word including local information and a number of parity bits, and outputting, from at least some of said component encoders, a reduced local code word via the corresponding output, and handing the same reduced local code word over to a corresponding one of said interconnections for forwarding said same reduced local code word via said interconnection to another component encoder or to itself, wherein said reduced local code word corresponds to the parity bits and external input bits, but not internal input bits received via the interconnection, wherein said encoder is configured to forward on each interconnection bits of the reduced local code in parallel but with delays that are mutually different for at least a subset of reduced local code word bits, wherein a number of component encoders is one, or wherein a number of component encoders is two or more, of which at least one component encoder does not have an input for inputting external digital information.
17. The method of claim 16, wherein each component encoder is connected to receive reduced code words via at least one interconnection.
18. The method of claim 16, wherein each component encoder has a corresponding output for outputting a reduced code word.
19. The method of one of claim 16, wherein the number of inputs for inputting external digital information is one half of or less than one half of the number of component encoders.
20. The method of claim 16, wherein the number of unit encoders is one, two or four.
21. The method of claim 16, wherein a minimum delay between bits on at least two different interconnections within the encoder are chosen to be different from each other.
22. The method of claim 16, wherein sets of delays on at least two different interconnections have a different constant offset.
23. The method of one of claim 21, wherein difference in minimum delay and/or offset are chosen such as to increase minimum free distance of a resulting encoding as compared to operating the same encoder with identical minimum delays and/or identical constant offset.
24. The method of one of claim 21, wherein width of the reduced code words forwarded on a first interconnection is M and the minimum delay between bits is S.Math.t.sub.0, and wherein the width of the reduced code words forwarded on a second interconnection is n and the minimum delay between bits is at least m.Math.S.Math.t.sub.0, where S is a positive integer and t.sub.0 is a unit time.
25. The method of claim 24, wherein m<n.
26. The method of one of claim 24, wherein delays on the first interconnection have a first constant offset Δ.sub.1.Math.t.sub.0 and delays on said second interconnection have a second constant offset Δ.sub.2.Math.t.sub.0, wherein Δ.sub.1 and Δ.sub.2 are non-negative integers chosen such that 2(Δ.sub.1+Δ.sub.2) is not a multiple of S.
27. The method of claim 1, wherein each processing step corresponds to one clock cycle of an encoder clock.
28. The method of claim 16, wherein each interconnection is formed by a parallel bus having a plurality of lanes, wherein a corresponding delay is associated with each lane.
Description
SHORT DESCRIPTION OF THE FIGURES
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0046] For the purposes of promoting an understanding of the principles of the invention, reference will now be made to the preferred embodiments illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended, such alterations and further modifications in the illustrated device and method and such further applications of the principles of the invention as illustrated therein being contemplated therein as would normally occur now or in the future to one skilled in the art to which the invention relates.
[0047]
[0048] The thick black arrows represent interconnections interconnecting different ones of the component encoders, or connecting a component encoder with itself, as is the case for the interconnection starting and ending at component encoder B. In the following description, it is assumed that the interconnections are formed by parallel busses, over which a plurality of bits can be forwarded in parallel. However, it is to be understood that no limitation to the actual physical implementation of the encoder is thereby intended, and that the entire encoder can be in particular embodied by software operating on a suitable processor, where no individual busses, inputs and outputs could be attributed to the components described below.
[0049] Further shown in
[0050] In
[0051] The encoder of
[0056] Next, with reference to
[0057] In
[0058] A lower-bound of the free distance of the concatenated convolutional code can be determined by analyzing a detour from the zero-state in the trellis diagram. For illustration purposes, let us consider a binary component block code and denote its minimum Hamming distance by d. At the departure from the zero state, encoder A must therefore emit at least d non-zero bits in the worst case, i.e. in the case of the shortest possible detour. This is illustrated in
[0059] Obviously, we cannot exclude these worst case events without a thorough and complex analysis of the interleaving in the interconnection busses and the mapping in the component encoder. Therefore, in the general case, we can provide at least a lower-bound of the free distance of the structure in
[0060] A graphical illustration of the minimum weight detour is presented in
[0061] Based on the above general criteria, a whole new class of encoders can be constructed, by choosing the number of component encoders, the number of inputs and the individual delays on the interconnections (to be described in more detail below). For each of the possible codes, the desired minimum free distance can be calculated in a similar way as indicated above with reference to the embodiment of
[0062] It should be noted here that a parallelized version of the BBC's of D. Truhacev, M. Lentmaier, and K. Zigangirov is actually in agreement with most of the above construction criteria, although it nevertheless does not fall into the terms of the invention as defined above. However, to highlight the similarities and the differences with the codes according to the invention it is worthwhile to discuss the BBC in more detail with reference to
[0063] For this purpose it is assumed that the BBC of Truhacev et al. shall use two component encoders of the same binary (n, k) code with a code rate larger than 1/2. The concatenated convolutional code then has a rate of 2.Math.k/n−1.
[0064] Note that the BBC of
[0065] For this new code, which can be regarded as the embodiment of the present invention that is the most similar to the BBC, the minimum free distance can be dramatically increased by defining additional requirements for the interconnection delays as follows:
[0066] The interconnection bus from B to A implements the delays {0; 1, . . . , n−k−1}.Math.S+Δ.sub.BA, and
[0067] the interconnection bus from A to B implements the delays {0; 1, . . . , k−1}.Math.(n−k).Math.S+Δ.sub.AB.
[0068] Herein, the delays are defined by integer numbers and would need to be multiplied with a unit time t.sub.0, for example a clock cycle, which is however omitted for simplicity in the following description.
[0069] Δ.sub.BA and Δ.sub.AB are two nonnegative integers and S is any positive integer that does not divide Δ.sub.BA+Δ.sub.AB. This requirement can for example be met by setting S>Δ.sub.BA+Δ.sub.AB. The minimum delay between any two bits on the interconnection bus from B to A is hence S, while the minimum delay between any two bits on the interconnection bus from A to B is (n−k).Math.S. It is seen that these conditions guarantee that the accumulated delay over a path A.fwdarw.B.fwdarw.A.fwdarw.B cannot conflict with the delay of a path A.fwdarw.B and, similarly, that two distinct loops A.fwdarw.B.fwdarw.A undergo different delays. In other words, no cycles of length 4 are possible, and the minimum weight detours that determine the asymptotic performance of a BBC are ruled out. In fact, one can lower-bound of the free distance of the code by d+d.Math.(d−1)+d.Math.(d−1).sup.2. Note that the free distance has accordingly a cubic term in d, which means that it is much larger than the free distance of the BBC, which is only quadratic in d. It is further emphasized that if the component code has a high code rate, the difference n−k is reasonably small, such that the required delays are feasible. This demonstrates how the asymmetry in the width of the busses allows for a favorable implementation that is not possible with the ordinary BBC.
[0070]
[0071] The free distance of the code can be increased significantly if we choose different minimum delays on different interconnections and suitable constant offsets for the delays. For example, in the encoder of
[0072] It is seen that the minimum delays between any two bits on the busses from B to C and D to A amount to S, while the minimum delays on the busses from A to B and from C to D amount to (n−k).Math.S. With these delays, one can determine a lower-bound of the free distance of the code by d+d.Math.(d−1)+d.Math.(d−1).sup.2+d.Math.(d−1).sup.3. In other words, the minimum free distance of the code scales with the fourth power of minimum Hamming distance d of the component encoders A to D. This illustrates how by adding additional component encoders according to the general construction scheme defined above, the minimum free distance as a function of d can be increased, and how a lower-bound of a minimum free distance can be determined in a straight-forward manner. As a result, if a certain application requires a given BER, then the code can be constructed accordingly, based on the general rules presented above, to meet this criterion. Further, a desired minimum free distance can be achieved even employing simple codes and thereby keeping the resulting constraint length and complexity low, by employing a higher number of component codes.
[0073] The encoders of
[0074] In the following, examples of a possible decoder architecture corresponding to the encoders of the invention shall be explained. The skilled person will appreciate that different decoding algorithms can be applied to the same code, and that the codes provided by the encoders described above is not bound to be decoded with any of the specific decoders introduced in the following. However, the decoder architectures described next are particularly advantageous both in view of their simplicity as well as their generality in the sense that the decoders can be easily derived from any corresponding encoder structure.
[0075]
[0076] The signal z is the channel output corresponding to the encoded sequence y of
[0077] If hard-decision decoders are used, the interconnection busses carry tentative decisions that are propagated and improved at each subsequent stage. In case of soft decision decoding, a belief propagation approach is adopted. The interconnection busses carry both the channel probabilities and the extrinsic probabilities computed at the previous stage. The decoder updates the extrinsic probabilities and forwards them together with the channel probabilities to the next stage. The interconnection busses guarantee that each component decoder receives the correctly delayed input at any stage.
[0078]
[0079] Further,
[0080] The embodiments described above and the accompanying figures merely serve to illustrate the device and method according to the present invention, and should not be taken to indicate any limitation thereof. The scope of the patent is solely determined by the following claims.