Method and system for decoding

Low-Density Parity-Check (LDPC) codes offer error correction at rates approaching the link channel capacity and reliable and efficient information transfer over bandwidth or return-channel constrained links with data-corrupting noise present. They also offer performance approaching channel capacity exponentially fast in terms of the code length, linear processing complexity, and parallelism that scales with code length. They also offer challenges relating to decoding complexity and error floors limiting achievable bit-error rates. Accordingly encoders with reduced complexity, reduced power consumption and improved performance are disclosed with various improvements including simplifying communications linking multiple processing nodes by passing messages where pulse widths are modulated with the corresponding message magnitude, delaying a check operation in dependence upon variable node states, running the decoder multiple times with different random number generator seeds for a constant channel value set, and employing a second decoder with a randomizing component when the attempt with the first decoder fails.

Skip to: Description  ·  Claims  ·  References Cited  · Patent History  ·  Patent History
Description
CROSS-REFERENCE TO RELATED APPLICATION

This patent application Ser. No. 18/633,907, filed Apr. 12, 2024, is a continuation application for reissue claiming the benefit of application for reissue Ser. No. 18/222,335, filed Jul. 14, 2023, which is a reissue application of U.S. Pat. No. 8,677,227 B2, which claims the benefit of U.S. Provisional Patent Application 61/385,602 filed Sep. 23, 2010 entitled “A Method and System for Decoding”; U.S. Provisional Patent Application 61/376,801 filed Aug. 25, 2010 entitled “A Method and System for Error Correction Decoding”; U.S. Provisional Patent Application 61/377,144 61/377,114 filed Aug. 26, 2010 entitled “A Method and System for Improving Error Correction Performance for Low Density Parity Check Codes”; and U.S. Provisional Patent Application 61/392,544 filed Oct. 13, 2010 entitled “Method for Improving Error Correction Decoding Performance and Devices Thereof.”; more than one reissue application has been filed for the reissue of U.S. Pat. No. 8,677,227 B2, including reissue application Ser. No. 18/222,335, and four reissue continuation applications, including the present reissue continuation application: Ser. No. 18/631,750 filed Apr. 10, 2024; Ser. No. 18/633,907 filed Apr. 12, 2024; Ser. No. 18/735,920 filed Jun. 6, 2024; and Ser. No. 18/738,473 filed Jun. 10, 2024.

FIELD OF THE INVENTION

The invention relates to decoding of error correction codes and in particular to a method and system of decoding Low Density Parity Check (LDPC) codes.

BACKGROUND OF THE INVENTION

Low-Density Parity-Check (LDPC) codes are a type of linear error-correcting codes that are part of the family of linear block codes, which transform a message consisting of a sequence of information symbols of an alphabet into a fixed length sequence of encoding symbols. With linear block codes the input message length is less than the number of encoding symbols thereby providing redundancy allowing for detection and correction of errors. LDPC codes were originally invented by Gallager, see “Low Density Parity-Check Codes” (Monograph, M.I.T. Press, 1963), but little attention was devoted to them at the time, primarily because the required decoding complexity was too high for the processing resources that were available. In 1993, the introduction of turbo codes by Berrou, Glavieux and Thitimajshima, see “Near Shannon Limit Error-correcting Coding and Decoding: Turbo-codes” (Proc. IEEE Intl. Comm. Conf., pp 1064-1070, 1993), spurred interest for codes that could achieve error correction at rates approaching the channel capacity of the link they were applied upon. In the intervening 30 years semiconductor devices had gone from expensive Small Scale Integrated Circuits with tens to hundreds of transistors to consumer electronics such as Intel's fifth-generation microarchitecture, the P5 or Pentium, with 3 million transistors. LDPC codes were rediscovered by MacKay in the mid-1990s, see D. J. C. MacKay et al in “Near Shannon Limit Performance of Low Density Parity Check Codes” (Electronics Letters, vol. 32, pp. 1645-1646, August 1996).

LDPC codes are interesting mainly for two reasons. First, they offer an error correction performance that approaches the channel capacity exponentially fast in terms of the code length. Secondly, the decoding process has linear complexity and a high degree of parallelism that scales with the code length. LDPC codes are capacity approaching codes, meaning that practical constructions exist that allow transmitting information at a signal-to-noise ratio that is very close to the theoretical minimum, known as the Shannon limit. Using iterative belief propagation techniques, LDPC codes can be decoded in time linearly to their block length, a factor particularly beneficial as data rates in communication systems continue to increase.

LDPC codes, therefore, are finding increasing use in applications where reliable and highly efficient information transfer is desired. Although implementation of LDPC codes has lagged that of other codes, notably turbo codes, they are increasingly becoming the standard for error-correction in many applications including, but not limited to:

    • Digital Video Broadcasting-Satellite-Second Generation (DVB-S2) standard;
    • Forward Error Correction (FEC) within the ITU-T G.hn home network standard providing data rates up to 1 Gb/s over power lines, phone lines and coaxial cables;
    • IEEE 802.16e WiMAX;
    • IEEE 802.16n WiFi; and
    • IEEE 802.3an (10GBase-T Ethernet on CAT6 cables, which operates at 10 Gb/s).

Of significant importance for such applications, which address high-speed applications in essentially consumer markets, is the ability to implement economically and technically viable decoder circuits, since typically the implementation of the encoder is much less complex. By viable we mean one where the circuits have small die area, and hence low manufacturing cost, efficient power performance, and good processing performance in terms of throughput and latency, yet preserves the error-correction capability of the code.

The design of practical decoding algorithms does not focus so much on the coding gain offered by one code compared to another, but rather on the performance of a given algorithm on a given code. The aim is to optimize error-correction performance versus cost on the widest possible range of codes. Accordingly, throughout the following specification where cost is assessed it is done so at the algorithm level and hence in general terms.

At present amongst the challenges related to the decoding of LDPC codes are the decoding complexity of binary error-correction codes themselves and error floors. Decoding complexity for example means that today the codes chosen for IEEE 802.16e WiMAX and IEEE 802.3an Ethernet standards perform roughly 3 dB away from capacity, in part due to the cost of decoding circuits. Accordingly, reducing decoder cost using improved algorithms therefore permits increased efficiency of channel use in such applications. The phenomenon of error floors refers to the fact that LDPC codes can loose error-correction efficiency when the target error rate is very low. This problem is sometimes studied at the level of the code design, but given that the behavior is influenced by the choice of decoding algorithm and by implementation constraints, it is also possible to address this issue at the algorithm level.

Min-Sum Decoder:

Amongst the best known decoding algorithms for decoding LDPC codes is the Min-Sum algorithm (MS). Whilst the MS algorithm has decoding performance that is inferior to the Sum-Product algorithm (SP), the offset MS algorithm, which is a version of the MS algorithm, works very close to the performance achieved using SP algorithm. It has been shown in the prior art that a relaxed version of the MS algorithm has the potential to surpass the decoding performance of SP decoders, see S. Hemati et al in ““Dynamics and Performance Analysis of Analog Iterative Decoding for Low-Density Parity-Check (LDPC) Codes,” (IEEE Trans. Comm. Vol. 54, pp. 61-70). It would therefore be beneficial to implement variants of the MS algorithm with low complexity and low power. Accordingly, the inventors have established a simple low-power and low-cost digital MS decoder that can be implemented with very simple and small processing nodes. This MS decoder also manages the power consumption in the wiring interconnecting the processing nodes which is a common problem in iterative decoders. The novel MS decoder exploits the fact that in a log-likelihood ratio (LLR) domain, the operations of an MS decoder become very simple. Accordingly, the digital MS decoder according to embodiments of the invention has variable nodes where the only operation is addition and check nodes where we have to only find the minimum absolute value of the incoming messages and XOR their sign bits. In the novel MS decoder the channel outputs are used directly and there is no requirement for an estimation of the noise power in MS decoders according to embodiments of the invention.

Delayed Stochastic Decoder:

In stochastic decoding information is represented by a data stream (either binary or non-binary) which represents numbers by a weighted stream of bits with binary digits inserted at random intervals such that the weight of one's or zeros' represents the number value. In the stochastic bit stream, complex mathematical operations are simplified to bitwise operations which can be performed by small logic functions. Within the prior art it has been shown that the performance of the stochastic decoders can exceed that of the current state of the art SP decoders.

In conventional LDPC decoders the logical hardware required to perform the computation is very large, and so the system is typically reduced by implementing a small subset of the required hardware and re-using it to perform a subset of the computations. This is known as the partially parallel architecture and results in several subsets of the computation being performed in series by progressing from one set of data to the next, and storing the intermediate results until the entire computation is completed. Whilst reducing logical hardware complexity the approach requires an additional memory (storage) overhead, increases power consumption, and incurs a delay in processing. Further when the length of a block code increases, the fully parallel implementation of the decoders is not trivial task, even using current stochastic methods. It would therefore be beneficial to be able to implement Stochastic Decoding in an architecture with reduced memory, reduced latency, and reduced power consumption. Accordingly, the inventors have established a method of implementing digital stochastic decoders that are simple, operate at low power, and can be implemented with low cost though the use of small and efficient processing nodes using a technique the inventors call “Delayed Stochastic” decoding.

Re-Decoding:

Beyond the actual physical implementation of decoders such as MS decoders, SP decoders etc. it is important to also assess the error rate performance of error correction codes such as a LDPC code and the different decoder implementations. In doing so it is common to discuss the error floor, an error floor being the region where there is diminishing return in the error-rate versus signal to noise ratio (SNR) as the SNR increases. Error rate being an important aspect of digital communications as high error rates require storage of the data at transmitting nodes, re-transmission, delays, increased network overhead etc. in respect of providing the content to the user associated with the digital data. This error floor is determined by a combination of the structure of the specific code employed as well as the decoding algorithm used to decode the encoded data. Error floors further constitute a significant limitation for communication systems when the desired error rate is below the error floor of the encoding/decoding system.

Error floors typically arise from the existence of weak sub-graph topologies within the code graph that are caused by the specific configuration of cycles in the graph. The term trapping sets is widely used to describe these sub-graphs. A received bit is said to be eventually correct if there exists an I such that the bit is correct for all subsequent iterations, namely i>I. A trapping set is defined as a set of received bits that are not eventually correct and that, together with their neighboring check nodes, form a connected sub-graph. The fact that the bits are not eventually correct implies that the decoder is not making progress, either because it has reached a stable point end point, or because it is oscillating, in which case the combination of oscillating states can also be defined as a stable point.

Valid codewords are also stable end points, and for this reason invalid stable points are commonly referred to as pseudo-codewords. The sub-graph of a trapping set is composed of the variable nodes that are not eventually correct, plus all the neighboring check nodes. Since the check nodes compute a parity-check equation, those having an even degree with respect to the sub-graph will be satisfied, and those having an odd degree will be unsatisfied. An (a,b) trapping set is defined as having a variable nodes and b odd degree check nodes with respect to the sub-graph. The set of variable nodes involved in the trapping set is denoted D, O(D), and E(D) are the sets of check nodes adjacent to D that have respectively odd and even degrees with respect to D. The neighborhood set N(D) is the set of all variable nodes adjacent to check nodes in O(D), with the implication that D is a proper subset of N(D).

The probability of a decoding error is lower bounded by the probability that some erroneous received bits form a trapping set of the code. If we assume a memory-less channel, this probability is a function of the a-priori bit error rate, which decays much slower than the coded error rate for typical signal-to-noise ratios that are of interest in typical communication systems. However, with additive white Gaussian noise (AWGN) on the channel there is no simple relationship between the received values and convergence of the decoder to a pseudo-codeword which produces a decoding failure. As a result, trapping sets can be viewed as structures that reinforce existing errors on a group of bits. If the errors in the set are not too strong while the values in N(D)\D are very reliable, it is possible that some bits in the set are corrected before the incorrect messages become too strong and accordingly convergence to the pseudo-codeword is avoided. Furthermore, the decoding trajectory can be affected by errors outside the trapping set, for example by making a check node in E(D) unsatisfied.

The trajectory of a decoder is defined as the sequence of states that it traverses until it terminates. The state space can be generalized for all algorithms as the space of all n(d+1) variable node inputs. Depending upon the decoder and the random choices made by a given decoder, several possible trajectories exist that go from a given initial state to a final stable state, whether this final state forms a codeword or a pseudo-codeword. Convergence to a pseudo-codeword depends on two competing characteristics of trapping sets: the amplification of the set-intrinsic information caused by positive feedback loops and the extrinsic information flow into the set. As iterative decoding progresses these trapping set errors become harder to correct.

Several deterministic approaches have been proposed in the prior art to resolve decoding failures caused by trapping sets. These solutions have a common basis in that they perform the decoding in two phases. The first phase uses a standard belief propagation decoder and if the decoding is successful after the first phase, the algorithm terminates. Otherwise, the decoder enters the second post-processing phase that has been designed to handle the trapping sets for that particular algorithm or algorithms. Optionally, the syndrome weight, the number of unsatisfied check nodes can be used to determine whether the failure was caused by a trapping set, and to decide whether to activate the second phase. This is based on the heuristic notion that if a received frame is too noisy to be decoded successfully, it is unlikely that the decoder will make much progress leading to a large number of unsatisfied check nodes, while if a frame was received with a manageable error, only a convergence to a pseudo-codeword could cause some parity-checks to remain unsatisfied after many iterations. Therefore, a relatively small number of unsatisfied checks remaining after the first phase are indicative of convergence to a pseudo-codeword.

Accordingly, considering trapping sets in LDPC codes for example, there exists a method to detect convergence to a non-global minimum, and it is understood how a local minimum state (pseudo-codeword) relates to the global minimum (codewords). Consequently several deterministic decoders have been devised to move the decoder out of a pseudo-codeword state in the second post-processing phase or as an extension of the first phase. However, all these decoders in order to operate with first and second phases require some knowledge of the trapping set structure. Accordingly, it would be beneficial to have a method to trigger moving a decoder between such phases that does not require knowledge of the trapping set structure. The inventors have established a method, termed re-decoding, that achieves this and hence does not depend upon such prior knowledge of the trapping sets, and in that sense the method may be applied fore generally to decoders.

Multi-Phase Decoding:

As noted supra iterative algorithms are employed in decoding, such as the aforementioned Min-Sum (MS) algorithm. Collectively the MS algorithm and similar iterative message passing algorithms that are also often used, such as the Sum-Product algorithm, are referred to as belief propagation (BP) algorithms. Convergence of BP algorithms to pseudo-codewords is related to the local processing of information at each node of the Tanner graph, and hence pseudo-codewords exist for all BP algorithms. Tanner graphs being bipartite graphs used to state constraints or equations which specify error correcting codes, where such codes are often used to construct longer codes from smaller ones and hence are employed in both encoders and decoders extensively.

This convergence to pseudo-codeword points as discussed above may be viewed as being responsible for error floors, and hence a lower bound on the achievable error rate of the BP decoding algorithm which is problematic for many applications. It is highly desirable in many applications to address this sub-optimality of BP decoders in the error floor region. Several algorithms have been proposed to reduce the number of decoding failures of BP algorithms and hence lower the error floor. To the best of the inventor's knowledge, these prior art solutions are based upon identifying the set of check nodes that remain unsatisfied in the case of a decoding failure. It would be beneficial therefore to have a methodology, and devices derived from said methodology, that reduces the number of decoding failures and produces a lower error floor without requiring identification of the check nodes explicitly and hence applicable to general BP decoders.

Accordingly, the inventors have established a methodology to achieve these goals with a reduced hardware complexity by providing multi-phase decoding. Received vectors that fail to be decoded by the standard decoding algorithm, the first phase, are forwarded to a second (and potentially further phases) wherein they are attempted again with the present invention. This second phase is independent from the first phase, unlike the prior art techniques, and exploits a random component for the decoding attempt(s) in the second phase. Further, as the second phase is independent of the first phase it can optionally be replicated to provide multiple independent decoding attempts or trials for received vectors that fail the first attempt thereby improving the overall success rate of the multi-phase decoder at decoding received vectors . . . .

Accordingly, the embodiments of the inventions described within the specification address the issues of decoding complexity in high-speed communication systems, thereby allowing reduced cost for implemented decoder circuits, and error floor reduction, thereby allowing improved link performance.

SUMMARY OF THE INVENTION

It is an object of the present invention to address limitations in the prior art relating to the decoding of error correction codes.

In accordance with an embodiment of the invention there is provided a method for message passing decoding wherein the messages passed between the processing nodes are represented using an approach where the width of a pulse is modulated with the magnitude of the corresponding message.

In accordance with another embodiment of the invention there is provided a device for message passing decoding wherein a unit forming a predetermined portion of the system modulates the width of a pulse with the magnitude of the corresponding data.

In accordance with another embodiment of the invention there is provided a method for decoding where the state of the processing nodes and current belief are passed and used to estimate probabilities within the decoding process.

In accordance with another embodiment of the invention there is provided a method for decoding comprising a plurality of check nodes and a plurality of variable nodes wherein a parity check operation relating to a predetermined sub-set of the check nodes is delayed based on the states of a predetermined sub-set of the variable nodes.

In accordance with another embodiment of the invention there is provided a method for decoding comprising a plurality of check nodes and a plurality of variable nodes wherein a parity check operation is determined in dependence upon a level of agreement between a predetermined sub-set of the variable nodes.

In accordance with another embodiment of the invention there is provided a method relating to error correction decoders that improves the performance of the error correction decoder specifically within the error floor region without a significant increase in complexity.

In accordance with another embodiment of the invention there is provided a method for decoding wherein an error correction decoder is run multiple times with a different seed for a random number generator within the error correction decoder for the same set of channel values.

In accordance with another embodiment of the invention there is provided a method for decoding comprising receiving a transmitted codeword, attempting to decode the codeword with a first decoder and passing the resulting codeword to a second decoder which contains a component to randomize the decoding trajectory and decoding the codeword with the second decoder when the attempt with the first decoder fails.

In accordance with another embodiment of the invention there is provided a system for decoding comprising a codeword receiver, a first decoder and a second decoder, the second decoder comprising a component to randomize the decoding trajectory of the second decoder.

In accordance with another embodiment of the invention there is provided a decoder for decoding comprising a counter forming a predetermined portion of the counter wherein a first clock relating to operation of the counter differs from a second clock relating to operation of the remainder of the decoder.

In accordance with another embodiment of the invention there is provided a decoder for decoding comprising a variable node and a checks node connected by an edge, each the variable node is driven by a clock signal that may be set to one of two values, the one of the two values being determined in dependence of a transition relating to the edge.

Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present invention will now be described, by way of example only, with reference to the attached Figures, wherein:

FIG. 1 depicts an architecture according to an embodiment of the invention for a degree-4 variable node wherein one control wire is employed for passing sign and data bits;

FIG. 2 depicts a simplified check node according to an embodiment of the invention that can be employed for check nodes in both hard decision decoders and stochastic decoders;

FIG. 3 depicts the basic structure of a degree four variable node according to an embodiment of the invention;

FIG. 4 depicts a 4-bit parallel-in parallel-out circular shift register for storing sign bits according to an embodiment of the invention;

FIG. 5 depicts a 4-bit parallel-in parallel-out circular shift register for storing data bits according to an embodiment of the invention;

FIG. 6 depicts a count-down counter that is associated with each outgoing edge according to an embodiment of the invention;

FIG. 7 depicts an up/down counter that is used for adding the extrinsic information received from check nodes to the channel outputs according to an embodiment of the invention;

FIG. 8 depicts an approach to the construction of a degree-6 edge in a variable node according to an embodiment of the invention;

FIG. 9 depicts an approach to construction of a degree-6 variable node for a Delayed Stochastic Decoder according to an embodiment of the invention;

FIG. 10 depicts an approach to the construction of a check node according to an embodiment of the invention;

FIG. 11 presents a comparison of results for a decoder for 10 Gbps Ethernet code;

FIG. 12 presents the performance of a decoder with re-decoding according to an embodiment of the invention;

FIG. 13 presents a comparison of results for decoders using the PEG code;

FIG. 14 presents the probability density function of the L2 norm Z of the Gaussian i.i.d offset vector (Z=∥D∥2);

FIG. 15 depicts BER and FER performance of the RS-LDPC code with various decoder implementations;

FIG. 16 depicts BER and FER performance of the Margulis code with various decoder implementations;

FIG. 17 depicts the FER gain provided by a second phase of a decoder as a function of the number of decoding iterations for the RS-LDPC code;

FIG. 18 depicts the FER gain provided by the second phase of a decoder as a function of the number of decoding iterations for Margulis code;

FIG. 19 depicts the FER gain provided by the second phase of a decoder for an exponential growth in the maximum number of decoding iterations; and

FIG. 20 depicts the FER gain provided by the second phase of a decoder using RIS implementation in terms of the increase in average decoding time over the phase one of the decoder alone.

DETAILED DESCRIPTION

The present inventions are directed to decoders for decoding error correction codes and in particular to methods and systems of decoding that mitigate disadvantages of the prior art. Within the description of the different techniques presented below reference is made primarily to LDPC codes. However, other code formats, including but not limited to Polar Codes may also benefit from these techniques and accordingly the inventive steps and embodiments of the invention should be accorded the widest possible scope.

Within the following description reference may be made below to specific elements, numbered in accordance with the attached figures. The discussion below should be taken to be exemplary in nature, and not as limiting the scope of the present invention. The scope of the present invention is defined in the claims, and should not be considered as limited by the implementation details described below, which as one skilled in the art will appreciate, can be modified by replacing elements with equivalent functional elements or combination of elements. Within these embodiments reference will be made to terms which are intended to simplify the descriptions and relate them to the prior art, however, the embodiments of the invention should not be read as only being associated with prior art embodiments.

Min-Sum Decoder:

As discussed in the overview embodiments of the invention teach to simple low-power and low-cost digital Min-Sum (MS) decoders that can be implemented with very simple and small processing nodes and provide for the management of the power consumption in the wiring that is a common problem in all iterative decoders.

In the log-likelihood ratio (LLR) domain, operations in an MS decoder become very simple In the variable nodes the only operation is addition and in check nodes, we have to find minimum absolute value of the incoming messages and XOR their sign bits. Beneficially the channel outputs of a decoder are used directly and there is no need for estimation of noise power in MS decoders.

One of the novel aspects of the invention is that decoders implemented according to embodiments of the invention use a message passing methodology wherein the width of pulses are modulated with the magnitude of the corresponding message being passed. In fact, the duty cycle of the pulses changes based on their magnitude. For example, we can utilize a sequence of “1”'s that comes after a sign bit. With this scheme during an iteration all wires are charged only once. This therefore reduces the switching activity in the interconnections and accordingly reduces power consumption of the decoder circuit. It can be shown that by using this message representation method, we can also simplify parity-check nodes in a MS iterative decoder.

Considering M1=7, M2=15, and M3=3 then these messages can be represented as a sequence of “1”'s followed by a sequence of “0”s as shown in Table 1 below. Accordingly, in order to determine the minimum message among M1, M2, and M3, it is only necessary to apply these to a simple three input AND gate as also shown in Table 1.

TABLE 1 An example of representing magnitude of messages by a sequence of ‘1’s and finding minimum among these messages M1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 M2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 M3 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 Min(M1, M2, M3) 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0

This implies that for implementing a check-node of degree four, in addition to four 3-input XOR gates that are normally used for finding the output sign bits, we need four 3-input AND gates (or equivalently seven 2-input AND gates) for finding the minimum magnitudes. It is worth noting that if we interpret messages correctly in the variable nodes, we can use NAND gates instead of AND gates to further simplify the check nodes.

Such a check-node of degree four being shown in FIG. 1 wherein there are four inputs coupled to four input parity check nodes 150A through 150D respectively wherein the signals are passed to four 3-input XOR gates 120 and four 3-input AND gates 130. The inputs to the four 3-input XOR gates 120 and four 3-input AND gates 130 being connected to the four input parity check nodes 150A through 150D through first interconnection mapping 180. The outputs of the four 3-input XOR gates 120 and four 3-input AND gates 130 are then coupled to the four output parity check nodes 160A through 160D via second interconnection mapping 190.

According to a further embodiment of the invention a single wire is used for passing sign and data bits within a check node is provided. Hence referring to FIG. 1 a control wire, Control 170, that is connected to all input parity check nodes 150A through 150D and output parity check nodes 160A and 160D. This is used for selecting suitable operations for processing sign bits and data bits in the parity check nodes. This selection is performed by disabling and enabling XOR and AND modules. According to embodiments of the invention the Data and Control 170 wires charge and discharge once in each iteration.

It is possible to further simplify the check nodes by noting that after the sign bits; there is a sequence of ones that we want to find the shortest sequence of, such as shown above in respect of Table 1. As such it is possible to eliminate the AND gates 130 in FIG. 1 and only use the XOR gates 120 thereby resulting in the simplified degree-4 check node 200 depicted in FIG. 2. Accordingly the first interconnection mapping 180 is simplified to mapping 250 and second interconnection mapping 190 is eliminated. From this it can be observed in that as soon as one of the inputs of an XOR gate 120 becomes zero (that would be the shortest sequence), the output of the XOR 120 flips. If the degree of a check node is an even (odd) number, then the XOR 120 flips from one to zero (zero to one).

Therefore, as long as we interpret the incoming messages correctly at the variable nodes, it is possible to use the simplified version of the check node, namely simplified degree-4 check node 200 in a decoder. However, this simplified version, does not give the correct answer if two or more inputs of a check node have equal magnitude and become minimum at the same time. Accordingly, simplified degree-4 check node 200 in FIG. 2 shows the simplified check node that is exactly same as check nodes implemented in both hard decision decoders and stochastic decoders. For floating point MS decoder check nodes the incoming messages will rarely become equal and become minimum inputs at the same time. For a quantized MS decoder this scenario will be more likely to happen.

TABLE 2 An example of how the XOR function can be used for ending the minimum input using M1, M2 and M3 as previously employed in Table 1. M1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 M2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 M3 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 M1@M2@M3) 1 1 1 0 X X X X X X X X X X X X

Now referring to FIG. 3 there is shown the basic structure of a degree four variable node 300 according to an embodiment of the invention. In a variable node, each incoming edge is connected to a one-bit memory cell. The first received bit in each iteration for each edge, is a sign bit that is saved for one complete iteration as it indicates sign of the following bits. It is worth noting that each iteration takes at least 2m+1 clocks for a (m+1) bit message. Data bits that are received after a sign bit, will be stored temporarily and are used together with the sign bits to update counters in the variable node.

Accordingly, incoming data 300A through 300D is connected within degree four variable node 300 to Sign Circular Shift Register 320 and Data Circular Shift Register 330 wherein it is then coupled to an array of Up/Down Counters 340 which also receive channel output data through channel output interface 310. The output of one of the Up/Down Converters 340 is then directly coupled to a Hard Decision block 350 whilst the remainder of the Up/Down Converters 340 are then directly coupled to Down Counters 360 wherein the outputs of these provide the output data 380A through 380D.

Referring to FIG. 4 there is shown a 4-bit parallel-in parallel-out circular shift register 400 that is used for storing sign bits, such as Sign Circular Shift Register 320 in FIG. 3 above. Received sign bits are written in the register when Sign-Ctrl is active, which happens only at the beginning of an iteration. Accordingly, the sign bits are circulated in the register that has five output taps that are connected to five counters. Whilst four counters are used for outgoing messages (#1 to #4) and will be active for only three clocks to receive three bits, counter #5 remains active for four clocks and receives all four bits. In fact, the sign of this counter (counter #5) can be used for the estimating sign of the variable node.

Now referring to FIG. 5 there is depicted a similar circuit to 4-bit parallel-in parallel-out circular shift register 400 which is used for storing data bits, namely 4-bit parallel-in parallel-out circular shift register 500, such as Data Circular Shift Register 330 in FIG. 3. Likewise, in 4-bit parallel-in parallel-out circular shift register 500 data bits are written in the shift register 2m times during each iteration, where messages can be represented by at least (m+1) bits and the corresponding sequence of ones can be as long as 2m+1 bits (one bit is used for representing the sign bit).

Referring to FIG. 6 there is depicted a count down counter 600 that is associated with each outgoing edge, such as Down Counters 360 in FIG. 3. This counter receives a positive number and a sign bit. A LoadCounter signal initiates the counter and as soon as it goes low, the counter becomes ready for its operation. In the first iteration, the channel outputs are used as initial values for the count down counters and in the following iterations, the variable node's outgoing messages will be used as initial value for the counter. When the SendOutSign signal is high, the sign appears at the outgoing edge. The SendOutSign signal remains high long enough for receiving reliable signals from parity check nodes at the variable node input circuitry. This path will be the longest path in the decoder and enforces the maximum rate of communication between variable nodes and check nodes. When the SendOutSign signal becomes low, the counter starts to count down until it reaches zero (for an offset MS decoder, the counter would be stopped earlier) and therefore outgoing edges remain high until the counter reaches zero.

Now referring to FIG. 7 there is depicted an up/down counter 700 that is used for adding the extrinsic information received from check nodes to the channel outputs. This module receives sign and data bits from the circuits in FIGS. 3 and 4 and counts up/down depending on the received bits and sends its outputs to the circuit in FIG. 6. The up/down counter 700 only take cares of the magnitude and a separate flip flop is used for representing the sign bit. In fact, when decoding starts the up/down counter 700 is preset by the related channel outputs and at the end of an iteration the counter's content is copied to a count down counter that generates a variable node's outgoing messages. Decoding starts by writing the magnitude of the received information in the counter and setting the sign flip-flop correctly. The counter is protected against overflow and will not reset after it reaches its maximum value. Also, when it becomes zero, the count up/down control lets it operate correctly and the sign bit will change accordingly.

The clock frequency inside the up/down counter 700 according to embodiments of the invention can be equal to or higher than the overall clock of the decoder. This is possible as the up/down converter 700 consists of simple operations and there are no large capacitances or long critical paths involved. Potentially the clock frequency within up/down counter 700 can actually be substantially higher than the clock frequency in the decoder. Accordingly, using a faster clock in the up/down counter 700 and for the communications between check nodes and variable node, we do not have to wait many clock cycles for processing to complete. Accordingly, unlike prior art MS decoders, the processing at the check nodes and variable nodes within the decoder occurs at the same time. This novel feature improves the overall throughput of an MS decoder according to embodiments of the invention and provides some compensation for the slow communications between check nodes and variable nodes that otherwise exists.

Furthermore, with embodiments of the invention, it is possible to further increase the speed of an MS decoder by noting that what really matters in an iteration is when a ‘1’ to ‘0’ transition happens for each edge. Between these events, the variable nodes' outgoing messages remain unchanged and thus variable nodes' incoming messages will not change either. As a result the decoder does not really need to remain idle between these events. As such it is possible to compress time between these events by running the clock at a higher rate than its nominal value, normal rate, between the events. In order to provide for this, all of the variable nodes within the decoder are connected to an event indicator line and when a “1” to “0” transition occurs for an outgoing edge the clock frequency returns to its normal value allowing the “reliable” information to appear at the variable nodes' inputs. After that event, the clock runs faster until the next event.

As an example, consider that the smallest magnitude among all variables' outgoing messages is equal to 7. This means that for 6 clocks we can ignore the critical path and run the clock as fast as possible for the counters and circular shift registers. Again after the 7th clock, if there is no event at the 8th clock, the frequency can be increased and continues until the end of iteration. This approach is particularly effective when the range of variations (variance) of the magnitudes of the messages is low. For example at high signal-to-noise ratio (SNR) values, when all messages are large, this approach can be exploited to further improve the efficiency of these decoders.

Delayed Stochastic Decoder:

As discussed supra in respect of FIGS. 2 through 7 there is significant benefit in establishing decoders that can be implemented with reduced complexity thereby allowing them to realize benefits in terms of reduced power, lower cost and improved performance. Accordingly in these FIGS. 8 through 10 structural improvements are presented for improving check-nodes (CN, also known as parity-check nodes) and variable nodes (VN) within a decoder. The structure of an error correcting code, such as LDPC codes as well as Min-Sum and Sum-Product algorithms can be described in terms of a factor graph, which is a bipartite graph that expresses the relationship between independent variables and local functions. In the context of LDPC codes, the independent variables are the likelihood associated with the codeword bits, which are involved in some parity-check equations (the local functions). Such graphs denote the variable nodes and check nodes together with their associated edges. An edge, depicted as a line in the graph, connects an ith variable node in the graph to a jth check node in the graph if the ith codeword bit is included in the jth parity-check equation.

With a generalized degree-N variable node (VN), there are N edges, one majority up-down counter, one majority state generator, and one bit-stream-generator wherein the VN receives N inputs. Every edge in a variable node also receives N inputs, which are N−1 out of the N VN's inputs in addition to one bit from the bit-stream-generator. The bit-stream-generator generates a bit randomly with the given channel probability. An example of a degree-6 VN decoder according to an embodiment of the invention is shown in FIG. 9 comprising majority state generator 910, edges 0 through 5 920A through 920F respectively, majority up-down counter 930, and majority state generator 940. Each edge calculates whether its inputs are equal or not. A high-degree edge can be constructed from low-degree edges. For example, a degree-6 edge is built using two degree-3 and one degree-2 equality blocks as shown in FIG. 8 with degree-6 VN 800. Hence, the 6 inputs are divided into two sets and each set includes three inputs. Each degree-3 equality block 810 processes each set based on following rules:

1) If all inputs are equal, one of them is passed to the output and is also registered in the first bit of the internal memory (IM) 820, wherein the previous values of the IM 820 are shifted one bit down (like a shift register); and

2) If all inputs are not equal, one bit is read randomly from the IM 820 and passed to the output.

The degree-2 equality block 830 then receives two bits from the degree-3 equality blocks 820. If both are equal, then that edge is in an agreement state, otherwise the edge is in hold state (disagreement state). There are three outputs for each edge; Bit0, Bit1, and state. Bit 0 is read randomly from all IMs 810 of an edge. Bit 1 is the output of the first degree-3 equality block. The state signal shows the edge is in agreement or hold state.

Referring to FIG. 9 there is depicted a degree-6 VN 900 for a Delayed Stochastic Decoder according to an embodiment of the invention. The majority up-down counter 910 receives all N inputs to the degree-6 VN 900 in addition to one bit from bit-stream-generator 950 (N+1 inputs). The up-down counter 930 counts up if majority of its inputs are one, otherwise it counts down. Each of the edges 0 through 5 920A through 920F receive N−1 inputs to the degree-6 VN 900 as well as a bit from the bit-stream-generator 950. The outputs from the edges 0 through 5 920A through 920F are coupled to majority state generator 940 which then outputs majority state decisions.

In the algorithm according to embodiments of the invention, referred to as delayed stochastic (DS) decoding, the actual check operation in a check node is performed only when there are agreements on all of the variable nodes connected to that check node (check node edges), otherwise it is delayed. The actual check operation for edge number (I) is to XOR all inputs except the input number (I).

In order to postpone the check operation, variable nodes report their states (agreement or disagreement) as well as their beliefs. If at least one case of disagreement is reported to a check node, then that check node is set into the “delay” state. Hence, the check node returns the received belief without any change to the variable nodes reporting an agreement state.

Such a reply from the check node holds the current state (agreement) of the variable node, and allows the other variable nodes to get out of their disagreement state. Those variable nodes reporting disagreement states are answered by a random bit. It can be seen from Equation (1) below, that random bits with a probability of 0.5 are ignored in the next iteration.

P C = P A P B P A P B + ( 1 - P A ) ( 1 - P B ) ( 1 )

The latency of a Delayed Stochastic Decoder using a degree-6 VN 900 can be reduced in large part by the efficient use of the Internal Memories (IMs). These IMs are also used to build up high order edges in a variable node. Typically, IMs are limited to a few bits (usually two) for every three inputs in a degree-6 variable node for instance, so the hardware cost is low. In this example there are at least four bits of information on each edge that represent an estimation of probability, such an estimate being based on a degree-4 Moving Average Filter for example, and can be used whenever majority of edges are in disagreement states.

If the majority of edges in a variable node are in disagreement, they will not be sent to check nodes. Instead, one bit is randomly chosen from the IMs and reported as if it were an agreement state. Accordingly, degree-6 VN 900 for a Delayed Stochastic Decoder operates without the need for a probability estimator for disagreement states unlike prior art VNs according to an embodiment of the invention.

FIG. 10 depicts an implementation of a check node (CN) 1000C. Bit and State based signals are generated using CS signal generator 1000A and S signal generator 1000B representing the variable node's belief and state respectively. CN 1000C shows the output signal of the check node in response to the input pair of (Bit, State) together with the CS and S signals from the CS signal generator 1000A and S signal generator 1000B respectively. This logic may be located in either the variable node or in the check node.

Accordingly there is depicted in respect of FIGS. 8 through 10 and architecture and process for a novel Delayed Stochastic Decoder with low complexity implementations for both variable nodes and check nodes. However, it is evident to one skilled in the art that optimizing decoders for power, speed, and cost across multiple applications and codes may require both innovations in both hardware and software/firmware. The former as noted supra in respect of FIGS. 1 through 10 may allow reduced circuit complexity in implementing the variable and check nodes as well as novel control approaches to reduce power consumption and complexity. Reductions in these aspects allow either decoders to be implemented with lower cost silicon processes or increase the functional integration into the decoder circuit, thereby reducing, for example, the FPGA count or allowing increased functional integration into an FPGA core for example.

Re-Decoding:

As discussed in the background reduced error performance also requires consideration of trapping sets within the decoding algorithm and knowledge of the convergence of the decoding process to a pseudo-codeword. This convergence essentially depends upon the result of a race between extrinsic information flow into the trapping set and the amplification of set-intrinsic information.

The problem of preventing an iterative belief propagation decoder from converging to a pseudo-codeword can be rephrased as being the problem of altering the trajectory of the decoder so that the set-extrinsic information determines the early progress of the decoder. One way to achieve this in the prior art is to try different random trajectories until convergence to a codeword is detected. This approach can, for example, be used with a Relaxed Half Stochastic (RHS) decoder as disclosed by the inventors in “A Relaxed Half-Stochastic Iterative Decoder for LDPC Codes” (Proc. IEEE Globecom 2009, Comm Theory Symposium, pp. 1-6) which uses randomized messages.

However, in most practical applications where the decoder is intended to work with a fixed or maximum latency budget, a more innovative approach is required. It is worth noting that the decoding of a channel code can be re-formulated as an optimization problem. Pseudo-codewords caused by trapping sets can then be viewed as local minima that must be avoided in the search for a global minimum, with the distinction that those local minima are actually caused by the decoder, and do not exist in the initial problem. Beneficially, when compared to a general optimization framework there exists a simple method of determining whether the decoder has converged to a codeword, by checking that the syndrome is zero.

For the case of trapping sets in LDPC codes, there exist in the prior art methods to detect convergence to a non-global minimum, and it is generally understood how a local minimum state (pseudo-codeword) relates to the global minimum (codewords). Consequently several deterministic decoders have been devised to move the decoder out of a pseudo-codeword state. However, all these decoders require some knowledge of the trapping set structure.

However, the inventors using a technique they term “re-decoding”, have established a method that does not depend on such knowledge of the trapping set structure. As such, the embodiments of the invention provide a more generalized approach. Considering a RHS decoder, the amount of noise on the trajectory is controlled by the value of the relaxation factor B. A higher value of the relaxation factor causes the variable node input to vary more widely as new bits are received. Re-decoding relies on the B sequence of the RHS decoder to start with a very noisy trajectory, and then reduce the noise to let the decoder converge. The re-decoding phase being started after the decoder has failed once. By using a different B sequence specifically for re-decoding this sequence can be optimized or adjusted to break trapping sets.

As discussed above it is possible to detect that a decoder has converged to a pseudo-codeword by observing the number of unsatisfied parity-check equations. However, because re-decoding is a randomized approach potentially multiple trials may be necessary for the decoder to successfully converge to a codeword. Observations by the inventors show that in the presence of received channel values that target a trapping set, the decoder typically converges very fast (within 10 to 40 cycles) to a stable pseudo-codeword state thereby allowing the re-decoding to be triggered. Accordingly, adding the ability to detect stable states results in a novel process that has improved efficiency since the re-decoding trials can be performed within the normal cycle budget of the decoder.

According to an embodiment of the invention the initial process detects a stable state by monitoring the minimum number of unsatisfied check nodes throughout the decoding. If this number remains stable for a predetermined number of cycles, a stall is declared, which signals the decoder to initiate a new trial. In order to decrease the chance of falsely identifying a stable state, it may also be a condition of the process that the number of unsatisfied check nodes be smaller than a threshold.

Simulations run, by the inventors, in software on a distributed computing platform were performed to assess the general applicability of re-decoding. These simulations bring being run on two codes, each having a different rate and a different structure. The first code being from the 10 Gbps Ethernet standard and the second code a Progressive Edge Growth (PEG) construction, with a length of 1008 and rate ½ designed by Xiao-Yu Hu, see for example “Regular and irregular progressive edge-growth Tanner graphs” (IEEE. Trans. Info. Theory, Vol. 51(1), January 2005 pp. 386-398). It is regular in variable node degree, with dv=3.

The behavior of re-decoding trials is controlled by the B sequence and by the trapping set detection parameters, which are the limit on the number of unsatisfied check nodes and the number of stable cycles. The B sequence was optimized manually in this instance by observing the performance of the decoder on a set of recorded frames that failed to decode in a single trial. To simplify the problem, the number of distinct B values was limited to 3. However, it would be evident that the B sequence may also be established through an iterative process wherein a processor driven decoder iterates towards an effective B sequence for a particular code during an initial operation sequence, e.g. training, and that this B sequence is continuously or periodically varied to establish whether an improvement may be made. It would also be evident that the number of values in the B sequence may be varied without departing from the scope of the invention.

For the 10 Gbps Ethernet code, the B sequence selected was B=((0.75)1, (0.25)20, (0.125)k-21), where k is the maximum number of cycles in a re-decoding trial. The last value of 0.125 was chosen intuitively. However, the example of the PEG code shows that it might not be necessary to use lower values at all. For the trapping set detection parameters, the limit on unsatisfied check nodes was set at 30, and the number of stable cycles at 10. Those values were adjusted based on simulation results.

For the PEG code, the B sequence was chosen as B=((0.75)1, (0.45)20, (0.2)k-21), the limit on unsatisfied check nodes was set at 20, and the number of stable cycles at 10. It is interesting to note that even though B remains relatively high, this does not prevent trapping set frames from converging. This is most likely due to the fact that the decoder stops as soon as a codeword is found, and does not require the trajectory to stabilize, which differs from the case of a general optimization problem.

Referring to FIG. 11 there are shown the BER and FER results for the 10 Gbps Ethernet code. It is evident that the RHS+Re-decoding approach according to an embodiment of the invention does not show any noticeable error floor down to a BER of 1.5e-12. Overall, a total of 10 errors were recorded at the SNR 4.6 dB. Of these 9 were undetected errors, and from those 4 were ML errors meaning that a Maximum Likelihood decoder would also have failed on those frames. FIG. 11 also shows the results presented in Ztang et. al. {REQUIRE REFERENCE} for their post-processing technique. Note that the loss with respect to the RHS decoder is due to the underlying belief propagation decoders combined with the chosen iteration limit, and does not represent a limitation of the post-processing algorithm.

Now referring to FIG. 12 there is shown FER as a function of decoding cycles wherein the codewords that were decoded using re-decoding, the codeword that required the most trials used 23 trials and 594 cycles.

Referring to FIG. 13 there are shown the BER and FER results for the PEG code. The results show that on this code as well, re-decoding can improve the error floor by a significant margin against the prior art RHS technique achieving comparable performance to a fixed point implementation of a Sum-Product Algorithm (SPA). Overall a total of 41 errors were recorded at 4.6 dB, all of which were detected errors. The worst-case for the number of re-decoding trials was 20 trials, corresponding to 654 cycles.

Accordingly, it is evident from the results presented in respect of FIGS. 11 through 13 that the novel re-decoding process results not only improved error noise performance but also in improved efficiency as the results are achieved with a reduced overall processing overhead as the re-decoding trials are performed during the normal cycle budget of a decoder according to the prior art.

Multi-Phase Decoding:

Within the prior art, a few randomized Baseline Profile (BP) algorithms have been proposed. A common occurrence of a BP coding scheme being the H.264/MPEG-4 Advanced Video Coding standard which employs block-oriented motion-compensation-based codecs (developed by the ITU-T Video Coding Experts Group). Within analog decoders randomness occurs naturally as the result of transistor mismatches. In studying the effect of transistor mismatch, Lustenberger and Loeliger in “On mismatch errors in analog-VLSI error correcting decoders” (Proc. ISCAS (4), 2001. pp. 198~201) observed that randomness in the decoding algorithm could yield some gains in error rate. Further Hemati and Yongacoglu, in “On the dynamics of analog min-sum iterative decoders, an analytical approach,” (Proc. IEEE Int. Sym. Information Theory, June 2007, pp. 326-330), noted that the dynamic equations of an analog Min-Sum (MS) decoder become singular for codes with cycles, and presented message dithering to resolve the singularity and remove an early error floor. For discrete BP decoders, Yao and Banihashemi in “Decoding Low-Density Parity-Check Codes with Probabilistic Scheduling” (IEEE Comms Letters, Vol. 5(10), pp 414-416), proposed a probabilistic message schedule wherein the choice of message to update is performed randomly according to predefined probabilities derived from an analysis of the Tanner graph. However, the main aim of these algorithms was not to address error floors performance.

When designing improvements to BP algorithms, it can be useful to study the aspects of a code's structure that cause belief propagation algorithms to fail to converge to a codeword. Whether the decoding algorithm converges to a stable state or oscillates, we are interested in characterizing that part of the Tanner graph that remains in error. Trapping sets provide a behavioral definition of this sub-graph. A variable node is said to be eventually correct if there exists an iteration I such that the node's a-posteriori estimate is correct for all decoding iterations i>I. A trapping set is defined as a set of variable nodes that are not eventually correct.

If we denote by T the set of variable nodes that form a trapping set, and use N(X) to mean the set of all nodes in the Tanner graph that are connected to at least one element of set X, i.e. the neighborhood of set X. We will also define the special neighborhood functions NE(X) and NO(X) that include only those nodes that have respectively an even and odd number of connections to set X. We will refer to the sub-graph of the Tanner graph induced by T∪N(T) as the trapping set sub-graph.

As the definition of trapping sets is behavioral, it cannot form the basis of a topological characterization of the sub-graph. It has been shown experimentally that a sub-graph structure called an absorbing set represents the dominant trapping sets of several structured codes, including the RS-LDPC code used in the IEEE 802.3an standard which relates to 10 GBASE-T 10 Gbit/s Ethernet over unshielded twisted pair (UTP). Absorbing sets are defined as a set T of variable nodes such that each element of T has more neighbors in NE(X) than NO(X). On the binary symmetric channel (BSC), a common communications channel model used in coding theory and information theory, it can be shown that if each variable node in T has either an incorrect prior, or has two more connections to NE(X) then NO(X), then there exists a stable state of the absorbing set sub-graph for which the a-posteriori decisions are incorrect. In this stable state, all check nodes in NE(X) have even parity.

The characterization of a BSC decoder is also useful for considering an AWGN decoder, because it describes the behavior of the AWGN decoder as messages become saturated. It is relatively straightforward to see that if all incoming messages at a node are saturated, then the behavior is identical to a BSC decoder, with the exception that in variable nodes, since the AWGN previously might not be saturated, ties among inputs might be decided against the a-priori hard-decision (unlike the rule of the Gallager-B algorithm). However, this modification has no impact on the stability of absorbing sets as specified above. An important consideration for the analysis that follows is that, if an absorbing set sub-graph is in an incorrect stable state, it is possible given the knowledge of T to correct a node xϵT by changing the parity of some of its neighbors in NE(T) such that a majority of messages into x are correct. Furthermore, the parity of check nodes in NE(T) depends on the parity of messages it receives from all its neighboring variable nodes N(NE(T)).

Since the receiver has no prior knowledge of the transmitted codeword, one important measure of the progress of the decoder is the number of satisfied parity constraints, also known as the syndrome weight. If we denote UI the set of check nodes having odd parity based on the a-posteriori hard decisions at iteration iϵN.

Let EI be the set of variable nodes that have an erroneous a-posteriori estimate at iteration I. By the behavioral definition of trapping sets, T:=E, i.e., the set of codeword symbols that are not eventually correct. It follows that NO(T)=U. However, in general the information provided by U, is only that at least one node in T is also in N(U), because some nodes in T can be only connected to NE(T).

A dominant portion of the errors of BP algorithms that arise in the error floor region are stable under the decoding algorithm and have the property that the number of unsatisfied check nodes is relatively small. Several algorithms have been proposed to tackle this type of error and they share a common procedure. The BP algorithm is first executed normally, which we will refer to as the first decoding phase. In cases of decoding failure, a second phase is launched that attempts to resolve the failure by first identifying the sets UI and N(UI), and performing modifications to variable nodes in N(UI).

The “Algorithm B” proposed by Vamica and Fossorier, “Improvements in belief-propagation decoding based on averaging information from decoder and correction of clusters of nodes” (IEEE Comm Letters, Vol. 10(12), pp. 846-848), performs a search among N(UI) to try and correct one node in the trapping set. The efficiency of the search is increased by selecting nodes NϵN(UI) in order of the reliability of their a-priori information. One node v is selected at each search step, and the a-priori input of v is set to the saturated value opposite of the a-posteriori decision obtained at the end of the first decoding phase. Assuming that v has only one neighbor cϵUI, other a-priori inputs are also modified such that the reliability of the message from c to v is increased. For a code with variable node degree dv=3 such as a Margulis code, this has the effect that if the a-posteriori decision of v was incorrect, then messages from v to N(v)\{c} will be corrected. As a result, only 10 search steps are sufficient to lower the floor of the Margulis code by two orders of magnitude.

Another approach known as post-processing operates directly on the BP messages. Furthermore, all nodes in N(UI) are modified simultaneously. All messages from UI to N(UI) are set at a pre-determined high reliability, and all other messages into N(UI) are set at a pre-determined low reliability. Those reliability values are chosen such that for all vϵN(UI), the message from the neighbor cϵUI (assumed to be unique) determines the sign of all outgoing messages from v to N(v)\{c}. The modification has the effect of introducing new errors, but the algorithm relies on some further iterations of the standard BP algorithm to correct those errors. This was shown experimentally to be very efficient in eliminating decoding failures caused by absorbing sets on the code used in the IEEE 802.3an standard, but the effectiveness on other codes has not been reported.

One approach that does not require the dynamic identification of UI is the use of a Generalized LDPC (GLDPC) decoding algorithm. A GLDPC decoding graph is constructed from the original LDPC graph by grouping certain parity-check constraints together. The constraints to be grouped are selected based on the characterization of the dominant trapping sets of a specific code. The new GLDPC graph can be designed to increase the pseudo-codeword weights and lower the error floor. Decoding is performed by message passing on the graph, as with the Sum-Product algorithm, but the decoding complexity is increased since the constraint nodes are no longer simple parity checks, but general linear block codes.

Another approach is based on the Augmented BP algorithm by Varnica, Fossier and Kavcic, “Augmented Belief Propagation Decoding of Low-Density Parity Check Codes” (IEEE Trans. Comms Letters, Vol. 55(7), pp 1308-1317). This Augmented BP algorithm attempts to resolve all types of BP decoder failures. It proceeds by selecting a variable node vϵN(UO), where UO is the set of unsatisfied check nodes at the end of the first decoding phase, and fixing its input to a saturated LLR +S or −S. For each value, the decoder is run for a predetermined number of iterations. This generates two new sets U1 and U2. The process is repeated for each new set generated, creating a binary tree of decoding attempts. For every split in the tree, a new variable node vϵN(UK) must be selected, where k is the decoding attempt index. The selection of a node vϵN(UK) is performed by considering the degree of that node with respect to UK and the reliability of its input prior. This results in error correction performance within 0.2 dB of ML decoding on a small code, and good error floor gains on the Margulis code.

However, both the hardware and time complexity are high. The number of decoding iterations required by the algorithm is exponential in terms of the number of nodes selected, and each split in the decoding tree requires identifying the new sets UK and N(UK), and finding the node with the minimum prior reliability in N(UK).

To better understand the present invention, we consider a two-phase approach, where in the first phase a standard decoding algorithm is used. This simplifies the problem of finding an improved algorithm, as we are guaranteed that received vectors that were successfully decoded with the standard algorithm remain successful with the new two-phase approach.

A convenient way to illustrate the algorithm is to consider the trajectory followed by the decoder's state. The state can be represented by a vector that contains all incoming messages to variable nodes. Because the codeword space has a lower dimensionality than the decoder's state space, each codeword (and pseudo-codeword) corresponds to a region in the state space.

The decoder defines a gradient over the decoder state-space, and therefore defines associated regions of convergence (ROC) for each codeword region of the state space. In general terms, for received vectors that are outside the ROC corresponding to a codeword, it is desirable to modify the decoder's trajectory so that it reaches that region. This can be achieved by randomizing the decoder's trajectory. The aim is to identify a random operation that can be applied uniformly on all the nodes and that offers a good probability of successful convergence for received vectors that lie outside a codeword ROC. Applying a uniform operation removes the need for identifying the set of unsatisfied check nodes UI and the related neighborhood N(UI). Received vectors that fail to be decoded by the standard decoding algorithm in the first phase are attempted again with the present invention using a second phase, which is independent from the first phase. Since the second phase has a random component, it can optionally be split among multiple independent decoding attempts or trials. The second phase lasts until a valid codeword is found, or until the total iteration budget is used up. The trajectory of an iterative belief propagation algorithm can be altered by modifying either the initial state or any subsequent state. This invention can be implemented with a strategy for randomizing the trajectory with the specific intent of avoiding convergence to absorbing sets. Then it can be implemented in a more general randomization scheme of the initial state that has the potential to resolve any failure of the BP decoder.

The invention can be implemented as a modification of a base BP algorithm. A decoding algorithm must also be chosen to perform the first phase of the decoding. The same approach is used for both functions so as not to introduce additional complexity. Any BP algorithm can be used, although the normalized Min-Sum algorithm was used in simulations for its low implementation complexity and good error-correction performance even under low-precision quantization. The normalization was performed by multiplying the minimum values by a constant α. The value of this constant is code dependent.

Following the state-space trajectory illustration, it is possible to add a random component to the decoder's trajectory such that given a received vector that lies in the region of convergence of a pseudo-codeword, there is a non-zero probability of converging to a valid codeword. We mentioned above that given a BP algorithm that has converged to an absorbing set stable state, it is possible to correct specific nodes in the absorbing set by altering the parity of some check nodes in NE(T).

The parity of nodes in NE(T) is determined by the parity of messages received from the variable node neighborhood N(NE(T)), and therefore the state of the check nodes NE(T) can be randomized by flipping the sign of outgoing LLR messages in either the check nodes or the variable nodes. An approach that will achieve this consists in randomly flipping outgoing messages on a node-by-node basis, either in the variable nodes or check nodes. A single parameter p controls the probability of flipping messages at a given node. This is implementation is referred to as random sign flip (RSF) in the check nodes (CN) (or in the variable nodes (VN)).

Accordingly we define a CN (VN) update rule wherein we compute outgoing LLR messages using the base algorithm, and with probability p, flip the sign of all outgoing messages and a corresponding VN (CN) update rule that is one of no change.

In the VN version, the action of flipping a node has the consequence of inverting the parity of all neighboring check nodes. In the CN version, check nodes are flipped independently one from another. The nodes to be flipped are selected randomly, and different nodes are flipped at each decoding iteration. The number of variable nodes that are flipped is also random. Finally, all variable nodes are equally likely to be flipped, the operation is not limited to nodes in N(UI). An attractive aspect of this implementation is that it adds very little hardware complexity to the base BP algorithm. It only requires one random bit per node, and the ability to invert the sign bit of the BP messages. Implementing the check node version of RSF has lower complexity since there are less check nodes than variable nodes. Furthermore, conditionally inverting all output signs in a check node only requires a single 2-input XOR gate (per node), since the inversion can be applied to the total sign bit. Random bits can be generated by simple linear feedback shift registers (LFSR). The LFSR must be composed of several random bits, but the circuit can be shared among a group of nodes.

Another embodiment of the invention, referred to as initial state randomization can be understood as follows. The initial state of the decoding algorithm is derived from the channel soft information and considering that the initial state fully determines the outputs of the BP decoder, it is useful to classify initial states into converging and non-converging states, depending on whether or not a given initial state causes the BP decoder to converge to a valid codeword within the pre-defined iteration limit. Values received from the channel can be expressed as a vector yϵRN where N is the code length.

For any initial state y in a non-converging region, there exists a translation that will bring it into a converging region using the equation given by Equation (2) below;
YD=y+D=x+w+D  (2)
where xϵ{−1,1}N and w is the channel noise realization.

The Random Initial State (RIS) implementation consists in searching for a converging region of the BP decoder close to the received vector, in order to hopefully decode a received vector that cannot be decoded by the standard BP algorithm. The search is performed by adding a random independent and identically distributed (i.i.d.) offset vector D of length N. This provides a simple way to search uniformly around the received vector, namely, if the vector has i.i.d. components, all orientations of the vector in the codeword space are equally likely. This implementation is independent of the base algorithm used, and as such can reasonably be expected to provide decoding gains for any code and any base decoding algorithm. An i.i.d. vector is fully characterized by the probability distribution of its L2-norm. If D has components D≈N(0,σd2), the L2 norm ∥D∥2 has a scaled Chi distribution (with n degrees of freedom), as shown in FIG. 14 with the parameters used for the RS-LDPC code at 4.2 dB. For large vector length n, this distribution is approximately Gaussian, with mean σd√{square root over (n−½)} and variance σd2/2. If the vector components are instead generated from a uniform distribution, for large n the vector's norm distribution is symmetric, as in the Gaussian case. However, compared to the Gaussian vector, the norm of the Uniform vector has smaller variance for the same mean. Generating pseudo-random numbers from a uniform distribution is less complex than from a Gaussian distribution, which makes the uniform distribution more attractive.

Since only the initial state is randomized, the error rate achieved by RIS decoding is mostly a function of the number of independent decoding trials that are performed. The algorithm has two parameters that affect the success probability of a given trial. The first is the number of iterations per trial (the trial length), which affects the size of the converging regions of the base algorithm, and therefore the probability that Yd will be inside a converging region. Increasing the trial length reduces the number of trials that can be performed inside a given iteration budget, and therefore there is an optimal trial length. The second parameter that needs to be identified is the variance of the input offset, which determines the distribution of ∥D∥2. Both parameters depend on the code, the SNR, and the total iteration budget for Phase-II. The trial length and offset variance were observed to have only weak interdependence, making it possible to optimize each parameter separately.

There is a possibility that the RIS decoder could increase the number of non-ML undetected errors, i.e. for a received vector that is successfully decoded by an ML decoder, RIS decoding would cause the underlying BP decoder to converge to a wrong codeword producing an undetected error. As the decoding performance becomes closer to ML decoding, we can expect the number of undetected errors to grow, recalling that for an ML decoder, all errors are undetected. We would expect the asymptotic performance (in the number of trials) to be bounded away from ML, due to the randomness of the RIS algorithm combined with the fact that the BP decoder, when it converges, is not guaranteed to output the ML estimate. However, this gap with ML could be reduced by recording several distinct convergent outputs of the BP decoder, and performing minimum distance decoding on this list of candidate codewords. This is not considered here given the lack of observed undetected errors. In terms of implementation, the only change that the RIS makes compared to a standard belief propagation approach concerns the inputs, and therefore it can easily be implemented on top of an existing decoder.

Simulations were performed on two codes, the first being a RS-LDPC code of length 2048 and rate 0.84 as adopted in the IEEE 802.3an standard for 10 Gbps Ethernet over CAT6 cables. It is regular with node degrees dv=6 and dc=32. The second code is the (2640, 1320) Margulis code, which is regular with degrees dv=3 and dc=6. Both codes have been widely used for empirical work on LDPC decoding algorithms and have good error correction performance, which makes them good choices as benchmarks. The system model used for simulations includes a random source and an encoder. To obtain results that are as practical as possible, the received values are quantized on 4 bits, and LLR messages inside the decoder are saturated within the demodulation range. The decoder simulated uses a floating-point representation of LLR messages, but since the range is constrained, and the algorithm is Min-Sum, no significant performance differences compared to using an integer representation are expected. Furthermore, when simulating the RIS algorithm, inputs to the decoder are again quantized on 4 bits after applying the random offset. The scaling constant used in the base Normalized Min-Sum algorithm was optimized for each code; α=½ for the RS-LDPC code and α=¾ for the Margulis code.

FIGS. 15 and 16 depict the calculated BER and FER as a function of SNR for the RS-LDPC and the Margulis code, respectively. Note that the results shown for Normalized Min-Sum cannot be significantly improved by increasing the iteration limit. For both codes, undetected error events are very rare under BP decoding. Referring to Tables 3 and 4 the numerical details of the observations are presented. Note that when a received vector results in an undetected error in the first phase, it cannot be passed on to the second phase. In the second phase of the decoding, undetected errors were never recorded. The last column in Tables 3 and 4 indicates the number of error events recorded for the best result appearing in FIGS. 15 and 16 at that SNR, irrespective of the decoding algorithm. The lowest BER points were obtained using large parallel software simulations. Results at a BER of 1×10-12 require approximately 100,000 CPU-core_hours. FIGS. 17, 18 and 19 present the FER on received vectors that failed to be decoded in the first phase, or in other words, the FER gain of the second phase. The FER gain is shown for a fixed SNR, in terms of the iteration budget. FIGS. 17 and 18 focus on small iteration limits, whilst FIG. 19 presents the FER of the RIS implementation for large iteration limits.

TABLE 3 Simulation Results for RSF Implementation with RS-LDPC Code Errors After Undetected in the Errors After Best Simulation First Phase First Phase Second Phase RS-LDPC, 4.0 dB 102,998 1 223 RS-LDPC, 4.2 dB 73,788 7 38 RS-LDPC, 4.6 dB 1,050 1 115 RS-LDPC, 4.7 dB 456 1 17 RS-LDPC, 4.75 dB 304 0 6

TABLE 4 Simulation Results for RSF Implementation with Margulis Code Errors After Undetected in the Errors After Best Simulation First Phase First Phase Second Phase Margulis, 2.2 dB 10,132 0 29 Margulis, 2.4 dB 33,305 0 9 Margulis, 2.6 dB 30,045 0 8 Margulis, 2.8 dB 1,005 0 80

The simulation results show that with the RSF implementation, it is not advantageous to split the second phase into multiple decoding trials. Therefore the only remaining parameter to be selected is the message flip probability. This parameter was optimized numerically on both codes at various SNRs. Results show that for each code, the optimal parameter value is constant with respect to SNR (up to the precision of the optimization). For the RS-LDPC code, this value was found to be p=0.0023 when the randomization is performed in the variable nodes, and p=0.07 in the check nodes, whilst for the Margulis code the values are p=0.0022 for the variable node variant and p=0.011 for the check node variant. Finally, performing the sign flip operation in the check nodes was found to achieve the same performance as in the variable nodes.

The BER and FER performance of the algorithm on the RS-LDPC code are shown in FIG. 18. Despite the algorithm's simplicity, 75 iterations of the second phase are sufficient to get a good slope and reach the BER of 1×10-12 required by the 10 Gbps Ethernet standard. Furthermore, FIG. 17 shows that the efficiency of the FER gain in terms of the maximum number of iterations increases with SNR. Therefore, the decoding performance is expected to be able to reach lower error rates without any increase in the iteration limit. The “post-processing” approach is also shown in FIG. 15 for comparison. In terms of maximum latency, the “post-processing” solution is faster, but the high-level complexity analysis suggests that RSF has a lower hardware complexity, especially since the “post-processing” approach performs its operations in the variable nodes, which are in greater number than check nodes. For example, the high rate RS-LDPC code considered here has 2048 variable nodes and 384 check nodes. Also note that from FIG. 17, the number of second phase iterations of RSF can be reduced to 50 without much loss in frame error rate. Compared to the RIS implementation, FIG. 17 shows that RSF achieves lower error rates for small iteration budgets.

On the Margulis code, RSF provides a FER gain of about 1 order of magnitude, but, as can be seen in FIG. 18, its efficiency does not increase much as SNR goes from 2.6 dB to 2.8 dB. For small iteration budgets, the error rates of RSF are similar to those obtained using RIS, although the efficiency of RIS does increase with SNR. Finally, FIGS. 17 and 18 show that the FER-gain provided by RSF stops improving significantly after a certain number of iterations, suggesting that, as expected, its effectiveness is limited to Phase-I failures caused by absorbing sets. The results show that the RSF implementation is less effective on the Margulis code. The effectiveness of RSF on a given code can be split in two parts. First, the probability that the posterior of all variable nodes in the absorbing set T become correct, as a function of the check node flipping probability p, and second, the highest value of p that can be used without preventing the iterative process from converging.

Instead of analyzing the probability that all nodes in T are corrected, for a rough comparison between two code graphs we can simplify the discussion by considering the dominant absorbing sets, and studying the probability of observing some correct messages from, T→NE(T) noting that such an event increases the probability of observing correct messages in the next iteration. This probability can be calculated using straightforward combinatorial arguments by assuming that all messages into T are close to saturation, with messages NO(T)→T, are all correct and messages NE(T)→T all incorrect, and from the knowledge of the topology of the dominant absorbing sets. Dominant absorbing sets on both codes have been well studied for the Margulis code and for the RS-LDPC code. Such calculations show that despite the lower variable node degree of the Margulis code (dv=3 versus dv=6 for the RS-LDPC code), the probability of observing correct messages T→NE(T) is a similar function of p for both codes, essentially because in the case of the Margulis code, only a few variable nodes in T are connected to NO(T), while for the RS-LDPC code, all variable nodes in T are connected once to NO(T).

As a result, the relative efficiency of RSF on these two codes seems to mostly depend on the value of p. The optimization results stated previously indicate that for the Margulis code, p cannot be as high as for the RS-LDPC code. This is most likely because of the lower variable node degree, since a lower variable node degree increases the likelihood that a sign flip in a variable node input will cause a sign flip in the variable node's outputs, and therefore, for a given p, increases the average amount of incorrect messages that are propagated in the Tanner graph.

If the maximum number of iterations is high, the RIS implementation can dramatically improve the error rate of a standard BP algorithm, both in the error floor and the waterfall regions. At the same time, depending on the SNR and on the specific iteration budget, the simulation results show that the average time complexity can be quite low, and even essentially equal to the average time complexity of the base BP algorithm. A second phase that uses the RIS implementation always consists of multiple decoding trials, since only the initial state is randomized. The algorithm has two parameters that must be tuned, namely the trial length and the variance of the random input offset. As already mentioned above, the trial length and offset variance were observed to have only weak interdependence, and each can be optimized separately without significantly affecting the performance. In general, as SNR increases, the BP algorithm converges faster, and the optimal trial length decreases. The results presented use a different trial length for each SNR.

For both codes, very similar results were obtained whether a Gaussian or uniform distribution was chosen for the input offset. Up to the precision of the numerical optimization, the optimal distributions in each case corresponded to an equal variance. Note that for i.i.d. vectors X=[X1, X2, . . . , Xn], Xi≈N(0,σ2), and Y=[Y1, 2, . . . , Yn], Y≈U(−a,a), equal variances VAR(Xi)=VAR(Yi) imply that the L2-norms have equal means E(∥X∥2)=E(∥Y∥2), since E(X2)=VAR(X) and E(Y2)=VAR(Y).

Considering, the relationship between the optimal σd2 and the iteration limit then within the waterfall region, it was observed to slightly increase with the iteration limit, meaning that with a bigger iteration budget, it is advantageous to search farther away from the received vector. Interestingly, the trend for σd2 differs in the error floor region. With a small iteration budget, the optimal value is much bigger than in the waterfall region. For big iteration budgets, the value is smaller and comparable with the values observed in the waterfall region. These results outline two different failure modes for the base BP decoder, characterized by different optimal σd2 values. This observation can be linked to prior art where dominant BP failures in the waterfall region were observed to correspond to unstable states of the decoder, while error floor failures, were observed to correspond to stable states with saturated messages. In the error floor region, as the iteration budget for 1 second phase is increased and the FER gain improves, the “error floor” failure mode ceases to be dominant and the optimal σd2 eventually becomes similar to the optimal values of the waterfall region. Results show that if the iteration budget is large, σd2 can be set to the value corresponding to “waterfall” failures without any loss in error correction performance. On the other hand, using the “error floor” σd2 value as the unique value results in significant degradation for higher iteration budgets.

The BER and FER performance on the RS-LDPC code is shown in FIG. 15 and on the Margulis code, in FIG. 16. On the RS-LDPC code, the RIS implementation achieves approximately the same performance as RSF for small iteration budgets. Using a budget of 2.4×107 iterations, a decoding gain of 0.35 dB is obtained at a FER of 2.3×10−9 with respect to RSF, and 0.40 dB with respect to the decoder of Zhang et al. At this SNR (4.2 dB) and for this iteration budget, the increase in average time complexity is only 3.5%. However, at 4.0 dB, the complexity increase is 528%. To maintain a fixed complexity increase at all SNRs, the iteration budget would need to be adjusted based on the SNR.

On the Margulis code, the FER gain provided by RIS is limited when the iteration budget is small (200 iterations), but high error rate gains are possible once the budget increases. With a budget of 5×107 iterations, at 2.4 dB a FER gain of three orders of magnitude is obtained, while the average time complexity increase is 2%. The highest FER gain that was simulated is 2.7×10−4. FIG. 19 shows the FER gain obtained for each code as a function of the iteration budget, for various SNRs. For SNRs in the floor region, two curves are shown. One corresponds to a decoder that uses two σd2 values, switching from the larger to the smaller one after a predetermined number of trials. The other uses a single value for σd2. For both codes, the FER gain efficiency increases with SNR. This increase in efficiency (combined with some improvement in the first phase FER) results in a decrease of the average time overhead as the SNR increases while the iteration budget remains constant, as in the examples above. For each scenario in FIG. 19, the cost of the FER gains in terms of the average time complexity overhead is shown in FIG. 20. At medium to high SNRs, significant gains can be obtained with close to no overhead.

The above-described embodiments of the present invention are intended to be examples only. Alterations, modifications and variations may be effected to the particular embodiments by those of skill in the art without departing from the scope of the invention, which is defined solely by the claims appended hereto.

Claims

1. A method comprising:

providing a decoder for decoding received digital data according to a decoding process comprising a plurality of processing nodes, wherein
at least one of:
(A) the decoder further comprises linking a common control line to a predetermined portion of the plurality of processing nodes wherein each processing node of the plurality of processing nodes comprises at least a control port coupled to the common control line for receiving a control message, and transmitting the control message on the common control line wherein the width of a pulse transmitted is modulated in dependence with a magnitude associated with the control message;
(B) the decoding process comprises estimating a probability associated with a predetermined portion of the decoding process in dependence upon the states of a predetermined subset of the plurality of processing nodes and a current belief relating to the decoding process;
(C) the decoder further comprises providing a random number generator and executing a predetermined portion of the decoding process multiple times on the same received digital data wherein each execution is performed with a different seed for the random number generator;
(D) the decoder further comprises providing a second decoder comprising a component to randomize the decoding trajectory of the second decoder wherein digital content is parsed to the second decoder upon determining that the decoder has failed to decode the received digital data, the digital content being one of the decoded result of the decoder and the received digital data;
(E) the decoder further comprises providing a counter forming a predetermined portion of the decoder and operating the counter at a first clock rate, the first clock rate being at a higher clock rate than a second clock rate relating to the rest of the decoder;
(F) the decoder further comprises providing a variable node as part of the decoder, providing a check node as cart of the decoder, providing an edge linking the variable node and the check node and providing a clock having a first clock and a second clock rate wherein the clock is coupled to the variable node and the one of the first clock rate and second clock rate for the clock is established in dependence upon a transition relating to the edge; and
(G) the decoder further comprises a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes, a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes, and the decoding process comprises passing a current belief and information relating to the state of the plurality of processing nodes to an estimator to estimate a probability, delaying a parity check determination relating to the plurality of check nodes, the delay being determined in dependence upon at least the states of the plurality of variable nodes, and performing a parity check operation relating to the plurality of check nodes, the parity check operation made in dependence upon the level of agreement of the variable nodes.

2. The method according to claim 1 further comprising;

providing a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes;
providing a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes; and
determining a parity check relating to a predetermined subset of the plurality of check nodes in dependence upon a level of agreement between a predetermined subset of the plurality of variable nodes.

3. The method according to claim 1 further comprising;

providing a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes;
providing a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes; and
delaying a parity check determination relating to the plurality of check nodes, the delay being determined in dependence upon at least the states of the plurality of variable nodes.

4. A device comprising:

a decoder for decoding received digital data according to a decoding process comprising a plurality of processing nodes, the decoder comprising;
at least one of: (A) a common control line coupled to a predetermined portion of the plurality of processing nodes, each processing node of the plurality of processing nodes comprising at least a control port coupled to the common control line for receiving a control message, and a transmitter for transmitting the control message on the common control line wherein the width of a pulse transmitted is modulated in dependence with a magnitude associated with the control message; (B) an estimator for estimating a probability associated with a predetermined portion of the decoding process in dependence upon the states of a predetermined subset of the plurality of processing nodes and a current belief relating to the decoding process, (C) a random number generator; and multiple executions of a predetermined portion of the decoding process multiple times on the same received digital data, each execution being performed with a different seed for the random number generator; and (D) a second decoder comprising a component to randomize the decoding trajectory of the second decoder; wherein digital content is parsed to the second decoder upon determining that the decoder has failed to decode the received digital data, the digital content being one of the decoded result of the decoder and the received digital data.

5. The device according to claim 4 further comprising;

a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes;
a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes; and
a parity checker for determining a parity check relating to a predetermined subset of the plurality of check nodes in dependence upon a level of agreement between a predetermined subset of the plurality of variable nodes.

6. The device according to claim 4 further comprising;

a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes;
a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes; and
a delay circuit for delaying a parity check determination relating to the plurality of check nodes, the delay being determined in dependence upon at least the states of the plurality of variable nodes.

7. The device according to claim 4 further comprising;

a counter forming a predetermined portion of the decoder; wherein
the counter is operated at a first clock rate, the first clock rate being at a higher clock rate than a second clock rate relating to the rest of the decoder.

8. The device according to claim 4 further comprising;

a variable node as part of the decoder;
a check node as part of the decoder;
an edge linking the variable node and the check node;
a clock generator for providing a clock having a first clock rate and a second clock rate to the variable node, the one of the first clock rate and second clock rate for the clock being determined in dependence upon a transition relating to the edge.

9. The device according to claim 4 wherein,

a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes;
a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes;
an estimator for generating an estimate a probability in dependence upon a current belief and information relating to the state of the plurality of processing nodes;
a delay circuit for delaying a parity check determination relating to the plurality of check nodes, the delay being determined in dependence upon at least the states of the plurality of variable nodes; and
a parity checker for performing a parity check operation relating to the plurality of check nodes in dependence upon the level of agreement of the variable nodes.

10. A device comprising:

a decoder for decoding received digital data according to a decoding process comprising a plurality of processing nodes, the decoder comprising;
at least one of: (A) a counter forming a predetermined portion of the decoder, wherein the counter is operated at a first clock rate, the first clock rate being at a higher clock rate than a second clock rate relating to the rest of the decoder; (B) a variable node as part of the decoder, a check node as part of the decoder, an edge linking the variable node and the check node, and a clock generator coupled to the variable node for providing a clock having a first clock rate and a second clock rate, the one of the first clock rate and second clock rate being determined in dependence upon a transition relating to the edge; and (C) a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes, a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes, an estimator for generating an estimate a probability in dependence upon a current belief and information relating to the state of the plurality of processing nodes, a delay circuit for delaying a parity check determination relating to the plurality of check nodes, the delay being determined in dependence upon at least the states of the plurality of variable nodes, and a parity checker for performing a parity check operation relating to the plurality of check nodes in dependence upon the level of agreement of the variable nodes.

11. The device according to claim 10 further comprising;

a common control line coupled to a predetermined portion of the plurality of processing nodes, each processing node of the plurality of processing nodes comprising at least a control port coupled to the common control line for receiving a control message; and
a transmitter for transmitting the control message on the common control line wherein the width of a pulse transmitted is modulated in dependence with a magnitude associated with the control message.

12. The device according to claim 10 further comprising;

an estimator for estimating a probability associated with a predetermined portion of the decoding process in dependence upon the states of a predetermined subset of the plurality of processing nodes and a current belief relating to the decoding process.

13. The device according to claim 10 further comprising;

a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes;
a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes; and
a parity checker for determining a parity check relating to a predetermined subset of the plurality of check nodes in dependence upon a level of agreement between a predetermined subset of the plurality of variable nodes.

14. The device according to claim 10 further comprising;

a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes;
a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes; and
a delay circuit for delaying a parity check determination relating to the plurality of check nodes, the delay being determined in dependence upon at least the states of the plurality of variable nodes.

15. The device according to claim 10 further comprising;

a random number generator; and
multiple executions of a predetermined portion of the decoding process multiple times on the same received digital data, each execution being performed with a different seed for the random number generator.

16. The device according to claim 10 further comprising;

a second decoder comprising a component to randomize the decoding trajectory of the second decoder; wherein
digital content is parsed to the second decoder upon determining that the decoder has failed to decode the received digital data, the digital content being one of the decoded result of the decoder and the received digital data.

17. A method comprising providing a decoder for decoding received digital data according to a decoding process comprising a plurality of processing nodes, wherein the decoding process comprises:

generating a list of candidate codewords by, for each of the codewords in the list of candidate codewords, estimating a probability associated with a predetermined portion of the decoding process in dependence upon the states of a predetermined subset of the plurality of processing nodes and a current belief relating to the decoding process, and calculating decision data for each of the processing nodes in the plurality of processing nodes;
for each of the codewords in the list of candidate codewords, determining a weight based on the decision data for each of the processing nodes, in the plurality of processing nodes, that is associated with the codeword; and
selecting, as the decoded digital data, a valid codeword from the list of candidate codewords, the valid codeword selected based on the weights.

18. The method of claim 17, wherein each candidate codeword is generated in an independent decoding attempt.

19. The method of claim 18, wherein the independent decoding attempts are calculated in parallel.

20. The method of claim 18, wherein the independent decoding attempts are calculated in sequence.

21. The method of claim 18, wherein the independent decoding attempts are calculated until an iteration budget is exceeded.

22. The method of claim 17, wherein the weight associated with a candidate codeword is based on a parity of at least one of the processing nodes associated with the candidate codeword.

23. The method of claim 17, wherein the weight associated with a candidate codeword is based on a sign bit for at least one of the processing nodes associated with the candidate codeword.

24. The method of claim 17, wherein the weight associated with a candidate codeword is based on a sign bit for a predetermined portion of the decoding process.

25. The method of claim 17, wherein the weight associated with a candidate codeword comprises a random component.

26. The method of claim 17, wherein the decision data is further based on the estimated probability.

27. The method of claim 17, wherein the decision data is further based on the states of the predetermined subset of the plurality of processing nodes.

28. The method of claim 17, wherein the decision data is further based on the current belief relating to the decoding process.

29. The method of claim 17, wherein the weight comprises a syndrome weight.

30. The method of claim 17, further comprising:

providing a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes;
providing a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes; and
determining a parity check relating to a predetermined subset of the plurality of check nodes in dependence upon a level of agreement between a predetermined subset of the plurality of variable nodes.

31. The method of claim 17, wherein the decoder comprises a polar decoder.

32. The method of claim 31, wherein the polar decoder decodes the received digital data based on list decoding of at least one of the candidate codewords in the list of candidate codewords.

33. The method of claim 31, further comprising a second decoder, the second decoder comprising a Low-Density Parity-Check (LDPC) decoder.

34. The method of claim 17, wherein the decoder comprises a Low-Density Parity-Check (LDPC) decoder.

35. The method of claim 17, wherein the plurality of processing nodes comprises a set of check nodes and a set of variable nodes.

36. The method of claim 35, wherein the current belief is based on an output of at least one of the check nodes in the set of check nodes.

37. The method of claim 35, wherein the number of the check nodes in the set of check nodes is less than the number of the variable nodes in the set of variable nodes.

38. The method of claim 35, further comprising providing, by at least one variable node of the set of variable nodes, the probability in a signal.

39. The method of claim 35, further comprising providing, by at least one of the set of check nodes, the probability in a signal.

40. The method of claim 17, wherein the decoding process further comprises:

dividing the received digital data into a first set of digital data and a second of digital data;
decoding the first set of digital data using a first subset of the plurality of processing nodes to obtain a first decoded result;
decoding the second set of digital data using a second subset of the plurality of processing nodes and a second current belief based on the first decoded result to obtain a second decoded result; and
constructing a decoded message based on the first decoded result and the second decoded result.

41. The method of claim 17, further comprising receiving the digital data via a communication channel having data-corrupting noise present in the communication channel.

42. The method of claim 17, further comprising:

during the generating of the list of candidate codewords, detecting an error in a candidate codeword in the list of candidate codewords; and
removing the candidate codeword having the detected error from the list of candidate codewords.

43. The method of claim 17, wherein:

the decoding process comprises following distinct decoding paths within the plurality of processing nodes of the decoder; and
the plurality of processing nodes comprises a set of variable nodes, a set of check nodes distinct from the set of variable nodes, and a plurality of associated edges, wherein a subset of the plurality of associated edges connects a variable node in the set of variable nodes to at least one of the check nodes in the set of check nodes.

44. The method of claim 43, wherein the distinct decoding paths comprise variable nodes in the set of variable nodes, check nodes in the set of check nodes, and the associated edges in the plurality of associated edges connecting a particular variable node to a particular check node.

45. The method of claim 43, wherein a subset of the set of variable nodes comprises degree-3 variable nodes.

46. The method of claim 45, wherein a second subset of the set of variable nodes comprises degree-1 variable nodes.

47. The method of claim 45, wherein each of the check nodes in the set of check nodes comprises a degree-1 check node.

48. The method of claim 17, wherein the decoding process comprises obtaining a received signal vector of a first polar code.

49. The method of claim 48, wherein the decoding process further comprises:

searching a codeword state space based on the received signal vector to identify a candidate codeword; and
constructing a decoded message based on the identified candidate codeword.

50. The method of claim 17, wherein the current belief comprises a plurality of bits determined based on a subset of the plurality of processing nodes.

51. The method of claim 17, wherein the estimated probability is based on an exclusive or operation performed on inputs to at least one of the processing nodes in the plurality of processing nodes.

52. The method of claim 17, wherein at least one of the processing nodes in the plurality of processing nodes returns the current belief without any change to the states of the predetermined subset of the plurality of processing nodes.

53. The method of claim 17, wherein each of the processing nodes in the plurality of processing nodes comprises an internal memory.

54. The method of claim 53, wherein the internal memory of a particular processing node in the plurality of processing nodes stores a state of the particular processing node.

55. The method of claim 53, wherein the internal memory of a particular processing node in the plurality of processing nodes stores a current belief of the particular processing node.

56. The method of claim 17, wherein the plurality of processing nodes comprises a set of variable nodes, wherein the method further comprises generating, by at least one of the variable nodes in the set of variable nodes, a signal updating the states of the predetermined subset of the plurality of processing nodes.

57. The method of claim 17, wherein the plurality of processing nodes comprises a set of variable nodes, wherein the method further comprises generating, by at least one of the variable nodes in the set of variable nodes, a signal updating the current belief.

58. The method of claim 17, wherein the plurality of processing nodes comprises a set of check nodes, and wherein the method further comprises generating, by each of the check nodes in the set of check nodes, a signal having a predetermined value.

59. The method of claim 17, further comprising performing a second decoding process using a second decoder, the second decoder comprising a second plurality of processing nodes, the second plurality of processing nodes comprising a set of variable nodes, a set of check nodes, and a set of associated edges;

indicating, by one of the check nodes in the set of check nodes, a parity check equation; and
indicating, by one of the variable nodes in the set of variable nodes, a codeword bit, wherein, when the parity check equation includes the codeword bit, one of the edges in the set of associated edges connects the variable node to the check node.

60. The method of claim 59, wherein each of the edges in the set of associated edges, that is associated with a particular variable node in the set of variable nodes, receives N inputs, wherein, for each of the edges, N-1 of the inputs of the N inputs are received from the particular variable node and one of the inputs of the N inputs is received from a bitstream generator.

61. The method of claim 60, further comprising generating, by the bitstream generator, bits randomly with a given channel probability.

62. The method of claim 60, further comprising:

calculating, for each of the edges, whether the N inputs of the edge are equal, and
generating an output corresponding to the edge, the output comprising a value of the N inputs when the N inputs are equal and the output comprising a randomly generated bit when the N inputs are not equal.

63. The method of claim 59, further comprising receiving, by a particular check node of the check nodes in the set of check nodes, an input comprising a random bit, the states of the predetermined subset of the plurality of processing nodes, and the current belief; and

generating, by the particular check node, an output signal based on the random bit, the states, and the current belief.

64. The method of claim 17, further comprising generating an output message by processing, using a second decoder, the valid codeword.

65. The method of claim 17, wherein the probability comprises a log-likelihood ratio.

66. The method of claim 17, wherein the probability is provided in a signal provided by at least one of the processing nodes of the plurality of processing nodes.

67. The method of claim 17, further comprising decoding, by the predetermined subset of the plurality of processing nodes, a portion of the received digital data.

68. The method of claim 17, wherein the predetermined subset of the plurality of processing nodes comprises at least one variable node.

69. The method of claim 17, wherein the predetermined subset of the plurality of processing nodes comprises at least one check node.

70. The method of claim 17, wherein estimating the probability associated with the predetermined portion of the decoding process is further in dependence upon a partial decoding of the received digital data.

71. The method of claim 17, wherein estimating the probability associated with the predetermined portion of the decoding process is further in dependence upon a decoding of a portion of the received digital data.

72. The method of claim 17, wherein the predetermined portion of the decoding process comprises performing a check operation calculated based on the states of a predetermined subset of the plurality of processing nodes.

73. The method of claim 17, wherein the predetermined portion of the decoding process comprises performing an equality check operation calculated based on the states of a predetermined subset of the plurality of processing nodes.

74. The method of claim 17, further comprising determining each of the candidate codewords in the list of candidate codewords using, for each of the candidate codewords, a distinct instance of the decoder.

75. A device comprising:

a decoder for decoding received digital data according to a decoding process comprising a plurality of processing nodes, the decoder comprising an estimator for estimating a probability associated with a predetermined portion of the decoding process in dependence upon the state of a predetermined subset of the plurality of processing nodes and a current belief relating to the decoding process, the estimator comprising at least a portion of the plurality of processing nodes; the plurality of processing nodes operable to: generate a list of candidate codewords, for each codeword in the list of candidate codewords, estimating a probability associated with a predetermined portion of a decoding process in dependence upon states of a predetermined subset of the plurality of processing nodes and a current belief relating to the decoding process and calculating decision data for each of the processing nodes of the plurality of processing nodes; for each codeword in the list of candidate codewords, determine a weight based on the decision data for each or the processing nodes associated with the codeword; and select, as decoded digital data, a valid codeword from the list of candidate codewords, the valid codeword selected based on the weights for the codewords in the list of candidate codewords.

76. The device of claim 75, wherein each candidate codeword is generated in an independent decoding attempt.

77. The device of claim 76, wherein the independent decoding attempts are calculated in parallel.

78. The device of claim 76, wherein the independent decoding attempts are calculated in sequence.

79. The device of claim 76, wherein the independent decoding attempts are calculated until an iteration budget is exceeded.

80. The device of claim 75, wherein the weight comprises a parity of at least one of the processing nodes of the plurality of processing nodes.

81. The device of claim 75, wherein the weight comprises a sign bit for one of the processing nodes of the plurality of processing nodes.

82. The device of claim 75, wherein the weight comprises a sign bit for a predetermined portion of the decoding process.

83. The device of claim 75, wherein the weight comprises a random component.

84. The device of claim 75, wherein the decision data is further based on the estimated probability.

85. The device of claim 75, wherein the decision data is further based on the states of a predetermined subset of the plurality of processing nodes.

86. The device of claim 75, wherein the decision data is further based on the current belief.

87. The device of claim 75, wherein the weight comprises a syndrome weight.

88. The device of claim 75, wherein the processing nodes are further operable to:

provide a plurality of check nodes forming a first predetermined portion of the plurality of processing nodes;
provide a plurality of variable nodes forming a second predetermined portion of the plurality of processing nodes; and
determine a parity check relating to a predetermined subset of the plurality of check nodes in dependence upon a level of agreement between a predetermined subset of the plurality of variable nodes.

89. The device of claim 75, wherein the decoder comprises a polar decoder.

90. The device of claim 89, wherein the polar decoder decodes the received digital data based on list decoding of at least one candidate codeword.

91. The device of claim 89, further comprising a second decoder, the second decoder comprising a Low-Density Parity-Check (LDPC) decoder.

92. The device of claim 75, wherein the decoder comprises a Low-Density Parity-Check (LDPC) decoder.

93. The device of claim 75, wherein the plurality of processing nodes comprises a set of check nodes and a set of variable nodes.

94. The device of claim 93, wherein the current belief is determined based on an output of at least one of the check nodes in the set of check nodes.

95. The device of claim 93, wherein the number of check nodes in the set of check nodes is less than the number of variable nodes in the set of variable nodes.

96. The device of claim 93, wherein the probability is provided in a signal provided by at least one of the variable nodes in the set of variable nodes.

97. The device of claim 93, wherein the probability is provided in a signal provided by at least one of the check nodes in the set of check nodes.

98. The device of claim 75, wherein the processing nodes are further operable to:

divide the received digital data into a first set of digital data and a second set of digital data;
decode the first set of digital data using a first subset of the plurality of processing nodes to obtain a first decoded result;
decode the second set of digital data using a second subset of the plurality of processing nodes and a belief determined based on the first decoded result to obtain a second decoded result; and
construct a decoded message based on the first decoded result and the second decoded result.

99. The device of claim 75, wherein the processing nodes are further operable to receive the digital data via a communication channel having data-corrupting noise present in the communication channel.

100. The device of claim 75, wherein the processing nodes are further operable to:

during the generating of the list of candidate codewords, detect an error in a candidate codeword in the list of candidate codewords; and
remove the candidate codeword having the detected error from the list of candidate codewords.

101. The device of claim 75, wherein:

the decoding process comprises following distinct decoding paths within the plurality of processing nodes; and
the plurality of processing nodes comprising a set of variable nodes, a set of check nodes distinct from the set of variable nodes, and a plurality of associated edges, wherein a subset of the plurality of associated edges connects a variable node in the set of variable nodes to a check node in the set of check nodes.

102. The device of claim 101, wherein the distinct decoding paths comprise variable nodes in the set of variable nodes, check nodes in the set of check nodes, and associated edges connecting a particular variable node of the set of variable nodes to a particular check node of the set of check nodes.

103. The device of claim 101, wherein a first subset of the set of variable nodes comprises degree-3 variable nodes.

104. The device of claim 103, wherein a second subset of the set of variable nodes comprises degree-1 variable nodes.

105. The device of claim 103, wherein each of the check nodes of the set of check nodes comprises a degree-1 check node.

106. The device of claim 75, wherein the decoding process comprises obtaining a received signal vector of a first polar code.

107. The device of claim 106, wherein the processing nodes are further operable;

search a codeword state space based on the received signal vector to identify a candidate codeword; and
construct a decoded message based on the identified candidate codeword.

108. The device of claim 75, wherein the current belief comprises a plurality of bits determined based on a subset of the plurality of processing nodes.

109. The device of claim 75, wherein the estimated probability is determined based on an exclusive or operation performed on inputs to at least one processing node in the plurality of processing nodes.

110. The device of claim 75, wherein at least one of the processing nodes in the plurality of processing nodes returns the current belief without any change to the states of the predetermined subset of the plurality of processing nodes.

111. The device of claim 75 wherein each processing node in the plurality of processing nodes comprises an internal memory.

112. The device of claim 111, wherein the internal memory of a particular processing node in the plurality of processing nodes stores a state of the particular processing node.

113. The device of claim 111, wherein the internal memory of a particular processing node in the plurality of processing nodes stores a current belief of the particular processing node.

114. The device of claim 75, wherein the plurality of processing nodes comprises a set of variable nodes, wherein at least one variable node in the set of variable nodes generates a signal updating a state of the predetermined subset of the plurality of processing nodes.

115. The device of claim 75, wherein the plurality of processing nodes comprises a set of variable nodes, wherein at least one variable node in the set of variable nodes generates a signal updating the current belief.

116. The device of claim 75, wherein the plurality of processing nodes comprises a set of check nodes, wherein each check node in the set of check nodes generates a signal having a predetermined value.

117. The device of claim 75, further comprising a second decoder comprising a second plurality of processing nodes that performs a second decoding process, wherein the second plurality of processing nodes comprises a set of variable nodes, a set of check nodes, and a set of associated edges, wherein an edge connects a variable node to a check node when a codeword bit indicated in the variable node is included in a parity check equation indicated by the check node.

118. The device of claim 117, wherein each edge in a variable node receives N inputs, where N-1 inputs are received from the variable node and one input is received from a bitstream generator.

119. The device of claim 118, wherein the bitstream generator generates bits randomly with a given channel probability.

120. The device of claim 118, wherein each edge calculates whether its inputs are equal and generates an output, the output comprising a value of the inputs when the inputs are equal and the output comprising a randomly generated bit when the inputs are not equal.

121. The device of claim 117, wherein a check node in the set of check nodes receives an input comprising a random bit, the states of a predetermined subset of the plurality of processing nodes, and the current belief; and

the check node generates an output signal based on the random bit, the states, and the current belief.

122. The device of claim 75, further operable to generate an output message by processing, using a second decoder, the valid codeword.

123. The device of claim 75, wherein the probability comprises a log-likelihood ratio.

124. The device of claim 75, wherein the probability is provided in a signal provided by at least one of the plurality of processing nodes.

125. The device of claim 75, wherein the predetermined subset of the plurality of processing nodes comprises at least one processing node that decodes a portion of the received digital data.

126. The device of claim 75, wherein the predetermined subset of the plurality of processing nodes comprises at least one variable node.

127. The device of claim 75, wherein the predetermined subset of the plurality of processing nodes comprises at least one check node.

128. The device of claim 75, wherein the predetermined portion of the decoding process comprises a partial decoding of the received digital data.

129. The device of claim 75, wherein the predetermined portion of the decoding process comprises a decoding of a portion of the received digital data.

130. The device of claim 75, wherein the predetermined portion of the decoding process comprises a check operation calculated based on the states of a predetermined subset of the plurality of processing nodes.

131. The device of claim 75, wherein the predetermined portion of the decoding process comprises an equality check operation calculated based on the states of a subset of the plurality of processing nodes.

132. The device of claim 75, further operable to determine each of the candidate codewords in the list of candidate codewords using a distinct instance of the decoder.

