The invention relates to a method for coding of information, to a method for decoding of this information, and to apparatuses for carrying out the methods.
Communications systems are used for transmission of information between a transmitter and a receiver. In radio communications systems, information (for example speech, image information, video information, SMS (Short Message Service) or other data) is transmitted with the aid of electromagnetic waves via a radio interface between a transmitter and a receiver. In this case, the electromagnetic waves are emitted at carrier frequencies which are in the frequency band provided for the respective system.
Telecommunications channels, in particular radio channels, are subject to a wide range of interference. Interference resulting from the noise in the receiver, generally additive white Gaussian noise, is unavoidable in all systems. Furthermore, radio channels are subject to many additional types of interference, caused by multipath propagation, scatter, fading, total failures, pulsed interference, interference from other subscribers, and disturbance signals or jamming signals.
When information is being transmitted digitally via a channel, methods are normally used for channel coding in order to ensure reliable transmission which is very largely free of errors. The expression channel coding is a generic term for all coding methods in which the characteristics of a transmission channel are taken into account, in order deliberately to improve the redundancy of data to be transmitted, for error identification and error correction. Channel coding methods are, for example, block coding and convolution coding. In contrast to this, source coding reduces the redundancy. Bits to be coded are converted in the coder at the transmitter end to coded bits, and the coded bits are imaged into symbols which are then transmitted via the channel to the receiver. During transmission, the symbols are generally corrupted by interference influences. The object of the decoder at the receiver end is now to identify any transmission errors which may have occurred, and to determine the transmitted coded bits from the received, corrupted signal.
One potential object is to specify an efficient method for coding and for decoding of information. A further aim is to provide apparatuses for carrying out the methods.
The inventors propose a method for coding of information, bits to be coded are split into successive first blocks. Second blocks are determined, to be precise in each case by permutation of a first block. Furthermore, third blocks are determined in that a first block is in each case interleaved with in each case one second block. The third blocks are in each case convolution-coded. After convolution coding, the bits are combined to form symbols.
The information to be coded is in the form of bits which are split into blocks, referred to as “first blocks.” The bits to be coded are preferably completely split into the first blocks, so that each bit is associated with one and only one first block. Second blocks are determined from the first blocks, and there is therefore a relationship between the first and the second blocks. The calculation rule for determination of the second blocks also comprises at least one permutation, that is to say interchanging of the sequence. There are various possible ways for the association of which first block is used for the determination of which second block. However, each first block is preferably used to determine one and only one second block.
Third blocks are determined from the first and the second blocks. The calculation rule for determination of the third blocks comprises at least one interleaving process, as well. This means that contents of a first and of a second block alternate in accordance with a specific pattern in the third blocks. The third blocks are each subjected to convolution coding. A third block is therefore passed to the input of the convolution coder, and the convolution coder emits another block of bits, which is generally longer than the third block that was input. These convolution-coded bits are then combined to form symbols. One symbol is in each case formed from at least two bits. The symbols represent the decoding result and may be sent, for example, to a decoder.
In one refinement, all the first blocks have the same length. In addition, it is advantageous if the second blocks also have this length. With respect to the third blocks, these preferably have twice the length of the first blocks.
In one development, the first blocks each comprise an integer multiple of b-tuples of bits where b is an integer greater than 1, and the second blocks are each determined by reorganization of the sequence of the b-tuples of a first block. If the sequence of the b-tuples is interchanged, the sequence of the bits within the individual b-tuples in this case remains unchanged.
It is particularly advantageous if, during the interleaving process, one first block is in each case interleaved with one second block with the respective second block being determined by permutation from that block which directly follows the respective first block or from that first block which is placed directly before the respective first block. In this way, a third block which has been determined in this way includes contents of a first block, as well as contents of a further first block, which is adjacent to the first-mentioned first block in terms of the sequence of the first blocks.
In a development, the first and the second blocks each comprise an integer multiple of b-tuples of bits where b is an integer greater than 1, and, as a result of the interleaving of a first and of a second block, the determined third block alternately contains in each case one b-tuple of the first block and one b-tuple of the second block. If the b-tuples in the blocks are interleaved, the sequence of the bits within the individual b-tuples in this case remains unchanged.
According to one refinement, per block after the convolution coding and the combination to form symbols, an integer multiple of n-tuples of symbols is produced when n is an integer greater than or equal to 1, and only every second n-tuple is used as a coding result. The n-tuples which are used as the coding result are preferably sent to a decoder. The n-tuples which are not used as a coding result can be rejected. The n-tuples which are used as a coding result preferably correspond to the first blocks.
The inventors also propose a method for decoding of information which has been coded using the method described above. For this an iterative decoding algorithm is used, in which reliability values which have been determined for one block are used for the repeated determination of reliability values of another block. The reliability values are so-called soft-output values of a decoding method. It is possible to determine from them which values were probably available to the coder with respect to specific information items received by the decoder. The statement that reliability values are determined repeatedly for one block means that reliability values for the relevant block have already previously been determined. Repeated determination can improve the result, that is to say the values of the specific reliability values.
In particular, for decoding, reliability values can be determined for a received block, and reliability values for a previously received block are then determined repeatedly using these reliability values. Additionally or alternatively, for decoding, reliability values can be determined for one received block, and reliability values for a block received after this are then determined repeatedly using these reliability values.
It is particularly advantageous for the reliability values to be permutated before they are used for repeated determination of reliability values. This permutation can in particular be matched to the permutation used during the coding process, by being the same as it or corresponding to its reverse process.
In one refinement, for decoding a received block, reliability values are determined for this block 2·w−1 times, where w is an integer greater than 1, with the result of the 2·w−1-th determination being used as the decoding result for this block. The decoding result is used to make the final decision as to which values were probably available to the decoder with respect to specific information items received by the decoder.
The inventors also propose a coding apparatus for the coding of information, which apparatus splits bits to be coded into successive first blocks, determines second blocks in each case by permutation of a first block, determines third blocks in that a first block is in each case interleaved with in each case one second block, applies convolution coding to the third blocks, and combines the bits after the convolution coding to form symbols.
Per first block after the convolution coding and the combination to form symbols, an integer multiple of n-tuples of symbols is produced when n is an integer greater than or equal to 1, and in which the coding apparatus also segregates every second n-tuple, such that only every second n-tuple is used as a coding result.
The decoding apparatus proposed by the inventors receives and decodes information which has been coded using the above coding method and apparatus, determines reliability values for received blocks using an iterative decoding algorithm, in which reliability values which are determined for one block are used for the repeated determination of reliability values of another block.
The proposed apparatuses are particularly suitable for carrying out the proposed methods, and this can also apply to the refinements and developments. The apparatuses may be in the form of a plurality of individual apparatuses which are connected to one another. In particular, it is possible for the coding apparatus and the decoding apparatus to be components of the same overall apparatus.
These and other objects and advantages of the present invention will become more apparent and more readily appreciated from the following description of the preferred embodiments, taken in conjunction with the accompanying drawings of which:
Reference will now be made in detail to the preferred embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to like elements throughout.
The following embodiment relates to the coding of bits before transmission by radio in a mobile radio communications system. The channel coding adds redundancy to the bits to be coded. This is done in order to reduce the corrupting influences of the radio channel during radio transmission. One example of a method for channel coding is trellis-coded modulation (TCM).
The TCM coder TCM comprises a binary convolution coder CONENC and a mapper MAP in order to map bits onto symbols. The convolution coder CONENC is generally formed by a digital circuit comprising shift registers whose contents are linked in various ways together with the currently arriving bits by addition and modulo-2 operations. u is a block comprising b bits. These b bits are converted by the convolution coder CONENC to the block v, which comprises c bits. The rate of the convolution code is thus b/c. The c-tuple of bits v is fed into the mapper MAP, where q bits are in each case combined to form one symbol. This is based on the assumption that c is an integer multiple of q. The symbol block x that is emitted therefore comprises
symbols.
One advantage of TCM coding is that it is possible to come closer to the Shannon limit using TCM coding and, for example, in the case of conventional coding with bit-interleaved modulation. This is because TCM coding does not maximize the Hamming distance, but the distance between symbols in Euclidian space.
uo(i) is also a block of N·b bits which arrives at the coder in the same time interval i as the block ue(i). The multiplexer MUX1 arranges the bits in the blocks ue(i) and uo(i) such that the first b-tuple in the block ue(i) occurs first, then the first b-tuple in the block uo(i), followed by the second b-tuple in the block ue(i), and then the second b-tuple in the block ue(i) etc. The sequence of the bits within the b-tuples in the blocks ue(i) and uo(i) is not changed during this process, and b-tuples in the blocks ue(i) and uo(i) are simply interleaved in one another in the described manner.
The blocks ue(i) are bits which actually have to be coded. In contrast, the bits in the block uo(i) are determined from the bits in the block ue(i−1) in the predetermined interval (i−1). The permutator π is used for this determination. This changes the sequence of the b-tuples in the block ue(i−1), with the sequence of the bits within each b-tuple in the block ue(i−1) remaining the same. Therefore, uo(i)=π(ue(i−1)) where π( ) means the application of the permutation function to the content of the brackets. The bits in each block ue(i) are thus entered in the coder twice: a first time in their original sequence and a second time with a sequence of the b-tuples interchanged by the permutator π.
A block of length N·b comprising exclusively zeros is used for the block uo(i) for the first time interval i=1. This may be used as a-priori knowledge in the decoding process, as will be explained later with reference to
The multiplexer MUX1 emits a block u(i), which comprises 2·N·b bits, because the blocks ue(i) and uo(i) of length N·b bits have been interleaved in one another by the multiplexer MUX1. Since the block uo(i+1) matches the block ue(i) except for the sequence of the b-tuples, there is a relationship between the blocks u(i) and u(i+1).
The blocks u(i) are coded by the TCM coder TCM in a manner known per se. The blocks x(i), which each comprise 2·N·n symbols, leave the TCM coder TCM. This is because, as explained with reference to
symbols leaves the TCM coder TCM per b-tuple of arriving bits. 2·N b-tuples are entered in the TCM coder TCM per time interval i, because the two blocks ue(i) and uo(i) each comprise N b-tuples.
As already mentioned, the blocks ue(i) are the bits to be coded, while the blocks uo(i) are simply determined from the bits to be coded and are added thereto by the interleaving in the multiplexer MUX1. Twice as many symbols are therefore produced at the output of the TCM coder TCM as will be present with conventional TCM coding of the blocks ue(i). This would lead to the useful data rate being halved. The demultiplexer DEMUX1 is used in order to avoid this. This halves the number of symbols in the blocks x(i) by associating one n-tuple with the block xe(i) and one n-tuple with the block xo(i), in each case. The block xe(i) therefore comprises the first, the third, the fifth, etc. n-tuple of symbols in the block x(i). The block xo(i) corresponding comprises the second, the fourth, the sixth etc. n-tuple of symbols in the block x(i). The two blocks xe(i) and xo(i) each contain N·n symbols.
One block xe(i) with N·n symbols is used as a coding result for each block ue(i) with N·b bits, and is transmitted to a decoder. Ideal Nyquist pulse forming therefore results in a bandwidth efficiency of
bits/symbol.
This corresponds to the bandwidth efficiency which will be obtained with conventional TCM coding.
The symbols in the blocks xo(i) are rejected, symbolized by a cross, while the symbols in the blocks xe(i) are transmitted. The blocks xe(i) can be associated directly with the blocks ue(i). The actual symbols which are contained in the blocks xe(i) depend, however, on the values of the bits in the blocks uo(i) because these influence the state of the convolution coder in the TCM coder TCM. Each block ue(i−1) therefore influences the coding result xe(i) of the respective next block ue(i).
Since the decoder has no a-priori knowledge about the blocks ue(i) which are sent as blocks xe(i) and are received as blocks y(i), the values of the probability matrix ae(i) required for TCM decoding are initially set to −b·log 2.
In contrast, a-priori information is available about the blocks uo(i), to be precise from the decoding of the previously received block, since the interchanged-sequence version of uo(i) was sent as ue(i−1), and was received y(i−1). The columns in the matrixes ae(i) and ao(i) are multiplexed by the multiplexer MUX3. The resulting matrix a(i) is used as a-priori information by the TCM decoder TCM DEC. The TCM decoder TCM DEC calculates soft-output values in the manner known from conventional TCM decoding, that is to say reliability values for the b-tuples of bits contained in u(i), on the basis of the received blocks y(i). The non-binary TCM decoding is described, for example, in:
The a-priori information a(i) is subtracted from the result of the decoding by the TCM decoder TCM DEC resulting in the 2b×2N matrix L(i) of reliability values. This is split by the demultiplexer DEMUX2 analogously to u(i) and x(i) into the two matrices Le(i) and Lo(i) of dimension 2b×N, in that one column of the matrix L(i) is associated with the matrix Le(i) and the next column is associated with the matrix Lo(i), alternately.
The described procedure is the first step in an iterative decoding algorithm. The complete method, which comprises a plurality of iteration steps, is carried out as follows: once y(i) has been decoded, the previous block y(i−1) can be decoded again, to be precise using Lo(i). In this case, an improved version of ae(i−1) is used, to be precise ae(i−1)=π−1(Lo(i)). In this case, π−1 corresponds to the reverse operation of the permutation π in
The number of y(i′) which are decoded again corresponds to w−1. This results in a window of size w, where w is an integer greater than 1. When the end of the window is reached, the first block y(i−w+1) in time in the window is decoded. The decoding of y(i−w+1) results in better a-priori information Le(i−w+1), corresponding to the block ue(i−w+1). This can be used to decode the block y(i−w+2), to be precise using ao(i−w+2)=π(Le(i−w+1)). In this case, π corresponds to the permutation π in
In summary, the described iterative decoding method is therefore carried out as follows: the process starts with the decoding of a received block y(i). Starting from these reliability values, the reliability values of the blocks are determined back to the block y(i−w+1), after which the reliability values of the blocks are determined forwards as far as the block y(i), starting from these reliability values of the block y(i−w+1).
w=4 is considered as one specific example. It is assumed that the block y(6) is being decoded for the first time. The previously received blocks y(5), y(4) and y(3) are then decoded again, in each case using the result of the block with the number incremented by 1. The blocks y(4), y(5) and y(6) are then decoded again, in each case using the result of the block with the number decremented by 1. The reliability values determined most recently for the block y(3) are the final decoding result for the block y(3). The block y(7) is now decoded for the first time. The decoding window with the depth w=4 is now shifted by one digit, and the determination process, as explained with reference to the block y(6), is now carried out with respect to the block y(7), and the final result for the block y(4) is determined in this iteration.
Each block y(i) with the exception of the block y(1) is decoded 2w−1 times before the final decoding result is determined. The first block y(1) is decoded only w-times. However, this first block y(i) has the advantage that absolutely reliable a-priori information is available for uo(i). As mentioned above, the bits of uo(1) are exclusively zeros.
The use of the described iterative decoding algorithm, which is made possible by the coding as described with reference to
The invention has been described in detail with particular reference to preferred embodiments thereof and examples, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention covered by the claims which may include the phrase “at least one of A, B and C” as an alternative expression that means one or more of A, B and C may be used, contrary to the holding in Superguide v. DIRECTV, 69 USPQ2d 1865 (Fed. Cir. 2004).
Number | Date | Country | Kind |
---|---|---|---|
06004038.3 | Feb 2006 | EP | regional |
This application is based on and hereby claims priority to PCT Application No. PCT/EP2006/069580 filed on Dec. 12, 2006 and European Application No. 06004038.3 filed on Feb. 28, 2006, the contents of which are hereby incorporated by reference.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/EP2006/069580 | 12/12/2006 | WO | 00 | 10/1/2009 |