Encoding device and method and corresponding decoding device and method
10924251 ยท 2021-02-16
Assignee
Inventors
- Beatrice Tomasi (Munich, DE)
- Frederic Gabry (Munich, DE)
- Valerio BIOGLIO (Boulogne Billancourt, FR)
- Ingmar Land (Boulogne Billancourt, FR)
- Jean-Claude Belfiore (Boulogne Billancourt, FR)
- Gaoning HE (Boulogne Billancourt, FR)
Cpc classification
International classification
H04L1/16
ELECTRICITY
H03M13/35
ELECTRICITY
H04L1/00
ELECTRICITY
Abstract
Encoding of information bit sequences by use of an encoding device having more than two encoding entities is provided. Decoding of output codewords by a decoding device having more than two decoding entities is further provided. The encoding and the decoding are implemented through transmitting output codewords, generated by the encoding device, to the decoding device via a channel, wherein two or more user devices transmit the respective output codewords concurrently via the channel.
Claims
1. An encoding device arranged for encoding an information bit sequence, the encoding device comprising a non-transitory computer readable medium having program code stored thereon that, when executed, causes the encoding device to perform a method comprising: dividing, by a sequence partitioning entity, the information bit sequence into L information bit sub-sequences, wherein L is an integer greater than or equal to two; generating, by each encoding entity of an encoding entity set comprising L encoding entities, a respective encoded sub-sequence by encoding one information bit sub-sequence of the L information bit sub-sequences, wherein each encoding entity of the encoding entity set encodes the respective information bit sub-sequence using a respective code rate, which is determined for transmission via a channel, wherein more than two devices execute transmissions concurrently via the channel; generating, by a bitmapping entity, a codeword by mapping one or more encoded bits of each of the encoded sub-sequences to a codeword symbol; generating, by a codeword processing entity, an output codeword by processing the codeword for a non-orthogonal multiple access; determining, by a code rate determining entity, for each encoding entity of the encoding entity set, the respective code rate to be used by a corresponding encoding entity for encoding; computing, by the code rate determining entity, for each encoding entity, error rates of encoded sub-sequences, encoded by the corresponding encoding entity; and adjusting by the code rate determining entity for each encoding entity the respective code rate to be used by the corresponding encoding entity for encoding, using the error rates.
2. The encoding device according to claim 1, wherein the method further comprises processing the codeword according to a non-orthogonal multiple access scheme.
3. The encoding device according to claim 1, wherein the method further comprises transmitting the output codeword to a further device via the channel, and wherein more than two devices transmit respective output codewords via the channel concurrently.
4. The encoding device according to claim 1, wherein the method further comprises encoding an information bit sub-sequence that has a predetermined length.
5. The encoding device according to claim 1, wherein the information bit sequence is divided such that each information bit sub-sequence has a respective predetermined length.
6. The encoding device according to claim 1, wherein two or more encoding entities of the encoding entity set use different code rates.
7. The encoding device according to claim 1, wherein, for each encoding entity, error rates are computed using Monte-Carlo simulations.
8. The encoding device according to claim 1, wherein, for each encoding entity, the code rate is adjusted using the error rates by: computing an average error rate from the error rates of encoded sub-sequences, encoded by the corresponding encoding entity; and when the average error rate is greater than a maximum error rate, adjusting the code rate.
9. The encoding device according to claim 1, wherein the encoded sub-sequences have a same length.
10. An encoding method for encoding an information bit sequence, the encoding method comprising: dividing, by a sequence partitioning entity, the information bit sequence into L information bit sub-sequences, wherein L is an integer greater than or equal to two; encoding the L information bit sub-sequences, by an encoding entity set, wherein the encoding entity set comprises L encoding entities; encoding one information bit sub-sequence of the L information bit sub-sequences, by each encoding entity of the encoding entity set, to generate a respective encoded sub-sequence; and encoding a respective information bit sub-sequence, by each encoding entity of the encoding entity set, using a respective code rate, which is determined for transmission via a channel, wherein more than two devices execute transmissions concurrently via the channel; generating, by a bitmapping entity, a codeword by mapping one or more encoded bits of each of the encoded sub-sequences to a codeword symbol; generating, by a codeword processing entity, an output codeword by processing the codeword for a non-orthogonal multiple access; determining, by a code rate determining entity, for each encoding entity of the encoding entity set, the respective code rate to be used by a corresponding encoding entity for encoding; computing, by the code rate determining entity, for each encoding entity, error rates of encoded sub-sequences encoded by the corresponding encoding entity; and adjusting, by the code rate determining entity, for each encoding entity, the respective code rate to be used by the corresponding encoding entity for encoding using the error rates.
11. A decoding device arranged to decode output codewords received from two or more user devices via a channel, wherein each user device of the two or more user devices transmits respective output codewords via the channel concurrently, wherein the decoding device comprises: a multi-user detecting entity set comprising L multi-user detecting entities, wherein L is an integer greater than or equal to two; and a decoding entity set comprising L decoding entities, wherein the decoding device is a multi-level decoding device comprising L levels, wherein each level of the L levels comprises one multi-user detecting entity of the multi-user detecting entity set and one decoding entity of the decoding entity set, wherein an encoding entity of an encoding entity set is located between two levels of the decoding device, and wherein, for each user device of the two or more user devices concurrently transmitting the respective output codewords via the channel, each multi-user detecting entity of the multi-user detecting entity set is configured to: detect an encoded bit sequence from an output codeword transmitted from a respective user device via the channel wherein the output codeword comprises a plurality of symbols; for an i-th bit of each of the plurality of symbols of the output codeword, determine a log likelihood ratio and add the log likelihood ratio of the i-th bit to a log likelihood ratio set, wherein i corresponds to a level where the multi-user detecting entity is located; and provide the encoded bit sequence and the log likelihood ratio set to a decoding entity of the decoding entity set, which is in a same level as the multi-user detecting entity, wherein each decoding entity of the decoding entity set is configured to generate, for each user device of the two or more user devices, a decoded information bit sequence by decoding the encoded bit sequence of the respective user device, by using the log likelihood ratio set, and wherein, for each user device of the two or more user devices, each encoding entity of the encoding entity set is configured to: receive from a decoding entity of the decoding entity set the decoded information bit sequence of the respective user device; generate an encoded information bit sequence from the decoded information bit sequence; and provide the encoded information bit sequence to a multi-user detecting entity of the multi-user detecting entity set, wherein the level of the multi-user detecting entity is a subsequent level of the level of the decoding entity.
12. A non-transitory computer-readable medium having program code stored thereon that, when executed, causes a computer to perform a method comprising: dividing, by a sequence partitioning entity, the information bit sequence into L information bit sub-sequences, wherein L is an integer greater than or equal to two; generating, by each encoding entity of an encoding entity set comprising L encoding entities, a respective encoded sub-sequence by encoding one information bit sub-sequence of the L information bit sub-sequences, wherein each encoding entity of the encoding entity set encodes the respective information bit sub-sequence using a respective code rate, which is determined for transmission via a channel, wherein more than two devices execute transmissions concurrently via the channel; generating, by a bitmapping entity, a codeword by mapping one or more encoded bits of each of the encoded sub-sequences to a codeword symbol; generating, by a codeword processing entity, an output codeword by processing the codeword for a non-orthogonal multiple access; determining, by a code rate determining entity, for each encoding entity of the encoding entity set, the respective code rate to be used by a corresponding encoding entity for encoding; computing, by the code rate determining entity, for each encoding entity, error rates of encoded sub-sequences, encoded by the corresponding encoding entity; and adjusting, by the code rate determining entity, for each encoding entity, the respective code rate to be used by the corresponding encoding entity for encoding, using the error rates.
13. The encoding method according to claim 10, further comprising processing the codeword according to a non-orthogonal multiple access scheme.
14. The encoding method according to claim 10, further comprising transmitting the output codeword to a further device via the channel, wherein more than two devices transmit respective output codewords via the channel concurrently.
15. The encoding method according to claim 10, further comprising encoding an information bit sub-sequence that has a predetermined length.
16. The encoding method according to claim 10, wherein the information bit sequence is divided such that each information bit sub-sequence has a respective predetermined length.
17. The encoding method according to claim 10, wherein two or more encoding entities of the encoding entity set use different code rates.
18. The encoding method according to claim 10, wherein, for each encoding entity, error rates are computed using Monte-Carlo simulations.
19. The encoding method according to claim 10, wherein, for each encoding entity, the code rate is adjusted using the error rates by: computing an average error rate from the error rates of encoded sub-sequences encoded by the corresponding encoding entity; and when the average error rate is greater than a maximum error rate, adjusting the code rate.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The above-described aspects and implementation forms of embodiments of the present invention will be explained in the following description of specific embodiments in relation to the enclosed drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
DETAILED DESCRIPTION OF THE EMBODIMENTS
(11) Generally, it has to be noted that all arrangements, devices, modules, components, models, elements, units, entities, and means and so forth described in the present application can be implemented by software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionality described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if in the following description of the specific embodiments, a specific functionality or step to be performed by a general entity is not reflected in the description of a specific detailed element of the entity which performs the specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective hardware or software elements, or any kind of combination thereof. Further, the method of embodiments of the present invention and its various steps are embodied in the functionalities of the various described apparatus elements. Moreover, any of the embodiments and features of any of the embodiments, described herein, may be combined with each other, unless a combination is explicitly excluded.
(12)
(13) According to a further embodiment, the information bit sequence has a predetermined length K, wherein K is an integer greater than or equal 1. According to the further embodiment, the sequence partitioning entity 101 is configured to divide the information bit sequence into L information bit sub-sequences such that each sub-sequence has a respective predetermined length. Furthermore, according to the further embodiment, each of the encoding entities 102_0, 102_1, . . . , 102_L1 is configured to encode an information bit sub-sequence that has a respective predetermined length. Thus, each encoding entity 102_0, 102_1, . . . , 102_L1 is associated with a respective predetermined information bit sub-sequence length. The sequence partitioning entity 101 provides each information bit sub-sequence of the L information bit sub-sequences to the respective encoding entity 102_0, 102_1, . . . , 102_L1 according to the length of the information bit sub-sequence. Each information bit sub-sequence is generated by the sequence partitioning entity 101 such that the information bit sub-sequence can be provided, in view of its length, to a respective one of the encoding entities 102_0, 102_1, . . . , 102_L1.
(14) According to an embodiment, the encoded sub-sequences have the same length. Thus, regardless of the lengths of the L information bit sub-sequences, each of the encoded sub-sequences will have the same length. All of the encoding entities 102_0, 102_1, . . . , 102_L1 are configured to generate encoded sub-sequences that each have a predetermined encoded sub-sequence length.
(15) According to the embodiment of
(16) In the example of
(17) Moreover, any known encoding method for encoding an information bit sub-sequence may be implemented by means of the encoding entities 102_0, 102_1, . . . , 102_L1. The known encoding methods comprise, for example, methods for generating polar codes, methods for generating turbo codes, methods for generating low density parity check codes, wherein also further methods not explicitly listed here can be used.
(18) The bitmapping entity 103 is configured to generate a codeword representing the information bit sequence by mapping one or more encoded bits of each of the encoded sub-sequences to a codeword symbol. For this purpose, the bitmapping entity 103 receives from each encoding entity 102_0, 102_1, . . . , 102_L1 a respective encoded sub-sequence and maps one or more encoded bits of the respective encoded sub-sequences to a symbol. The bitmapping 203 is executed by the bitmapping entity 103 such that each of the bits of each of the encoded sub-sequences is mapped to a symbol. The codeword, generated by the bitmapping 201, represents, thus, a sequence of symbols. The sequence partitioning entity 101, the encoding entity set 102, and the bitmapping entity 103 thus translate the information bit sequence into the codeword.
(19) The codeword processing entity 104 is configured to generate an output codeword by processing the codeword from the bitmapping entity 103 for a non-orthogonal multiple access. Thus, the output codeword is generated such that it is configured for a transmission via a channel that is used concurrently for transmission purposes by a plurality of users or user devices respectively, i.e. by two or more users or user devices. In particular, the codeword processing entity 104 may be configured to process the codeword according to a non-orthogonal multiple access scheme (NOMA). The codeword processing entity 104 is, for example, configured to apply the scheme to orthogonal frequency-division multiplexing (OFDM).
(20)
(21)
(22)
(23) In step 401, for each encoding entity 102_0, 102_1, . . . , 102_L1, a respective code rate to be used by the corresponding encoding entity 102_0, 102_1, . . . , 102_L1 for encoding. According to the present embodiment, a code rate is determined for an encoding entity 102_0, 102_1, . . . , 102_L1 such that the code rate is equal to a capacity of a channel, which will be used for transmitting the output codeword to a further device. The channel is arranged such that more than two users or user devices (e.g., encoding devices) respectively transmit respective output codewords concurrently.
(24) As generally known, channel capacity is the tight upper bound on the rate at which information (here, encoded output codeword(s)) can be reliably transmitted over a channel. By the noisy-channel coding theorem, the channel capacity of a given channel is the limiting information rate (e.g., in units of information per unit time) that can be achieved with arbitrarily small error probability.
(25) The code rate (referred to also as information rate) is a proportion of the information bits in the codeword, i.e. a proportion that is useful (non-redundant). That is, if k information bits are encoded and the generated codeword has the length n, the code rate is k/n; for every k bits of useful information, an encoding entity generates totally n bits of data, of which n-k are redundant.
(26) Thus, for each encoding entity 102_0, 102_1, . . . , 102_L1, a respective code rate to be used by the corresponding encoding entity 102_0, 102_1, . . . , 102_L1 for encoding, is defined as:
(27)
(28) According to the present embodiment, the encoded sub-sequences, encoded by the encoding entities 102_0, 102_1, . . . , 102_L1, have the same length, i.e. the encoding entities 102_0, 102_1, . . . , 102_L1 generate encoded sub-sequences of the same length. Therefore, the determining 401 of the code rate, for each encoding entity 102_0, 102_1, . . . , 102_L1, is equivalent to determining the number of information bits of each encoded sub-sequence encoded by the respective encoding entity 102_0, 102_1, . . . , 102_L1, i.e. to determining the length of the information bit sub-sequence encoded by the respective encoding entity 102_0, 102_1, . . . , 102_L1.
(29) The error rate of each encoding entity 102_i of the encoding entity set 102 or the error rate at level i in the encoding entity set 102 respectively is equal to the capacity, C.sup.i of the equivalent channel experience at level i or of the encoding entity 102_i respectively. Thus, the error rate of each encoding entity 102_i or at level i, respectively, may be expressed by the following equation:
C.sup.i=I(Y;X.sup.i|X.sup.0, . . . ,X.sub.i-1),
(30) where I(Y;X.sup.i, . . . ,X.sup.i-1) indicates the mutual information between the observation Y, and the symbols sent at level i, given the symbols sent at levels from 0 to i1.
(31) After the determination 401 of the respective code rate for each encoding entity 102_0, 102_1, . . . , 102_L1, in step 402, for each encoding entity 102_0, 102_1, . . . , 102_L1, respective error rates of the encoded sub-sequences, encoded by the respective encoding entity 102_0, 102_1, . . . , 102_L1, are computed.
(32) According to the present embodiment, Monte-Carlo simulations are executed with regard to different channel realizations, wherein a pre-determined length of the encoded sub-sequences is used. Thus, all encoded sub-sequences, encoded by the encoding entities 102_0, 102_1, . . . , 102_L1, have the same pre-determined length in the Monte-Carlo simulations. Generally, a channel realization consists of a complex number per symbol. Two channel realizations differ from each other in the real and imaginary parts of the complex number. However, the coefficients of the complex numbers are drawn from a Gaussian distribution with zero mean and unitary variance. The implementation of Monte-Carlo simulations is generally known. Thus, the implementation according to the present embodiment is based on the known methods.
(33) Particularly,
(34) Further, because the cannel is used concurrently by a plurality of users or user devices respectively, i.e. by two or more users or user devices, the steps of
(35) In step 501, per user or user device respectively, an information bit sequence and characteristics of the channel to be used for the output codeword transmission are generated. The term channel characteristics is generally known. Channel characteristics comprise values of parameters of channel statistics. For example, the fading process is represented as a Gaussian complex random variable with 0 mean and the covariance equal to identity.
(36) In step 502, per user or user device respectively, the information bit sequence is encoded by use of the respective/particular encoding entity 102_0, 102_1, . . . , 102_L1 and a codeword is generated by the bitmapping entity 103.
(37) In step 503, per user or user device respectively, the codeword is decoded, and, in step 504, per user or user device respectively, the error rate of the encoded sub-sequence and, thus, of the respective/particular encoding entity 102_0, 102_1, . . . , 102_L1 is computed or determined respectively.
(38) Thus, after the execution of the step 402, for each encoding entity 102_0, 102_1, . . . , 102_L1, a set of error rates is generated, wherein each error rate is determined with regard to one fictive user or user device of the fictive set of users or user devices.
(39) In step 403, for each encoding entity 102_0, 102_1, . . . , 102_L1, the code rate of the encoding entity 102_0, 102_1, . . . , 102_L1 is adjusted by use of the error rates determined in step 402 for the respective encoding entity 102_0, 102_1, . . . , 102_L1. Additionally, also code rates of the further encoding entities 102_0, 102_1, . . . , 102_L1 are adjusted, if it has been determined that an adjustment of the error rate of the respective encoding entity 102_0, 102_1, . . . , 102_L1 is required. Exemplary sub-steps of the adjustment 403 of the error rates are shown in
(40) Particularly,
(41) In step 601, for an encoding entity 102_0, 102_1, . . . , 102_L1, an average error rate is computed. The average error rate is computed as an average value of all error rates of the set of error rates generated in step 402 for the respective encoding entity 102_0, 102_1, . . . , 102_L1.
(42) In step 602, the average error rate is compared with a maximum error rate. The maximum error rate represents a threshold. According to an embodiment, the maximum error rate is preset. Accordant to a further embodiment the maximum error rate is set to 10.sup.2. If the average error rate is less than or equal to the maximum error rate, no adjustment of the code rate determined in step 401 is required. Thus, it is continued with the error rate adjustment for a next encoding entity 102_0, 102_1, . . . , 102_L1 of the encoding entity set 102. In
(43) If the average error rate is greater than the maximum error rate, an adjustment of the code rate determined in step 401 is required. Thus, it is continued with step 603. In step 603, the code rate, determined in step 401 for the respective encoding entity 102_0, 102_1, . . . , 102_L1, is reduced. According to an embodiment, the code rate is reduced by one bit at a time until the maximum error rate is achieved. Additionally, code rates of the further encoding entities 102_0, 102_1, . . . , 102_L1, determined in step 401, are adjusted. In particular, the code rates of the further encoding entities 102_0, 102_1, . . . , 102_L1 are increased. According to an embodiment, each code rate of the code rates of the further encoding entities 102_0, 102_1, . . . , 102_L1 is increased by one bit at a time as long as all levels satisfy the maximum error rate constraint, i.e. are smaller than the maximum error rate.
(44) If all encoding entities 102_0, 102_1, . . . , 102_L1 of the encoding entity set 102 have been considered after the execution of the step 603, the execution of step 403 and, thus, also of the sub-steps of
(45) When turning back to the code rate determining entity 301, as exemplary shown in
(46) For further explanation of the encoding process, it is turned back to
(47) Once all encoding entities 102_0, 102_1, . . . , 102_L1 have generated the encoded sub-sequences by use of the respective code rates, the encoded sub-sequences are considered, according to an embodiment, in parallel. The parallel consideration is possible because the encoded sub-sequences have the same length, e.g., a predetermined length.
(48) When bitmapping 203 is executed by a parallel consideration of the encoded sub-sequences, among all encoded sub-sequences, i-th bits of all encoded sub-sequences are considered in parallel, wherein i is an integer that is greater than or equal to zero and that is smaller than the length of the encoded sub-sequences.
(49) All i-th bits of all encoded sub-sequences are mapped 203 to a symbol. This mapping is done for each i-th bit.
(50)
(51) When considering the encoding device 100 as a multi-level encoding device, each of the encoding entities 102_0 to 102_3 constitutes an encoding level. Thus, encoding entity 102_0 constitutes level 0, encoding entity 102_1 constitutes level 1, encoding entity 102_2 constitutes level 2, and encoding entity 102_3 constitutes level 3.
(52) According to an embodiment, i-th bits of the encoding entities 102_0 to 102_3 are mapped to a complex value belonging to a quadrature amplitude modulation (QAM) constellation of size M, where M=2.sup.L.
(53) The sequence of the generated 203 symbols represents the output codeword.
(54)
(55) According to the present embodiment, the decoding device 800 comprises a multi-user detecting entity set, which comprises L multi-user detecting entities 801_0, 801_1, . . . , 801_L1, a decoding entity set, which comprises L decoding entities 802_0, 802_1, . . . , 802_L1, and an encoding entity set. The encoding entity set comprises L1 encoding entities 803_0, 803_1, . . . , 803_L2.
(56) The decoding device 800 is a multi-level decoding device comprising L levels, wherein each level of the decoding device 800 comprises one multi-user detecting entity 801_0, 801_1, . . . , 801_L1 of the multi-user detecting entity set and one decoding entity 802_0, 802_1, . . . , 802_L1 of the decoding entity set. Between two levels of the decoding device 800 an encoding entity 803_0, 803_1, . . . , 803_L2 of the encoding entity set is located.
(57) Each multi-user detecting entity 801_0, 801_1, . . . , 801_L1 is configured, for each user device of the two or more user devices, to detect an encoded bit sequence from an output codeword transmitted from the respective user device via the channel.
(58) Additionally, according to the present embodiment, each multi-user detecting entity 801_0, 801_1, . . . , 801_L1 of level i is configured to determine, for each i-th bit of each symbol of symbols of the output codeword of the respective user device, a log likelihood ratio and to add the log likelihood ratio of the respective i-th bit to a log likelihood ratio set. Because the output codewords have been encoded by L encoding entities 102_0, 102_1, . . . , 102_L1, as described above, each of the output codewords comprises symbols that represent L bits. I.e. each of the symbols represents L bits, as described above with regard to the encoding entity 100 and the corresponding method. Thus, by computing in each level i the log likelihood ratios of the respective i-th bits of the symbols, in the last level the log likelihood ratios will be determined for each of the bits.
(59) The log likelihood ratio set comprises entries on already determined log likelihood ratios, wherein each entry comprises a determined log likelihood ratio, an indication to the user, with regard to which the log likelihood ratio has been determined, an indication to the symbol of the output codeword, with regard to which the log likelihood ratio has been determined, and an indication to the i-th bit, with regard to which the log likelihood ratio has been determined.
(60) According to an embodiment, each of the log likelihood ratios is computed for the i-th bit of a particular symbol by applying a message passing algorithm (MPA) and by considering the distance between the observation and a set of constellation symbols that are associated to the bit value (0 or 1). At the initial stage, for a 16 QAM constellation, for example, there are 8 constellation symbols corresponding to bit 0 and 8 symbols corresponding to bit 1. This applies to each symbol of each user device.
(61) Further, each multi-user detecting entity 801_0, 801_1, . . . , 801_L1 is configured to provide the encoded bit sequence to a decoding entity 802_0, 802_1, . . . , 802_L1 of the decoding entity set, which is in the same level as the multi-user detecting entity. Additionally, according to an embodiment, each multi-user detecting entity 801_0, 801_1, . . . , 801_L1 is configured to provide also the log likelihood ratio set to said decoding entity 802_0, 802_1, . . . , 802_L1 of the decoding entity set.
(62) Each decoding entity 802_0, 802_1, . . . , 802_L1 of the decoding entity set is configured to generate, for each user device, a decoded information bit sequence by decoding the encoded bit sequence of the respective user device. According to the present embodiment, each decoding entity 802_0, 802_1, . . . , 802_L1 is configured to execute the decoding by the log likelihood ratio set. The decoding comprises a comparison of the log likelihood ratios of the log likelihood ratio set. Here, if a log likelihood ratio for an i-th bit is greater than or equal to 0 then the decided bit i is set to 1, otherwise the i-th bit is set to 0.
(63) Further, if considering the encoding device 100 as a multi-level encoding device, in which each of the encoding entities 102_0, 102_1, . . . , 102_L1 are arranged in L levels, each level comprising one of the encoding entities 102_0, 102_1, . . . , 102_L1, each decoding entity 802_0, 802_1, . . . , 802_L1 of a level i is an inverse of the encoding entity 102_0, 102_1, . . . , 102_L1 of the level i. I.e. each decoding entity 802_0, 802_1, . . . , 802_L1 of a level i provides decoded information bits that have been encoded by the encoding entity 102_0, 102_1, . . . , 102_L1 of the level i.
(64) Each encoding entity 803_0, 803_1, . . . , 803_L2 of the encoding entity set is configured, for each user device of the two or more user devices, to receive from a decoding entity 802_0, 802_1, . . . , 802_L1 of the decoding entity set the decoded information bit sequence of the respective user device, to generate an encoded information bit sequence from the decoded information bit sequence, and to provide the encoded information bit sequence to a multi user detecting entity 801_0, 801_1, . . . , 801_L1 of the multi-user detecting entity set. The level of the multi-user detecting entity 801_0, 801_1, . . . , 801_L1, to which the respective encoding entity 803_0, 803_1, . . . , 803_L2 provides the encoded information bit sequence, is a subsequent level of the level of the decoding entity 802_0, 802_1, . . . , 802_L1, from which the respective encoding entity 803_0, 803_1, . . . , 803_L2 received the decoded information bit sequence.
(65) In view of the aforesaid, in
(66) In level 0, the multi-user detecting entity 801_0 receives output codewords of two or more user devices u1, u2, which transmit respective output codewords via the same channel concurrently. Each output codeword comprises a sequence of symbols, as explained above with regard to the encoding device 100 and the corresponding encoding method. According to an embodiment, the symbols are complex values. Each of the symbols of an output codeword represents L bits, because the output codeword has been generated by L encoding entities 102_0, 102_1, . . . , 102_L1 of an encoding device 100, as explained above.
(67) Further, the multi-user detecting entity 801_0 detects, for each user device u1, u2, the encoded bit sequence C.sub.0(u1), C.sub.0(u2) from the output codeword that has been transmitted by the user device u1, u2.
(68) Additionally, according to the present embodiment, the multi-user detecting entity 801_0 determines, for each 0-th bit of each of symbols of each output codeword of the output codewords of users u1, u2, a log likelihood ratio and adds the respective log likelihood ratio of the 0-th bit to a log likelihood ratio set, as explained above. As mentioned, according to an embodiment, each of the log likelihood ratios is computed by applying a message passing algorithm (MPA) and by considering the distance between the observation and a set of constellation symbols that are associated to the bit value (0 or 1).
(69) The multi-user detecting entity 801_0 provides the determined encoded bit sequences C.sub.0(u1), C.sub.0(u2) of the two or more user devices u1, u2 to the decoding entity 802_0, which is in the same level 0 as the multi-user detecting entity 801_0. Additionally, the multi-user detecting entity 801_0 provides the log likelihood ratio set to the decoding entity 802_0.
(70) The decoding entity 802_0 decodes each of the encoded bit sequences C.sub.0(u1), C.sub.0(u2) of the two or more user devices u1, u2, and generates, thus, corresponding decoded information bit sequences b.sub.0(u1), b.sub.0(u2). Further, the decoding entity 802_0 outputs the corresponding decoded information bit sequences b.sub.0(u1), b.sub.0(u2) of the two or more user devices u1, u2. According to the present embodiment, the decoding entity 802_0 decodes each of the encoded bit sequences C.sub.0(u1), C.sub.0(u2) of the two or more user devices u1, u2 by use of the log likelihood ratio set.
(71) The decoded information bit sequences b.sub.0(u1), b.sub.0(u2) of the two or more user devices u1, u2 can be used for further processing, as shown by the arrows that do not lead to the encoding entity 803_0.
(72) Further, the decoded information bit sequences b.sub.0(u1), b.sub.0(u2) of the two or more user devices u1, u2 are provided to the encoding entity 803_0 that is located in the decoding device 800 between the level 0 and the level 1. The encoding entity 803_0 encodes each of the decoded information bit sequences b.sub.0(u1), b.sub.0(u2) of the two or more user devices u1, u2, and provides the corresponding resulting encoded information bit sequences to the multi-user detecting entity 801_1 of the subsequent level, i.e. level 1 of the decoding device 800.
(73) In level 1, also the multi-user detecting entity 801_1 receives the output codewords of two or more user devices u1, u2. The multi-user detecting entity 801_1 detects, for each user device u1, u2, the encoded bit sequence C.sub.1(u1), C.sub.1(u2) from the output codeword that has been transmitted by the user device u1, u2.
(74) Additionally, according to the present embodiment, the multi-user detecting entity 801_1 determines, for each 1st bit of each of symbols of each output codeword of the output codewords of users u1, u2, a log likelihood ratio and adds the respective log likelihood ratio of the 1st bit to a log likelihood ratio set, as explained above. In comparison to the multi-user detecting entity 801_0, the multi-user detecting entity 801_1 has received encoded information bit sequences generated by the encoding entity 803_0 and has knowledge on previously determined log likelihood ratios. The multi-user detecting entity 801_1 takes into consideration the encoded information bit sequences received from the encoding entity 803_0 and the log likelihood ratio set with the previously determined log likelihood ratios when computing for each 1st bit of each of the symbols the respective log likelihood ratio. As stated above, according to an embodiment, the multi-user detecting entity 801_1 computes the log likelihood ratios by use of the message passing algorithm. In particular, the distance between the observation and a reduced set of symbols is considered when computing the log likelihood ratios.
(75) The multi-user detecting entity 801_1 provides the determined encoded bit sequences C.sub.1(u1), C.sub.1(u2) of the two or more user devices u1, u2 to the decoding entity 802_1, which is in the same level 1 as the multi-user detecting entity 801_1. Additionally, the multi-user detecting entity 801_1 provides the log likelihood ratio set to the decoding entity 802_1.
(76) The decoding entity 802_1 decodes each of the encoded bit sequences C.sub.1(u1), C.sub.1(u2) of the two or more user devices u1, u2, and generates, thus, corresponding decoded information bit sequences b.sub.1(u1), b.sub.1(u2). Further, the decoding entity 802_1 outputs the corresponding decoded information bit sequences b.sub.1(u1), b.sub.1(u2) of the two or more user devices u1, u2. According to the present embodiment, the decoding entity 802_1 decodes each of the encoded bit sequences C.sub.1(u1), C.sub.1(u2) of the two or more user devices u1, u2 by use of the log likelihood ratio set.
(77) The decoded information bit sequences b.sub.1(u1), b.sub.1(u2) of the two or more user devices u1, u2 can be used for further processing, as shown by the arrows that do not lead to the encoding entity 803_1.
(78) Further, the decoded information bit sequences b.sub.1(u1), b.sub.1(u2) of the two or more user devices u1, u2 are provided to the encoding entity 803_1 that is located in the decoding device 800 between the level 1 and the level 2. The encoding entity 803_1 encodes each of the decoded information bit sequences b.sub.1(u1), b.sub.1(u2) of the two or more user devices u1, u2, and provides the corresponding resulting encoded information bit sequences to the multi-user detecting entity 801_2 of the subsequent level, i.e. level 2 of the decoding device 800.
(79) The further multi-user detecting entities, the further decoding entities, and the further encoding entities of the further levels of the decoding device 800 operate in the same way as the multi-user detecting entity 801_1, the decoding entity 802_1, and the encoding entity 803_1.
(80) In the following, an example for decoding output codewords, transmitted concurrently by three user devices via the same channel, is presented to explain the calculation of the log likelihood ratios in more detail. For this purpose, the following two equations are presented and considered:
(81)
(82) Equation (1) expresses the probability that the 3rd user transmitted a bit equal to 0 at time t and at level 1, given all the bits decided from level 0 to 1-1 for user 3 (which can be either 0 or 1). Marginalization is applied for the symbols sent by the interfering users.
(83) Equation (2) represents the probability that user 3 transmitted a 1 at level 1, given that cl-1 was decided at the previous decoding stage. The LLR for this symbol time is the logarithm of the ratio between Eq. (1) and Eq. (2).
(84) (b(u1),b(u2)) corresponds to all the possible combinations of the bits for the interfering users. These combinations are (0,0), (1,0), (0,1), (1,1).
(85) The symbol x represents instead the set of symbols in the constellation that correspond to hypothesis 0 for equation (1) and 1 for equation (2) for the bit at level 1, given all the bits decoded for user u3 until level 1-1. Y is the observation. f( ) is a function of the symbols x and the symbols corresponding to users u1 and u2. P(b(u1)) is the a priori probability for bits of user u1.
(86) In view of the aforesaid, the log likelihood ratios are determined as shown in
(87) Thus, embodiments of the present invention are directed to encoding of information bit sequences by use of an encoding device having more than two encoding entities and to decoding of output codewords by a decoding device having more than two decoding entities. The encoding and the decoding are executed in view of the fact that output codewords, generated by the encoding device, are transmitted to the decoding device via a channel, via which two or more user devices transmit the respective output codewords concurrently.
(88) Embodiments of the invention have been described in conjunction with various examples herein. However, other variations to the enclosed embodiments can be understood and effected by those skilled in the art and practicing the claimed invention, from a study of the drawings, the disclosure and the appended claims. In the claims, the word comprising does not exclude other elements or steps, and the indefinite article a or an does not exclude a plurality. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.