Referenced Cited
U.S. Patent Documents
4633470 December 30, 1986 Welch et al.
6771197 August 3, 2004 Yedidia
6949427 September 27, 2005 Chen et al.
7017106 March 21, 2006 Shen et al.
7133853 November 7, 2006 Richardson et al.
7451377 November 11, 2008 Shokrollahi
7613981 November 3, 2009 Garg et al.
7669109 February 23, 2010 Hocevar
7752523 July 6, 2010 Chaichanavong et al.
8095860 January 10, 2012 Gross et al.
8108758 January 31, 2012 Gross et al.
8108760 January 31, 2012 Gross et al.
8196025 June 5, 2012 Lakkis
8286048 October 9, 2012 Chen et al.
8458555 June 4, 2013 Gunnam
8489962 July 16, 2013 Dielissen
8588623 November 19, 2013 Djordjevic et al.
8719672 May 6, 2014 Park et al.
8898537 November 25, 2014 Gross et al.
9100153 August 4, 2015 Gross et al.
9176927 November 3, 2015 Gross et al.
10075193 September 11, 2018 Gross et al.
20050193320 September 1, 2005 Varnica et al.
20070113163 May 17, 2007 Golitschek Edler Von Elbwart et al.
20080256343 October 16, 2008 Gross et al.
20080294970 November 27, 2008 Gross et al.
20090100313 April 16, 2009 Gross et al.
20090217124 August 27, 2009 Litsyn et al.
20090259912 October 15, 2009 Djordjevic et al.
20090319861 December 24, 2009 Sharon et al.
20100070818 March 18, 2010 Ulriksson
20100074381 March 25, 2010 Gross et al.
20100192043 July 29, 2010 Alrod et al.
20130111291 May 2, 2013 Ma
Foreign Patent Documents
2008124921 October 2008 WO
2009046534 April 2009 WO
Other references
  • Forney, “Codes on graphs: Normal realizations,” IEEE Transactions on Information Theory, Feb. 2001, 520-548, vol. 47, No. 2, IEEE.
  • Forney, “Generalized minimum distance decoding,” IEEE Transactions on Information Theory, Apr. 1966, 125-131, vol. 12, No. 2, IEEE.
  • Forney, “The Viterbi Algorithm,” Proceedings of the IEEE, Mar. 1973, 268-278, vol. 61, No. 3, IEEE.
  • Feng et al., “A generalization of the Berlekamp-Massey algorithm for multisequence shift-register synthesis with applications to de-coding cyclic codes,” IEEE Transactions on Information Theory, Sep. 1991, 1274-1287, vol. 37, No. 5, IEEE.
  • Fettweis et al., “High-speed parallel Viterbi decoding: Algorithm and VLSI-architecture,” IEEE Communications Magazine, May 1991, 46-55, vol. 29, No. 5, IEEE.
  • Fettweis et al., “Parallel Viterbi algorithm implementation: Breaking the ACS bottleneck,” IEEE Transactions on Communications, Aug. 1989, 785-790, vol. 37, No. 8, IEEE.
  • Gallager, “Low-density parity-check codes,” IEEE Transactions on Information Theory, Jan. 1962, 21-28, vol. 8, No. 1, IEEE.
  • Harling et al., “Stochastic Computation applied to the design of Error Correcting Decoders,” Design & Reuse, 2008, Available at http://www.design-reuse.com/articles/21997/stochastic-computation-ldpc.html.
  • Lechner et al., “Decoding of LDPC codes with binary vector messages and scalable complexity,” 5th International Symposium on Turbo Codes and Related Topics, Sep. 2008, 350-355.
  • Masera et al., “Implementation of a flexible LDPC decoder,” IEEE Transactions on Circuits and Systems II: Express Briefs, Jun. 2007, 542-546, vol. 54, No. 6, IEEE.
  • Masera et al., “VLSI architectures for turbo codes,” IEEE Transactions on Very Large Scale Integrations (VLSI) Systems, Sep. 1999, 369-379, vol. 7, No. 3, IEEE.
  • Montorsi et al., “Design of fixed-point iterative decoders for concatenated codes with interleavers,” IEEE Journal on Selected Areas in Communications, May 2001, 871-882, vol. 19, No. 5, IEEE.
  • Olocco et al., “A family of self-dual codes which behave in many respects like random linear codes of rate ½,” Proc. IEEE International Symposium on Information Theory, 2001, 15, IEEE.
  • Sarkis et al., “Reduced-Latency Stochastic Decoding of LDPC Codes over GF(q),” Proceedings of the European Wireless Conference (EW), Apr. 12-15, 2010, 994-998, Lucca, Italy.
  • Sarkis et al., “Stochastic decoding of LDPC codes over GF(q),” Proc. IEEE International Conference on Communications ICC '09, Jun. 14-18, 2009, 1-5, IEEE, Dresden, Germany.
  • Schnabl et al., “Soft-decision decoding of Reed-Muller codes as generalized multiple concatenated codes,” IEEE Transactions on Information Theory, Jan. 1995, 304-308, vol. 41, No. 1, IEEE.
  • Gallager, Low Density Parity Check Codes, 1963, Monograph, M.I.T. Press.
  • He et al., “Low-complexity probability generation algorithm for stochastic decoding of non-binary LDPC codes,” 2011 6th International ICST Conference on Communications and Networking in China (CHINACOM), 2011, 65-70, IEEE, Harbin, China.
  • Guruswami et al., “Improved decoding of Reed-Solomon and Algebraic-Geometry codes,” IEEE Transactions on Information Theory, Sep. 1999, 1757-1767, vol. 45, No. 6, IEEE.
  • Dawid et al., “Real-time algorithms and VLSI architectures for soft output MAP convolutional decoding,” Proc. 6th International Symposium on Personal, Indoor and Mobile Radio Communications PIMRC'95, 1995, 193-197, IEEE, Toronto, ON, Canada.
  • Dawid et al., “Map channel decoding: Algorithm and VLSI architecture,” Proc. IEEE Workshop on VLSI Signal Processing VI, 1993, 141-149, IEEE.
  • Lee, “A high-speed low-complexity Reed-Solomon decoder for optical communications,” IEEE Transactions on Circuits and Systems II: Express Briefs, Aug. 2005, 461-465, vol. 52, No. 8, IEEE.
  • Möller et al., “The construction of multivariate polynomials with preassigned zeros,” in EUROCAM '82, European Computer Algebra Conference (J. Calmet, ed.), Apr. 1982, 24-31, vol. 144 of Lecture Notes In Computer Science, Marseille, France.
  • Mahdavifar et al., “Achieving the secrecy capacity of wiretap channels using polar codes,” IEEE ISIT 2010, Jun. 2010, 913-917.
  • Zeidan et al., “Modified Iterative Two-Stage Hybrid Decoding Algorithm for Low-Density Parity-Check (LDPC) Codes,” VTC Spring 2009—IEEE 69th Vehicular Technology Conference, 2009, 1-5, IEEE, Barcelona, Spain.
  • Zeidan et al., “Two-Stage Hybrid decoding for Low-Density Parity-Check codes,” 2007 Innovations in Information Technologies (IIT), 2007, 650-654, IEEE, Dubai.
  • Song et al., “Reduced-complexity decoding of Q-ary LDPC codes for magnetic recording,” IEEE Transactions on Magnetics, Mar. 2003, 1081-1087, vol. 39, No. 2, IEEE.
  • Xia et al., “Application of soft-decision Reed-Solomon decoding to magnetic recording channels,” IEEE Transactions on Magnetics, Sep. 2004, 3419-3430, vol. 40. No. 5, IEEE.
  • Xia et al., “Performance of reliability-based iterative soft-decision Reed-Solomon decoding on magnetic recording channels,” IEEE Transactions on Magnetics, Jul. 2007, 3320-3323, vol. 43, No. 7, IEEE.
  • Xia et al., “Reliability-based reed-solomon decoding for magnetic recording channels,” IEEE Transactions on Magnetics, Oct. 2006, 2603-2605, vol. 42, No. 10, IEEE.
  • Xia et al., “Retry Mode Soft Reed-Solomon Decoding,” IEEE Transactions on Magnetics, Sep. 2002, 2325-2327, vol. 38, No. 5, IEEE.
  • Xiao et al., “Successive relaxation for decoding of LDPC codes,” 24th Queen's Biennial Symposium on Communications, Jun. 2008, IEEE.
  • Youn et al., “On implementing large binary tree architectures in VLSI and WSI,” IEEE Transactions on Computers, Apr. 1989, 526-537, vol. 38, No. 4, IEEE.
  • Yamagishi et al., “High throughput hardware architecture for (14401344) low-density parity-check code utilizing quasi-cyclic structure” Proc. 2008 5th International Symposium on Turbo Codes and Related Topics, 2008, 78-83, IEEE.
  • Zhong et al., “Area-efficient min-sum decoder design for high-rate quasi-cyclic low-density parity-check codes in magnetic recording” IEEE Transactions on Magnetics, Dec. 2007, 4117-4122, vol. 43, No. 12, IEEE.
  • Loeliger et al., “Probability propagation and decoding in analog VLSI,” Proc. 1998 IEEE International Symposium on Information Theory, Aug. 16-21, 1998, 146, IEEE.
  • Hemati et al., “A 0.18μm analog min-sum iterative decoder for a (32,8) low-density parity-check (LDPC) code,” IEEE Journal of Solid-State Circuits, Nov. 2006, 2531-2540, vol. 41, No. 11, IEEE.
  • Djordjevic et al., “Adaptive LDPC-coded OFDM for radio-over-fiber technologies,” Proc. 22nd LEOS Annual Meeting Conference IEEE Photonics Society, Oct. 2009, 448-449, IEEE.
  • Djordjevic et al., “LDPC codes and stochastic decoding for beyond 100 GB/s optical transmission,” 34th European Conference on Optical Communication, Sep. 2008, IEEE.
  • Djordjevic et al., “On the reduced-complexity of LDPC decoders for ultra-high-speed optical transmission,” Optics Express, Oct. 2010, 23371-23377, vol. 18, No. 22.
  • Djordjevic et al., “Next generation FEC for high-capacity communication in optical transport networks (Invited),” Journal of Lightwave Technology, Aug. 2009, 3518-3530, vol. 27, No. 16, IEEE.
  • Djordjevic et al., “Low-density parity-check codes for 40-Gb/s optical transmission system,” IEEE Journal of Selected Topics in Quantum Electronics, July-Aug. 2006, 555-562, vol. 12, No. 4, IEEE.
  • Djordjevic et al., “Nonbinary LDPC codes for optical communication systems,” IEEE Photonics Technology Letters, Oct. 2005, 2224-2226, vol. 17, No. 10, IEEE.
  • Djurdjevic et al., “A class of low-density parity-check codes constructed based on Reed-Solomon codes with two information symbols,” IEEE Communications Letters, Jul. 2003, 317-319, vol. 7, No. 7, IEEE.
  • Land et al., “Adaptive decoding of LDPC codes with binary messages,” 2009 IEEE International Symposium on Information Theory, Jun.-Jul. 2009, 2146-2150, IEEE, Seoul, South Korea.
  • Reed et al., “Polynomial codes over certain finite fields,” SIAM Journal of Applied Math., 1960, 300-304, vol. 8, No. 2.
  • Abbott et al., “Computing Ideals of Points,” Journal of Symbolic Computation, Oct. 2000, 341-356, vol. 30, No. 4.
  • Anderson et al., “Power Estimation Techniques for FPGAs,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Oct. 2004, 1015-1027, vol. 12, No. 10, IEEE.
  • Anderson et al., “Tailbiting MAP decoders,” IEEE Journal on Selected Areas in Communications, Feb. 1998, 297-302, vol. 16, No. 2, IEEE.
  • Carlach et al., “A new scheme for building good self-dual block codes,” Proc. IEEE International Symposium on Information Theory, 2000, 476, IEEE, Sorrento, Italy.
  • Machine Translation of: Dingninou et al., “Organization de la mémoire dans un turbo décodeur utilisant l'algorithme Sub-Map,” Proc. Gretsi, Sep. 1999, 71-74. (filed with IDS filed Jul. 14, 2023 (See Jul. 14, 2023 IDS, sheet 2, item 5)).
  • Machine Translation of: Otmani, “Codes cortex et construction de codes auto-duaux optimaux,” 2002. (filed with IDS filed Jul. 14, 2023 (See Jul. 14, 2023 IDS, sheet 2, item 10)).
  • Machine Transation of: Leroux et al., “Architectures matérielles pour le décodage des codes polaires,” Proceedings of the GRETSI Symposium on Signal and Image Processing, Sep. 5-8, 2011, Bordeaux, France. (filed with IDS filed Jul. 14, 2023 (See Jul. 14, 2023 IDS, sheet 2, item 43)).
  • Machine Translation of: Boutillon et al., “Gestion de la memoire pour l'algorithme du forward-backward,” Proceedings of the 5e Workshop AAA sur l'Adéquation Algorithme Architecture, Jan. 26-28, 2000, 26-28, INRIA, Rocquencourt, France. (filed with IDS filed Jul. 14, 2023 (See Jul. 14, 2023 IDS, sheet 3, item 28)).
  • Machine Translation of: Cadic, “Construction de turbo codes courts possédant de bonnes propriétés de distance minimale,” 2003. (filed with IDS filed Jul. 14, 2023 (See Jul. 14, 2023 IDS, sheet 3, item 30)).
  • Machine Translation of: Hasse, “Theorie der höheren Differentiale in einem algebraischen Funktionenkörper mit vollkommenem Konstantenkörper bei beliebiger Charakteristik,” Journal für die reine und angewandte Mathematik, 1936, 50-54, vol. 175. (filed with IDS filed Jul. 14, 2023 (See Jul. 14, 2023 IDS, sheet 3, item 42)).
  • Machine Translation of: Jego et al., “Turbo décodage de codes produits par un algorithme basé sur la propagation de croyance.” (filed with IDS filed Jul. 14, 2023 (See Jul. 14, 2023 IDS, sheet 9, item 10)).
  • Chen et al., “Reduced-complexity decoding of LDPC codes,” IEEE Transactions on Communications, Aug. 2005, 1288-1299, vol. 53, No. 8, IEEE.
  • Chen et al., “Sliding Window Method for stochastic LDPC decoder,” 2011 IEEE International Symposium of Circuits and Systems (ISCAS), 2011, 1307-1310, IEEE.
  • Chen et al., “Density evolution for two improved BP-based decoding algorithms of LDPC codes,” IEEE Communications Letters, May 2002, 208-210, vol. 6, No. 5, IEEE.
  • Chen et al., “Near optimum universal belief propagation based decoding of low-density parity check codes,” IEEE Transactions on Communications, Mar. 2002, 406-414, vol. 50, No. 3, IEEE.
  • Chen et al., “Performance comparison between non-binary LDPC codes and Reed-Solomon codes over noise bursts channels” Proc. International Conference on Communications, Circuits and Systems, 2005, 1-4, IEEE.
  • Cho et al., “Adaptive Threshold Technique for Bit-Flipping Decoding of Low-Density Parity-Check Codes,” in IEEE Communications Letters, Sep. 2010, 857-859, vol. 14, No. 9, IEEE.
  • D'Ambrosia, “40 gigabit Ethernet and 100 gigabit Ethernet: The development of a flexible architecture [Commentary],” IEEE Communications Magazine, Mar. 2009, S8-S14, vol. 47, No. 3, IEEE.
  • Dielissen et al., “State vector reduction for initialization of sliding windows MAP,” Proc. 2nd International Symposium on Turbo Codes, Sep. 2000, 387-390.
  • Hagenauer et al., “A Viterbi algorithm with soft-decision outputs and its applications,” Proc. IEEE Global Telecommunications Conference, Nov. 1989, 1680-1686, IEEE.
  • Hagenauer et al., “Iterative decoding of binary block and convolutional codes,” IEEE Transactions on Information Theory, Mar. 1996, 429-445, vol. 42, No. 2, IEEE.
  • Han et al., “A system architecture solution for unreliable nanoelectronic devices,” IEEE Transactions on Nanotechnology, Dec. 2002, 201-208, vol. 1, No. 4, IEEE.
  • Jiang et al., “Iterative soft decoding of Reed-Solomon codes,” IEEE Communications Letters, Apr. 2004, 244-246, vol. 8, No. 4, IEEE.
  • Jiang et al., “Iterative soft-input soft-output decoding of Reed-Solomon codes by adapting the parity-check matrix,” IEEE Transactions on Information Theory, Aug. 2006, 3746-3756, vol. 52, No. 8, IEEE.
  • Justesen et al., “Iterative List Decoding of Some LDPC Codes,” in IEEE Transactions on Information Theory, Nov. 2007, 4276-4284, vol. 53, No. 11, IEEE.
  • Kang et al., “A Two-Stage Iterative Decoding of LDPC Codes for Lowering Error Floors,” IEEE Globecom 2008—2008 IEEE Global Telecommunications Conference, Nov.-Dec. 2008, 1-4, IEEE.
  • Kaza et al., “Design and implementation of low-energy Turbo decoders,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Sep. 2004, 968-977, vol. 12, No. 9, IEEE.
  • Koo et al., “Evaluation of a high-level-language methodology for high-performance reconfigurable computers,” in Proc. IEEE 18th International Conference on Application-Specific Systems, Architectures and Processors (ASAP), Jul. 2007, 30-35, IEEE, Montreal, QC, Canada.
  • Massey, “Shift-register synthesis and BCH decoding,” IEEE Transactions on Information Theory, Jan. 1969, 122-127, vol. 15, No. 1, IEEE.
  • Lin et al., “Efficient Shuffle Network Architecture and Application for WiMAX LDPC Decoders,” IEEE Transactions on Circuits and Systems II: Express Briefs, Mar. 2009, 215-219, vol. 56, No. 3, IEEE.
  • Perez-Chamorro et al., “Decoding a family of dense codes using the sum-product algorithm,” Proc. IEEE Int. Symposium on Circuits and Systems (ISCAS), May 2009, 2685-2688, IEEE.
  • Yu et al., “Optical millimeter-wave generation or up-conversion using external modulators,” IEEE Photonics Technology Letters, Jan. 2006, 265-267, vol. 18, No. 1, IEEE.
  • Zhang et al., “A modified weighted bit-flipping decoding of low-density parity-check codes,” IEEE Communications Letters, Mar. 2004, 165-167, vol. 8, No. 3, IEEE.
  • Zhang et al., “Two-dimensional correction for Min-Sum decoding of irregular LDPC codes,” IEEE Communications Letters, Mar. 2006, 180-182, vol. 10, No. 3, IEEE.
  • Carlach et al., “A systematic construction of self-dual codes,” IEEE Transactions on Information Theory, Nov. 2003, 3005-3009, vol. 49, No. 11, IEEE.
  • Abend et al., “Statistical detection for communication channels with intersymbol interference,” Proc. of the IEEE, May 1970, 779-785, vol. 58, No. 5, IEEE.
  • Cattell et al., “Synthesis of one-dimensional linear hybrid cellular automata,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Mar. 1996, 325-335, vol. 15, No. 3, IEEE.
  • Cushon et al., “Bidirectional Interleavers for LDPC Decoders using Transmission Gates,” Proceedings of the IEEE Workshop on Signal Processing Systems (SiPS), Oct. 7-9, 2009, 232-237, IEEE, Tampere, Finland.
  • He et al., “Low power decoder design for QC-LDPC codes,” Proceedings of 2010 IEEE International Symposium on Circuits and Systems, 2010, 3937-3940, IEEE, Paris, France.
  • Gunnam et al., “A parallel VLSI architecture for layered decoding for array LDPC codes,” Proc. 20th International Conference on VLSI Design (VLSID'07), Jan. 2007, 738-743, IEEE, Bangalore, India.
  • Gunnam et al., “VLSI architectures for layered decoding for irregular LDPC codes of WiMax,” Proc. IEEE International Conference on Communications, Jun. 2007, 4542-4547, Glasgow, UK.
  • Nepal et al., “Designing logic circuits for probabilistic computation in the presence of noise,” Proc. 42nd Annual Design Automation Conference (DAC '05), Jun. 2005, 485-490.
  • Onohara et al., “Soft-decision FEC for 100G transport systems,” Optical Fiber Communication Conference, Mar. 2010, Optica Publishing Group, San Diego, California, USA.
  • Ho et al., Soft-decoding of low-density parity check codes for DPSK signals, Optical Fiber Communication Conference and Expo. and the National Fiber Optic Engineers Conference, Mar. 2007, IEEE, Anaheim, CA, USA.
  • Shimuzu et al., “Optimum soft-decision FEC thresholds for on-off optical receiver using block turbo code,” Optical Fiber Communication Conference, Feb. 2004, IEEE, Los Angeles, CA, USA.
  • Tzou et al., “Sliding block decoding of convolutional codes,” IEEE Transactions on Communications, Sep. 1981, 1401-1403, vol. 29, No. 9, IEEE.
  • Korda et al., “Polar Codes Characterization of Exponent, Bounds and Constructions,” IEEE Transactions on Information Theory, Dec. 2010, 6253-6264, vol. 56, No. 12, IEEE.
  • Kotter et al., “Algebraic soft-decision decoding of Reed-Solomon codes,” in Proc. of the IEEE International Symposium on Information Theory, 2000, 61, Sorrento, Italy.
  • Huang et al., “A Markov chain model for Edge Memories in stochastic decoding of LDPC codes,” 2011 45th Annual Conference on Information Sciences and Systems, 2011, 1-4, IEEE, Baltimore, MD, USA.
  • Bernault et al., “Fast decoding algorithm for LDPC over GF(2/sup q/),” Proc. IEEE Information Theory Workshop, Mar. 31-Apr. 4, 2003, 70-73, IEEE.
  • Dolecek et al., “Analysis of absorbing sets for array-based LDPC codes,” IEEE International Conference on Communications, Jun. 2007, 6261-626, IEEE, Glasgow, UK.
  • Gao et al., “Custom VLSI design of efficient low latency and low power finite field multiplier for Reed-Solomon codec,” Proc. IEEE International Symposium on Circuits and Systems, 2001, 574-577, Sydney, NSW, Australia.
  • Liu et al., “Sliced message passing: High throughput overlapped decoding of high-rate low-density parity-check codes,” IEEE Transactions on Circuits and Systems I: Regular Papers, Dec. 2008, 3697-3710, vol. 55, No. 11, IEEE.
  • Song et al., “10- and 40-Gb/s forward error correction devices for optical communications,” IEEE Journal of Solid-State Circuits, Nov. 2002, 1565-1573, vol. 37, No. 11, IEEE.
  • Ardakani et al., “Gear-shift decoding,” IEEE Transactions on Communications, Jul. 2006, 1235-1242, vol. 54, No. 7, IEEE.
  • Arzel et al., “Analog slice turbo decoding,” in Proc. 2005 IEEE International Symposium on Circuits and Systems (ISCAS), May 2005, 332-335, IEEE.
  • Arzel et al., “Stochastic Multiple Stream Decoding of Cortex Codes,” IEEE Transactions on Signal Processing, Jul. 2011, 3486-3491, vol. 59, No. 7, IEEE.
  • Beltrán et al., “60-GHz ultra-wideband radio-over-fiber system using a novel photonic monocycle generation,” IEEE Transactions on Microwave Theory and Techniques, Jun. 2010, 1609-1620, vol. 58, No. 6, IEEE.
  • Davey et al., “Low-density parity check codes over GF(q),” IEEE Communications Letters, Jun. 1998, 165-167, vol. 2, No. 6, IEEE.
  • Kötter, “On Algebraic Decoding of Algebraic-Geometric and Cyclic Codes,” PhD Thesis, Lynköping University, 1996.
  • Tanner, “A recursive approach to low complexity codes,” IEEE Trans. Inform. Theory, vol. 27, No. 5, pp. 533-547, Sep. 1981.
  • Mori et al., “Performance and construction of polar codes on symmetric binary-input memoryless channels,” IEEE International Symposium on Information Theory, Jun. 2009.
  • Pedarsani et al., “On the construction of polar codes,” IEEE International Symposium on Information Theory, Jul. 2011.
  • Pyndiah, “Near optimum decoding of product codes: Block Turbo Codes,” IEEE Trans. on Communications, vol. 46, pp. 1003-1010, Aug. 1998.
  • Pyndiah et al., “Near optimum decoding of product codes,” Proc. IEEE Globecom, pp. 339-343, 1994.
  • Nielsen, “List decoding of linear block codes,” 2001.
  • Chang et al., “On receiver structures for channels having memory,” IEEE Trans. Inform. Theory, vol. 12, pp. 463-468, Oct. 1966.
  • Zarubica et al., “Multi-Gbps FPGA-based low density parity check (LDPC) decoder design,” IEEE Global Telecomm. Conf. (IEEE Globecom), Nov. 2007.
  • Zhou et al., “Low-complexity high-rate Reed-Solomon block turbo codes,” IEEE Trans. Commun., vol. 55, No. 9, pp. 1656-1660, Sep. 2007.
  • Essiambre et al., “Capacity limits of optical fiber networks,” J. Lightw. Technol., vol. 28, No. 4, pp. 662-701, Feb. 2010.
  • Chung et al., “Turbo block Bayesian decision feedback equalizer,” 14th IEEE Proceedings on Personal, Indoor and Mobile Radio Communications, 2003. PIMRC 2003., 2003, pp. 2668-2672 vol. 3.
  • Hemati et al., “A high-speed analog min-sum iterative decoder,” in Proceedings of the IEEE International Symposium on Information Theory (ISIT 2005), Sep. 2005, pp. 1768-1772.
  • Hemati et al., “On the dynamics of continuous-time analog iterative decoding,” Proc. 2004 Int. Symp. Information Theory (ISIT), pp. 262, Jun. 2004.
  • Hemati et al., “On the dynamics of analog min-sum iterative decoders an analytical approach,” Proc. IEEE International Symposium on Information Theory, pp. 326-330, Jun. 2007.
  • Howard et al., “A degree-matched check node approximation for LDPC decoding,” Proc. IEEE Int. Symp. Information Theory, pp. 1131-1135, Sep. 2005.
  • Kim et al., “Two-staged informed dynamic scheduling for sequential belief propagation decoding of LDPC codes,” in IEEE Communications Letters, vol. 13, No. 3, pp. 193-195, Mar. 2009.
  • Korada et al., “Polar codes are optimal for lossy source coding,” Transactions on Information Theory, vol. 56, No. 4, pp. 1751-1768, Mar. 2010.
  • Pietrobon, “Efficient implementation of continuous MAP decoders and a new synchronization technique for turbo decoders,” Proc. Int. Symp. Information Theory and Its Applications, pp. 586-589, Sep. 1996.
  • Pietrobon et al., “A simplification of the modified Bahl algorithm for systematic convolutional codes,” Proc. Int. Symp. Information Theory and Its Applications, pp. 1073-1077, Nov. 1994.
  • Tehrani et al., “Majority-based tracking forecast memories for stochastic LDPC decoding,” IEEE Trans. Signal Process., vol. 58, No. 9, pp. 4883-4896, Sep. 2010.
  • Tehrani et al., “Stochastic decoding of linear block codes with high-density parity-check matrices,” IEEE Trans. Signal Process., vol. 56, No. 11, pp. 5733-5739, Nov. 2008.
  • Tehrani et al., “Survey of stochastic computation on factor graphs,” Proc. 37th Int. Symp. Multiple-Valued Logic (ISMVL), pp. 54-59, May 2007.
  • Tehrani et al., “Stochastic decoding of LDPC codes,” IEEE Commun. Lett., vol. 10, No. 10, pp. 716-718, Oct. 2006.
  • Seo et al., “Design and analysis of LDPC decoders for software defined radio,” Proc. IEEE Workshop on Signal Processing Systems (SiPS), pp. 210-215, Oct. 2007.
  • Tehrani et al., “Tracking Forecast Memories in Stochastic Decoders,” Proceedings of the IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Taipei, Taiwan, Apr. 19-24, 2009, pp. 561-564.
  • Tehrani et al., “Relaxation Dynamics in Stochastic Iterative Decoders,” in IEEE Transactions on Signal Processing, vol. 58, No. 11, pp. 5955-5961, Nov. 2010.
  • Tehrani et al., “An Area-Efficient FPGA-Based Architecture for Fully-Parallel Stochastic LDPC Decoding,” Proceedings of the IEEE Workshop on Signal Processing Systems (SiPS), Shanghai, China, Oct. 17-19, 2007, pp. 255-260.
  • Chung et al., “On the design of low-density parity-check codes within 0.0045 dB of the Shannon limit,” IEEE Commun. Lett., vol. 5, No. 2, pp. 58-60, Feb. 2001.
  • Brack et al., “Disclosing the LDPC code decoder design space,” Design Automation and Test in Europe 200, Date '06. Proceedings, vol. 1, Mar. 2006.
  • Gibbon, “3.125 GB/s impulse radio ultra-wideband photonic generation and distribution over a 50 km fiber with wireless transmission,” IEEE Microw. Wireless Compon. Lett., vol. 20, No. 2, pp. 127-129, Feb. 2010.
  • Richardson et al., “Design of capacity-approaching irregular low-density parity-check codes,” IEEE Trans. Inform. Theory, vol. 47, No. 2, pp. 619-637, Feb. 2001.
  • Kailath et al., “The divergence and Bhattacharyya distance measures in signal selection,” IEEE Trans. Commun. Technol., vol. 15, No. 1, pp. 52-60, 1967.
  • Kobayashi et al., “Soft-decision LSI operating at 32 Gsample/s for LDPC FEC-based optical transmission systems,” Optical Fiber Communication Conf., Mar. 2009.
  • Ngatched et al. “A List Decoding Algorithm for Short Low-Density Parity-Check Codes,” 4th International Symposium on Turbo Codes & Related Topics, 6th International ITG-Conference on Source and Channel Coding, 2006, pp. 1-6.
  • Ngatched et al., “A Modified Bit-Flipping Decoding Algorithm for Low-Density Parity-Check Codes,” 2007 IEEE International Conference on Communications, 2007, pp. 653-658.
  • Mizuochi, “Next generation FEC for optical communication,” Proc. OFC, pp. 3, Feb. 2008.
  • Mizuochi, “Recent progress in forward error correction and its interplay with transmission impairments,” IEEE J. Sel. Top. Quantum Electron., vol. 12, No. 4, pp. 544-554, Jul.-Aug. 2006.
  • Mizuochi et al., “Experimental demonstration of concatenated LDPC and RS codes by FPGAs emulation,” IEEE Photon. Technol. Lett., vol. 21, No. 18, pp. 1302-1304, Sep. 2009.
  • Mohsenin et al., “High-throughput LDPC decoders using a multiple split-row method,” IEEE Int. Conf. Acoustics Speech Signal Processing (ICASSP), 2007.
  • Mohsenin et al., “Split-row: A reduced complexity high throughput LDPC decoder architecture,” Proc. IEEE Int. Conf. Computer Design (ICCD), pp. 320-325, 2006.
  • Mohsenin et al., “A low-complexity message passing algorithm for reduced routing congestion in LDPC decoders,” IEEE Trans. Circuits Syst. I: Regul. Pap., vol. 57, No. 5, pp. 1048-1061, May 2010.
  • Richardson, “Error floors of LDPC codes,” Proc. of the 41st Annual Allerton Conf. on Communications Control and Computing, pp. 1426-1435, Oct. 2003.
  • Richardson et al., “The renaissance of Gallager's low-density parity-check codes,” IEEE Commun. Mag., vol. 41, No. 8, pp. 126-131, Aug. 2003.
  • Richardson et al., “The Capacity of Low-Density Parity-Check Codes Under Message-Passing Decoding,” IEEE Transactions on Information Theory, vol. 47, No. 2, pp. 599-618, Feb. 2001.
  • Zhang et al., “Joint (3k)-regular LDPC code and decoder/encoder design,” IEEE Trans. Signal Process. vol. 52, No. 4, pp. 1065-1079, Apr. 2004.
  • Tehrani, “Stochastic decoding of low-density parity-check codes,” 2011.
  • Gaudet et al., “Switching Activity in Stochastic Decoders,” Proceedings of the 40th IEEE International Symposium on Multiple-Valued Logic (ISMVL), Barcelona, Spain, May 26-28, 2010, pp. 167-172.
  • Gross et al., “Delayed Stochastic Decoding of LDPC Codes,” IEEE Transactions on Signal Processing, Nov. 2011, 5617-5626, vol. 59, No. 11, IEEE. (for relevant portions, see Remarks).
  • Pamuk et al., “Polar Encoder & Decoder Implementation Architectures,” Seminar at Bilkent University, Ankara, Turkey. (for relevant portions, see Remarks).
  • Vasić et al., “Trapping Set Ontology,” 2009 47th Annual Allerton Conference on Communication, Control, and Computing, 2009,1-7, IEEE. (for relevant portions, see Remarks).
  • Amador et al., “Hybrid Iteration Control on LDPC Decoders,” 2010 6th International Conference on Wireless and Mobile Communications, 2010, 102-106, Valencia, Spain. (for relevant portions, see Remarks).
  • Arikan, “Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels,” IEEE Transactions on Information Theory, Jul. 2009, 3051-3073, vol. 55, No. 7, IEEE. (for relevant portions, see Remarks).
  • Arikan, “Channel polarization: A method for constructing capacity-achieving codes,” 2008 IEEE International Symposium on Information Theory, 2008, 1173-1177, IEEE, Toronto, ON, Canada. (for relevant portions see Remarks).
  • Arikan, “Polar codes: A pipelined implementation,” Proc. 4th International Symposium Broadband Communication (ISBC2010), Jul. 2010, Melaka, Malaysia. (for relevant portions, see Remarks).
  • Janulewicz et al., “Performance analysis of iterative decoding algorithms with memory,” 2010 IEEE Information Theory Workshop on Information Theory (ITW 2010, Cairo), 2010, 1-5, IEEE, Cairo, Egypt. (for relevant portions, see Remarks).
  • Leduc-Primeau et al., “Lowering Error Floors Using Dithered Belief Propagation,” 2010 IEEE Global Telecommunications Conference Globecom 2010, Dec. 2010, 1-6, IEEE, Miami, FL, USA. (for relevant portions, see Remarks).
  • Leduc-Primeau et al., “A Relaxed Half-Stochastic Iterative Decoder for LDPC Codes,” Globecom 2009—2009 IEEE Global Telecommunications Conference, 2009, 1-6, IEEE, Honolulu, HI, USA. (for relevant portions, see Remarks).
  • Sarkis et al., “Relaxed half-stochastic decoding of LDPC codes over GF(q),” 2010 48th Annual Allerton Conference on Communication, Control, and Computing (Allerton), 2010, 36-41, IEEE, Monticello, IL, USA. (for relevant portions, see Remarks).
  • Hemati et al., “On the dynamics of analog min-sum iterative decoders, an analytical approach,” Proc. IEEE International Symposium on Information Theory, Jun. 2007, 326-330, IEEE, Nice, France. (for relevant portions, see Remarks).
  • Dumer et al., “Near-Optimum Decoding for Subcodes of Reed-Muller Codes,” IEEE International Symposium on Information Theory, Jun. 24-29, 2001, IEEE, Washington DC, USA. (for relevant portions, see Remarks).
  • Dumer et al., “Recursive constructions and their maximum likelihood decoding,” Proc. 38th Allerton Conf. on Communication, Control, and Computing, 2000, 71-80, Monticello IL, USA. (for relevant portions, see Remarks).
  • Dumer et al., “Recursive List Decoding for Reed-Muller Codes and Their Subcodes,” Information, Coding and Mathematics, eds. M. Blaum, P. Farrell, and H.C.A. van Tilborg, Kluwer, 2002, 279-298, Boston, MA, USA. (for relevant portions, see Remarks).
  • Dumer et al., “Soft-decision decoding of Reed-Muller codes: recursive lists,” IEEE Transactions on Information Theory, Mar. 2006, 1260-1266, vol. 52, No. 3, IEEE. (for relevant portions, see Remarks).
  • Dumer, “Soft-decision decoding of Reed-Muller codes: a simplified algorithm,” IEEE Transactions on Information Theory, Mar. 2006, 954-963, vol. 52, No. 3, IEEE. (for relevant portions, see Remarks).
  • Dumer et al., “Soft-decision list decoding of Reed-Muller codes with linear complexity,” 2011 IEEE International Symposium on Information Theory Proceedings, 2011, 2303-2307, IEEE, St. Petersburg, Russia. (for relevant portions, see Remarks).
  • Dumer et al., “List Decoding of Biorthogonal Codes and the Hadamard Transform With Linear Complexity,” IEEE Transactions on Information Theory, Oct. 2008, 4488-4492, vol. 54, No. 10, IEEE. (for relevant portions, see Remarks).
  • Tal et al., “How to construct polar codes,” Information Theory Workshop, ITW2010, Aug. 31, 2010. (for relevant portions, see Remarks).
  • Tal et al., “List decoding of polar codes,” 2011 IEEE International Symposium on Information Theory Proceedings (ISIT), Jul. 2011, IEEE, St. Petersburg, Russia. (for relevant portions, see Remarks).
  • Cushon et al., “A Min-Sum Iterative Decoder Based on Pulsewidth Message Encoding,” IEEE Transactions on Circuits and Systems II: Express Briefs, Nov. 2010, 893-897, vol. 57, No. 11, IEEE. (for relevant portions, see Remarks).
  • Yasunaga, “List Decoding for Reed-Muller Codes and Its Application to Polar Codes,” Symposium on Information Theory and Its Applications (SITA 2009), Nov. 30, 2009. (for relevant portions, see Remarks).
  • Leroux et al., “Hardware architectures for successive cancellation decoding of polar codes,” 2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP). 2011, IEEE, Prague, Czech Republic. (for relevant portions, see Remarks).
  • Lustenberger et al., “On mismatch errors in analog-VLSI error correcting decoders,” Proc. ISCAS 2001, 2001 IEEE International Symposium on Circuits and Systems, 2001, 198-201, IEEE, Sydney, NSW, Australia. (for relevant portions, see Remarks).
  • Yazdani et al., “Improving belief propagation on graphs with cycles,” IEEE Communications Letters, Jan. 2004, 57-59, vol. 8, No. 1, IEEE. (for relevant portions, see Remarks).
  • Mobini et al., “A Differential Binary Message-Passing LDPC Decoder,” IEEE Globecom 2007—IEEE Global Telecommunications Conference, 2007, 1561-1565, IEEE, Washington, DC, USA. (for relevant portions, see Remarks).
  • Mobini et al., “A differential binary message-passing LDPC decoder,” IEEE Transactions on Communications, Sep. 2009, 2518-2523, vol. 57, No. 9, IEEE. (for relevant portions, see Remarks).
  • Stolte, “Recursive Codes with the Plotkin-Construction and Their Decoding,” English translation of Ph.D. dissertation, Technische Universität Darmstadt, May 2003. (for relevant portions, see Remarks).
  • Stolte, “Rekursive codes mit der Plotkin-konstruktion und ihre decodierung,” Ph.D. dissertation, Technische Universität Darmstadt, Jan. 2002. (for relevant portions, see request) (English version at item 29 above).
  • Gopalan et al, “List-Decoding Reed-Muller Codes over Small Fields,” STOC '08: Proceedings of the 40th Annual ACM Symposium on Theory of Computing, May 17-20, 2008. (for relevant portions, see Remarks).
  • Payak, “Complexity and Power Consumption in Stochastic Iterative Decoders,” All Graduate Theses and Dissertations, 808, Dec. 23, 2010. (for relevant portions, see Remarks).
  • Hemati et al., “Dynamics and Performance Analysis of Analog Iterative Decoding for Low-Density Parity-Check (LDPC) Codes,” IEEE Transactions on Communications, Jan. 2006, 61-70, vol. 54, No. 1, IEEE. (for relevant portions, see Remarks).
  • Savin, “Self-corrected Min-Sum decoding of LDPC codes,” 2008 IEEE International Symposium on Information Theory, 2008, 146-150, IEEE, Toronto, ON, Canada. (for relevant portions, see Remarks).
  • Varnica et al., “Improvements in belief-propagation decoding based on averaging information from decoder and correction of clusters of nodes,” IEEE Communications Letters, Dec. 2006, 846-848, vol. 10, No. 12, IEEE. (for relevant portions, see Remarks).
  • Varnica et al., “Augmented Belief Propagation Decoding of Low-Density Parity Check Codes,” IEEE Transactions on Communications Letters, Jul. 2007, 1308-1317, vol. 55, No. 7, IEEE. (for relevant portions, see Remarks).
  • Hu et al., “Regular and irregular progressive edge-growth Tanner graphs,” IEEE Transactions on Information Theory, Jan. 2005, 386-398, vol. 51, No. 1, IEEE. (for relevant portions, see Remarks).
  • Mao et al., “Decoding Low-Density Parity-Check Codes with Probabilistic Scheduling,” IEEE Communications Letters, Oct. 2001, 414-416, vol. 5, No. 10, IEEE. (for relevant portions, see Remarks).
  • Chen et al., “Distributing CRC Bits to Aid Polar Decoding,” 2017 IEEE Globecom Workshops (GC Wkshps), Dec. 2017, 1-6, IEEE, Singapore.
  • El-Khamy et al., “Binary polar codes are optimised codes for bitwise multistage decoding,” Electronics Letters, 2016, 1130-1132, vol. 52, No. 13. (for relevant portions, see Remarks).
  • Chiaraluce et al., “Extended Hamming Product Codes Analytical Performance Evaluation for Low Error Rate Applications,” IEEE Transactions on Wireless Communications, Nov. 2004, 2353-2361, vol. 3, IEEE.
  • Gross et al., “Fully Parallel Stochastic LDPC Decoders,” IEEE Trans. on Signal Processing, Nov. 2008, 5692-5703, vol. 56, No. 11, IEEE.
  • Dinu et al., “Stochastic implementation of motor controllers,” Proc. of the IEEE International Symposium on Industrial Electronics, Jul. 2002, 639-644, IEEE, Italy.
  • Ahmed et al., “Systolic interpolation architectures for soft-decoding Reed-Solomon codes,” Proc. IEEE Workshop on Signal Processing Systems, Aug. 2003, 81-86, IEEE, Seoul, South Korea.
  • Ahmed et al., “VLSI architectures for soft-decision decoding of Reed-Solomon codes,” Proc. IEEE International Conference on Communications, Jun. 2004, 2584-2590, vol. 5, IEEE, Paris, France.
  • Anastasopoulos, “A comparison between the sum-product and the min-sum iterative detection algorithms based on density evolution,” Proceedings of the IEEE Global Telecommunications Conference, Nov. 2001, 1021-1025, vol. 2, IEEE, San Antonio, TX, USA.
  • Benvegnu et al., “On the performance and the optimization of LDPC codes on fading channels with imperfect CSI,” 2008 IEEE International Symposium on Wireless Communication Systems, 2008, 539-541, IEEE.
  • Blanksby et al., “A 690-mW 1-GB/s 1024-b, Rate-½ Low-Density Parity-Check Code Decoder,” IEEE Journal of Solid-State Circuits, Mar. 2002, 404-412, vol. 37, No. 3, IEEE.
  • Darabiha et al., “A 3.3-Gbps bit-serial block-interlaced min-sum LDPC decoder in 0.13-um CMOS,” Proc. IEEE Custom Integrated Circuits Conference, Sep. 2007, 459-462, IEEE.
  • Darabiha et al.,“A bit-serial approximate min-sum LDPC decoder and FPGA implementation,” Proc. IEEE International Symposium on Circuits and Systems (ISCAS), May 2006, 149-152, IEEE.
  • Eisele et al., “Transmission gate delay models for circuit optimization,” Mar. 1990, pp. 558-562.
  • Gaudet et al.,“A 13.3-Mb/s 0.35um CMOS analog turbo decoder IC with a configurable interleaver,” IEEE J. Solid-State Circuits, vol. 38, pp. 2010-2015, Nov. 2003.
  • Gaudet et al. “LDPC decoder message formatting based on activity factor minimization using differential density evolution,” IEEE Information Theory Workshop, pp. 571-576, Jun. 2007.
  • Gross et al., “Simplified MAP Algorithm Suitable for Implementation of Turbo Decoders,” Electronics Letters, vol. 34, No. 16, pp. 1577-1578, Aug. 6, 1998.
  • Gross et al., “Applications of algebraic soft-decision decoding of Reed-Solomon codes,” IEEE Trans. Commun., vol. 54, No. 7, pp. 1224-1234, Jul. 2006.
  • Gross et al., “Simulation results for algebraic soft-decision decoding of Reed-Solomon codes,” Proc. 21st Biennial Symp. Commun., pp. 356-360, 2002.
  • Gross et al., “Towards a VLSI architecture for interpolation-based soft-decision Reed-Solomon decoders,” J. VLSI Signal Process., vol. 39, pp. 93-111, Jan./Feb. 2005.
  • Gross et al., “An FPGA Interpolation Processor for Soft-Decision Reed-Solomon Decoding,” Proceedings of the 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM), Napa, CA, USA, Apr. 20-23, 2004, pp. 310-311.
  • Gross et al., “Architecture and Implementation of an Interpolation Processor for Soft-Decision Reed-Solomon Decoding,” IEEE Transactions on VLSI Systems, vol. 15, No. 3, pp. 309-318, Mar. 2007.
  • Gross et al., “A VLSI Architecture for Soft-Output PR4 Detection,” Proceedings of the IEEE 43rd Midwest Symposium on Circuits and Systems, Lansing, MI, USA, Aug. 8-11, 2000, pp. 416-419.
  • Gross et al., “Difference Metric Soft-Output Detection: Architecture and Implementation,” IEEE Transactions on Circuits and Systems II (Analog and Digital Signal Processing), vol. 48, No. 10, pp. 904-911, Oct. 2001.
  • Poppelbaum et al., “Stochastic computing elements and systems,” Amer. Fed. Inf. Process. Societies Fall Joint Comput. Conf. (AFIPS FJCC), No. 31, pp. 635-644, 1967.
  • Zhou et al., “A Improved Decoding Algorithm for Low-Density Parity-Check Codes,” 2006 International Conference on Communication Technology, 2006, pp. 1-4.
  • Gross et al., “A VLSI Architecture for Interpolation in Soft-Decision List Decoding of Reed-Solomon Codes,” in Proceedings of the 2002 IEEE Workshop on Signal Processing Systems (SIPS'02), San Diego, CA, Oct. 16-18, 2002, pp. 39-44.
  • Gross et al., “Stochastic implementation of LDPC decoders,” In The 39th Asilomar Conference on Signals, Systems, and Computers (pp. 713-717). Pacific Grove, CA (2005).
  • Weichmann et al., “An Improved Sphere-Packing Bound for Finite-Length Codes over Symmetric Memoryless Channels,” IEEE Trans. Inform. Theory, vol. 54, Issue 5, May 2008, pp. 1962-1990.
  • Wu et al., “Parallel Weighted Bit-Flipping Decoding,” in IEEE Communications Letters, vol. 11, No. 8, pp. 671-673, Aug. 2007.
  • Zhang et al., “Fast factorization architecture in soft-decision Reed-Solomon decoding” IEEE Trans. Very Large Scale Integr. (VLSI) Syst., vol. 13, No. 4, pp. 413-426, Apr. 2005.
  • Bian et al., “Lowering the Error Floor of LDPC Codes by a Two-stage Hybrid Decoding Algorithm,” 2007 Second International Conference on Communications and Networking in China, 2007, pp. 590-594.
  • El-Kurdi et al., “Efficient Implementation of Gaussian Belief Propagation Solver for Large Sparse Diagonally Dominant Linear Systems,” in IEEE Transactions on Magnetics, vol. 48, No. 2, pp. 471-474, Feb. 2012.
  • Han et al., “Low-floor decoders for LDPC codes,” IEEE Trans. on Communications, vol. 57, No. 6, pp. 1663-1673, Jun. 2009.
  • Miyata et al., “A triple-concatenated FEC using soft-decision decoding for 100 GB/s optical transmission,” Optical Fiber Communication Conf., Mar. 2010.
  • Wang et al., “Multi-stage decoding of LDPC codes,” 2009 IEEE International Symposium on Information Theory, 2009, pp. 2151-2155.
  • Yang et al., “A two-level pipeline input interface circuit with probability splitting computation function used in analog decoder,” In Proc. of the 9th international conference on solid-state and integrated-circuit technology (ICSICT), (pp. 1807-1810), 2008.
  • Elkurdi et al., “FPGA architecture and implementation of sparse matrix-vector multiplication for the finite element method,” Computer Physics Communications, vol. 178, Issue 8, 2008, pp. 558-570.
  • Wang et al., “Low-complexity high-speed decoder design for quasi-cyclic LDPC codes,” IEEE Trans. VLSI Systems, vol. 15, No. 1, pp. 104-114, Jan. 2007.
  • Zhang et al., “Design of LDPC decoders for low error rate performance,” IEEE Trans. Commun. [online] Available: http://www.eecs.berkeley.edu/\texttildelowananth/2008+/TCOM0303.pdf.
  • Zhang et al., “Lowering LDPC error floors by postprocessing,” Proc. IEEE Global Communications Conf. (IEEE Globecom) pp. 1-6 Nov. 2008 (for relevant portions, see Remarks).
  • Zhang et al., “A 47 GB/s LDPC decoder with improved low error rate performance,” Proc. Symp. VLSI Circuits, pp. 286-287, Jun. 2009.
  • Zhang et al., “An efficient 10GBASE-T ethernet LDPC decoder design with low error floors,” IEEE J. Solid-State Circuits, vol. 45, No. 4, pp. 843-855, Apr. 2010.
  • Liu et al., “A decoding algorithm for finite-geometry LDPC codes,” in IEEE Transactions on Communications, vol. 53, No. 3, pp. 415-421, Mar. 2005.
  • Arikan, “A performance comparison of polar codes and Reed-Muller codes,” IEEE Com. Letters, vol. 12, pp. 447-449, Jun. 2008.
  • Sakib et al., “45 GB/s low complexity optical front-end for soft-decision LDPC decoders,” Opt. Express 20, 18336-18347 (2012).
  • Cot'e et al., “A Chernoff-type Lower Bound for the Gaussian Q-function,” 2012.
  • Beeckler et al. “A Methodology for Prototyping Flexible Embedded Systems,” In Electrical and Computer Engineering, 2007, CCECE 2007. Canadian Conference on, pp. 1679-1682. IEEE, 2007.
  • Leroux et al., “A Semi-Parallel Successive-Cancellation Decoder for Polar Codes,” in IEEE Transactions on Signal Processing, vol. 61, No. 2, pp. 289-299, Jan. 15, 2013.
  • Boulianne et al., “A stochastic particle-based biological system simulator,” Proceedings of the 2007 Summer Computer Simulation Conference, 2007.
  • Mishra et al. “A successive cancellation decoder ASIC for a 1024-bit polar code in 180nm CMOS,” 2012 IEEE Asian solid state circuits conference (A-SSCC), IEEE, 2012.
  • Koo et al., “Accelerating a medical 3D brain MRI analysis algorithm using a high-performance reconfigurable computer,” 2007 International Conference on Field Programmable Logic and Applications, IEEE, 2007.
  • Fernandez et al., “Alternate parallel processing approach for FEM,” IEEE Transactions on Magnetics, vol. 48, No. 2, 399-402, 2012.
  • Jarollahi et al. “Architecture and implementation of an associative memory using sparse clustered networks,” 2012 IEEE International Symposium on Circuits and Systems (ISCAS), IEEE, 2012.
  • Gripon et al., “Compressing multisets using tries,” 2012 IEEE Information Theory Workshop, IEEE, 2012.
  • Leduc-Primeau et al. “Dithered belief propagation decoding,” IEEE Transactions on Communications, vol. 60, No. 8, 2042-2047, 2012.
  • Fernandez et al., “Efficient multicore sparse matrix-vector multiplication for FE electromagnetics,” IEEE transactions on magnetics, vol. 45, No. 3, 1392-1395, 2009.
  • Bi et al., “Efficient residue comparison algorithm for general Moduli sets,” 48th Midwest Symposium on Circuits and Systems, 2005, IEEE, 2005.
  • Leduc-Primeau et al., “Faulty Gallager-B decoding with optimal message repetition,” 2012 50th Annual Allerton Conference on Communication, Control, and Computing (Allerton), IEEE, 2012.
  • Beeckler et al., “FPGA particle graphics hardware,” 13th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'05), IEEE, 2005.
  • Boulianne et al., “GridCell: a stochastic particle-based biological system simulator,” BMC systems biology, vol. 2, 1-9, 2008.
  • El-Kurdi et al., “Hardware acceleration for finite-element electromagnetics: Efficient sparse matrix floating-point computations with FPGAs,” IEEE Transactions on Magnetics, vol. 43, No. 4, 1525-1528, 2007.
  • Leroux et al., “Hardware implementation of successive-cancellation decoders for polar codes,” Journal of Signal Processing Systems, vol. 69, pp. 305-315, 2012.
  • Leduc-Primeau et al., “High-throughput LDPC decoding using the RHS algorithm,” Proceedings of the 2012 Conference on Design and Architectures for Signal and Image Processing, IEEE, 2012.
  • Tehrani et al., “Joint stochastic decoding of LDPC codes and partial-response channels,” 2012 IEEE Workshop on Signal Processing Systems, IEEE, 2012.
  • Fernandez et al., “Multicore acceleration of CG algorithms using blocked-pipeline-matching techniques,” IEEE transactions on magnetics, vol. 46, No. 8, 3057-3060, 2010.
  • Mihajlovic et al.,. “On transparently exploiting data-level parallelism on soft-processors,” Workshop on Soft Processor Systems, as part of the IEEE Conference on Parallel Architectures and Compilation Techniques, 2008.
  • El-Kurdi et al., “Parallel solution of the finite element method using Gaussian belief propagation,” The 15th Biennial IEEE Conference on Electromagnetic Field Computation, 2012.
  • Beeckler et al., “Particle graphics on reconfigurable hardware,” ACM Transactions on Reconfigurable Technology and Systems (TRETS), vol. 1, No. 3, 1-27, 2008.
  • Gripon et al., “Random clique codes,” 2012 7th International Symposium on Turbo Codes and Iterative Information Processing (ISTC), IEEE, 2012.
  • Boulianne et al., “SIMD implementation of interpolation in algebraic soft-decision Reed-Solomon decoding,” IEEE Workshop on Signal Processing Systems Design and Implementation, 2005, IEEE, 2005.
  • El-Kurdi et al., “Sparse matrix-vector multiplication for finite element method matrices on FPGAs,” 2006 14th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, IEEE, 2006.
  • Jego et al., “Turbo décodage de codes produits par un algorithme basé sur la propagation de croyance.”
  • El-Khamy et al., “Bounds on the minimum distance and the maximum likelihood performance of Reed-Solomon codes,” Proc. 42nd Annual Allerton Conference, 2004, 290-299.
  • El-Khamy et al., “Iterative algebraic soft-decision list decoding of Reed-Solomon codes,” IEEE Journal on Selected Areas in Communications, Mar. 2006, 481-490, vol. 24, No. 3, IEEE.
  • Fossorier et al., “Reliability-based decoding of Reed-Solomon codes using their binary image,” IEEE Communications Letters, Jul. 2004, 452-454, vol. 8, No. 7, IEEE.
  • Fossorier et al., “Reduced complexity iterative decoding of low-density parity check codes based on belief propagation,” IEEE Transactions on Communications, May 1999, 673-680, vol. 47, No. 5, IEEE.
  • Fossorier et al., “Bit-error probability for maximum-likelihood decoding of linear block codes and related soft-decision decoding methods,” IEEE Transactions on Information Theory, Nov. 1998, 3083-3090, vol. 44, No. 7, IEEE.
  • Shakiba et al., “An integrated 200 MHz 3.3V BiCMOS class-IV partial response analog Viterbi decoder,” IEEE Journal of Solid-State Circuits, Jan. 1998, 61-75, vol. 33, No. 1, IEEE.
  • Ferguson, “Optimal Reception for Binary Partial Response Channels,” The Bell System Technical Journal, Feb. 1972, 493-505, vol. 51, No. 2, Nokia Bell Labs.
  • Jiang et al., “An improvement on the modified weighted bit flipping decoding algorithm for LDPC codes,” IEEE Communications Letters, Sep. 2005, 814-816, vol. 9, No. 9, IEEE.
  • Cheng et al., “Iterative soft-decision Reed-Solomon decoding on partial response channels,” Proc. IEEE Global Telecommunications Conference, Globecom '03, Dec. 2003, 1588-1592, vol. 3, IEEE, San Francisco, CA, USA.
  • Cheng et al., “Soft-decision Reed-Solomon decoding on partial response channels,” Proc. IEEE Global Telecommunications Conference, Globecom '02, Nov. 2002, 1026-1030, vol. 2, IEEE, Taipei, Taiwan.
  • Korb et al., “Area and latency optimized high-throughput Min-Sum based LDPC decoder architectures,” 2009 Proceedings of ESSCIRC, Sep. 2009, 408-411, IEEE.
  • Mansour et al., “A 640-Mb/s 2048-bit programmable LDPC decoder chip,” IEEE Journal of Solid-State Circuits, Mar. 2006, 684-698, vol. 41, No. 3, IEEE.
  • Mansour et al., “High-throughput LDPC decoders,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Dec. 2003, 976-996, vol. 11, No. 6, IEEE.
  • Moerz et al., “An analog 0.25μm BiCMOS tailbiting MAP decoder,” in IEEE International Solid-State Circuits Conference, Digest of Technical Papers, Feb. 2000, 356-357, IEEE, San Francisco, CA, USA.
  • Sakib et al., “Decoding of Long-Block Soft Decision LDPC Codes for Optical Communication Systems,” Proceedings of the 2011 ICO International Conference on Information Photonics, May 18-20, 2011, 1-2, IEEE, Ottawa, ON, Canada.
  • Sakib et al., “Low-Density Parity-Check Coding in Ultra-Wideband-Over-Fiber Systems,” IEEE Photonics Technology Letters, Oct. 15, 2011, 1493-1495, vol. 23, No. 20, IEEE.
  • Sakib et al., “Low Complexity Soft Decision Circuit for LDPC Decoders,” Proceedings of the Conference on Lasers and Electro-Optics (CLEO), May 1-6, 2011, 1-2, Baltimore, MD, USA, IEEE.
  • Sakib et al., “Optical Front-End for Soft-Decision LDPC Codes in Optical Communication Systems,” IEEE/OSA Journal of Optical Communications and Networking, May 2011, 533-541, vol. 3, No. 6, IEEE.
  • Roth et al., “Efficient decoding of Reed-Solomon codes beyond half the minimum distance,” IEEE Transactions on Information Theory, Jan. 2000, 246-257, vol. 46, No. 1, IEEE.
  • Sudan, “Decoding of Reed-Solomon codes beyond the error correction bound,” Journal of Complexity, 1997, 180-193, vol. 13, No. 1.
  • Mansour et al., “Architecture-aware low-density parity-check codes,” Circuits and Systems 2003, ISCAS '03, Proceedings of the 2003 International Symposium, May 2003, II-57-II-60, vol. 2.
  • Mannor et al., “Online calibrated forecasts: Memory efficiency versus universality for learning in games,” Machine Learning, 67(1-2), 77-115.
  • Hussami et al., “Performance of polar codes for channel and source coding,” in IEEE ISIT 2009, Jun. 2009,1488-1492.
  • Miladinovic et al., “Improved bit-flipping decoding of low-density parity-check codes,” in IEEE Transactions on Information Theory, vol. 51, No. 4, 1594-1606, Apr. 2005.
  • Onizawa et al., “Multiple valued duplex asynchronous data transfer scheme for interleaving in LDPC decoders,” IEEE Int. Symp. Multiple Valued Logic, 138-143, May 2005.
  • Onizawa et al., “Design of high-throughput fully parallel LDPC decoders based on wire partitioning,” IEEE Trans. Very Large Scale Integr. (VLSI) Syst., vol. 18, No. 3, pp. 482-489, Mar. 2010.
  • Onizawa et al., “3.2-Gb/s 1024-b rate-½ LDPC decoder chip using a flooding-type update-schedule algorithm,” Proc. 50th IEEE Midwest Symp. Circuits Systems, pp. 217-220, Aug. 2007.
  • Riley et al., “Probabilistic counter updates for predictor hysteresis and bias,” IEEE Comput. Archit. Lett., vol. 5, No. 1 pp. 18-21, Jan.-Jun. 2006.
  • Stolte et al., “Soft-decision stack decoding of binary Reed-Muller codes with “look-ahead” technique,” in 7th Int. Workshop on Algebraic and Combinatorial Coding Theory, 2000.
  • Stolte et al., “Sequential stack decoding of binary Reed-Muller codes,” 3rd ITG Conference on Source and Channel Coding, pp. 63-69, 2000.
  • Catherine et al., “Erasing Bit Nodes on the Bipartite Graph for Enhanced Performance of LDPC Codes,” 2011 Fourth International Conference on Emerging Trends in Engineering & Technology, 2011, pp. 107-111.
  • Elias, “Error-free coding,” IRE Trans. on Inf Theory, vol. IT-4, pp. 29-37, Sep. 1954.
  • Swaszek et al. “How often is hard-decision decoding enough?,” IEEE Trans. Inf. Theory, vol. 44, No. 3, pp. 1187-1193, May 1998.
  • Siegel et al., “Exact bounds for Viterbi detector path metric differences,” Proc. Int. Conf. Acoustics Speech and Signal Processing, vol. 2, pp. 1093-1096, 1991.
  • Kabal et al., “Partial-response signaling,” IEEE Trans. Commun., vol. 23, Sep. 1975.
  • Lecuyer, “Tables of maximally-equidistributed combined LFSR generators,” Math. Comput., vol. 68, No. 225, pp. 261-269, 1999.
  • Robertson et al., “A comparison of optimal and sub-optimal map decoding algorithms operating in the log domain,” IEEE Int. Conf. Communications (ICC), vol. 2, pp. 1009-1013, Jun. 1995.
  • Urard, “A 135 Mb/s DVB-S2 compliant codec based on 64800b LDPC and BCH codes,” IEEE ISSCC Dig. Tech. Papers, Feb. 2005.
  • Polyanskiy et al., “Channel Coding Rate in the Finite Blocklength Regime,” IEEE Transactions on Information Theory, vol. 56, No. 5, May 2010, pp. 2307-2359.
  • Radosavljevic et al.,“Multi-Rate High-Throughput LDPC Decoder: Tradeoff Analysis Between Decoding Throughput and Area,” Personal, Indoor and Mobile Radio Communications 2006, IEEE 17th International Symposium,pp. 1-5, Sep. 2006.
  • Huang et al., “Two reliability-based iterative majority-logic decoding algorithms for LDPC codes,” in IEEE Transactions on Communications, vol. 57, No. 12, pp. 3597-3606, Dec. 2009.
  • Dong et al., “Design and FPGA implementation of stochastic turbo decoder,” 2011 IEEE 9th International New Circuits and Systems Conference, 2011, pp. 21-24.
  • Dong et al., “Stochastic Decoding of Turbo Codes,” IEEE Transactions on Signal Processing, vol. 58, No. 12, pp. 6421-6425, Dec. 2010.
  • Yang et al., “428-Gb/s single-channel coherent optical OFDM transmission over 960-km SSMF with constellation expansion and LDPC coding,” Opt. Express, vol. 18, No. 16, pp. 16883-16889, Aug. 2010.
  • Burch et al., “A Monte Carlo Approach for Power Estimation,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 1, No. 1, pp. 63-70, Mar. 1993.
  • Koetter et al., “Algebraic soft-decision decoding of Reed-Solomon codes,” IEEE Trans. Inf. Theory, vol. 49, No. 11, pp. 2809-2825, Nov. 2003.
  • Koetter et al., “A Complexity Reducing Transformation in Algebraic List Decoding of Reed-Solomon Codes,” in Proceedings of ITW2003, Paris, France, Mar. 31-Apr. 4, 2003.
  • Koetter et al., “Efficient Interpolation and Factorization in Algebraic Soft-Decision Decoding of Reed-Solomon Codes,” in Proceedings of the IEEE International Symposium on Information Theory, Jun. 29-Jul. 4, 2003, p. 365.
  • Darabiha et al.,“Block-interlaced LDPC decoders with reduced interconnect complexity,” IEEE Transactions on Circuits and Systems II: Express Briefs, Jan. 2008, 74-78, vol. 55, No. 1, IEEE.
  • Darabiha et al., “Multi-Gbit/sec low density parity check decoders with reduced interconnect complexity,” IEEE International Symposium on Circuits and Systems, May 2005, 5194-5197, IEEE.
  • Darabiha et al., “Power reduction techniques for LDPC decoders,” IEEE Journal of Solid-State Circuits, Aug. 2008, 1835-1845, vol. 43, No. 8, IEEE.
  • Darabiha, “VLSI Architectures for multi-Gbps low-density parity-check decoders,” Thesis, 2008.
  • Dingninou et al., “Organization de la mémoire dans un turbo décodeur utilisant l'algorithme SUB-MAP,” Proc. Gretsi, Sep. 1999, 71-74.
  • Ghazel et al., “Design and performance analysis of a high speed AWGN communication channel emulator,” Proc. IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PACRIM), 2001, 374-377, vol. 2, IEEE.
  • Viterbi, “Error Bounds for Convolutional Codes and an Asymptotically Optimum Decoding Algorithm,” IEEE Transactions on Information Theory, Apr. 1967, 260-269, vol. 13, No. 2, IEEE.
  • Nouh et al., “Bootstrap decoding of low-density parity-check codes,” in IEEE Communications Letters, Sep. 2002, 391-393, vol. 6, No. 9, IEEE.
  • Nouh et al., “Reliability-based schedule for decoding low-density parity-check codes,” 2004 IEEE International Conference on Communications, 2004, 444-447, IEEE.
  • Otmani, “Codes cortex et construction de codes auto-duaux optimaux,” 2002.
  • Hekstra, “An alternative to metric rescaling in Viterbi decoders” IEEE Transactions on Communications, Nov. 1989, 1220-1222, vol. 37, No. 11, IEEE.
  • Pamuk, “An FPGA implementation architecture for decoding of polar codes,” 2011 8th International Symposium on Wireless Communication Systems, 2011, 437-441, IEEE.
  • Raghupathy et al., “VLSI implementation considerations for turbo decoding using a low-latency log-MAP,” Proc. IEEE International Conference on Consumer Electronics (ICCE), Jun. 1999, 182-183, IEEE.
  • Rapley et al., “Stochastic iterative decoding on factor graphs,” Proc. 3rd Int. Symp. on Turbo Codes and Related Topics, 2003, 507-510.
  • Rapley et al., “On the Simulation of Stochastic Iterative Decoder Architectures,” IEEE Canadian Conference on Electrical and Computer Engineering, May 2005, 1851-1854, IEEE, Saskatoon, SK, Canada.
  • Tychopoulos et al., “FEC in optical communications-a tutorial overview on the evolution of architectures and the future prospects of outband and inband FEC for optical communications,” IEEE Circuits Devices Mag., Nov.-Dec. 2006, 79-86, vol. 22, No. 6, IEEE.
  • Vardy et al., “Bit-level soft-decision decoding of Reed-Solomon codes,” IEEE Transactions on Communications, Mar. 1991, 440-444, vol. 39, No. 3, IEEE.
  • Voicila et al., “Low-complexity low-memory EMS algorithm for non-binary LDPC codes,” Proc. IEEE International Conference on Communications ICC '07, 2007, 671-676, IEEE.
  • Voicila et al., “Architecture of a low-complexity non-binary LDPC decoder for high order fields,” Proc. International Symposium on Communications and Information Technologies ISCIT '07, 2007, 1201-1206.
  • Worm et al., “Advanced implementation issues of turbo decoders,” Proc. 2nd International Symposium on Turbo Codes, Sep. 2000, 351-354.
  • Viterbi, “An intuitive Justification and a Simplified Implementation of the MAP Decoder for Convolutional Codes,” IEEE Journal of Selected Area in Communications, Feb. 1998, 260-264, vol. 16, No. 2, IEEE.
  • Amat et al., “Design, simulation, and testing of a CMOS analog decoder for the block length-40 UMTS turbo code,” IEEE Transactions on Communications, Nov. 2006, 1973-1982, vol. 54, No. 11, IEEE.
  • Brown et al., “Stochastic neural computation I: computational elements,” IEEE Transactions on Computers, Sep. 2001, 891-905, vol. 50, No. 9, IEEE.
  • Farhang-Boroujeny et al., “Generalized sliding FFT and its application to implementation of block LMS adaptive filters,” IEEE Transactions on Signal Processing, Mar. 1995, 532-538, vol. 42, No. 3, IEEE.
  • Gaines, “Stochastic computing,” Proc. Spring Joint Computer Conference (AFIPS'67-Spring), 1967, 149-156.
  • Kamali et al., “Application of Erasure-Only Decoded Reed-Solomon Codes in Cell Recovery for Congested ATM Networks,” in IEEE 52nd Vehicular Technology Conference Fall 2000, Sep. 2000, 983-986, vol. 2, IEEE, Boston, MA, USA.
  • Liu et al., “Majority decision based weighted symbol-flipping decoding for nonbinary LDPC codes,” 2010 2nd International Conference on Future Computer and Communication, 2010, pp. V3-6-V3-10, vol. 3, IEEE, Wuhan, China.
  • Lsivasubramanian et al., “Design and FPGA Implementation of Iterative Decoders for Codes on Graphs,” Proceedings of the IEEE Canadian Conference on Electrical and Computer Engineering (CCECE), May 3-6, 2009, 1080-1084, IEEE, St. John's, NL, Canada.
  • Vasic et al., “Low-density parity check codes for long haul optical communications systems,” IEEE Photonics Technology Letters, Aug. 2002, 1208-1210, vol. 14, No. 8.
  • Zhou et al., “Non-binary LDPC codes vs. Reed-Solomon codes,” Proc. Information Theory and Applications Workshop, Jan. 27, 2008-Feb. 1, 2008, 175-184, IEEE, San Diego, CA, USA.
  • Bahl et al., “Optimal decoding of linear codes for minimizing symbol error rate,” IEEE Transactions on Information Theory, Mar. 1974, 284-287, vol. 20, No. 2, IEEE.
  • Bakshi et al., “Concatenated Polar codes,” 2010 IEEE International Symposium on Information Theory, 2010, IEEE, Austin, TX, USA.
  • Berrou et al., “Near Shannon limit error-correcting coding and decoding: Turbo codes,” Proc. of the ICC '93—IEEE International Conference on Communications, 1993, 1064-1070, IEEE.
  • Brandon et al., “A scalable LDPC decoder ASIC architecture with bit-serial message exchange,” Integration, the VLSI Journal, May 2008, 385-398, vol. 41, No. 3.
  • Auth et al., “45nm High-k + metal gate strain-enhanced transistors,” Intel Technology Journal, Jun. 2008, 77-85, vol. 12, No. 2.
  • Shung et al., “VLSI architectures for metric normalization in the Viterbi algorithm,” Proc. IEEE International Conference on Communications (ICC '90), Apr. 1990, 1723-1728, vol. 4, IEEE.
  • Berrou et al., “Near optimum error correcting coding and decoding: turbo-codes,” in IEEE Transactions on Communications, Oct. 1996, 1261-1271, vol. 44, No. 10, IEEE.
  • Berrou et al., “Non-binary convolutional codes for turbo coding,” Electronic Letters, Jan. 1999, 39-40, vol. 35, No. 1.
  • Douillard et al.,“The turbo code standard for DVB-RCS,” Proc. 2nd International Symposium on Turbo Codes and Related Topics, Sep. 2000, 535-538, Brest, France.
  • Guo et al., “AE-BP: Adaptive Erasure Belief Propagation Decoding Algorithm of LDPC Codes,” 2009 Fifth International Joint Conference on INC, IMS and IDC, Aug. 2009, 479-483, IEEE, Seoul, South Korea.
  • Janer et al., “Fully parallel stochastic computation architecture,” IEEE Transactions on Signal Processing, Aug. 1996, 2110-2117, vol. 44, No. 8, IEEE.
  • Jego et al., “Turbo decoding of product codes based on the modified adaptive belief propagation algorithm,” Proc. IEEE International Symposium on Information Theory, Jun. 2007, 641-645, IEEE, Nice, France.
  • Leroux et al., “Architectures matérielles pour le décodage des codes polaires,” Proceedings of the GRETSI Symposium on Signal and Image Processing, Sep. 5-8, 2011, Bordeaux, France.
  • Leroux et al., “Stochastic Chase Decoding of Reed-Solomon Codes,” IEEE Communications Letters, Sep. 2010, 863-865, vol. 14, No. 9, IEEE.
  • Poulliat et al., “Design of regular (2,d/sub c/)-LDPC codes over GF(q) using their binary images,” IEEE Transactions on Communications, Oct. 2008, 1626-1635, vol. 56, No. 10, IEEE.
  • Park et al., “Design of a low-area, high-throughput LDPC decoder using shared memory banks for DVB-S2,” IEEE Transactions on Consumer Electronics, May 2009, 850-854, vol. 55, No. 2, IEEE.
  • Schurgers et al., “Energy efficient data transfer and storage organization for a MAP turbo decoder module,” Proc. 1999 International Symposium on Low Power Electronics and Design, Aug. 1999, 76-81, IEEE.
  • Schurgers et al., “Memory optimization of MAP turbo decoder algorithms,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Apr. 2001, 305-312, vol. 9, No. 2, IEEE.
  • Spagnol et al., “FPGA implementations of LDPC over GF(2m) decoders,” in Proc. IEEE Workshop on Signal Processing Systems, Oct. 2007, 273-278, IEEE.
  • Winstead et al., “Stochastic iterative decoders,” in IEEE International Symposium on Information Theory (ISIT 2005), Sep. 2005, 1116-1120, IEEE.
  • Winstead et al., “A probabilistic LDPC-coded fault compensation technique for reliable nanoscale computing,” IEEE Transactions on Circuits and Systems II: Express Briefs, Jun. 2009, 484-488, vol. 56, No. 6, IEEE.
  • Winstead et al., “Analog MAP decoder for (8, 4) Hamming code in subthreshold CMOS,” in IEEE International Symposium on Information Theory, Jun. 2001, 330, IEEE, Washington, DC, USA.
  • Winstead et al., “CMOS analog map decoder for (8,4) Hamming code,” IEEE Journal of Solid-State Circuits, Jan. 2004, 122-131, vol. 39, No. 1, IEEE.
  • Winstead et al., “Low-voltage CMOS circuits for analog iterative decoders,” IEEE Transactions on Circuits and Systems I: Regular Papers, Apr. 2006, 829-841, vol. 53, No. 4, IEEE.
  • Shannon, “A mathematical theory of communication,” Bell System Technical Journal, Jul. 1948, 379-423, vol. 27, No. 3, Nokia Bell Labs.
  • Shannon, “A mathematical theory of communication,” Bell System Technical Journal, Oct. 1948, 623-656, vol. 27, No. 4, Nokia Bell Labs.
  • Lee et al., “Stochastic erasure-only list decoding algorithms for Reed-Solomon codes,” IEEE Signal Processing Letters, Aug. 2009, 691-694, vol. 16, No. 8, IEEE.
  • Chang et al., “Check reliability based bit-flipping decoding algorithms for LDPC codes,” Proc. IEEE International Symposium on Information Theory, Jan. 14, 2010.
  • Liu et al., “Multi-mode message passing switch networks applied for QC-LDPC decoder,” 2008 IEEE International Symposium on Circuits and Systems (ISCAS), May 2008, 752-755, IEEE, Seattle, WA, USA.
  • Jego et al., “Turbo decoding of product codes using adaptive belief propagation,” IEEE Transactions on Communications, Oct. 2009, 2864-2867, vol. 57, No. 10, IEEE.
  • Chase, “A class of algorithms for decoding block codes with channel measurement information,” IEEE Transactions on Information Theory, Jan. 1972, 170-182, vol. 18, No. 1, IEEE.
  • Dabiri et al., “Fast Parallel Algorithms for Decoding Reed-Solomon Codes Based on Remainder Polynomials,” IEEE Transactions on Information Theory, Jul. 1995, 873-885, vol. 41, No. 4, IEEE.
  • Dabiri et al., “Fast Parallel Algorithms for Decoding Reed-Solomon Codes,” in Proceedings of the 1994 IEEE International Symposium on Information Theory, Jun.-Jul. 1994, 97, IEEE, Trondheim, Norway.
  • Declercq et al., “Decoding algorithms for nonbinary LDPC codes over GF(q),” IEEE Transactions on Communications, Apr. 2007, 633-643, vol. 55, No. 4, IEEE.
  • Mackay et al., “Gallager codes for high rate applications,” [online] Available: http://www.inference.org.uk/mackay/highrate.pdf, Jan. 2003, 1-8.
  • Mackay, “Good error-correcting codes based on very sparse matrices,” IEEE Transactions on Information Theory, Mar. 1999, 399-431, vol. 45, No. 2, IEEE.
  • Qian et al., “A Modification to Weighted Bit-Flipping Decoding Algorithm for LDPC Codes Based on Reliability Adjustment,” 2008 IEEE International Conference on Communications, 2008, 1161-1165, IEEE.
  • Vogrig et al., “A 0.35-μm CMOS analog turbo decoder for the 40-bit rate ⅓ UMTS channel code,” IEEE Journal of Solid-State Circuits, Mar. 2005, 753-762, vol. 40, No. 3, IEEE.
  • Arikan, “A survey of Reed-Muller codes from polar coding perspective,” in 2010 IEEE Information Theory Workshop on Information Theory (ITW 2010), Jan. 2010, IEEE, Cairo, Egypt.
  • Arikan, “Source polarization,” in 2010 IEEE International Symposium on Information Theory (ISIT), 2010, 899-903, IEEE, Austin, TX, USA.
  • Arikan, “Systematic polar coding,” IEEE Communications Letters, Aug. 2011, 860-862, vol. 15, No. 8, IEEE.
  • Arikan et al., “On the rate of channel polarization,” in Proc. IEEE International Symposium on Information Theory (ISIT 2009), 2009, 1493-1495, IEEE, Seoul, South Korea.
  • Ayar, “UWB wireless video transmission technology in medical applications,” NDS Surgical Imaging (NDSsi), Aug. 2010, 1-10.
  • Berlekamp, “Bounded Distance +1 Soft-Decision Reed-Solomon Decoding,” IEEE Transactions on Information Theory, May 1996, 704-720, vol. 42, No. 3, IEEE.
  • Boutillon et al., “A generalized precompiling scheme for surviving path memory management in Viterbi decoders,” Proc. IEEE International Symposium on Circuits and Systems (ISCAS'93), May 1993, 1579-1582, vol. 3, Chicago, IL, USA.
  • Boutillon et al., “Decoder-first code design,” Proc. 2nd International Symposium on Turbo Codes and Related Topics, Sep. 2000, 459-462, Brest, France.
  • Boutillon et al., “Gestion de la memoire pour l'algorithme du forward-backward,” Proceedings of the 5e Workshop AAA sur l'Adéquation Algorithme Architecture, Jan. 26-28, 2000, 26-28, INRIA, Rocquencourt, France.
  • Boutillon et al., “VLSI Architectures for the MAP Algorithm,” IEEE Transactions on Communications, Feb. 2003, 175-185, vol. 51, No. 2, IEEE.
  • Cadic, “Construction de turbo codes courts possédant de bonnes propriétés de distance minimale,” 2003.
  • Horowitz et al., “The binary tree as an interconnection network: Applications to multiprocessor systems and VLSI,” IEEE Transactions on Computers, Apr. 1981, 247-253, vol. C-30, No. 4, IEEE.
  • Masalkina et al.,“Soft-FEC implementation for high-speed coherent optical OFDM systems,” Proc. Photonische Netze (ITG-FB 222), Mar. 2010.
  • Ordentlich et al., “Channel decoding of systematically encoded unknown redundant sources,” Proc. International Symposium on Information Theory (ISIT 2004), 2004, 163, IEEE, Chicago, IL, USA.
  • Yeo et al., “Iterative decoder architectures,” IEEE Communications Magazine, Aug. 2003, 132-140, vol. 41, No. 8, IEEE.
  • Zimmermann et al., “Bit-flipping post-processing for forced convergence decoding of LDPC codes,” 2005 13th European Signal Processing Conference, Sep. 2005, 1-4, IEEE, Antalya, Turkey.
  • Erfanian et al., “Low-complexity parallel-structure symbol-by-symbol detection for ISI channels,” IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, Jun. 1989, 350-353, IEEE, Victoria, BC, Canada.
  • Chang et al., “Forward error correction for 100 G transport networks,” IEEE Communications Magazine, Mar. 2010, S48-S55, vol. 48, No. 3, IEEE.
  • Guilloud et al., “λ-min decoding algorithm of regular and irregular LDPC codes,” Proceedings of 3rd International Symposium on Turbo Codes and Related Topics (ISTC 03), Sep. 2003, 451-454, Brest, France.
  • Kschischang et al., “Iterative decoding of compound codes by probability propagation in graphical models,” IEEE Journal on Selected Areas in Communications, Feb. 1998, 219-230, vol. 16, No. 2, IEEE.
  • Kschischang et al., “Factor graphs and the sum-product algorithm,” IEEE Transactions on Information Theory, Feb. 2001, 498-519, vol. 47, No. 2, IEEE.
  • Worm et al., “VLSI architectures for high-speed MAP decoders,” Proc. 14th International Conference on VLSI Design, 2001, 446-453, IEEE.
  • Hasse, “Theorie der höheren Differentiale in einem algebraischen Funktionenkörper mit vollkommenem Konstantenkörper bei beliebiger Charakteristik,” Journal für die reine und angewandte Mathematik, 1936, 50-54, vol. 175.
  • Lustenberger et al., “All-analog decoder for a binary (18,9,5) tail-biting trellis code,” in Proceedings of the 1999 European Solid-state Circuits Conference (ESSIRC '99) Sep. 1999, 362-365, IEEE.
  • Najm, “A Survey of Power Estimation Techniques in VLSI Circuits,” IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Dec. 1994, 446-455, vol. 2, No. 4, IEEE.
  • Najm, “Transition Density: A New Measure of Activity in Digital Circuits,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Feb. 1993, 310-323, vol. 12, No. 2, IEEE.
  • Parvaresh et al., “Multiplicity assignments for algebraic soft-decoding of Reed-Solomon codes,” Proc. IEEE International Symposium on Information Theory, 2003, 205, IEEE, Yokohama, Japan.
  • Zeng et al., “Ultrawideband impulse radio signal generation using a high-speed electrooptic phase modulator and a fiber-bragg-grating-based frequency discriminator,” IEEE Photonics Technology Letters, Oct. 2006, 2062-2064, vol. 18, No. 19.
  • Guo et al., “Reliability ratio based weighted bit-flipping decoding for LDPC codes,” 2005 IEEE 61st Vehicular Technology Conference, 2005, 709-713, IEEE, Stockholm, Sweden.
  • Bosco et al., “Soft decoding in optical systems,” IEEE Transactions on Communications, Aug. 2003, 1258-1265, vol. 51, No. 8, IEEE.
  • Castagnoli et al., “On repeated-root cyclic codes,” IEEE Transactions on Information Theory, Mar. 1991, 337-342, vol. 37, No. 2, IEEE.
Patent History
Patent number: RE50983
Type: Grant
Filed: Apr 12, 2024
Date of Patent: Aug 4, 2026
Assignee: Polar Technologies LLC (Dallas, TX)
Inventors: Warren Gross (Montreal), Saied Hemati (Montreal), Shie Mannor (Montreal), Ali Naderi (Montreal), Francois Leduc-Primeau (Montreal)
Primary Examiner: William H. Wood
Application Number: 18/633,907
Classifications
Current U.S. Class: Including Forward Error Correction Capability (714/751)
International Classification: G06F 11/10 (20060101); H03M 13/00 (20060101); H03M 13/11 (20060101); H03M 13/37 (20060101);