Method and device for determining features of error correcting code system
10855311 ยท 2020-12-01
Assignee
Inventors
Cpc classification
H03M13/1111
ELECTRICITY
H03M13/1102
ELECTRICITY
H03M13/033
ELECTRICITY
H04L1/0042
ELECTRICITY
International classification
H04L1/00
ELECTRICITY
H03M13/03
ELECTRICITY
Abstract
A method for determining features of an error correcting code system, comprising independent error correcting codes and a polarization module, allowing transmitting a binary input vector on block fading sub-channels, the independent error correcting codes generating components of the binary input vector and a channel polarization being applied to the binary input vector by the polarization module. The method comprises: obtaining characteristics of the block fading sub-channels; and, determining features of said error correcting code system, comprising, for each error correcting code, a rate of said error correcting code, adapted to the obtained characteristics and minimizing a function of a probability that an instantaneous equivalent channel capacity of the block fading sub-channels is below a transmission rate transmitted on the block fading sub-channels.
Claims
1. A method for determining a transmission rate features of an error correcting code system which improves throughput, the error correcting code system including independent error correcting codes, a polarization module, and a modulation module transmitting a binary input vector on block fading (BF) sub-channels, each BF sub-channel being affected by an Additive White Gaussian Noise with a signal to noise ratio independently represented on each BF sub-channel by a corresponding first random fading variable and a probability density function representative of a probability distribution of the first random fading variable representative of a fading on a respective BF sub-channel, and a long term SNR parameter, identical on each BF sub-channel, representative of a long term signal to noise ratio on said respective BF sub-channels, the independent error correcting codes generating at least one component of the binary input vector and a channel polarization applied to the binary input vector by the polarization module, to obtain a binary polarized vector, the method comprising: obtaining a tuple of data including a value of the long term SNR parameter and a probability distribution set, the probability distribution set including, for each BF sub-channel, data representative of a probability density function distribution of the probability distribution of the first random fading variable corresponding to said sub-channel; and, determining an optimized transmission rate for system throughput based on the long term SNR of said error correcting code system by obtaining a set of design rates leading to an average transmission rate, the set of design rates includes, for each error correcting code, a design rate associated with the combination of parameter values included in the obtained tuple of data, approximating an outage probability representing the probability that an instantaneous channel capacity of at least one polarized BF sub-channel is below the obtained design rate of the error correcting code based on the assumption that each component of the binary input vector is transmitted on a polarized BF sub-channel of an equivalent channel created by the polarization module, and obtaining a kernel associated with the long term SNR parameter value included in the obtained tuple of data and minimizing a function of the approximated outage probability for the average transmission rate, generating binary polarized vectors using the determined optimized transmission rate and providing the binary polarized vectors to the modulation module, and modulating the generated binary polarized vectors and transmitting the modulated binary polarized vectors, wherein said optimized transmission rate is the sum of the design rates.
2. A method according to claim 1 wherein, the polarization module is adapted to implement any polarization kernel of a predefined set of polarization kernels, and wherein, one feature of the error correcting code system determined is a polarization kernel selected in the predefined set of polarization kernels.
3. A method according to claim 2 wherein, each polarization kernel of the predefined set of polarization kernels is a square matrix made of coefficients equal to 0 or 1, said matrix being of full rank and comprises at least one row comprising two coefficients equal to 1.
4. A method according to claim 1 wherein, when determining the features of said error correcting code system, a plurality of transmission rates are tested, and the transmission rate maximizing a function of the outage probability representative of the throughput of the error correcting code system is selected.
5. A method according to claim 1 wherein, the instantaneous channel capacity of a polarized BF sub-channel is computed as a mutual information between a current component intended to be transmitted on said polarized sub-channel and an output vector resulting from the transmission of the binary polarized vector on the BF sub-channels, where each component of the binary input vector with which the current component interferes after channel polarization by the polarization module and a set of first random variables comprising the first random variables of each BF sub-channel are known; and, the features minimizing the outage probability are determined using a statistical method comprising: evaluating an instantaneous channel capacity for each polarized BF sub-channel, for each set of first random fading variables of a plurality of possible sets of first random fading variables and for each polarization kernel of the predefined set of polarization kernels; and, for each value of the long term SNR parameter comprised in a pre-defined set of values of the long term SNR parameter, for each probability distribution set of a pre-defined plurality of probability distribution sets and for each transmission rate of a pre-defined set of transmission rates using the evaluated instantaneous channel capacities to determine the features of said error correcting code system minimizing the approximated outage probability for said value of the long term SNR parameter, said probability distribution set and said transmission rate.
6. A method according to claim 5 wherein the instantaneous channel capacity of each polarized BF sub-channel is evaluated for one set of first random fading variables of the plurality of possible sets of first random fading variables and one polarization kernel of the predefined set of polarization kernels by using a process based on a Monte-Carlo simulation and a belief propagation decoding on said one polarization kernel with a genie-aided method that assumes perfect a priori input for the components of the binary input vector with which the component intended to be transmitted on said sub-channel interferes after channel polarization by the polarization module, said process comprising for each polarized BF sub-channel: iteratively generating a random Log Likelihood Ratio L following a Gaussian distribution and performing a belief propagation decoding of said random Log Likelihood Ratio L on said polarization kernel and computing a value representative of an estimation J of the instantaneous channel capacity of said polarized BF sub-channel using a result L of the belief propagation decoding of the random Log Likelihood Ratio L as follows:
J=1log.sub.2(1+exp(L)); and, evaluating the instantaneous channel capacity of said polarized BF sub-channel as an average of the estimations J of the instantaneous channel capacity of said polarized BF sub-channel.
7. A method according to claim 5 wherein when determining the features of said error correcting code system minimizing the approximated outage probability for each value of the long term SNR parameters included in the pre-defined set of values of the long term SNR parameter, for each probability distribution set of the pre-defined plurality of probability distribution sets and for each transmission rate of the pre-defined set of transmission rates, an approximated outage probability is computed for each polarization kernel of the predefined set of polarization kernels and for each set of design rates of a plurality of sets of design rates, each set of design rates of said plurality of sets of design rates comprising a design rate for each error correcting code.
8. A method according to claim 7 wherein each approximated outage probability is obtained for a value of the long term SNR parameter, for a probability distribution set and for a design rate by a numerical integration of a product of probability density functions of the first random fading variables on a region such that the instantaneous channel capacity of at least one polarized BF sub-channel is below the design rate of the error correcting code providing the component of the binary input vector intended to be transmitted on said polarized BF sub-channel, the probability density functions of the first random fading variable being determined using said value of the long term SNR parameter and said probability distribution set.
9. A method according to claim 7 wherein the approximated outage probability is obtained by a Monte-Carlo simulation that generates random realizations of the first random fading variables and accumulates an error event if the instantaneous channel capacity of at least one polarized BF sub-channel is below the design rate of the error correcting code providing the component of the binary input vector intended to be transmitted on said polarized BF sub-channel.
10. A method according to claim 5, wherein the statistical method is implemented offline and allows obtaining a correspondence table including, for each value of the long term SNR parameter comprised in the pre-defined set of values of the long term SNR parameter and for each probability distribution set of the pre-defined plurality of probability distribution sets the features of the error correcting code system adapted to said value of the long term SNR parameter and said probability distribution set and minimizing the outage probability, the features of the error correcting code system adapted to the obtained tuple of data and minimizing the outage probability being determined by using said correspondence table.
11. A device for determining a transmission rate of an error correcting code system which improves throughput, comprising independent error correcting codes and transmitting a binary input vector on block fading (BF) sub-channels, each BF sub-channel being affected by an Additive White Gaussian Noise with a signal to noise ratio independently represented on each BF sub-channel by a corresponding first random fading variable, and a probability density function representative of a probability distribution of the first random fading variable representative of a fading on a respective BF sub-channel, and a long term SNR parameter, identical on each BF sub-channel, representative of a long term signal to noise ratio on said respective BF sub-channels, the independent error correcting codes generating at least one component of the binary input vector and a channel polarization applied to the binary input vector to obtain a binary polarized vector, the device comprising: a polarization module that applied the channel polarization to the binary input vector; a modulation module that transmits the binary input vector on the BF sub-channels; and a processing module configured to obtain a tuple of data including a value of the long term SNR parameter and a probability distribution set, the probability distribution set including, for each BF sub-channel, data representative of a probability density function distribution of the probability distribution of the first random fading variable corresponding to a corresponding BF sub-channel; determine an optimized transmission rate for system throughput based on the long term SNR of said error correcting code system by obtaining a set of design rates leading to an average transmission rate, the set of design rates includes, for each error correcting code, a design rate associated with the combination of parameter values included in the obtained tuple of data, approximating an outage probability representing the probability that an instantaneous channel capacity of at least one polarized BF sub-channel is below the obtained design rate of the error correcting code based on the assumption that each component of the binary input vector is transmitted on a polarized BF sub-channel of an equivalent channel created by the polarization module, and obtaining a kernel associated with the long term SNR parameter value included in the obtained tuple of data and minimizing the approximated outage probability for the average transmission rate, generating binary polarized vectors using the determined optimized transmission rate and providing the binary polarized vectors to the modulation module, and providing the generated polarized vectors to the modulation module and transmitting the modulated binary polarized vectors, wherein said optimized transmission rate is the sum of the design rates.
12. A transmission system comprising an error correcting code system allowing transmitting a binary input vector on (BF) block fading sub-channels, each BF sub-channel being affected by an Additive White Gaussian Noise with a signal to noise ratio independently represented on each BF sub-channel by a corresponding first random fading variable, and a probability density function representative of a probability distribution of the first random fading variable representative of a fading on a respective BF sub-channel, and a long term SNR parameter, identical on each BF sub-channel, representative of a long term signal to noise ratio on said respective BF sub-channels, the error correcting code system comprising independent error correcting codes, each adapted to generate at least one component of the binary input vector, and a polarization module, adapted to apply a channel polarization to the binary input vector to obtain a binary polarized vector, the transmission system comprising a device according to claim 11.
13. A receiver system comprising an inverse error correcting code system adapted to decode an output vector resulting from a transmission, by a transmission system, of a binary polarized vector on block fading (BF) sub-channels, each BF sub-channel being affected by an Additive White Gaussian Noise with a signal to noise ratio independently represented on each BF sub-channel by a corresponding first random fading variable and a probability density function representative of a probability distribution of the first random fading variable representative of a fading on a respective BF sub-channel, and a long term SNR parameter, identical on each BF sub-channel, representative of a long term signal to noise ratio on said respective BF sub-channels, the binary polarized vector having been generated by an error correcting code system comprised in the transmission system comprising independent error correcting codes each adapted to generate at least one component of a binary input vector and, a polarization module adapted to apply a channel polarization to the binary input vector to obtain the binary polarized vector, the receiver system comprising: a device according to claim 11 determining features of the error correcting code system, and means for transmitting the determined features to the transmission system.
14. Information storage means storing a computer program comprising program code instructions which can be loaded in a non-transitory programmable device for implementing the method according to claim 1, when the program code instructions are run by the non-transitory programmable device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
DESCRIPTION OF EMBODIMENTS
(14)
(15) The communication system 1 comprises a transmission system 2 and a receiver system 3 communicating using a wireless channel 4 based on a millimeter wave technology using, for instance, the 60 GHz radio band. Bitrates allowed by the system 1 are, for example, of the order of few GBits/s.
(16)
(17) The transmission system 2 comprises an error correction code (ECC) system 20 and a modulation module 22. The ECC system 20 comprises a number N (N2) of binary input generation modules 200-202, a polarization module 210 and a processing module 215. Each binary input generation module 200-202 provides a component of a binary input vector U=[U.sub.1, . . . , U.sub.N] to the polarization module 210. Each binary input generation module 200-202 comprises an ECC encoding module, such as a turbo code encoding module, a LDPC encoding module or a polar code encoding module, generating the binary input vector U from a binary application vector received from an application module not represented. The polarization module 210 comprises a polarization kernel K.sub.N. The polarization module 210 uses the polarization kernel K.sub.N to apply a channel polarization to the binary input vector U.
(18) Any square logical matrix, i.e., any square matrix made of coefficients equal to 0 or 1, can be used as a polarization matrix. However, some polarization matrices have better properties than others. In an embodiment, the polarization matrix representing the polarization kernel K.sub.N in the following, is a NN logical matrix with the following properties: in order to avoid a degradation of the equivalent channel capacity by the channel polarization, the polarization matrix has a full rank. the polarization matrix has at least two coefficients equal to 1 in at least one row in order to insure a mixing of at least two parallel input channels.
(19) In an embodiment, the polarization matrix has the following shape:
(20)
(21) where the coefficients of the main diagonal, the coefficients of the last row are all equal to 1, coefficients above the main diagonal are all equal to 0, remaining coefficients are either equal to 0 or 1.
(22) With such polarization kernel shape, the number of possible polarization kernels of size N is equal to
(23)
The
(24)
polarization kernels form a pre-defined set of polarization kernels.
(25) In an embodiment, a polarization kernel for N=3 is:
(26)
(27) In an embodiment, a polarization kernel for N=3 is:
(28)
(29) In an embodiment, a polarization kernel for N=4 is:
(30)
(31) In an embodiment, a polarization kernel for N=4 is:
(32)
(33) In an embodiment the polarization kernel is adapted to the number of binary input generation modules, i.e., the size N of the polarization matrix NN is equal to the number N of binary input generation modules and consequently to the size of the binary input vector U.
(34) The channel polarization of the binary input vector U by the kernel K.sub.N allows obtaining a binary polarized vector X=[X.sub.1, . . . , X.sub.N]. The modulation module 22 receives the binary polarized vector X and applies a modulation to said vector. The modulation is for example a BPSK (Binary Phase Shift Keying) modulation. Each component of the modulated binary polarized vector X is then transmitted on a BF sub-channel affected by an AWGN (Additive White Gaussian Noise) noise. Each AWGN noise has a SNR .sub.i where .sub.i is a random variable depending on a random variable .sub.i (called random fading variables .sub.i in the following) representative of the fading on the i-th BF sub-channel, the random fading variables .sub.i being independent on each BF sub-channel:
.sub.i=|.sub.i|.sup.2
(35) where is a parameter representative of a long term SNR on each BF sub-channel, the long term SNR being identical on each BF sub-channel and is equal to the average of the averaged values .sub.i in time, when the receiver and transmitter do not move. When the transmitter and the receiver move, the long term SNR varies slowly enough to allow a robust tracking and prediction at the transmitter for a point-to-point transmission. The random fading variables .sub.i might have different probability distributions from one sub-channel to another, and for example have different variance or mean, which can also be tracked as for the long term SNR . When addressing a broadcast service, the long term SNR is virtually set as the design point allowing defining the coverage of the system. The BF sub-channels form the equivalent channel. The result of a transmission of the modulated binary polarized vector X on the equivalent channel is an output vector Y=[Y.sub.1, . . . , Y.sub.N].
(36) In the following, we show that designing the ECC system 20 in the context of a BF channel amounts in searching a polarization kernel and rates (called design rates in the following) of the ECC codes implemented by the ECC encoding modules comprised in each binary input generation modules 200-202 allowing minimizing a probability that an instantaneous equivalent channel capacity is below the transmission rate N.Math.R which is transmitted on the N BF sub-channels.
(37) The processing module 215 controls the binary input generation modules 200-202 and the polarization module 210. In an embodiment, the processing module 215 determines the features of the ECC system 20.
(38)
(39) The receiver system 3 comprises a demodulation module 32 and an inverse ECC system 30. The inverse ECC system 30 comprises an inverse polarization module 310, binary output generation modules 300-302 and a processing module 315.
(40) The demodulation module 32 receives the output vector Y and applies a demodulation to said vector corresponding to the modulation applied by the modulation module 22. The demodulation of the output vector Y allows obtaining a demodulated vector {tilde over (X)}=[, . . . ,
]. An inverse polarization is then applied by the inverse polarization module 310 to the demodulated vector {tilde over (X)} to obtain a vector =[
, . . . ,
]. The inverse polarization corresponds to the polarization applied by the polarization module 210. Each component of the vector U is then provided to one of the binary output generation modules 300-302. The binary output generation modules 300-302 comprise ECC decoding modules corresponding to the ECC encoding modules comprised in the binary input modules 200-202.
(41) The demodulation module 32, the inverse polarization module 310, the ECC decoding modules of the binary output generation modules 300-302 can implement soft-input soft-output techniques and exchange soft information with each other.
(42) In a first example of the receiver system 3, the demodulation module 32 generates soft bits, for example in the form of Log-Likelihood-Ratios (LLR), from the observations Y (i.e., the output vector Y). Then, the inverse polarization module 310 generates soft bits estimates of the component of the vector . The binary output generation module 300 takes a decision on the information bits corresponding to the binary input generation module 200, which are converted back into hard estimates of the component U.sub.1 of the binary input vector U that are used for generating better estimates of the component
of the vector by using a serial cancellation approach, and so on until the decoding is performed by the binary output generation module 302.
(43) In a second example of the receiver system 3, a belief propagation approach is used. In this approach the inverse polarization module 310 generates soft estimates of the binary vector =[, . . . ,
] from soft estimates of the demodulated vector {tilde over (X)}=[
, . . . ,
] and soft estimates of the vector =[
, . . . ,
] computed by the binary output generation modules 300-302 in previous decoding iterations. The components .sub.l of the soft estimates of the vector =[
, . . . ,
] are computed from components .sub.l of soft estimates of the vector provided by the inverse polarization module 310 in previous decoding iterations. The scheduling of the operation has a small impact on the performance, and in general, the soft estimates are related to extrinsic information in order to ensure convergence of the decoding to optimal performances.
(44) The processing module 315 controls the binary output generation modules 300-302 and the inverse polarization module 310. In an embodiment the processing module 315 determines the features of the ECC system 20 from which are derived the features of the inverse ECC system 30.
(45)
(46) According to the shown architecture, the processing module 215 comprises the following components interconnected by a communication bus 2000: a processor, microprocessor, microcontroller or CPU (Central Processing Unit) 2001; a RAM (Random-Access Memory) 2002; a ROM (Read-Only Memory) 2003; storage means such as a HDD (Hard-Disk Drive) 2004, or any other device adapted to read information stored by storage means; and a communication interface 2005.
(47) The communication interface 2005 allows the processing module 215 to receive information representative of the wireless channel 4 and to control the binary input generation modules 200-201 and the polarization module 210.
(48) CPU 2001 is capable of executing instructions loaded into RAM 2002 from ROM 2003 or from an external memory, such as a SD card or the HDD 2004. After the processing module 215 has been powered on, CPU 2001 is capable of reading instructions from RAM 2002 and executing these instructions. The instructions form a computer program that causes CPU 2001 to control the binary input generation modules 200-202 and the polarization module 210, and, in an embodiment, to apply the methods described in relation with
(49) The application of the methods described in relation with
(50)
(51) According to the shown architecture, the processing module 315 comprises the following components interconnected by a communication bus 3000: a processor, microprocessor, microcontroller or CPU (Central Processing Unit) 3001; a RAM (Random-Access Memory) 3002; a ROM (Read-Only Memory) 3003; storage means such as a HDD (Hard-Disk Drive) 3004, or any other device adapted to read information stored by storage means; and a communication interface 3005.
(52) The communication interface 3005 allows the processing module 315 to receive information representative of the wireless channel 4 and to control the binary output generation modules 300-302 and the inverse polarization module 310.
(53) CPU 3001 is capable of executing instructions loaded into RAM 3002 from ROM 3003 or from an external memory, such as a SD card or the HDD 3004. After the polarization module 315 has been powered on, CPU 3.001 is capable of reading instructions from RAM 3002 and executing these instructions. The instructions form one computer program that causes CPU 3001 to control the binary output generation modules 300-302 and the inverse polarization module 310. and, in an embodiment, to apply the methods described in relation with
(54) The inverse polarization and ECC decoding, and the application of the methods described in relation with
(55)
(56) In
(57) A simplistic case arises when the characteristics of the fading are known (i.e., random fading variables .sub.i are fixed). In this simplistic case, it is known that the channel polarization leads to a first BF sub-channel with a SNR S.sub.2=.sub.i+.sub.2 under a knowledge of a second BF sub-channel input, the second BF sub-channel having a SNR S.sub.i that can be computed from a channel capacity conservation property. If the characteristics of the fading are known by the transmission system 2, a design of the ECC system 20 comprises the following steps: obtaining the long term SNR : The long term SNR can be computed regularly by the receiver system 30 and forwarded to the transmission system 20. designing the code 1 and the code 2 for respectively the SNR S.sub.1 and the SNR S.sub.2 according to known methods.
(58) This leads to two independent ECC codes linked by a kernel of size 2. If the ECC codes are capacity achieving, by designing them for reaching the capacity of the AWGN channels with respectively SNR S.sub.1 and S.sub.2, it can be shown that the ECC system 20 exhibits good performances. However, it requires the knowledge of the random fading variables .sub.i, which is generally not available on the transmission system side in open loop or high speed systems.
(59) An objective of the invention is to design the ECC system 20 in a more realistic case where the realizations of the random fading are not known on the transmission system 2 side, but only the long term SNR . Note that the design of the inverse ECC system 30 can be deduced from the design of the ECC system 20.
(60) It is difficult to design the ECC system 20 for a BF channel for which the realizations of the random fading are not known. Indeed, this ECC system 20 is to be optimized in a quasi-static open-loop system where only the long term SNR is known. The ECC system 20 (the rates of the ECC codes and the polarization kernel features) cannot be optimized for each realization of the random fading variables .sub.i but only in a statistical way.
(61) In addition, optimizing the ECC system 20 requires defining a metric allowing comparing performances of different possible configurations of the ECC system 20.
(62) The invention proposes a method, described below in relation with
(63)
(64) The method of
(65) In a step 51, the processing module 215 obtains a couple of data comprising a value representative of the long term SNR and a set, called probability distribution set, comprising, for each i-th BF sub-channel (i[1; N]), a probability density function representative of the probability distribution of the random fading variables .sub.i. The long term SNR and the probability density functions are for instance regularly estimated by the receiver system 3 and forwarded to the ECC system 20. If the probability density functions cannot be estimated, one can assume that the random fading variables .sub.i have a complex Gaussian distribution.
(66) In a step 52, the processing module 215 determines features of the ECC codes implemented by the ECC modules comprised in each binary input generation module 200-202 and a polarization kernel K.sub.N adapted to the obtained couple of data comprising the value representative of the long term SNR and the probability distribution set. The step 52 allows obtaining a set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) leading to an average transmission rate R=.sub.i=1.sup.Nr.sub.i/N, and a kernel K.sub.N adapted to the obtained long term SNR and to the probability distribution set and allowing minimizing the outage probability P.sub.out for an average transmission rate R=.sub.i=1.sup.Nr.sub.i/N. Each design rate r.sub.i is a design rate of the ECC codes (called i-th ECC code in the following) implemented by the ECC modules comprised in the i-th binary input generation module of the ECC system 20. The polarization kernel K.sub.N belongs, for example, to the pre-defined set of
(67)
possible polarization kernels of size N defined in relation with
(68) In an embodiment, the set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) leading to an average transmission rate R=.sub.i=1.sup.Nr.sub.i/N and the kernel K.sub.N minimizing the outage probability P.sub.out for the obtained couple of data comprising the value representative of the long term SNR and the probability distribution set are obtained from a table stored in the storage means 2005 of the processing module 215. Said table, called correspondence table, has been computed off-line, according to a process described in
(69) Once the features of the ECC system 20 have been determined by the processing module 215, the ECC system 20 generates binary polarized vectors X using the features of the ECC system 20 determined in step 52 and provides said binary polarized vectors to the modulation module 22, which insures the modulation of said vectors before their transmission. More precisely, each binary input vector U is generated by the ECC codes implemented by the ECC modules comprised in the binary input generation module 200-202 using the set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) and the polarized vector X is generated by the polarization module 210 using the polarization kernel K.sub.N.
(70) As can be seen from the above, the determination of the features of the ECC system for a given long term SNR , a given probability distribution set and a given average transmission rate R, is based on determinations of outage probabilities P.sub.out. As a reminder, the outage probability is defined as a probability that an outage event occurs, where an outage event occurs when an instantaneous equivalent channel capacity is below the transmission rate N.Math.R. The outage event can be represented by the following inequality:
(71)
(72) where the instantaneous equivalent channel capacity is a combination of N BF sub-channels capacities, each represented by the mutual information between the input and the output of the corresponding BF sub-channel.
(73) Knowing that, in the case of AWGN channels with discrete input, the channel mutual information is a function of the SNR of the channel, the outage event can be written as follows:
(74)
(75) where I(U.sub.i; Y.sub.i)=(.sub.i). In the case of a binary modulation, the mutual information is computed as
(.sub.i)=E[1log.sub.2(1+e.sup.L)]
(76) where the random variable L is a LLR of the corresponding BDMC. In the case of an AWGN, the LLR is Gaussian distributed with a mean equal to 4 times the SNR of said BDMC and a variance equal to 8 times the SNR of said BDMC. This function (.) can be computed offline and tabulated. Since it is a non-decreasing function, the inverse function .sup.1(.) can also be tabulated, such that .sup.1((x))=x for all x.
(77) The outage probability P.sub.out can then be written as follows:
(78)
(79) where P(E) is a probability that an event E occurs.
(80) In the case represented by
I(U.sub.1;Y.sub.1)+I(U.sub.2;Y.sub.2)<2R
(81) Equivalently, the outage event can be written as follows:
(.sub.i)+(.sub.2)<2.Math.R
(82) The outage probability P.sub.out is written as follows:
P.sub.out=P((.sub.i)+(.sub.2)<2.Math.R)
(83) Computing the outage probability, i.e., the probability that an instantaneous equivalent channel capacity is below the transmission rate NR is difficult, and designing an error correcting code to achieve this outage probability is even more difficult.
(84) In order to circumvent this difficulty, in an embodiment, the outage probability is upper-bounded by the processing module 215 by assuming that an independent ECC encoding strategy is used on an equivalent channel corresponding to the channel created by the polarization module 210. In that case, each component of a binary input channel is assumed to be transmitted on BF sub-channels, called polarized BF sub-channels in the following, of the equivalent channel created by the polarization module. With the independent ECC encoding strategy assumption, an upper-bound of the outage probability, called approximated outage probability , is computed as a probability that an instantaneous channel capacity of at least one polarized BF sub-channel J.sub.i(.sub.1, .sub.2, . . . , .sub.N) is below a design rate of the ECC code associated to the component of the binary input channel intended to be transmitted on said polarized BF sub-channel. The corresponding outage event can be written as follows:
For at least one i[1; N], J.sub.i(.sub.1, .sub.2, . . . , .sub.N)<r.sub.i
(85) where r.sub.i is the design rate of the i-th. ECC code, and J.sub.i(.sub.1, .sub.2, . . . , .sub.N) is the instantaneous channel capacity of the polarized BF sub-channel observed by the i-th ECC code.
J.sub.i(.sub.1, .sub.2, . . . , .sub.N)=I(U.sub.i; Y|U.sub.1, . . . , U.sub.i-1, .sub.1, .sub.2, . . . , .sub.N)
(86) I(U.sub.i; Y|U.sub.1, . . . , U.sub.i-1, .sub.1, .sub.2, . . . , .sub.N) is the mutual information between the component U.sub.i of the binary input vector U provided by the i-th ECC code and the output vector Y, knowing each component U.sub.x for x[1; i1] with which the component U.sub.i interferes after channel polarization by the polarization module 210 and a set (.sub.1, .sub.2, . . . , .sub.N) comprising the SNR .sub.y for y[1; N] of each BF sub-channel. The mutual information I(U.sub.i;Y|U.sub.1, . . . , U.sub.i-1, .sub.1, .sub.2, . . . , .sub.N) (and consequently the instantaneous channel capacity J.sub.i(.sub.1, .sub.2, . . . , .sub.N)) depends on the kernel used in the polarization module.
(87) The approximated outage probability is noted as follows:=P(For at least one i[1; N], J.sub.i(.sub.1, .sub.2, . . . , .sub.N)<r.sub.i)
(88) In the example of is as follows:
=P(J.sub.1(.sub.1, .sub.2)<r.sub.1 or J.sub.2(.sub.1, .sub.2)<r.sub.2)
(89) and the code 2, after channel polarization, observes an instantaneous channel capacity J.sub.2(.sub.1, .sub.2)=(.sub.1+.sub.2). By using the capacity conservation property inherent to channel polarization, the code 1 observes an instantaneous channel capacity equal to J.sub.1(.sub.1, .sub.2)=(.sub.1)+(.sub.2)(.sub.1+.sub.2) which can be obtained by tabulation of the function (.).
(90) It can be shown that, if r.sub.1 and r.sub.2 are the design rates associated respectively to the code 1 and the code 2 for the SNR and the average transmission rate R and if code 1 and code 2 are capacity achieving, then an optimal couple of design rates (r.sub.1, r.sub.2) is such that
(91)
for any long term SNR and any average transmission rate R and any probability distribution set, which limits the search on the one-dimensional segment r.sub.2=2Rr.sub.1; for a given long term SNR , a given probability distribution set and a given average transmission rate R, it is possible to compute a value representative of the approximated outage probability when the design rates of the code 1 and the code 2 are (r.sub.1, r.sub.2) either by: computing a Monte-Carlo simulation on the random variables .sub.1 and .sub.2 of the outage rate, by counting an error when J.sub.1(.sub.1, .sub.2)<r.sub.1 or when J.sub.2(.sub.1, .sub.2)<r.sub.2. Knowing that .sub.i=|.sub.i|.sup.2, computing a numerical integration of a product of probability density functions of SNR .sub.1 and .sub.2 on regions where J.sub.1(.sub.1, .sub.2)<r.sub.1 or J.sub.2(.sub.1, .sub.2)<r.sub.2. Knowing that .sub.i=|.sub.i|.sup.2, the probability density function of a SNR .sub.i is determined using the long term SNR and the probability density functions of the random fading variables .sub.i. using an approximation leading to
(92)
(93) As a result, an upper bound of the system performance, given by the approximated outage probability , varies according to the SNR .sub.i probability distribution (i.e., according to the long term SNR and the probability distribution set), the average transmission rate R and the design rate r.sub.1, the design rate r.sub.2 depending on r.sub.1 (r.sub.2=2Rr.sub.1). Note that, for the polarization to operate, r.sub.2 should be higher than r.sub.1. By testing all possible values of r.sub.1 for a given R, a given long term SNR and a given probability distribution set, it is possible to determine the value of the design rate r.sub.1 minimising the approximated outage probability
and then to deduce r.sub.2, the polarization kernel being K.sub.2.
(94) In a more general case, when N>2, the determination of the ECC system 20 features relies on a method described below in relation with
(95)
(96) In a step 61, the processing module 215 evaluates for each polarized BF sub-channel, an instantaneous channel capacity J.sub.i(.sub.1, .sub.2, . . . , .sub.N) for each possible set of SNR (.sub.1, .sub.2, . . . , .sub.N) and each possible polarization kernel of size N. The step 61 is described in details in relation with
(97) In a step 62, the processing module 215 obtains a pre-defined set of values of the long term SNR , a pre-defined plurality of probability distribution sets and a pre-defined set of average transmission rates. For each value of the long term SNR of the pre-defined set of values of the long term SNR , for each probability distribution set of the pre-defined plurality of probability distribution sets and for each average transmission rate of the pre-defined set of average transmission rates R, the processing module 215 uses the instantaneous channel capacities J.sub.i(.sub.1, .sub.2, . . . , .sub.N) computed during step 61 to determine a set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) and a kernel K.sub.N minimizing the approximated outage probability for said value of the long term SNR and said probability distribution set and said average transmission rate R. The step 62 is detailed in relation with
(98) In an embodiment during step 62, the processing system 215 creates the correspondence table wherein each possible couple made of a value of the long term SNR of the pre-defined set of values of the long term SNR and a probability distribution set of the pre-defined probability distribution sets is associated to a set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N), to a kernel K.sub.N, the average transmission rate R being deduced from the design rates (r.sub.1, r.sub.2, . . . , r.sub.N).
(99)
(100) In a step 610, the processing module 215 defines a set of SNR (.sub.1, .sub.2, . . . , .sub.N) wherein a SNR .sub.i is the SNR of the AWGN noise affecting the i-th BF sub-channel. Note that the values of the SNR .sub.i are chosen in a pre-defined set of possible values of the SNR .sub.i.
(101) In a step 611, the processing module 215 defines a kernel K.sub.N of size N. The kernel K.sub.N belongs to the pre-defined set of the
(102)
polarization kernels of size N.
(103) In a step 612, the processing module 215 evaluates, for each polarized BF sub-channel of the equivalent channel obtained by polarization by the polarization module 210, the instantaneous channel capacities J.sub.i(.sub.1, .sub.2, . . . , .sub.N) for the set of SNR (.sub.1, .sub.2, . . . , .sub.N) and the polarization kernel K.sub.N. The instantaneous channel capacities J.sub.i(.sub.1, .sub.2, . . . , .sub.N) can be evaluated, as described in the following in relation with
(104) In a step 613, the processing module 215 determines if all possible kernels of size N have been considered. If all possible kernels of size N have been considered, the processing module 215 continues with a step 614. Otherwise, the processing module 215 goes back to the step 611 and defines a new kernel of size N different from kernels of size N already considered.
(105) In the step 614, the processing module 215 determines if all possible sets of SNR (.sub.1, .sub.2, . . . , .sub.N) have been considered. If all possible sets of SNR (.sub.1, .sub.2, . . . , .sub.N) have been considered, the method described in relation with
(106)
(107) In a step 6122, the processing module 215 generates random Log Likelihood Ratios (LLR) L.sub.1, L.sub.2, . . . , L.sub.N. Each LLR L.sub.x follows a Gaussian distribution L.sub.i(4.sub.i,8.sub.i).
(108) In a step 6123, the processing module 215 performs for each i[1; N], a belief propagation decoding with perfect LLR a priori input for the inputs U.sub.1, . . . , U.sub.i-1, and a computation of a value J.sub.i representative of an estimation of the instantaneous channel capacity J.sub.i (.sub.i, .sub.2, . . . , .sub.N)(J.sub.i=1log.sub.2(1+exp(L.sub.i))), L.sub.i being a result of the belief propagation associated to the component U.sub.i. The belief propagation is a state of art algorithm used for soft-input/soft output decoding of error correcting codes, with specific implementations for the polar codes. The processing module 215 applies here a belief propagation method described in the article Recursive Descriptions of Decoding Algorithms and Hardware Architectures for Polar Codes by Noam Presman and Simon Litsyn (http://arxiv.org/abs/1209.4818).
(109) In a step 6124, the processing module 215 verifies if the number of iterations in the Monte-Carlo simulation based method is sufficient. For instance, in this step the processing module 215 verifies if the number of iterations is equal to a pre-defined number of iterations. If the number of iterations is not sufficient, the processing module 215 returns to step 6122. Otherwise, the processing module 215 evaluates, in a step 6125, an instantaneous channel capacity J.sub.i(.sub.1, .sub.2, . . . , .sub.N) for each i[1; N], each instantaneous channel capacity J.sub.i(.sub.1, .sub.2, . . . , .sub.N) being the average of the values J.sub.i computed in each iteration.
(110) In a step 6126 the Monte-Carlo simulation method ends.
(111)
(112) In a step 620, the processing module 215 defines a value of the long term SNR , a probability distribution set and an average transmission rate R that have not been yet considered. The value of the long term SNR is for instance taken in a pre-defined set of values of the long term SNR covering a set of possible values of the long term SNR . The probability distribution set is for instance taken in a pre-defined plurality of sets of probability distribution sets. The average transmission rate is for example taken in a pre-defined set of average transmission rates.
(113) In a step 621, the processing module 215 defines a kernel of size N K.sub.N that has not been considered yet. The kernel K.sub.N belongs to the predefined set of
(114)
kernels of size N.
(115) In a step 622, the processing module 215 defines a set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) different from any set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) previously considered in the method described in relation with
(116) In a step 623, the processing module 215 evaluates the approximated outage probability , i.e. the probability that at least one instantaneous channel capacity J.sub.i(.sub.1, .sub.2, . . . , .sub.n) is lower than r.sub.i, by using the instantaneous channel capacities computed in step 61, and according to the probability distribution of the random fading variables .sub.i represented by the probability density functions of the random fading variables .sub.i. The approximated outage probability
can be obtained either by a numerical integration of a product of the probability density functions of the SNRs .sub.1, .sub.2, . . . , .sub.n on a region such that for at least one i, J.sub.i(.sub.1, .sub.2, . . . , .sub.n)<r.sub.i. Again, knowing that .sub.i=|.sub.i|.sup.2, the probability density function of a SNR .sub.i is determined using the long term SNR and the probability density functions of the random fading variables .sub.i; or, by a Monte-Carlo simulation that generates random realizations of (.sub.1, .sub.2, . . . , .sub.n) and accumulates an error event if for at least one i, J.sub.i(.sub.1, .sub.2, . . . , .sub.n)<r.sub.i.
(117) In a step 624, the processing module 215 determines if all possible sets of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) have been tested. If some sets remain, the processing module 215 returns to step 622. Otherwise the processing module 215 continues with a step 625.
(118) In the step 625, the processing module 215 determines if all possible polarization kernels of size N have been considered. If all possible polarization kernels of size N have been considered, the processing module 215 continues with a step 626. Otherwise, the processing module 215 goes back to the step 621 and defines a new polarization kernel of size N different from polarization kernels of size N already considered.
(119) In a step 626, the processing module 215 searches the set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) and the polarization kernel K.sub.N minimizing the approximated outage probability for the considered value of the long term SNR and the considered probability distribution set. The set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) and the polarization kernel K.sub.N minimizing the approximated outage probability
is then associated to a couple made of the considered long term SNR and the considered probability distribution set in the correspondence table.
(120) In a step 627, the processing module 215 determines if all possible values of , all possible probability distribution sets and all average transmission rates R have been tested. If some values remain, the processing module 215 returns to step 620. Otherwise, the method described in relation with
(121) In an embodiment, at the end of the method described in relation to
(122) In an embodiment, the polarization kernel is predefined in the polarization module 210, and the inverse polarization module 310, and only a set of design rates (r.sub.1, r.sub.2, . . . , r.sub.N) minimizing the approximated outage probability is determined by the processing module 215 for each possible value of the long term SNR , each possible probability distribution set and each average transmission rate and stored in the correspondence table.
(123) The inverse ECC system 30 applies a decoding method corresponding to the encoding method applied by the ECC system 20 under the control of the processing module 315. Consequently, the ECC system 20 and the inverse ECC system 30 share the features of the ECC system 20.
(124) In an embodiment, when the features of the ECC system 20 have been determined in step 52 by the processing module 215, the processing module 215 transmits these features to the inverse ECC system 30.
(125) In an embodiment, the method described in relation with
(126) In an embodiment the processing module 215 (respectively the processing module 315) is independent of the ECC system 20 (respectively the inverse ECC system 30) and comprised in the transmission system 2 (respectively in the receiver system 3). In an embodiment, the ECC codes implemented in the ECC modules comprised in the binary input generation system 200-202 are turbo-codes. In that case a selection of a puncturing rate allows adapting each ECC code design rate.
(127) In an embodiment, the ECC codes implemented in the ECC modules comprised in the binary input generation system 200-202 are polar codes. In that case an adaptation of a number of frozen bits allows adapting each ECC code design rate, and the position of the frozen bits is designed to achieve good performance.
(128) In an embodiment, the correspondence table is computed in real-time. The method described in relation with
(129) In an embodiment, the method described in
(130) In the above, we have considered that each component U.sub.i of the binary input vector U has the same size. The invention applies also when the components U.sub.i have different sizes by dividing the components U.sub.i in a plurality of sub-components of the same size.
(131) Note that, in the above, all ECC codes are considered to be capacity achieving.