Methods and devices for generating optimized coded modulations
10432224 ยท 2019-10-01
Assignee
Inventors
Cpc classification
H03M13/116
ELECTRICITY
H03M13/1171
ELECTRICITY
International classification
H03M13/35
ELECTRICITY
H03M13/00
ELECTRICITY
Abstract
At least a method and an apparatus are presented for determining a coded modulation scheme, the coded modulation scheme being defined by at least one non-binary error correcting code containing at least one non-binary parity-check equation, a modulation scheme, and a modulation mapping. Two or more candidate modulation mappings and two or more candidate parity-check equations are determined defining the at least one non-binary error correcting code, a candidate set comprising a candidate modulation mapping and at least one candidate parity-check equation providing codeword vectors and being associated with one or more metrics, each metric being evaluated for a number of distinct pairs of codeword vectors having an Euclidean distance of a defined value. One candidate modulation mapping and at least one candidate parity-check equation are selected according to an optimization criterion applied to the one or more metrics.
Claims
1. A device for determining a coded modulation scheme, said coded modulation scheme being defined by at least one non-binary error correcting code containing at least one non-binary parity-check equation, a modulation scheme, and a modulation mapping, wherein said device comprises: a calculation unit configured to determine two or more candidate modulation mappings and two or more candidate parity-check equations defining said at least one non-binary error correcting code, a candidate set comprising a candidate modulation mapping and at least one candidate parity-check equation providing codeword vectors and being associated with one or more metrics, each metric being evaluated for a number of distinct pairs of codeword vectors having an Euclidean distance of a defined value; a selection unit configured to select one candidate modulation mapping and at least one candidate parity-check equation according to an optimization criterion applied to said one or more metrics; and a transmitter for transmitting data applied with said selected candidate modulation mapping and said selected candidate parity-check equation to a receiver.
2. The device of claim 1, wherein each candidate parity-check equation is represented by one or more coefficients, the error correcting code being defined by a set of values, the calculation unit being configured to determine each candidate parity-check equation by determining a value of at least one coefficient representing each candidate parity-check equation from said set of values.
3. The device of claim 1, wherein the calculation unit is configured to determine said two or more candidate modulation mappings from a predefined set of modulation mappings.
4. The device of claim 1, wherein the optimization criterion comprises the minimization of at least one metric from said one or more metrics.
5. The device of claim 1, wherein said modulation scheme is selected in a group consisting of a phase-shift keying modulation, a frequency-shift modulation, and a quadrature amplitude modulation.
6. The device of claim 2, wherein said set of values comprises a number of values, said number of values being a power of two.
7. The device of claim 6, wherein said modulation scheme is represented by a set of symbols, the calculation unit being further configured to associate a binary vector with each value of said set of values and to determine at least one candidate modulation mapping using the binary vectors associated with at least some values of said set of values, the candidate modulation mapping associating a symbol from the set of symbols with each binary vector.
8. The device of claim 7, wherein each binary vector comprises a plurality of bits, the calculation unit being configured to determine one or more vector permutations, each vector permutation being applied to permute at least some of the bits comprised in the binary vector associated with each value of said set of values, thereby providing a permuted binary vector in association with each value, the calculation unit being configured to determine the one or more candidate modulation mappings by applying the at least one candidate modulation mapping to the permuted binary vectors.
9. The device of claim 3, wherein said predefined set of modulation mappings comprises modulation mappings selected in a group consisting of Gray mappings and natural mappings.
10. A transmitter configured to transmit a data sequence over a transmission channel to a receiver in a transmission system, said data sequence being encoded and modulated by a coded modulation scheme, said coded modulation scheme being defined by at least one non-binary error correcting code containing at least one non-binary parity-check equation, a modulation scheme, and a modulation mapping, and being determined as an output of: a calculation unit configured to determine two or more candidate modulation mappings and two or more candidate parity-check equations defining said at least one non-binary error correcting code, a candidate set comprising a candidate modulation mapping and at least one candidate parity-check equation providing codeword vectors and being associated with one or more metrics, each metric being evaluated for a number of distinct pairs of codeword vectors having an Euclidean distance of a defined value; and a selection unit configured to select one candidate modulation mapping and at least one candidate parity-check equation according to an optimization criterion applied to said one or more metrics.
11. The transmitter of claim 10, wherein the transmission channel is associated with a transmission power, the transmitter being configured to determine the modulation scheme depending on the transmission power.
12. The receiver configured to receive and decode the data sequence transmitted by the transmitter according to claim 10.
13. A method for transmitting data and determining a coded modulation scheme, said coded modulation scheme being defined by at least one non-binary error correcting code containing at least one non-binary parity-check equation, a modulation scheme, and a modulation mapping, wherein said method comprises: determining two or more candidate modulation mappings and two or more candidate parity-check equations defining said at least one non-binary error correcting code, a candidate set of a candidate modulation mapping and at least one candidate parity-check equation providing codeword vectors and being associated with one or more metrics, each metric being evaluated for a number of distinct pairs of codeword vectors having an Euclidean distance of a defined value; selecting one candidate modulation mapping and at least one candidate parity-check equation, according to an optimization criterion applied to said one or more metrics; and transmitting, by a transmitter, the data applied with said selected candidate modulation mapping and said selected candidate parity-check equation to a receiver.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate various embodiments of the invention together with the general description of the invention given above, and the detailed description of the embodiments given below.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
DETAILED DESCRIPTION
(13) Embodiments of the present invention provide devices, methods, and computer program products for constructing coded modulation schemes involving error correcting codes and modulation mappings jointly optimized for providing better decoding error performances. In particular, the various embodiments provide improved joint constructions of non-binary error correcting codes and modulation mappings for higher-order coded modulations.
(14) The various embodiments provide coded modulation schemes to be used for encoding and modulating a digital data sequence. The provided coded modulation schemes may be implemented in devices and systems configured to convert digital data sequences into coded modulation symbols.
(15) Coded modulations can improve system spectral efficiency and provide resistance to impairments in transmission and storage systems. In particular, the association of non-binary error correcting codes and high-order modulations provides higher data throughputs and higher spectral efficiency transmission.
(16) Devices, methods, and computer program products according to the various embodiments of the present invention may be implemented in numerous types of digital storage and transmission devices and systems used in different types of applications. Exemplary devices and systems comprise computers, disks, laptops, phones, smartphones, recorders, base stations, drones, satellites, etc. Exemplary applications comprise magnetic and optical recording, digital television and video broadcasting, digital communications, etc.
(17) The following description of certain embodiments of the invention will be made with reference to communication systems, for illustration purpose only. However, the skilled person will readily understand that the various embodiments of the invention may be integrated in other types of systems used for other applications such as positioning systems and spacecraft systems.
(18)
(19) The communication system 100 may comprise at least one transmitter device 11 (hereinafter referred to as a transmitter) configured to transmit a plurality of information symbols to at least one receiver device 15 (hereinafter referred to as receiver) through a transmission channel 13. The receiver device 15 may be configured to receive the conveyed signal by the transmitter 11 and decode it for recovering the original data. The transmission channel 13 may be a wired connection, a wireless medium, an underwater communication channel, etc.
(20) In an application of the invention to wired communication systems such as computer networking systems, the transmitter 11 and/or the receiver 15 may be any device configured to operate in a wired network. Exemplary devices in such application comprise computers, routers or switches connected to a small or large area wired network. Further, in such an application, the transmission channel 13 may be any type of physical cable used to ensure the transfer of data between the different connected devices in the wired network.
(21) In another application of the invention to wireless communication systems such as ad-hoc wireless networks, wireless sensor networks and radio communication systems, the transmitter 11 and/or the receiver 15 may be any type of fixed or mobile wireless device configured to operate in a wireless environment. Exemplary devices adapted for such application comprise laptops, tablets, mobile phones, robots, IoT (Internet of Things) devices, base stations, etc. The transmission channel 13 may be any wireless propagation medium suitable for this type of application. Further, the transmission channel 13 may accommodate several pairs of transmitters 11 and receivers 15. In such embodiments, multiple access techniques and/or network coding techniques may be used in combination with error correcting codes and modulation. Exemplary multiple access techniques comprise Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), Code Division Multiple Access (CDMA), and Space Division Multiple Access (SDMA).
(22) In still another application of the invention to optical communication systems such as optical fiber-based systems, the transmitter 11 and the receiver 15 may be any optical transceiver device configured respectively to transmit and to receive data information propagated over an optical link. Exemplary optical communication systems comprise Polarization Division Multiplexing (PMD) and Mode Division Multiplexing (MDM) systems.
(23) For any type of wired, wireless or deep-space (e.g. satellites, telescopes, space probes, etc.) communication systems, the transmission channel 13 may be any noisy channel. The noise may result from the thermal noise of the system components and/or the intercepted interfering radiation by antennas. Other exemplary sources of noise comprise switching, manual interruptions, electrical sparks and lightning. In some embodiments, the total noise may be modeled by an additive white Gaussian noise (AWGN).
(24) Further, according to another application of the invention to digital mass storage, the transmission channel 13 may be modeled for example by an erasure channel, a binary symmetric channel, or a Gaussian channel. In such application, the transmission channel 13 may be any type of storage device which can be sent to (i.e. written) and received from (i.e. read).
(25) The various embodiments of the invention may be implemented at the transmitter 11 for encoding and modulating a sequence of data to be sent to the receiver 15 through the transmission channel 13.
(26) Referring to which depends on the given modulation scheme 22, denoted by
. Each symbol in the set of symbols
is represented by a signal point in the constellation diagram associated with the modulation scheme 22.
(27) According to some embodiments, there is provided a coded modulation device 21 configured to determine an optimized coded modulation scheme providing at least one non-binary parity-check code defined by one non-binary parity-check equation and a modulation mapping, for a given modulation scheme 22 and a given set of error correcting code parameters 20.
(28) According to some embodiments, the transmitter 11 may implement a concatenation of an error correcting code (ECC) encoder 25 and a modulator 27.
(29) The ECC encoder 25 may be configured to encode the digital input data block 24 into a codeword vector c, using the at least one parity-check error correcting code provided by coded modulation device 21, said one parity-check error correcting code being constructed over the algebraic structure F to which the components of the digital input data block 24 belong.
(30) The modulator 27 may be configured to generate the modulated sequence of symbols s by applying the modulation mapping provided by the coded modulation device 21, the modulation mapping associating the components of the codeword vector c to symbols comprised in the set of symbols .
(31) According to some embodiments, the coded modulation device 21 may be implemented in the transmitter 11 for providing the coded modulation scheme to be used by the ECC encoder 25 and the modulator 27. In such embodiments, the coded modulation device 21 may be configured to determine the jointly optimized coded modulation scheme offline, during a pre-transmission phase, and to provide thereafter the one parity-check error correcting code and the modulation mapping respectively to the ECC encoder 25 and the modulator 27. In such implementation, the transmitter 11 may be further configured to communicate the parameters of the coded modulation scheme to the receiver 15, for implementing the demodulation and decoding operations accordingly.
(32) According to other embodiments (not illustrated in
(33) The following description will be made with reference to linear non-binary error correcting codes, for illustration purpose only. However the skilled person will readily understand that any non-binary error correcting code, such as non-binary turbo codes and non-binary convolutional codes, may be considered. Further, the non-binary error correcting codes are assumed one parity-check codes, defined by one parity-check equation.
(34) Accordingly, the set of error correcting code parameters 20 may comprise: the algebraic structure F over which at least one non-binary parity-check error correcting code is constructed, and a size N.sub.row
(35) According to the set of parameters 20, the non-binary parity-check error correcting code can be defined by one parity-check equation E(h.sub.1, . . . , h.sub.N.sub.
(36) The following description of some embodiments of the invention will be made with reference to coded modulation schemes involving one non-binary error correcting code, for illustration purpose only. However, the skilled person will readily understand that the various embodiments apply to any concatenation of two or more non-binary error correcting codes. The concatenation of two or more codes may be a serial concatenation, a parallel concatenation or a multilevel coding architecture. It should be noted that concerning the embodiments involving two or more codes, the coded modulation device 21 may be configured to determine optimized coefficients of at least one parity-check equation defining each code and to determine a modulation mapping associating the components of the codeword vector resulting from the concatenation of the two or more non-binary error correcting codes with symbols from the set of symbols .
(37) Further, the following description will be made with reference to one parity-check equation denoted by E(h.sub.1, . . . , h.sub.N.sub.
(38) The parity-check equation defines therefore a code over F.sup.N.sup.
E(h.sub.1, . . . , h.sub.N.sub.
(39) The components of the digital input block 24 and the components c.sub.j, for j=1, . . . , N.sub.row, of the codeword vectors belong to the algebraic structure F.
(40) In addition, the generated codeword vectors belong to a set of codeword vectors, referred to as codebook, denoted by C.sub.opt. The codebook C.sub.opt comprises the set of all possible values of the codeword vectors. The total number of codeword vectors in the codebook C.sub.opt represents the cardinality of the codebook, denoted by card(C.sub.opt)=|C.sub.opt|. For one parity-check codes considering one parity-check equation, the codebook C.sub.opt corresponds to the set of the vectors cF.sup.N.sup.
(41) In the following, a codeword vector cF.sup.N.sup.
(42) Accordingly, the coded modulation device 21 may be configured to determine a coded modulation scheme denoted by {.sub.opt(F, E), .sub.opt}, defined by a one parity-check code denoted by
.sub.opt(F, E) and a modulation mapping denoted by .sub.opt. It should be noted that the code and the modulation mapping are optimized jointly.
(43) According to some embodiments, the algebraic structure F may be any non-zero commutative division ring, also called a field. Exemplary fields comprise the field of real numbers, the field of complex numbers, the field of rational numbers, and finite fields (also known as Galois fields).
(44) The following description of some embodiments will be made with reference to finite fields, for illustration purpose only. However the skilled person will readily understand that the invention may be applied to any division rings-like algebraic structures such as non-zero commutative division rings and to any near-rings such as finite division near-rings. Insights on the design of non-binary error correcting codes over finite division near-rings can be found in the article Non-binary LDPC codes over finite division near rings, 2016 23rd International Conference on Telecommunications (ICT), Thessaloniki, 2016, pp. 1-7.
(45) A finite field is represented by a set of values of a finite number. The number of values in said set of values represents the order of the finite field. In the following, the set of values of finite fields F=GF will be denoted by GF(q), q designating the order of the finite field GF. The components of the digital input block 24 and the components of the codeword vectors comprised in the codebook C.sub.opt are accordingly selected from the set of values GF(q).
(46) Non-binary error correcting codes constructed over Galois fields correspond to GF(q) with q>2. Non-binary error correcting codes can advantageously be used for high spectral efficiency coding.
(47) Using coded modulations, the modulator 27 may be configured to determine a modulated sequence s from the received codeword vector c, by applying the modulation mapping .sub.opt determined by the coded modulation device 21.
(48) The modulation mapping .sub.opt associates each value in the set of values GF(q) with a symbol from the set of symbols . The generated modulated sequence s is accordingly a sequence of symbols, each symbol being represented as a point in the signal constellation associated with the modulation scheme 22. The signal constellation comprises a number of points (hereinafter referred to as signal points or constellation points), each point corresponding to a symbol in the set of symbols
.
(49) According to some embodiments, the modulation scheme 22 may be one-dimensional. In such embodiments, the signal constellation is a one-dimensional diagram in which the signal points belong to a same line. Exemplary one-dimensional modulation schemes 22 comprise pulse amplitude modulations (PAM).
(50) According to other embodiments, the modulation scheme 22 may be two-dimensional. In such embodiments, the signal constellation is a diagram in the complex plane represented by the two-dimensional Euclidean space. More specifically, the signal constellation is a sub-set of the two-dimensional real field .sup.2, in which each signal point is represented by a couple of coordinates that depend on the modulation scheme used 22. The symbols are accordingly represented as complex numbers modulating a cosine and sine carrier signal with the real and imaginary parts and can be sent using two carriers on the same frequency, referred to as quadrature carriers.
(51) The real and imaginary axes in the complex plane are respectively called the in phase and the quadrature axes. Accordingly, for two-dimensional modulation schemes 22, a modulation mapping associates each value of the components c.sub.j in the set of values GF(q) with a symbol s.sub.j according to:
:GF(q).fwdarw..sup.2
c.sub.j(c.sub.j)=(.sup.I(c.sub.j),.sup.Q(c.sub.j))=s.sub.j=(s.sub.j.sup.I,s.sub.j.sup.Q)(2)
(52) In equation (2), s.sub.j.sup.I=.sup.I(c.sub.j) (respectively s.sub.j.sup.Q=.sup.Q(c.sub.j)) designates the in-phase (respectively the quadrature) coordinate of the mapped component (c.sub.j).
(53) Exemplary two-dimensional modulation schemes 22 comprise frequency-shift keying (FSK), phase-shift keying (PSK), and quadrature amplitude modulation (QAM).
(54) The number of symbols comprised in the set of symbols (respectively the number of points in the signal constellation) represents the order of the modulation scheme 22.
(55) Still in other embodiments, the modulation scheme 22 may be a multi-dimensional modulation of a dimension higher than or equal to three. Exemplary multi-dimensional modulation formats comprise polarization-multiplexed QAM and polarization-multiplexed QPSK used for example in optical fiber communications.
(56) According to some embodiments, the modulation scheme 22 may be a higher-order modulation, i.e. a modulation of an order higher than or equal to four (4).
(57) According to some embodiments, the order of the modulation scheme 22 may be equal to the order of the finite field over which the parity-check error correcting code is constructed.
(58) According to other embodiments, the order of the modulation scheme 22 may be different from the order of the finite field GF.
(59) For any dimension and any order of the modulation scheme 22, the distance between each two different signal points in the corresponding signal constellation corresponds to the Euclidean distance between the two points in the Euclidean space ( for one-dimensional modulation schemes and
.sup.2 for two-dimensional modulation schemes). In particular, the minimum Euclidean distance of the modulation scheme 22 corresponds to the smallest Euclidean distance evaluated over all different signal points representing the different symbols in the set of symbols
.
(60) Accordingly, for two-dimensional modulation schemes 22, the Euclidean distance (s.sub.j,s.sub.l) between two signal points s.sub.js.sub.l can be written according to:
(s.sub.j,s.sub.l)={square root over ((s.sub.j.sup.Is.sub.l.sup.I).sup.2+(s.sub.j.sup.Qs.sub.l.sup.Q).sup.2)}(3)
(61) The minimum Euclidean distance of the modulation scheme 22 is then given by:
(62)
(63) It should be noted that, for coded modulations, the minimum Euclidean distance of any modulation scheme 22 does not depend on the modulation mapping.
(64) According to some embodiments, the modulation scheme 22 may be predefined.
(65) According to other embodiments, the transmitter 11 may be configured to determine the modulation scheme 22 for example according to the satisfaction of a transmission power constraint and/or depending on the minimum Euclidean distance of the signal constellation corresponding to said modulation scheme 22 and/or depending on the coding rate and/or the length of the error correcting code, and/or on the signal-to-noise ratio.
(66) For coded modulations and using the definition of a modulation mapping and the Euclidean distance of the modulation scheme 22, any two values c.sub.jv.sub.j in the set of values GF(q) mapped using a modulation mapping onto two symbols s.sub.j=(c.sub.j), z.sub.j=(v.sub.j) may be associated with an Euclidean distance, denoted by (c.sub.j, v.sub.j). The Euclidean distance
(c.sub.j, v.sub.j) may be determined using the Euclidean distance between the signal points representing the symbols associated with the two values c.sub.jv.sub.j.
(67) For two-dimensional modulation schemes 22, the Euclidean distance (c.sub.j, v.sub.j) may be given by:
(c.sub.j,v.sub.j)=
(s.sub.j,z.sub.j)={square root over ((.sup.I(c.sub.j).sup.I(v.sub.j)).sup.2+(.sup.Q(c.sub.j).sup.Q(v.sub.j)).sup.2)}={square root over ((s.sub.j.sup.Iz.sub.j.sup.I).sup.2+(s.sub.j.sup.Qz.sub.j.sup.Q).sup.2)}(5)
(68) Accordingly, any pair of different codeword vectors c=(c.sub.1, . . . , c.sub.N.sub. may be associated with an Euclidean distance
(c, v) of a square value given by:
(c,v)=.sub.j=1.sup.N.sup.
(c.sub.j,v.sub.j)(6)
(69) It should be noted that the Euclidean distance (c, v) depends on the values of the components of the codeword vectors which depend on the non-zero coefficients of the parity-check equation and on the modulation mapping. Furthermore, the distance can be adapted to the type of the transmission channel. For example, for flat fading channels, a distance product can be used.
(70) Using the definition in the Euclidean space of the Euclidean distance (c, v) associated with each pair of codeword vectors generated using the one parity-check code
and mapped using the mapping , a set {
, } of a non-binary parity-check error correcting code
and a modulation mapping may be associated with one or more metrics, each metric being evaluated for a given Euclidean distance value.
(71) According to some embodiments, a metric denoted by (d.sub.l) evaluated for a given Euclidean distance value d.sub.l may represent the number of distinct pairs of codeword vectors cv satisfying the parity-check equation E and generated by the one parity-check code
that are associated with an Euclidean distance
(c, v) equal to the Euclidean distance value d.sub.l according to:
(d.sub.l)=|(c,v)C.sup.2,
(c,v)=d.sub.l.sup.2|(7)
(72) According to some embodiments, the metrics (d.sub.l) may be evaluated for each possible Euclidean distance value between two different codeword vectors in the codebook C corresponding to the one parity-check code
. The enumeration of the metrics
(d.sub.l) evaluated for all the possible Euclidean distance values d.sub.l defines a distance spectrum of the set {
, } of the parity-check code and the modulation mapping.
(73) According to some embodiments, the coded modulation device 21 may be configured to determine the coded modulation scheme {.sub.opt(F, E), .sub.opt} based on the evaluation of the distance spectrum. More specifically, it depends on the values of one or more metrics each evaluated for a given Euclidean distance.
(74) Referring to
(75) Accordingly, the coded modulation device 21 may comprise a calculation unit 31, configured to determine one or more candidate modulation mappings .sup.(t) and one or more candidate parity-check equations E.sup.(t) for t=1, . . . , T.
(76) The determined candidate modulation mappings and candidate parity-check equations may be grouped into candidate sets denoted by {E.sup.(t), .sup.(t)} for t=1, . . . , T. A candidate set {E.sup.(t), .sup.(t)} comprises a candidate parity-check equation E.sup.(t) and a candidate modulation mapping denoted by (.sup.t).
(77) Accordingly, the candidate set {E.sup.(t), .sup.(t)} is equivalent to the candidate set {{h.sub.1, . . . , h.sub.N.sub.
(78) According to some embodiments, the calculation unit 31 may be configured to determine the candidate sets f{{h.sub.1, . . . , h.sub.N.sub.
(79) At a first step, the calculation unit 31 may be configured to determine one or more candidate modulation mappings .sup.(t). A candidate modulation mapping consists of a labeling of each symbol in the set of symbols with corresponding values in the set of values in GF(q).
(80) According to some embodiments, the calculation unit 31 may be configured to determine the candidate modulation mappings .sup.(t) for t=1, . . . , T from a predefined set of modulation mappings. Exemplary modulation mappings comprise the Gray mappings and the natural mappings.
(81) Gray mappings are based on a labeling of symbols such that the labels, associated with each two adjacent signal points in the signal constellation, differ in only one position. Gray mappings may be used for example in some applications for Euclidean distance preservation.
(82) Natural mappings are based on a labeling of symbols in an integer-wise ascending order. Natural mappings may be used, for example, in applications which require robustness against carrier phase errors.
(83) Further, the modulation mappings may be any mappings based on a labeling of symbols so that each two adjacent points in the signal constellation differ at least of one position (one bit using binary representations of symbols).
(84) At a second step, the calculation unit 31 may be configured to determine, for each candidate modulation mapping .sup.(t), a candidate set of coefficients {h.sub.1, . . . h.sub.N.sub.
(85) According to some embodiments, the calculation unit 31 may be configured to determine, for each candidate modulation mapping .sup.(t), the values of the unknown coefficients comprised in the candidate set of coefficients {h.sub.1, . . . , h.sub.N.sub.
(86) Given the determined values of the non-zero coefficients defining the parity-check equation, each candidate set {{h.sub.1, . . . , h.sub.N.sub..sup.(t)(GF, E.sup.(t)) and a number of codeword vectors that belong to the codebook, denoted C.sup.(t), generated using the candidate parity-check equation E.sup.(t).
(87) Using the determined candidate modulation mapping .sup.(t), for t=1, . . . , T, each pair of different codeword vectors c.sup.(t)v.sup.(t) in the codebook C.sup.(t) may be associated with an Euclidean distance (c.sup.(t), v.sup.(t)) of a square value given according to equation (6).
(88) Each candidate set {E.sup.(t), .sup.(t))} or equivalently each candidate set {{h.sub.1, . . . , h.sub.N.sub.(d.sub.l) designates the metric associated with the t.sub.th candidate set {{h.sub.1, . . . , h.sub.N.sub.
(89) The coded modulation device 21 may further comprise a selection unit 35 configured to select one set denoted by {E, .sup.(opt)} from the candidate sets {E.sup.(t), .sup.(t)} for t=1, . . . , T according to an optimization criterion applied to at least one metric among the determined one or more metrics. The selected set {E, .sup.(opt)}={.sup.(opt)(GF, E.sup.(opt)), .sup.(opt)} provides the coded modulation scheme as {
.sub.opt(F, E), .sub.opt}={
.sup.(opt)(GF, E.sup.(opt)), .sup.(opt)}. It should be noted that the optimization criterion is based on a joint optimization of the non-zero coefficients of the parity-check equation and the modulation mapping.
(90) According to some embodiments, the selection unit 35 may be configured to select the set {E, .sup.(opt)} according to the minimization of at least one metric from the evaluated one or more metrics.
(91) For example, in embodiments involving the evaluation of one metric for a given distance d.sub.1, the selected set {E, .sup.(opt))} may correspond to the candidate set associated with the smallest metric (d.sub.l) for t=1, . . . , T such that:
(92)
(93) According to some embodiments, the number T of the possible candidate modulation mappings may depend on the order of the modulation scheme 22.
(94) According to some embodiments, the number and/or values of the Euclidean distances d.sub.l,l=1, . . . , L considered for the evaluation of the distance spectrum may be determined based on the evaluation of the decoding error probability, at the receiver 15.
(95) The decoding error probability, in particular the pair-wise error probability, is related to the Euclidean distance of the coded modulations. For simplification reasons, the following description of the decoding error probability analysis at the receiver 15 will be made based on a coded modulation scheme denoted by {, }.
(96) Referring to
(97) According to some embodiments in which the transmission channel 13 is modeled by an Additive White Gaussian Noise (AWGN) channel, the channel output 41 z can be written as a function of the transmitted codeword vector c according to:
z=(c)+w(9)
(98) In equation (9), the vector w=(w.sub.1, . . . , W.sub.N.sub.
(99)
with N.sub.0 representing the power spectral density of the AWGN.
(100) According to some embodiments, the receiver 15 may comprise a demodulator 43 configured to determine a digital sequence y=(y.sub.1, . . . , y.sub.N.sub.
(101) The receiver 15 may further comprise an ECC decoder 45 configured to determine the digital output data block 47 from the received digital sequence y, by applying an ECC decoding algorithm and according to a decoding criterion.
(102) According to some embodiments, the ECC decoder 45 may be configured to implement an ECC decoding algorithm, according to the Maximum Likelihood (ML) decoding criterion. For a given signal-to-noise ratio (SNR), the pair-wise error probability under ML decoding can be expressed as:
Pr(c.fwdarw.v)=Prob(z(c).sup.2>z(v).sup.2)(10)
(103) In equation (10), Pr(c.fwdarw.v) designates the pair-wise error probability corresponding to the error probability that for a transmitted codeword vector c, a different codeword vector v is estimated.
(104) For AWGN channels, the pair-wise error probability in equation (10) can be written:
(105)
(106) In equation (12), Q(.) designates the Q-function defined by:
(107)
(108) Using the union bound inequality, the probability Pe() of a decoding error on a received codeword vector can be upper bounded according to:
(109)
(110) In equation (13), the Euclidean distance d.sub.l corresponds to a possible Euclidean distance associated to any pair of codeword vectors in the codebook C. Details on the derivation of the union bound inequality can be found in J. Proakis, M. Salehi, Digital Communications, Fifth Edition, Chapter 7, p. 400- 492, Mc Graw-Hill International Edition (2008).
(111) According to the upper bound expression in inequality (13), the decoding error probability may depend on the metrics (d.sub.l) evaluated for one or more Euclidean distances d.sub.l,l=1, . . . , L. For example, at high signal-to-noise ratio, the upper bound of the decoding error probability is dominated by the first term corresponding to d.sub.1. As a result, the determination of the one parity-check error correcting code
.sup.(opt) (k, n, GF, E.sup.(opt)) and the modulation mapping .sup.(opt), based on the distance spectrum evaluation, enables improving the reduction of the decoding error probability.
(112) According to some embodiments, the number of the Euclidean distances considered for the distance spectrum evaluation may depend on the signal-to-noise ratio. For example, for large SNR values, the distance spectrum may be evaluated using only the smallest possible Euclidean distance which concerns the pairs of codeword vectors associated with the minimum Euclidean distance in the Euclidean space. Indeed, for high SNR values, the upper bound on the decoding error probability can be approximated by the first dominating terms which involve the smallest values of the possible Euclidean distances between the pairs of codeword vectors.
(113) According to some embodiments, the ECC decoder 45 may implement the Viterbi decoder as an ECC decoding algorithm.
(114) According to other embodiments, the ECC decoder 45 may be any Belief Propagation iterative decoder such as the Extended Min-Sum (EMS) algorithm.
(115) Further, according to some embodiments in which the order of the modulation scheme 22 and the order of Galois field are equals and are a power of two, the calculation unit 31 may be configured to determine one or more candidate sets {{h.sub.1, . . . , h.sub.N.sub.
(116) The following description of some embodiments will be made with reference to non-binary linear one parity-check codes, constructed over finite fields of orders q=2.sup.m and to q-QAM modulation schemes 22, for illustration purpose only. However, the skilled person will readily understand that the various embodiments apply to non-binary one parity-check codes constructed over any non-zero commutative division ring and to any q-ary modulation scheme 22 such as q-FSK modulations and hexagonal modulations. Exemplary non-binary linear error correcting codes comprise non-binary LDPC codes, non-binary convolutional codes, and non-binary Turbo codes.
(117) According to some embodiments, the modulation scheme 22 may be a rectangular q-QAM modulation such as an 8-QAM modulation.
(118) According to other embodiments, the modulation scheme 22 may be a square q-QAM modulation, such as 16-QAM and 64-QAM modulations.
(119) For q-QAM modulations, the set of symbols comprises q symbols. The corresponding signal constellation is a subset of the integer field
[i], comprising q signal points. More specifically, for square modulations, the coordinates s.sub.j.sup.I and s.sub.j.sup.Q of a symbol s.sub.j
take values in the interval [({square root over (q)}1), ({square root over (q)}1)].
(120) Each value from the set of values GF(q) is associated with a symbol from the set of symbols and is represented by a signal point in the signal constellation.
(121) Using non-binary error correcting codes, the calculation unit 31 may be configured to associate a binary vector of length m with each value in the set of values GF(q). Accordingly, a vector in the form c.sub.i=(c.sub.i.sup.0, c.sub.i.sup.1, . . . , c.sub.i.sup.m1).sub.2 comprising m bits may be associated with each element c.sub.iGF(q).
(122) According to some embodiments, the calculation unit 31 may be further configured to determine at least one candidate modulation mapping (hereinafter referred to as initial candidate modulation mapping), denoted by .sup.(0), using the binary vectors associated with the values comprised in the set of values GF(q) such that it associates a symbol from the set of symbols with the binary vector associated with each value in the set of values GF(q) defined by:
.sup.(0):GF(q).fwdarw..sup.2
c.sub.j=(c.sub.i.sup.0,c.sub.i.sup.1, . . . , c.sub.i.sup.m1).sub.2.sup.(0)(c.sub.j)(14)
(123) According to some embodiments, the initial candidate modulation mapping .sup.(0) may be a Gray mapping, providing a signal constellation in which the binary vectors associated with each adjacent signal points differ in only one bit.
(124) According to some embodiments, the calculation unit 31 may be configured to determine the candidate modulation mappings .sup.(t) for t=1, . . . , T using vector permutation operations.
(125) Accordingly, the calculation unit 31 may be configured to determine T vector permutation operations denoted by .sub.t for t=1, . . . , T. A vector permutation .sub.t operates on the binary vectors associated with the values in GF(q) for permuting at least some of the bits comprised therein such that:
.sub.t:c.sub.i=(c.sub.i.sup.0, . . . , c.sub.i.sup.m1).sub.2.sub.t(c.sub.i)=(.sub.t(c.sub.i.sup.0), . . . , .sub.t(c.sub.i.sup.m1)).sub.2(15)
(126) A permutation operation .sub.t provides a permuted binary vector .sub.t(c.sub.i)=(.sub.t(c.sub.i.sup.0), . . . , .sub.t(c.sub.i.sup.m1)).sub.2 in association with each value c.sub.iGF(q).
(127) Given the determined permutation operations, the calculation unit 31 may be configured to determine the candidate modulation mappings .sup.(t) for t=1, . . . , T by applying the initial candidate modulation mapping .sup.(0) to map the permuted binary vectors associated with the values in the set of values, such that .sup.(t)(c.sub.i)=.sup.(0)(.sub.t(c.sub.i)).
(128) Determining the candidate modulation mappings .sup.(t) using permutations of the binary representations associated with the values in the set GF(q) enables improving the Euclidean distance associated with the pairs of codeword vectors. As a result, the distance spectrum associated with the obtained coded modulation schemes can be improved.
(129) .sub.opt(F, E), .sub.opt} by a joint optimization of the coefficients of the parity-check equation of a non-binary one parity-check code and of modulation mappings, according to some embodiments.
(130) Step 51 may be performed to receive input parameters comprising the algebraic structure F, the type and order of the modulation scheme, a set of Euclidean distances d.sub.l,l=1, . . . , L, and the size N.sub.row of the parity-check constraint representing the number of non-zero coefficients defining the parity-check equation E.
(131) The following description will be made with reference to Galois fields of orders q2 defined by the finite set of values GF(q), for illustration purpose only. However, the skilled person will readily understand that any non-zero commutative division ring can be used.
(132) According to some embodiments, the set of coefficients defining the parity-check equation may comprise one or more unknown coefficients.
(133) The modulation scheme is represented by a set of symbols denoted by .
(134) According to some embodiments, the modulation scheme may be one-dimensional such as PAM.
(135) According to other embodiments, the modulation scheme may be two-dimensional such as FSK, PSK, and QAM modulations.
(136) According to other embodiments, the modulation scheme may be multi-dimensional, of a dimension higher than or equal to three (3).
(137) According to some embodiments, the modulation scheme may be a higher-order modulation, i.e. a modulation of an order higher than or equal to four (4).
(138) According to some embodiments, the order of the modulation scheme may be equal to the order of the finite field over which the one parity-check code is constructed.
(139) According to other embodiments, the order of the modulation scheme may be different from the order of the finite field GF.
(140) The determination of the coded modulation scheme {.sub.opt (k, n, F, E), .sub.opt} is based on a joint optimization of the coefficients of the parity-check equation and the modulation mapping used to map codeword vectors onto signal points according to the used modulation scheme.
(141) Given the input parameters, step 53 may be performed to determine one or more candidate sets {E.sup.(t), .sup.(t)}={{h.sub.1, . . . , h.sub.N.sub.
(142) According to some embodiments, the determination of each set {{h.sub.1, . . . , h.sub.N.sub.
(143) At a first step, T possible candidate modulation mappings .sup.(t) may be determined. A candidate modulation mapping associates each value in the set of values GF(q) with a symbol in the set of symbols .
(144) According to some embodiments, the number T of the possible candidate modulation mappings may depend on the order of the used modulation scheme, i.e. on the number of the symbols in the set of symbols .
(145) According to some embodiments, the candidate modulation mappings .sup.(t) may be determined from a predefined set of modulation mappings. Exemplary modulation mappings comprise Gray mappings and natural mappings.
(146) At a second step, a candidate set of coefficients {h.sub.1, . . . , h.sub.N.sub.
(147) According to some embodiments, the candidate set of coefficients {h.sub.1, . . . , h.sub.N.sub.
(148) Each candidate set {{h.sub.1, . . . , h.sub.N.sub..sup.(t)(GF, E.sup.(t)) and a number of codeword vectors that belong to the codebook C.sup.(t).
(149) Using the determined candidate modulation mapping .sup.(t), for t=1, . . . , T, each pair of different codeword vectors c.sup.(t)v.sup.(t) in the codebook C.sup.(t) may be associated with an Euclidean distance (c.sup.(t), v.sup.(t)) of a square value given according to equation (6).
(150) Each candidate set {E.sup.(t), .sup.(t)} may be associated with one or more metrics (d.sub.l) evaluated for the Euclidean distances d.sub.l,l=1, . . . , L according to equation (7).
(151) Step 55 may be performed to select a set denoted by {E, .sup.(opt)} from the determined one or more candidate sets {E.sup.(t), .sup.(t)} for t=1, . . . , T according to an optimization criterion applied to one or more metrics (d.sub.l).
(152) According to some embodiments, step 55 may be performed to select, among the one or more candidate sets {E.sup.(t), .sup.(t)} for=1, . . . , T, the candidate set associated with the smallest metric (d.sub.l) evaluated for at least one Euclidean distance d.sub.l, according to equation (9).
(153) According to some embodiments, the number L and/or the values of the Euclidean distances in the set of Euclidean distances d.sub.l,l=1, . . . , L may have been previously determined depending on the decoding error performance and the signal-to-noise ratio range.
(154)
(155) In embodiments of this type, the determination of one or more candidate modulation mappings may be performed based on binary representations of the values in the set of values GF(q)
(156) Step 61 may be performed to receive input parameters. The input parameters may comprise the type and order of the modulation scheme and the field of construction of the one parity-check code. The following description will be made with reference to q-QAM modulations and to Galois fields of an order equal to the order of the QAM modulation with q=2m modulations and to Galois fields of an order equal to the order of the QAM modulation with q=2m.
(157) At step 63, a binary vector in the form c.sub.i=(c.sub.i.sup.0, . . . , c.sub.i.sup.m1).sub.2 may be associated with each value c.sub.iGF(q).
(158) Step 65 may be performed to determine an initial candidate mapping .sup.(0) using the binary vectors associated with the values comprised in the set of values GF(q) such that it associates a symbol from the set of symbols with the binary vectors associated with each value in the set of values (q), according to equation (14).
(159) At step 67, a set of T vector permutations .sub.t for t=1, . . . , T may be determined. A vector permutation .sub.t operates for permuting at least some of the bits comprised in the binary vectors associated with the values in GF(q) such that .sub.t:c.sub.i=(c.sub.i.sup.0, . . . , c.sub.i.sup.m1).sub.2.sub.t(c.sub.i)=(.sub.t(c.sub.i.sup.0), . . . , .sub.t(c.sub.i.sup.m1)).sub.2.
(160) At step 69, a candidate modulation mapping .sup.(t), for t=1, . . . , T, may be determined using the initial mapping .sup.(0) and the permuted binary vectors associated with each value in the set of values GF(q), such that .sup.(t)(c.sub.i)=.sup.(0)(.sub.t(c.sub.i)).
(161) An evaluation of the decoding error probability coded modulation schemes constructed according to some embodiments has been performed by the inventors. 64-QAM modulations, non-binary one parity-check LDPC codes over GF(64), and three candidate modulation mappings .sup.(1), .sup.(2) and .sup.(3) determined using binary representations of values in GF(64) have been considered.
(162)
(163) The candidate modulation mapping .sup.(1) is a Gray mapping and corresponds to the Gray mapping used in the DVB-T2 standard. The candidate modulation mappings .sup.(2) and .sup.(3) can be obtained from the candidate modulation mapping .sup.(1), using the vector permutations .sub.2 and .sub.3, defined by:
.sub.2:c.sub.i=(c.sub.i.sup.5,c.sub.i.sup.4,c.sub.i.sup.3,c.sub.i.sup.2,c.sub.i.sup.1,c.sub.i.sup.0).sub.2.sub.2(c.sub.i)=(c.sub.i.sup.3,c.sub.i.sup.0,c.sub.i.sup.2,c.sub.i.sup.1,c.sub.i.sup.5,c.sub.i.sup.4).sub.2(16)
.sub.3:c.sub.i=(c.sub.i.sup.5,c.sub.i.sup.4,c.sub.i.sup.3,c.sub.i.sup.2,c.sub.i.sup.1,c.sub.i.sup.0).sub.2.sub.2(c.sub.i)=(c.sub.i.sup.4,c.sub.i.sup.2,c.sub.i.sup.1,c.sub.i.sup.0,c.sub.i.sup.5,c.sub.i.sup.3).sub.2(17)
(164) Moreover, the non-binary one parity-check LDPC code is assumed regular with a number of non-zero coefficients in the parity-check equation given by N.sub.row=4.
(165) The optimization of the values of the four non-zero coefficients in the set of coefficients defining the parity-check equation as well as the selection of the optimal coded modulation scheme are based on the evaluation of two metrics considering the Euclidean distances d.sub.1=2{square root over (3)} and d.sub.2=4. These two Euclidean distances correspond to the dominating terms in the upper bound of the error probability that determine the performance of the coded modulation scheme at the high signal-to-noise ratio regime, i.e. asymptotically.
(166) The codeword vectors satisfying the parity-check equation can be in the configuration of the one parity-check code used in association with the results of
(167) First, for each candidate modulation mapping .sup.(1), .sup.(2) and .sup.(3), the optimal values of the four non-zero coefficients in the set of coefficients defining the parity-check equation have been determined by performing an exhaustive search over GF(64)in a way that they minimize the distance spectrum evaluated considering the Euclidean distances d.sub.1=2{square root over (3)} and d.sub.2=4. Using a notation of each non-zero value in GF(64)in the form .sup., =0, . . . , 62, the optimal values of the four non-zero coefficients associated with the modulations mappings .sup.(1), .sup.(2) and .sup.(3) are respectively given by {.sup.0, .sup.9, .sup.22, .sup.37}.sup.(1), {.sup.0, .sup.9, .sup.22, .sup.37}.sup.(2), and {.sup.0, .sup.8, .sup.16, .sup.42}.sup.(3). The obtained values provide the three following sets:
{{.sup.0, .sup.9, .sup.22, .sup.37}.sup.(1), .sup.(1)}, {{.sup.0, .sup.9, .sup.22, .sup.37}.sup.(2), .sup.(2)}, {{.sup.0, .sup.8, .sup.16, .sup.42}.sup.(3), .sup.(3)}(18)
(168) The three sets provide respectively the couples {.sup.(1), .sup.(1)}, {
.sup.(2), .sup.(2)} and {
.sup.(3), .sup.(3)} and they are associated each with two metrics
(d.sub.1) and
(d.sub.2) for t=1, 2, 3 evaluated for two Euclidean distance d.sub.1 and d.sub.2. The metrics are defined by:
.sub.(1)(d.sub.1)=516096;
(d.sub.2)=386672(19)
(d.sub.1)=909312;
(d.sub.2)=2910208(20)
(d.sub.1)=385024;
(d.sub.2)=3499008(21)
(169) The selection of the set providing the optimal coded modulation scheme among the determined three sets is performed according to the values of the metrics given in equations (20)-(22). As the couple {.sup.(3), .sup.(3)} is associated with the smallest value of the metric
(d1), the set {{.sup.0, .sup.8, .sup.16, .sup.42}.sup.(3), .sup.(3)} may be selected.
(170) .sup.(3), .sup.(3)}.
(171) .sup.(3), .sup.(3)} provides better performances that the couples {
.sup.(1), .sup.(1)} and {
.sup.(2), .sup.(2)}. It should be noted that the performance gain obtained advantageously does not entail any additional computational complexity at the transmitter 11 nor at the receiver 15.
(172) The methods and devices described herein may be implemented by various means. For example, these techniques may be implemented in hardware, software, or a combination thereof. The processing elements of the coded modulation device 21 may be implemented for instance according to a hardware-only configuration (as an example, in one or more FPGA, ASIC or VLSI integrated circuits with the corresponding memory) or according to a configuration using both VLSI and DSP.
(173) While embodiments of the invention have been illustrated by a description of various examples, and while these embodiments have been described in considerable detail, it is not the intent of the applicant to restrict or in any way limit the scope of the appended claims to such details. Additional advantages and modifications will readily appear to those skilled in the art. The invention in its broader aspects is therefore not limited to the specific details, representative methods, and illustrative examples shown and described.
(174) Further, even if the invention has advantages in an application to communication systems, it should be noted that the invention is not limited to such communication devices and may be integrated in numerous devices such as data storage devices.
(175) The methods described herein can be implemented by computer program instructions supplied to the processor of any type of computer, to produce a machine with a processor that executes the instructions to implement the functions/acts specified herein. These computer program instructions may also be stored in a computer-readable medium that can direct a computer to function in a particular manner. To that end, the computer program instructions may be loaded onto a computer to cause the performance of a series of operational steps and thereby produce a computer implemented process such that the executed instructions provide processes for implementing the functions specified herein.