This application relates generally to message passing (MP) decoders for low-density parity-cheek (LDPC) codes, including MP decoders for non-binary LDPC codes.
Message-passing (MP) algorithms are a class of decoding algorithms that can be used to decode binary parity-check codes. They can perform very close to maximum likelihood (ML) decoding but with much less complexity, allowing for longer codes to be used with better error rates.
At a high-level, MP algorithms involve an iterative exchange of messages between two types of nodes: variable-nodes that each correspond to a respective coded bit, and check-nodes that each correspond to a respective parity-check of the binary parity-check code. Each variable-node exchanges messages with the check-nodes that correspond to the parity-checks that the variable-node's respective coded bit is constrained by. The messages provide an estimation of the variable-node's respective coded bit.
During each iteration, a new message to be transmitted from a variable-node to a check-node or vice-versa is computed in an extrinsic manner such that the message does not depend on the last message received in the opposite direction. For example, a new message transmitted from a check-node to a variable-node is computed by the check-node such that the message does not depend on the last message received in the opposite direction from the variable-node. This constraint on the computation of new messages helps variable-nodes obtain new information about their respective coded bits with each additional iteration, resulting in a steady improvement, rather than self-confirmation, of the variable-node's estimation of its respective coded bit.
In general, a message received by either a variable-node or check-node will undesirably begin to depend on one or more of the messages previously sent by that node after enough iterations, resulting in self-confirmations. To prevent self-confirmations from impacting decoding performance to a significant degree, self-confirmations should occur only after a sufficiently number of iterations have been performed such that the estimations of the coded bits have been sufficiently improved. This requires the number of messages sent and received by the variable-nodes and check-nodes during each iteration to be small or, equivalently, the binary parity-check matrix of the binary parity-check code to be sparse.
Low-density parity-check (LDPC) codes are a type of parity-check code defined by a sparse parity-check matrix, making them ideal for effective decoding by a MP decoder. In fact, LDPC codes were introduced for the purpose of being decoded by MP decoders.
Although described above as being used to decode binary parity-check codes, MP decoders can also be used to decode non-binary parity-check codes. Conventional non-binary MP decoders decode non-binary LDPC codes over finite Galois fields or, more generally, over general linear groups. However, these two algebraic structures do not encompass all possible algebraic structures for non-binary LDPC codes that can be decoded using a MP decoder, leaving out other algebraic structures that can potentially lead to improved decoding performance.
The accompanying drawings, which are incorporated herein and form a part of the specification, illustrate the present disclosure and, together with the description, further serve to explain the principles of the disclosure and to enable a person skilled in the pertinent art to make and use the disclosure.
The present disclosure will be described with reference to the accompanying drawings. The drawing in which an element first appears is typically indicated by the leftmost digit(s) in the corresponding reference number.
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the disclosure. However, it will be apparent to those skilled in the art that the disclosure, including, structures, systems, and methods, may be practiced without these specific details. The description and representation herein are the common means used by those experienced or skilled in the art to most effectively convey the substance of their work to others skilled in the art. In other instances, well-known methods, procedures, components, and circuitry have not been described in detail to avoid unnecessarily obscuring aspects of the disclosure.
References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
For purposes of this discussion, the term “module” or “node” (e.g., check-node or variable-node) shall be understood to include software, firmware, or hardware (such as one or more circuits, microchips, processors, and/or devices), or any combination thereof. In addition, it will be understood that each module or node can include one, or more than one, component within an actual device, and each component that forms a part of the described module or node can function either cooperatively or independently of any other component forming a part of the module or node. Conversely, multiple modules or nodes described herein can represent a single component within an actual device. Further, components within a module or node can be in a single device or distributed among multiple devices in a wired or wireless manner.
The present disclosure is directed to message passing (MP) decoders for non-binary LDPC codes over non-associative finite division near rings. A non-associative finite division near ring is a type of algebraic structure that includes a finite set of elements on which the operations of addition and multiplication are defined. The operation of addition may be commutative, associative, and closed, and may have an additive identity for all elements in the finite set. The operation of addition further has an additive inverse for all elements in the finite set. The operation of multiplication is closed but not commutative or associative, and has a multiplicative inverse but does not have a multiplicative identity for all elements in the finite set. The two operations of addition and multiplication may be related by the distributive property.
The properties of the multiplication operation in non-associative finite division near rings differ from the properties of the multiplication operation in general linear groups and finite Galois fields. Specifically, unlike non-associative finite division near rings, multiplication is associative in general linear groups and finite Galois fields. Because of this difference, a non-associative finite division near ring can be described by Cayley tables that cannot be used to describe a general linear group or finite Galois fields that includes the same finite set of elements.
A Cayley table describes the multiplication operation of an algebraic structure by arranging one set of possible products for all combinations of two elements in the algebraic structure in a square table similar to a multiplication table. Because any set of products can be used for an algebraic structure so long as the chosen set does not violate one of the algebraic structure's properties (e.g., the associative property of multiplication), an algebraic structure that includes a particular finite set of elements may be described by several different Cayley tables.
The MP decoders of the present disclosure are configured to decode non-binary LDPC codes over non-associative finite division near rings by performing multiplication operations in accordance with Cayley tables that cannot be used by conventional MP decoders for non-binary LDPC codes over finite Galois fields and general linear groups. It can be shown that the MP decoders of the present disclosure can provide better block error performance than the conventional MP decoders. Before further describing these and other features of the present disclosure, an exemplary operating environment in which embodiments of the present disclosure can be implemented is provided.
2. Exemplary Operating Environment
In operation, messages of length K to be transmitted are first received by a non-binary encoder 108 of transmitter 102. Non-binary encoder 108 is configured to encode the messages in accordance with a block code by producing a unique code word of length N for each message using algebraic operations over the message, where N>K and the N codeword symbols and K information symbols are chosen from the non-binary alphabet of size q>2. Because N is greater than K, the qK possible message sequences are mapped onto only a fraction of the qN different N-length codewords.
In the embodiment of
After the messages have been encoded, the resulting N-length codewords are mapped by a mapper 110 onto complex channel symbols and up-converted by an up-converter 112 to one or more carrier frequencies for transmission over channel 106. For the sake of simplicity, it is assumed that each non-binary code symbol is mapped into a different channel symbol by mapper 110. However, embodiments of the present disclosure are not so limited and can be used in communication systems that use different non-binary code symbol to channel symbol mappings as would be appreciated by one of ordinary skill in the art.
On the side of receiver 104 down-converter 114 and de-mapper 116 first down-convert the received carriers to baseband and de-map the channel symbols into soft non-binary code symbol values of the encoded messages. The soft non-binary code symbol values can represent, for example, the likelihood that a received channel symbol (or, more precisely, its corresponding complex sample from the baseband signal) represents a particular non-binary code symbol.
Non-binary decoder 118 is a message passing (MP) decoder configured to perform iterative decoding to determine the transmitted codewords (and thereby the transmitted messages) from the soft symbol values provided by de-mapper 116.
3. General MP Decoder Structure for Non-Binary LDPC Codes
Before describing specific embodiments of the present disclosure, a description of a generalized MP decoder for non-binary LDPC codes is provided. The following notations are used in the description of the generalized MP decoder and are listed here for quick reference:
In general, a non-binary LDPC code over a generic algebraic structure Gq with q elements (or non-binary symbols) is defined by a sparse q-ary parity-check matrix H with dimension N×M. A codeword is a vector x=(x1, . . . , xN)∈GqN that satisfies HxT=0.
The generalized MP decoder can be represented by a bipartite graph , meaning that the graph is separated into two distinct sets of nodes and edges of the graph only connect nodes of different types. The two sets of nodes are variable-nodes ={ν1, . . . , νN} and check-nodes ={c1, . . . , cM}. A variable-node νn and a check-node cm are connected by an edge if and only if the element hm,n in H is non-null, where the edge has a weight equal to hm,n. Put differently, each variable-node νn corresponds to a coded bit and each check-node cm corresponds to a parity-check equation of the non-binary LDPC code. A variable-node νn and a check-node cm are connected by an edge if and only if the corresponding parity-check equation of the check-node cm constrains the corresponding coded bit of the variable-node νn. The notation (νn) is used to denote the set of check-nodes connected to the variable-node νn, and the notation (cm) is used to denote the set of variable-nodes connected to the check-node cm.
MP decoders are iterative decoders that pass messages in both directions of the edges. During each iteration, a new message to be transmitted over an edge from a variable-node νn to a check-node cm or vice-versa is computed in an extrinsic manner such that the message is a function of all the messages received by the sender node from its neighbor nodes except the message received over the same edge that the new message is sent. For example, a new message to be transmitted over an edge from a check-node cm to a variable-node νn is computed by the check-node cm such that the message is a function of all messages received from its neighbor variable-nodes (cm) except the message received from the variable-node νn.
It can be verified that a variable-node νn and a check-node cm in MP decoder 202 are connected by an edge if and only if the element hm,n in parity-check matrix 200 is non-null, where the edge has a weight equal to hm,n that is applied by a permutation network 204 in a manner explained later in the discussion below. Put differently, as provided above, each variable-node νn corresponds to a coded bit and each check-node cm corresponds to a parity-check equation of the non-binary LDPC code. A variable-node νn and a check-node cm are connected by an edge if and only if the corresponding parity-check equation of the check-node cm constrains the corresponding coded bit of the variable-node νn. For example, in
During each iteration of the MP algorithm performed by MP decoder 202, a new message to be transmitted over an edge from a variable-node νn to a check-node cm or vice-versa is computed in an extrinsic manner as described above. Because MP decoder 202 is configured to decode a non-binary LDPC code over the generic algebraic structure Gq, the exchanged messages are q-tuples, with each element of the q-tuple corresponding to a different one of the q symbols in Gq. The exchange and computation of such messages between a variable-node νn and check-node cm is illustrated in
Specifically, diagram 300 in
Diagram 302 in
As further shown in
It should be noted that, during each iteration, the variable-node νn typically computes a new a posteriori value for the n-th transmitted symbol as a function of the a priori information γn and the last messages βm,n received from the variable-node νn from all its neighbor check-nodes cm∈(νn). MP decoder 202 can stop performing iterations when an estimate of the transmitted codeword, estimated using the a posteriori information from all variable-nodes νn in MP decoder 202, is a valid codeword x or after a maximum number of iterations have been performed.
The different MP decoding algorithms, such as the sum-product, min-sum, min-max, Fourier transform decoding algorithms, and various layered decoding algorithms, to name a few, are all consistent with the functionality described above for the generalized MP decoder 202 and, therefore, can be performed by the generalized MP decoder 202. These different MP decoding algorithms generally differ only in the content of the messages exchanged between variable- and check-nodes and in how the messages are computed.
Conventional non-binary MP decoders decode non-binary LDPC codes over finite Galois fields or, more generally, General Linear Groups. As a result, the multiplication of messages by the weight (or inverse weight) of the edge they are transmitted over would be performed in accordance with a Cayley table that is consistent with all of the properties of finite Galois fields or General Linear Groups, depending on which of the two algebraic structures the non-binary LDPC code is over.
A Cayley table describes the multiplication operation of an algebraic structure by arranging one set of possible products for all combinations of two elements in the algebraic structure in a square table similar to a multiplication table. Because any set of products can be used for an algebraic structure so long as the chosen set does not violate one of the algebraic structure's properties (e.g., the associative property of multiplication), an algebraic structure that includes a particular finite set of elements may be described by several different Cayley tables.
Assuming the generalized MP decoder 200 described above in regard to
Permutation network 204 shown in
The present disclosure is directed to MP decoders for decoding non-binary LDPC codes over non-associative finite division near rings. The MP decoders of the present disclosure can be implemented in a communication system, such as communication system 100 in
A non-associative finite division near ring is a type of algebraic structure that includes a finite set of elements on which the operations of addition and multiplication are defined. The operation of addition may be commutative (a+b=b+a), associative (a+(b+c)=(a+b)+c), and closed (sum of any two elements in the finite set is also an element of the set), and may have an additive identity (a ‘0’ element such that a+0=a) for all elements in the finite set. The operation of addition further has an additive inverse (for an element ‘a’ there exists an element ‘b’ such that a+b=0) for all elements in the finite set. The operation of multiplication is closed (product of any two elements in the finite set is also an element of the set) but not commutative (ab≠ba) or associative (a(bc)=(ab)c), and has a multiplicative inverse (for an element a there exists an element c such that ac=1) for all elements in the finite set but not a multiplicative identity (a ‘1’ element such that a1=a). The two operations of addition and multiplication may be related by the distributive property (a(b+c)≠ab°ac).
The properties of the multiplication operation in non-associative finite division near rings differ from the properties of the multiplication operation in general linear groups and finite Galois fields. Specifically, unlike non-associative finite division near rings, multiplication is associative in general linear groups and finite Galois fields. Because of this difference, a non-associative finite division near ring can be described by Cayley tables that cannot be used to describe a general linear group or finite Galois fields that includes the same finite set of elements.
For example, assuming the generalized MP decoder 202 described above is used to decode non-binary LDPC codes over FDNR(q=4) with a multiplication operation described by Cayley table 500, the multiplication of the message αm,n=(αm,n(α))α∈GF
Permutation network 204, shown in
In one embodiment, the network of wires or connections of permutation network 204 are dynamically reconfigurable such that the messages exchanged between the variable-nodes and check-nodes can be permuted in accordance with any one of a plurality of different Cayley tables. For example, MP decoder 202 can include a separate controller to configure permutation network 204 in accordance with a Cayley table for a non-associative finite division near ring when such a non-conventional algebraic structure is supported and used by a transmitter to encode codewords that MP decoder 202 is currently decoding. When such a non-conventional algebraic structure is not supported or used by a transmitter to encode codewords that MP decoder 202 subsequently later decodes, the separate controller can reconfigure permutation network 204 in accordance with a Cayley table for the conventional algebraic structure (e.g., a finite Galois field or general linear group) used by the transmitter to encode the codewords.
Cayley tables 500, 502, and 504 cannot be used by MP decoders for non-binary LDPC codes over finite Galois fields and general linear groups with q=4 because they do not obey at least the associative property of multiplication required by these algebraic structures. It can be shown that the MP decoders of the present disclosure for decoding non-Binary LDPC codes over a non-associative finite division near ring described by Cayley tables 500, 502, and 504 (and others) can provide better block error performance than the conventional MP decoders.
Referring now to
The method of flowchart 700 begins at step 702. At step 702, message is received from a check-node or variable-node by a permutation network, such as permutation network 204 in
After step 702, the method of flowchart 700 transitions to step 704. At step 704, the received message is permuted in accordance with a Cayley table that describes a multiplication operation of the non-associative finite division near ring, as well as the weight (or inverse weight) of the edge over which the message is transmitted. Some examples of such tables were given in
After step 704, the method of flowchart 700 transitions to step 706. At step 706, the permuted message is provided to a variable-node (assuming the message was originally received from a check-node) or to a check-node (assuming the message was originally received from a variable-node).
It should be noted that, although the above description has been centered on LDPC decoding, one of ordinary skill in the art will recognize that the non-associative finite division near rings are also applicable to the encoding process. For example, in
It will be apparent to persons skilled in the relevant art(s) that various elements and features of the present disclosure, as described herein, can be implemented in hardware using analog and/or digital circuits, in software, through the execution of instructions by one or more general purpose or special-purpose processors, or as a combination of hardware and software.
The following description of a general purpose computer system is provided for the sake of completeness. Embodiments of the present disclosure can be implemented in hardware, or as a combination of software and hardware. Consequently, embodiments of the disclosure may be implemented in the environment of a computer system or other processing system. An example of such a computer system 800 is shown in
Computer system 800 includes one or more processors, such as processor 804. Processor 804 can be a special purpose or a general purpose digital signal processor. Processor 804 is connected to a communication infrastructure 802 (for example, a bus or network). Various software implementations are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art(s) how to implement the disclosure using other computer systems and/or computer architectures.
Computer system 800 also includes a main memory 806, preferably random access memory (RAM), and may also include a secondary memory 808. Secondary memory 808 may include, for example, a hard disk drive 810 and/or a removable storage drive 812, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, or the like. Removable storage drive 812 reads from and/or writes to a removable storage unit 816 in a well-known manner. Removable storage unit 816 represents a floppy disk, magnetic tape, optical disk, or the like. which is read by and written to by removable storage drive 812. As will be appreciated by persons skilled in the relevant art(s), removable storage unit 816 includes a computer usable storage medium having stored therein computer software and/or data.
In alternative implementations, secondary memory 808 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 800. Such means may include, for example, a removable storage unit 818 and an interface 814. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, a thumb drive and USB port, and other removable storage units 818 and interfaces 814 which allow software and data to be transferred from removable storage unit 818 to computer system 800.
Computer system 800 may also include a communications interface 820. Communications interface 820 allows software and data to be transferred between computer system 800 and external devices. Examples of communications interface 820 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, etc. Software and data transferred via communications interface 820 are in the form of signals which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 820. These signals are provided to communications interface 820 via a communications path 822. Communications path 822 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link and other communications channels.
As used herein, the terms “computer program medium” and “computer readable medium” are used to generally refer to tangible storage media such as removable storage units 816 and 818 or a hard disk installed in hard disk drive 810. These computer program products are means for providing software to computer system 800.
Computer programs (also called computer control logic) are stored in main memory 806 and/or secondary memory 808. Computer programs may also be received via communications interface 820. Such computer programs, when executed, enable the computer system 800 to implement the present disclosure as discussed herein. In particular, the computer programs, when executed, enable processor 804 to implement the processes of the present disclosure, such as any of the methods described herein. Accordingly, such computer programs represent controllers of the computer system 800. Where the disclosure is implemented using software, the software may be stored in a computer program product and loaded into computer system 800 using removable storage drive 812, interface 814, or communications interface 820.
In another embodiment, features of the disclosure are implemented primarily in hardware using, for example, hardware components such as application-specific integrated circuits (ASICs) and gate arrays. Implementation of a hardware state machine so as to perform the functions described herein will also be apparent to persons skilled in the relevant art(s).
Embodiments have been described above with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed.
The foregoing description of the specific embodiments will so fully reveal the general nature of the disclosure that others can, by applying knowledge within the skill of the art, readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present disclosure. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance.