Publication number | US7296216 B2 |
Publication type | Grant |
Application number | US 10/370,136 |
Publication date | Nov 13, 2007 |
Filing date | Feb 19, 2003 |
Priority date | Jan 23, 2003 |
Fee status | Paid |
Also published as | US20040148561 |
Publication number | 10370136, 370136, US 7296216 B2, US 7296216B2, US-B2-7296216, US7296216 B2, US7296216B2 |
Inventors | Ba-Zhong Shen, Kelly Brian Cameron |
Original Assignee | Broadcom Corporation |
Export Citation | BiBTeX, EndNote, RefMan |
Patent Citations (13), Non-Patent Citations (8), Referenced by (54), Classifications (22), Legal Events (5) | |
External Links: USPTO, USPTO Assignment, Espacenet | |
The present U.S. Utility Patent Application claims priority pursuant to 35 U.S.C. § 119(e) to the following U.S. Provisional Patent Applications which is hereby incorporated herein by reference in its entirety and made part of the present U.S. Utility Patent Application for all purposes:
1. U.S. Provisional Application Ser. No. 60/442,029, “Stopping and/or reducing oscillations in Low Density Parity Check (LDPC) codes,” filed Jan. 23, 2003 (01/23/03), pending.
1. Technical Field of the Invention
The invention relates generally to communication systems; and, more particularly, it relates to decoding of encoded signals within such communication systems.
2. Description of Related Art
Data communication systems have been under continual development for many years. One such type of communication system that has been of significant interest lately is a communication system that employs turbo codes. Another type of communication system that has also received interest is a communication system that employs Low Density Parity Check (LDPC) code. A primary directive in these areas of development has been to try continually to lower the error floor within a communication system. The ideal goal has been to try to reach Shannon's limit in a communication channel. Shannon's limit may be viewed as being the data rate to be used in a communication channel, having a particular Signal to Noise Ratio (SNR), that achieves error free transmission through the communication channel. In other words, the Shannon limit is the theoretical bound for channel capacity for a given modulation and code rate.
LDPC code has been shown to provide for excellent decoding performance that can approach the Shannon limit in some cases. For example, some LDPC decoders have been shown to come within 0.3 dB from the theoretical Shannon limit. While this example was achieved using an irregular LDPC code of a length of one million, it nevertheless demonstrates the very promising application of LDPC codes within communication systems.
There is, however, at least one undesirable aspect of decoding processing of LDPC coded signals. The decoding of LDPC codes typically involves using iterative processing; this iterative processing inherently includes some loops. There are several approaches that may be used to perform decoding of LDPC codes. One approach involves a Belief Propagation (BP) decoding approach. The BP approach may be implemented either using a Sum Product (SP) approach or a Message Passing (MP) approach. However, given the fact that the manner in which these LDPC codes are decoded include loops, the possibility of oscillations may arise in the decoding within theses loops.
As described very accurately by Pearl, “when loops are present, the network is no longer singly connected and local propagation schemes will invariably run into trouble . . . If we ignore the existence of loops and permit the nodes to continue communicating with each other as if the network were singly connected, messages may circulate indefinitely around the loops and process may not converges to a stable equilibrium . . . Such oscillations do not normally occur in probabilistic networks. . . which tend to bring all messages to some stable equilibrium as time goes on. However, this asymptotic equilibrium is not coherent, in the sense that it does not represent the posterior probabilities of all nodes of the network.” J. Pearl, Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference, Morgan Kaufmann, 1988.
As can clearly be seen by the description provided above, a need exists in the art to try to deal with these undesirable oscillations that can sometimes occur when decoding LDPC coded signals within communication decoders.
The present invention is directed to apparatus and methods of operation that are further described in the following Brief Description of the Several Views of the Drawings, the Detailed Description of the Invention, and the claims. Other features and advantages of the present invention will become apparent from the following detailed description of the invention made with reference to the accompanying drawings.
Various aspects of the invention may be found in any number of devices that perform decoding of Low Density Parity Check (LDPC) coded signals. Decoders that are operable to perform reduced and/or completely eliminated during the decoding processing. As described above, the typical approaches to decoding LDPC coded signals inherently involve loops. When an iterative decoding approach does not converge, then the error may be passed continuously throughout the loop. The invention provides several possible embodiments that may be addressed to reduce and/or completely eliminate the possible oscillations that may undesirably occur when decoding LDPC coded signals. Various system embodiments are described below where any of the various aspects of the invention may be implemented. In general, any device that performs decoding of LDPC coded signals may benefit from the invention.
Here, the communication to and from the satellite may cooperatively be viewed as being a wireless communication channel, or each of the communication to and from the satellite may be viewed as being two distinct wireless communication channels.
For example, the wireless communication “channel” may be viewed as not including multiple wireless hops in one embodiment. In other multi-hop embodiments, the satellite receives a signal received from the satellite transmitter (via its satellite dish), amplifies it, and relays it to satellite receiver (via its satellite dish); the satellite receiver may also be implemented using terrestrial receivers such as satellite receivers, satellite based telephones, and/or satellite based Internet receivers, among other receiver types. In the case where the satellite receives a signal received from the satellite transmitter (via its satellite dish), amplifies it, and relays it, the satellite may be viewed as being a “transponder;” this is a multi-hop embodiment. In addition, other satellites may exist that perform both receiver and transmitter operations in cooperation with the satellite. In this case, each leg of an up-down transmission via the wireless communication channel would be considered separately.
In whichever embodiment, the satellite communicates with the satellite receiver. The satellite receiver may be viewed as being a mobile unit in certain embodiments (employing a local antenna); alternatively, the satellite receiver may be viewed as being a satellite earth station that may be communicatively coupled to a wired network in a similar manner in which the satellite transmitter may also be communicatively coupled to a wired network.
The satellite transmitter is operable to encode information (using an encoder) that is to be transmitted to the satellite receiver; the satellite receiver is operable to decode the transmitted signal (using a decoder). The decoder may be implemented within the satellite receivers may be implemented to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
The HDTV set top box receiver is also communicatively coupled to an HDTV display that is able to display the demodulated and decoded wireless transmitted signals received by the HDTV set top box receiver and its local tower dish. The HDTV transmitter (via its tower) transmits a signal directly to the local tower dish via the wireless communication channel in this embodiment. In alternative embodiments, the HDTV transmitter may first receive a signal from a satellite, using a satellite earth station that is communicatively coupled to the HDTV transmitter, and then transmit this received signal to the local tower dish via the wireless communication channel. In this situation, the HDTV transmitter operates as a relaying element to transfer a signal originally provided by the satellite that is destined for the HDTV set top box receiver. For example, another satellite earth station may first transmit a signal to the satellite from another location, and the satellite may relay this signal to the satellite earth station that is communicatively coupled to the HDTV transmitter. The HDTV transmitter performs receiver functionality and then transmits its received signal to the local tower dish.
In even other embodiments, the HDTV transmitter employs its satellite earth station to communicate to the satellite via a wireless communication channel. The satellite is able to communicate with a local satellite dish; the local satellite dish communicatively couples to the HDTV set top box receiver via a coaxial cable. This path of transmission shows yet another communication path where the HDTV set top box receiver may communicate with the HDTV transmitter.
In whichever embodiment and whichever signal path the HDTV transmitter employs to communicate with the HDTV set top box receiver, the HDTV set top box receiver is operable to receive communication transmissions from the HDTV transmitter.
The HDTV transmitter is operable to encode information (using an encoder) that is to be transmitted to the HDTV set top box receiver; the HDTV set top box receiver is operable to decode the transmitted signal (using a decoder). The decoder may be implemented within the HDTV set top box receiver may be implemented to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
Referring to the
The mobile transmitter is operable to encode information (using an encoder) that is to be transmitted to the base station receiver; the base station receiver is operable to decode the transmitted signal (using a decoder).
The decoder may be implemented within the base station receiver to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
Referring to the
The base station transmitter is operable to encode information (using an encoder) that is to be transmitted to the mobile receiver; the mobile receiver is operable to decode the transmitted signal (using a decoder).
The decoder may be implemented within the mobile receiver to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
The
Referring to the
The base station transceiver is operable to encode information (using an encoder) that is to be transmitted to the mobile transceiver; the mobile transceiver is operable to decode the transmitted signal (using a decoder).
The decoder may be implemented within either one of the mobile transceiver and the base station transceiver to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
The microwave transmitter is operable to encode information (using an encoder) that is to be transmitted to the microwave receiver; the microwave receiver is operable to decode the transmitted signal (using a decoder).
The decoder may be implemented within the microwave receiver to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
Each of the microwave transceivers is operable to encode information (using an encoder) that is to be transmitted to the other microwave transceiver; each microwave transceiver is operable to decode the transmitted signal (using a decoder) that it receives. Each of the microwave transceivers includes an encoder and a decoder. The decoder of either of the transceivers that may be implemented to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
The mobile unit transmitter is operable to encode information (using an encoder) that is to be transmitted to the mobile unit receiver; the mobile unit receiver is operable to decode the transmitted signal (using a decoder). The decoder may be implemented within the mobile unit receiver to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
The
Each mobile unit transceiver is operable to encode information (using an encoder) that is to be transmitted to the other mobile unit transceiver; each mobile unit transceiver is operable to decode the transmitted signal (using a decoder) that it receives. The decoder of either of the mobile unit transceivers may be implemented to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
The transmitter is operable to encode information (using an encoder) that is to be transmitted to the receiver; the receiver is operable to decode the transmitted signal (using a decoder). The decoder may be implemented within the receiver to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
Each of the transceivers is operable to encode information (using an encoder) that is to be transmitted to the other transceiver; each transceiver is operable to decode the transmitted signal (using a decoder) that it receives. The decoder of either of the transceivers may be implemented to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
A distribution point is employed within the one to many communication system to provide the appropriate communication to the receivers 1, 2, . . . , and n. In certain embodiments, the receivers 1, 2, . . . , and n each receive the same communication and individually discern which portion of the total communication is intended for themselves.
The transmitter is operable to encode information (using an encoder) that is to be transmitted to the receivers 1, 2, . . . , and n; each of the receivers 1, 2, . . . , and n is operable to decode the transmitted signal (using a decoder). The decoder that may be implemented within each of the receivers 1, 2, . . . , and n to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
DWDM is a technology that has gained increasing interest recently. From both technical and economic perspectives, the ability to provide potentially unlimited transmission capacity is the most obvious advantage of DWDM technology. The current investment already made within fiber-optic infrastructure can not only be preserved when using DWDM, but it may even be optimized by a factor of at least 32. As demands change, more capacity can be added, either by simple equipment upgrades or by increasing the number of wavelengths (lambdas) on the fiber-optic cabling itself, without expensive upgrades. Capacity can be obtained for the cost of the equipment, and existing fiber plant investment is retained. From the bandwidth perspective, some of the most compelling technical advantage of DWDM can be summarized as follows:
The transparency of DWDM: Because DWDM is a physical layer architecture (PHY), it can transparently support both Time Division Multiplexing (TDM) and data formats such as asynchronous transfer mode (ATM), Gigabit Ethernet, ESCON, and Fibre Channel with open interfaces over a common physical layer.
The scalability of DWDM: DWDM can leverage the abundance of dark fiber in many metropolitan area and enterprise networks to quickly meet demand for capacity on point-to-point links and on spans of existing SONET/SDH rings.
The dynamic provisioning capabilities of DWDM: the fast, simple, and dynamic provisioning of network connections give providers the ability to provide high-bandwidth services in days rather than months.
Fiber-optic interfacing is employed at each of the client and line sides of the DWDM line card. The DWDM line card includes a transport processor that includes functionality to support DWDM long haul transport, DWDM metro transport, next-generation SONET/SDH multiplexers, digital cross-connects, and fiber-optic terminators and test equipment. On the line side, the DWDM line card includes a transmitter, that is operable to perform electrical to optical conversion for interfacing to an optical medium, and a receiver, that is operable to perform optical to electrical conversion for interfacing from the optical medium. On the client side, the DWDM line card includes a 10G serial module. That is operable to communicate with any other devices on the client side of the fiber-optic communication system using a fiber-optic interface. Alternatively, the interface may be implemented using non-fiber-optic media, including copper cabling and/or some other type of interface medium.
The DWDM transport processor of the DWDM line card includes a decoder that is used to decode received signals from either one or both of the line and client sides and an encoder that is used to encode signals to be transmitted to either one or both of the line and client sides. The decoder may be implemented within the receiver to perform oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The
The advanced modulation satellite receiver communicatively couples to an HDTV MPEG-2 (Motion Picture Expert Group) transport de-mux, audio/video decoder and display engine. The advanced modulation satellite receiver and the HDTV MPEG-2 transport de-mux, audio/video decoder and display engine communicatively couple to a host Central Processing Unit (CPU). The HDTV MPEG-2 transport de-mux, audio/video decoder and display engine also communicatively couples to a memory module and a conditional access functional block. The HDTV MPEG-2 transport de-mux, audio/video decoder and display engine provides HD video and audio output that may be provided to an HDTV display.
The advanced modulation satellite receiver is a single-chip digital satellite receiver supporting the decoder that is operable to support oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals. The advanced modulation satellite receiver is operable to receive communication provided to it from a transmitter device that includes an encoder as well.
In addition, several of the following Figures describe particular embodiments that may be used to implement the various embodiments of oscillation reduction and/or elimination when decoding Low Density Parity Check (LDPC) coded signals according to the invention.
These regular LDPC codes were introduced in R. Gallager, Low-Density Parity-Check Codes, Cambridge, Mass.: MIT Press, 1963. A regular LDPC code can be defined as a bipartite graph by its parity check matrix with left side nodes representing variable of the code bits, and the right side nodes representing check equations. The bipartite graph of the code defined by H, shown in the
Referring to
An irregular LDPC code may also described using a bipartite graph. However, the degree of each set of nodes within an irregular LDPC code may be chosen according to some distribution. Therefore, for two different variable nodes, ν_{i} _{ 1 }and ν_{i} _{ 2 }, of an irregular LDPC code, |E_{v }(i_{1})| may not equal to |E_{v}(i_{2})|. This relationship may also hold true for two check nodes.
The concept of irregular LDPC codes were originally introduced by the authors of M. Luby, M. Mitzenmacher, M. A. Shokrollahi, D. A. Spielman. and V. Stemann. “Practical Loss-Resilient Codes,” Proc. 29^{th } Symp. on Theory of Computing, 1997, pp. 150-159.
The Log-Likelihood ratio (LLR) decoding of LDPC codes may be described as follows: The probability that a bit within a received vector in fact has a value of 1 when a 1 was actually transmitted is calculated. Similarly, the probability that a bit within a received vector in fact has a value of 0 when a 0 was actually transmitted is calculated. These probabilities are calculated using the LDPC code that is use to check the parity of the received vector. The LLR is the logarithm of the ratio of these two calculated probabilities. This LLR will give a measure of the degree to which the communication channel over which a signal is transmitted may undesirably affect the bits within the vector.
The Log-Likelihood ratio (LLR) decoding of LDPC codes may be described mathematically as follows:
Beginning with
being an LDPC code and viewing a received vector, y=(y_{0}, . . . , y_{N−1}), with the sent signal having the form of ((−1)^{ν} ^{ 0i }, . . . , (−1)^{ν} ^{ N−1 }), then the metrics of the channel may be defined as p(y_{i}|ν_{i}=0), p(y_{i}|ν_{i}=1), i=0, . . . , N−1. The LLR of a metric will then be defined as follows:
For every variable node ν_{i}, its LLR information value will then be defined as follows:
Since the variable node, ν_{i}, is in a codeword, then the value of
may be replaced by
When performing the Belief Propagation (BP) decoding approach, then the value of
may be replaced by the following relationship
which is called the extrinsic (EXT) information of the check node c_{j }with respect to the edge (i, j). Extrinsic information values may be viewed as those values that are calculated to assist in the generation of best estimates of actual bit values within a received vector. Also in a BP approach, then the extrinsic information of the variable node ν_{i }with respect to the edge (i, j) may be defined as follows:
For illustration within this disclosure, a rate 0.9446 regular LDPC code of block size 9198 is employed as an example. Several of the various embodiments of the invention are described within the context of operating on this particular LDPC code. However, it is clear that the various aspects of the invention may also be applied to other LDPC codes as well without departing from the scope and spirit of the invention; the use of this particular LDPC is illustrative. The number of d_{v }edges and the number of d_{c }edges of this illustrative LDPC code are (d_{v}, d_{c})=(4,72). Specifically, this indicates that each code bit node connects 4 check nodes and each check node connects 72 code bit node. In addition, there are 511 check equations.
As described above, and as can be seen within the LDPC code bipartite graph described here, given the fact that the manner in which many LDPC codes are decoded include loops, the possibility of oscillations may arise in the decoding within theses loops. The invention presents a solution that is operable to reduce and/or eliminate these undesirable oscillations that may sometimes occur when decoding LDPC codes.
In addition, a brief description of the SP decoding approach is also presented here. This brief description begins be defining a metric of a variable node, ν_{i}, as follows:
metric_{i}(a)=p(y_{i}|ν_{i}=a)
To initialize the decoding, the following definition may be employed:
var_{e} ^{0}(a)=metric_{v (e)}(a)
Initially, the “Sum” portion of the SP decoding approach is performed. A check node value is calculated for each of the edges, e, of the LDPC code bipartite graph described above. These check node values may be shown mathematically as follows:
Subsequently, the “Product” potion of the SP decoding approach is performed. For each of the edges, e, of the LDPC code bipartite graph described above, the following calculation is made with respect to the variable nodes:
Thereafter, the “Sum” portion and the “Product” portion of the SP decoding approach are combined together to give the final SP decoding result. Specifically, to estimate the SP decoding result after the n-th iteration, the following calculation may be performed:
The SP decoding approach is a Belief Propagation (BP) (and/or sometimes referred to as a Message-Passing (MP)) approach that is employed in a Bayesian network. The functionality performed by such as decoder may be considered as follows. The decoder starts with initial information that corresponds to all of the variable nodes; this information may be represented as a vector ν_{0}. During the first SP decoding iteration, the decoder calculate the information of all the check nodes, which may be represented as the vector c_{1}, using the initial variable node information vector ν_{0}. This operation may be represented as the following function: c_{1}=ƒ(ν_{0}).
After this operation, this newly computed value of c_{1 }along with the metric sequence are both used to calculate the information that corresponds to all the variable nodes, this information may be represented as a variable node vector at iteration 1, shown as ν_{1}. This procedure may be denotes as the following function: ν_{1}=g(c_{1}). It is also noted that the function of g also receives information corresponding to the communication channel over which a received symbol has been transmitted; this information may include its noise characterization, its dispersive nature, its Signal to Noise (SNR), and/or other information as well.
The notation used herein may be defined as follows: the “variable” node information and the “check” node information in the kth iteration may be represented as v_{k }and c_{k}, respectively. Therefore, the check node information of the kth iteration may be represented as c_{k}=ƒ(ν_{k−1}), and the variable node information of the kth iteration may be represented as ν_{k}=g(c_{k}). When combining these two operations together, the following notation may be employed: ν_{k}=g(f(ν_{k−1})). For a more concise representation, a new function may be defined as follows: F(x)=g(f(x)). In addition, it can be seen that the current iteration's information of a variable node is a function of the previous iteration's information of the variable node; this may be represented mathematically as follows: ν_{k}=F(ν_{k−1}).
As criteria for determining when the decoding operation is in fact converging on a solution, the comparison of a current iteration's information of a variable node with the previous iteration's information of that variable node may be made. For example, when ν_{k}=ν_{k−1}, then the decoding processing may be viewed as having converged on a fixed point solution such that ν=ν_{k }(which may also be represented as ν=F(ν)). When this criterion has in fact been met, then the final value of ν will be the final output of the SP decoding approach. The following figure shows one view of this decoding processing converging on a solution.
When operating within communication systems that support higher Signal to Noise Ratios (SNRs), this decoding approach may converge to a fixed point when decoding all blocks. For example, when considering the illustrative LDPC code described above (having a rate 0.9446 regular LDPC code of block size 9198 and (d_{v},d_{c})=(4,72)), when operating using a SNR of E_{b}/N_{o}=5.6 dB and with 20 Million blocks being simulated, it was found that the decoding functionality of the
When operating at SNR mentioned above, when E_{b}/N_{o}=5.6 dB, among the 4 million blocks, there are 10 blocks that will cause oscillations during the decoding processing. When the SNR improves a bit, at E_{b}/N_{o}=5.8 dB, then among 20 Million blocks, there are only 5 blocks causing oscillations during the decoding processing.
Several of the following figures illustrate various embodiments of the invention that employ Bit-Flip (BF) hard decision decoding. In this context of LDPC decoding processing described herein, a brief description of BF hard decision decoding is provided here from the following source: Yu Kou, Shu Lin, and Marc P. C. Fossorier, “Low-Density Parity-Check Codes Based on Finite Geometries: A Rediscovery and New Results,” IEEE Trans. Inform. Theory, Vol. 47, No. 7, pp. 2711-2736, November 2001.
“BF decoding of LDPC codes was devised by Gallagher in the early 1960s [R. G. Gallager, “Low density parity check codes,” IRE Trans. Inform. Theory, vol. IT-8, pp. 21-28, January 1962], [R. Gallager, Low-Density Parity-Check Codes, Cambridge, Mass.: MIT Press, 1963]. When detectable errors occur during the transmission, there will be parity failures in the syndrome s=(s_{1}, s_{2}, . . . , s_{J}) and some of the syndrome bits are equal to 1. BF decoding is based on the change of the number of parity failures in {z·h_{j}: 1≦j≦J} when a bit in the received sequence z is changed.
First, the decoder computes all the parity-check sums based on
and then changes any bit in the received vector z that is contained in more than some fixed number δ of un-satisfied parity-checks equations. Using these new values, the parity-check sums are recomputed, and the process is repeated until the parity-check equations are all satisfied. This decoding is an iterative decoding algorithm. The parameter δ, called threshold, is a design parameter which should be chosen to optimize the error performance while minimizing the number of computations of parity-check sums. The value of δ depends on the [LDPC] code parameters ρ [number of points in every line of finite geometry with n points and J lines], γ [number of lines that intersect point of finite geometry with n points and J lines], d_{min }[minimum distance of the LDPC code] and the signal-to-noise ratio (SNR).
If decoding fails for a given value of δ, then the value of δ can be reduced to allow further decoding iterations. For error patterns with number of error less than or equal to the error correcting capability of the code, the decoding will be complete in one or a few iterations. Otherwise, more decoding iterations are needed. Therefore, the number of decoding iterations is a random variable and is a function of the channel SNR. A limit may be set on the number of iterations. When this limit is reached, the decoding process is terminated to avoid excessive computations. Due to the nature of LDPCs, the above decoding algorithm corrects many error patterns with number of errors exceeding the error correcting capability of the code.
A very simple BF decoding algorithm is given as follows:
BP decoding requires only logical operations. The number of logical operations N_{BF }performed for each decoding iteration is linearly proportional to Jρ (or nγ), say, N_{BF}=K_{BF}Jρ, where the constant K_{BF }depends on the BF decoding algorithm. Typically, K_{BF }is less than three. The simple BF decoding algorithm can be improved by using adaptive thresholds of δ's. Of course, this improvement is achieved at the expense of more computations. EG [Euclidean geometries]- and PG [Partial Geometry]-LDPC codes perform well with the BF decoding due to the large number of check sums orthogonal on each code bit.” Yu Kou, Shu Lin, and Marc P. C. Fossorier, “Low-Density Parity-Check Codes Based on Finite Geometries: A Rediscovery and New Results,” IEEE Trans. Inform. Theory, Vol. 47, No. 7, pp. 2718, November 2001.
Afterwards, after the SP soft decision decoder has performed all of its soft decision decoding iterations, then a preliminary hard decision is made on those final soft decision decoding results before passing those hard decisions to a BF hard decision decoder. Analogous to the SP soft decision decoder, the BF hard decision decoder may be implemented in any number of different ways. For example, the BF hard decision decoder may perform a predetermined number of hard decision decoding iteration; alternatively, the BF hard decision decoder may perform hard decision decoding until a total number of bit errors is less than a threshold. Similar to the SP soft decision decoding above, with respect to the BF hard decision decoding here, this threshold may be determined based on simulations or training that is performed offline under similar conditions. Using the appropriate number of BF hard decision decoding iterations, based on the threshold that is determined offline using simulations or training, then an acceptable number of bit errors should then be expected.
This predetermined number of hard decision decoding iterations and threshold employed by the BF hard decision decoder may be viewed as being a second predetermined number of iterations and a second threshold. The final output of the BF hard decision decoder is then a best estimate of the signal received by the SP soft decision decoder. This output may be viewed as being an estimate of a codeword within the signal received by the SP soft decision decoder.
The total number of iterations performed by the SP soft decision decoder and the BF hard decision decoder may also be intelligently made as to optimize performance. For example, a determination of the first predetermined number of iterations (of soft decision decoding iterations made by the SP soft decision decoder) and the second number of iterations (of hard decision decoding made by the BF hard decision decoder) may be made cooperatively so as to optimize the performance of the total functionality of the decoder.
This functionality may be implemented such that the soft decision decoding iterations performed by the SP soft decision decoder are ended before the SP soft decision decoder oscillates. For example, when the total number of soft decision decoding iterations is kept within the range of approximately 4 to 6, then the SP soft decision decoder is found not to oscillate. Therefore, the total number of soft decision decoding iterations may be kept at approximately 5 or 6 iterations. Typically, at this point, the soft decision decoding will include very few bit errors (say in the range of 1 to 3 bit errors). This is where the functionality of the BF hard decision decoder may come into place. The use of the BF hard decision decoder may then be used to eliminate these few remaining bit errors. In most instances, 2 additional hard decision decoding iterations performed by the BF hard decision decoder will eliminate these remaining bit errors that exist in the hard decisions provided to the BF hard decision decoder by the SP soft decision decoder (those hard decisions based on the soft decision decoding decisions provided by the SP soft decision decoder).
When performing simulations using 4 million blocks with 6 soft decision decoding iterations performed by the SP soft decision decoder and 2 hard decision decoding iterations performed by the BF hard decision decoder, at a SNR of E_{b}/N_{o}=5.6 dB, then it is found that only 10 block do not converge to a proper estimate of the codeword received by the SP soft decision decoder. In addition, all of the non-converging blocks have very few remaining bit errors. Specifically, the total number of bit errors is less than 10 for each of these non-converging blocks. Overall, the bit error is then found to be 1.38121547e-09. When simulating 13 million blocks, the simulation performed using simulation at an SNR of E_{b}/N_{o}=5.8 dB, it is found that only 3 of those blocks do not converge. Overall, during this simulation, the bit error rate is reduced nearly an order of magnitude to 1.50517070e-10.
However, while this combination approach does provide a significant reduction in complexity and a greater improvement in performance over the prior art approaches, additional measures can be made to increase the performance to an even greater degree. To achieve a lower bit error rate, being less than 1.0e-15, the decoder should be allowed to converge almost all of the blocks within an acceptable number of iterations. Two additional approaches are presented to reduce the longer oscillations even further.
As an example, with an Additive Gaussian White Noise (AGWN) communication channel of variance, σ, then the logarithm of the metric may be identified as follows:
where E is the energy of a bit signal and y_{i }is a received signal. In the Log Likelihood Ratio (LLR) decoding approach, then the metric may be represented as follows:
However, the invention may be implemented differently using a new manner of how to modify the hard decisions made on these metrics. Since every variable node, ν_{i}, has d_{v } edges connecting to some of the corresponding check nodes. These check nodes are denoted as follows:
c(ν_{i},0), . . . , c(ν_{i}, d_{v −1})
The hard decisions made on the metrics are initially categorized as follows:
Afterwards, the several syndromes corresponding to the various scenarios are calculates within an M syndrome computation functional block as follows:
The syndromes S_{c} _{ 0 }, S_{c} _{ 1 }, . . . , S_{c} _{ M−1 }are calculated, using the hard decisions made above α_{0}, . . . , α_{N−1}. Therefore, each of the syndromes may then be represented as follows:
is the parity check matrix. The variable node information, ν_{i}, may then be initialized within an initialization of variable nodes functional block as follows:
If S_{c(ν} _{ i } ^{,j)}=0, then the edge of (ν_{i},c(ν_{i},j)) is initialized with the Metric_{k}(0), Metric_{k}(1) (or Metric_{K }in LLR decoder).
Alternatively, if S_{c(ν} _{ i } ^{,j)}≠0, then the edge of (ν_{i},c(ν_{i},j)) is initialized with a scaling factor to produce scaled metrics, shown as α·Metric_{k}(0), α·Metric_{k}(1) (or σ·Metric_{k }in LLR decoding), where α is a constant value that depends on the SNR of the communication channel. The scaling value of a may be appropriately selected based on the SNR to reduce any longer oscillations that may undesirably occur within an SP soft decision decoder implemented according to the invention.
For example, when operating at a SNR of E_{b}/N_{o}=5.6 dB, all of the 10 oscillating blocks mentioned above within the 4 millions blocks converge within fewer than 20 total decoding iterations thereby providing an even greater improvement in performance when compared to the other embodiments described above. Moreover, for the problematic block described above that converged only at the 4334^{th }iteration, when the modified SP soft decision decoding initialization presented above is employed, then only 118 iterations are needed to converge on the appropriate codeword. In fact, the decoder oscillates a mere 9 times as shown within the figure when compared to the large number of oscillations shown above in the embodiment not employing this initialization approach 1.
There are at least two approaches shown herein that may benefit from the initialization presented above. Two of the possible approaches performed according to the invention are presented below as approach 1 and approach 2. These 2 new approaches of performing the initialization of decoding help avoid the larger numbers of bit errors that may occur when decoding some blocks for which the decoder still oscillates after a given number of iterations.
Firstly, the variable nodes, ν, are initialized for all of the possible cases. A received signal undergoes a first round of soft decision decoding iterations within an SP soft decision decoder. As shown within this embodiment, the total number of soft decision decoding iterations, I_{s}, is less than or equal to 6, e.g., I_{s}≦6. After the soft decision decoding is performed by the SP soft decision decoder, then no more than 2 hard decision decoding iterations are performed by the BF hard decision decoder, e.g., a max number of hard decision decoding iterations of 2.
Afterwards, a syndrome error detection functional block determines whether or not there are still bit errors within the decoded data. For example, if the syndrome error detection functional block detects a bit error after the hard decision decoding performed by the BF hard decision decoder, then the SP soft decision decoder will continue to perform soft decision decoding with additional soft decision decoding iterations. These additional soft decision decoding iterations, I_{es}, may vary in range from I_{es}−I_{s}, where I_{es }may run from 20 to 30. After the additional soft decision decoding iterations are performed, if it is determined that the additional soft decision decoding of the SP soft decision decoder does not converge, as determined by the syndrome error detection functional block, then the output of the BF hard decision decoder is selected as the decoder output and as being the best estimate of the codeword that is included within the received signal originally received by the SP soft decision decoder.
It is also noted here, however, that, when using this new approach to initialization, there may be more be blocks that need extended soft decision decoding by the SP soft decision decoder than are required by the originally presented approach.
Firstly within this embodiment, the variable nodes, ν, are initialized for all of the possible cases using the LLR decoding approach for LDPC codes as described above. A received signal undergoes a first round of soft decision decoding iterations within an SP soft decision decoder. As shown within this embodiment, the total number of soft decision decoding iterations, I_{s}, is less than or equal to 6, e.g., I_{s}≦6. After the soft decision decoding is performed by the SP soft decision decoder, then no more than 2 hard decision decoding iterations are performed by the BF hard decision decoder, e.g., a max number of hard decision decoding iterations of 2.
Afterwards, a syndrome error detection functional block determines whether or not there are still bit errors within the decoded data. For example, if the syndrome error detection functional block detects a error after the hard decision decoding performed by the BF hard decision decoder, then the variable nodes, ν, are re-initialized for all of the possible cases using the LLR decoding approach for LDPC codes as described above. Thereafter, the SP soft decision decoding begins again (starting with these re-initialization values for the variable nodes, ν. Additional SP soft decision decoding iterations are performed for I_{es }iterations.
These additional soft decision decoding iterations, I_{es}, may vary in range from I_{es}-I_{s}, where I_{es }may run from 20 to 30. Moreover, after the additional soft decision decoding iterations are performed, if it is determined that the additional soft decision decoding of the SP soft decision decoder does not converge, as determined by the syndrome error detection functional block, then the output of the BF hard decision decoder is selected as the decoder output and as being the best estimate of the codeword that is included within the received signal originally received by the SP soft decision decoder.
Initially, a check node information computation functional block performs initial calculation of the check node information. The check node information of the kth iteration may be represented as c_{k}=ƒ(ν_{k−1}). Afterwards a variable node information computation functional block performs calculation of the variable node information.
In Kevin P. Murphy, Yair Weiss, Michael I. Jordan, “Loopy belief propagation for approximate inference: an empirical study,” in Proc. Uncertainty in Artificial Intelligence, 1999,” a proposition of using “momentum” to fix oscillations in the QME-DT network is introduced. However, here, a momentum modification is alternatively employed and applied specifically to reduce and/or eliminate oscillations that may occur when decoding LDPC coded signals.
The previous variable node values used in performing SP soft decision decoding of LDPC codes would have been as shown below:
ν_{k} =F(ν_{k−1})
However, in contradistinction, here, the modified variable node values used in performing SP soft decision decoding of LDPC codes is now replaced as shown below:
ν_{k} =F(αν_{k−1}+(1−α)ν_{k−2})
Using this improved, momentum modified variable node information based on the previous 2 iterations, as well as using the appropriate selected scaling value of α (alpha) based on the considerations described above, the decoding processing is found to converge on a solution using a much fewer number of oscillations.
It is also noted that this momentum modified approach to calculating the variable node information may be implemented within either one or both of the approaches 1 and/or 2 described above that capitalizes on the improved initialization.
It is also noted here that if the hardware of a decoder that performs the decoding processing described herein is implemented such that the memory for both “check” information values and “variable” information values is shared for both of these information values, then the “momentum” modified SP soft decision decoding approach may need additional memory for the previous “variable” information values. However, if the memory for “check” information values and the “variable” information values is implemented in a non-shared manner, then this approach will not require any additional memory whatsoever.
Using this new and improved decoding approach, and being simulated at an SNR of 5.8 dB, the decoding processing is operable to decode more than 20 million blocks with no errors. The decoding processing is operable to decode all 20 million blocks where no error is found.
Using these hard decisions, the variable nodes, ν, are initialized using the enlarged metrics (sometimes referred to as scaled metrics) based on the hard decisions made above based on the metrics of the received signal. This may be viewed as being for the initial conditions, e.g., i=0 for the variable nodes, ν. Afterwards, an SP soft decision decoding counter i is incremented as shown for i=i+1. Using this SP soft decision decoding counter, i, SP soft decision decoding is then performed.
If desired in some embodiments, it is then determined if all of the possible syndromes are then equal to zero in an optional decision block. This process need not necessarily be performed at this point in all embodiments. If all of the syndromes are in fact equal to zero, then the method has converged, and the method may then output the estimated codeword. Alternatively, if all of the syndromes are not equal to zero, then the method has not yet converged, and the method will continue performing SP soft decision decoding until all of the SP soft decision decoding iterations of the first round of SP soft decision decoding have been completed.
During the first round of SP soft decision decoding iterations, this may be shown as determining if the counter has reached a maximum number of SP soft decision decoding iterations I_{s}, e.g., if i=I_{s}. If the final iteration of SP soft decision decoding has not yet been completed, then the SP soft decision decoding counter i is again incremented as shown for i=i+1, and the next iteration of the SP soft decision decoding is performed within the first round of SP soft decision decoding. If the final iteration of SP soft decision decoding has in fact been completed, then the method will store the variable node information, ν, for subsequent use in BF hard decision decoding. This initial variable node information, ν, is used as the initial condition, j=0, for the BF hard decision decoding. A BF hard decision decoding counter, j, is then incremented as shown for j=j+1, and the BF hard decision decoding is then performed using that counter.
At this point, it may then be determined if all of the syndromes are equal to zero. If all of the syndromes are in fact equal to zero, then the method has converged, and the method may then output the estimated codeword at this point after performing at least one iteration of BF hard decision decoding. Alternatively, if all of the syndromes are not equal to zero, then the method has not yet converged, and the method will continue to perform BF hard decision decoding until the method reaches a maximum number of BF hard decision decoding iterations J_{h}, e.g., if j=J_{h}. If the BF hard decision decoding has not yet reached the final BF hard decision decoding iteration, then the method will increment the BF hard decision decoding counter as shown for j=j+1.
When the BF hard decision decoding has in fact reached the final BF hard decision decoding iteration, then the method will store the estimated codeword at this point, and the SP soft decision decoding counter will then be incremented (based from its previous, final value in the first round of SP soft decision decoding) as shown for i=i+1, and the method will continue to perform additional SP soft decision decoding iterations. At this point, it will then again be determined of all of the syndromes are equal to zero. It is noted that this determination of whether the syndromes are all equal to zero may be performed at a last iteration of the additional SP soft decision decoding iterations. If all of the syndromes are in fact equal to zero, then the method has converged, and the method may then output the estimated codeword. However, if the all of the syndromes are not yet equal to zero, the method will continue to perform additional SP soft decision decoding iterations until a maximum number of additional SP soft decision decoding iterations have been performed, as shown by I_{es}, e.g., if i=I_{es}.
Thereafter, if all of these additional SP soft decision decoding iterations have not in fact been performed, then the method will increment the SP soft decision decoding counter as shown for i=i+1, and the method will continue to perform additional SP soft decision decoding iterations until the maximum number of additional SP soft decision decoding iterations have been performed as described above. Clearly, when the final SP soft decision decoding iteration of the additional SP soft decision decoding iterations has been reached, then the determination of whether all of the syndromes are equal to zero may then be made. When the maximum number of additional SP soft decision decoding iterations have in fact been performed, and if all of the syndromes are not equal to zero, then the method will output the previously stored, estimated codeword generated by the BF hard decision decoding.
An input signal is initially received. Then, metrics of the received signal are thereafter computed. The variable nodes, ν, are then initialized using these calculated metrics; it is noted that (at this point) these are not the scaled metrics referred to above in other embodiments. This may be viewed as being for the initial conditions, e.g., i=0 for the variable nodes, ν. Afterwards, an SP soft decision decoding counter i is incremented as shown for i=i+1. Using this SP soft decision decoding counter, i, SP soft decision decoding is then performed.
If desired in some embodiments, it is then determined if all of the possible syndromes are then equal to zero in an optional decision block. This process need not necessarily be performed at this point in all embodiments. If all of the syndromes are in fact equal to zero, then the method has converged, and the method may then output the estimated codeword. Alternatively, if all of the syndromes are not equal to zero, then the method has not yet converged, and the method will continue performing SP soft decision decoding until all of the SP soft decision decoding iterations of the first round of SP soft decision decoding have been completed.
During the first round of SP soft decision decoding iterations, this may be shown as determining if the counter has reached a maximum number of SP soft decision decoding iterations I_{s}, e.g., if i=I_{s}. If the final iteration of SP soft decision decoding has not yet been completed, then the SP soft decision decoding counter i is again incremented as shown for i=i+1, and the next iteration of the SP soft decision decoding is performed within the first round of SP soft decision decoding. If the final iteration of SP soft decision decoding has in fact been completed, then the method will store the variable node information, ν, for subsequent use in BF hard decision decoding. This initial variable node information, ν, is used as the initial condition, j=0, for the BF hard decision decoding. A BF hard decision decoding counter, j, is then incremented as shown for j=j+1, and the BF hard decision decoding is then performed using that counter.
At this point, it may then be determined if all of the syndromes are equal to zero. If all of the syndromes are in fact equal to zero, then the method has converged, and the method may then output the estimated codeword at this point after performing at least one iteration of BF hard decision decoding. Alternatively, if all of the syndromes are not equal to zero, then the method has not yet converged, and the method will continue to perform BF hard decision decoding until the method reaches a maximum number of BF hard decision decoding iterations J_{h}, e.g., if j=J_{h}. If the BF hard decision decoding has not yet reached the final BF hard decision decoding iteration, then the method will increment the BF hard decision decoding counter as shown for j=j+1.
When the BF hard decision decoding has in fact reached the final BF hard decision decoding iteration, then the method will store the estimated codeword at this point, and the method will make hard decisions on the metrics corresponding to this estimated codeword. The variable node information, ν, will then be initialized using the enlarged metrics (sometimes referred to as scaled metrics) based on the hard decisions made above based on the metrics of the received signal. This variable node information, ν, is then used as the initial conditions, i=0, for additional SP soft decision decoding iterations. The SP soft decision decoding counter will then be incremented (based from its previous, final value in the first round of SP soft decision decoding) as shown for i=i+1, and the method will continue to perform additional SP soft decision decoding iterations. At this point, it will then again be determined of all of the syndromes are equal to zero. It is noted that this determination of whether the syndromes are all equal to zero may be performed at a last iteration of the additional SP soft decision decoding iterations. If all of the syndromes are in fact equal to zero, then the method has converged, and the method may then output the estimated codeword. However, if the all of the syndromes are not yet equal to zero, the method will continue to perform additional SP soft decision decoding iterations until a maximum number of additional SP soft decision decoding iterations have been performed, as shown by I_{es}, e.g., if i=I_{es}.
Thereafter, if all of these additional SP soft decision decoding iterations have not in fact been performed, then the method will increment the SP soft decision decoding counter as shown for i=i+1, and the method will continue to perform additional SP soft decision decoding iterations until the maximum number of additional SP soft decision decoding iterations have been performed as described above. Clearly, when the final SP soft decision decoding iteration of the additional SP soft decision decoding iterations has been reached, then the determination of whether all of the syndromes are equal to zero may then be made. When the maximum number of additional SP soft decision decoding iterations have in fact been performed, and if all of the syndromes are not equal to zero, then the method will output the previously stored, estimated codeword generated by the BF hard decision decoding.
The check node information of the ith iteration of the momentum modified SP soft decision decoding may be represented as c_{i}=ƒ(ν_{i−1}). In addition, the variable node information for the ith iteration of the momentum modified SP soft decision decoding may be represented as ν_{i}=F(αν_{i−1}+(1−α)ν_{i−2}). This momentum modified SP soft decision decoding involves performing updating using the previous 2 iterations as opposed to only 1 previous iteration.
If desired in some embodiments, it is then determined if all of the possible syndromes are then equal to zero in an optional decision block. This process need not necessarily be performed at this point in all embodiments. If all of the syndromes are in fact equal to zero, then the method has converged, and the method may then output the estimated codeword. Alternatively, if all of the syndromes are not equal to zero, then the method has not yet converged, and the method will continue performing SP soft decision decoding until all of the SP soft decision decoding iterations of the first round of SP soft decision decoding have been completed.
During the first round of SP soft decision decoding iterations, this may be shown as determining if the counter has reached a maximum number of momentum modified SP soft decision decoding iterations I_{s}, e.g., if i=I_{s}. If the final iteration of momentum modified SP soft decision decoding has not yet been completed, then the SP soft decision decoding counter i is again incremented as shown for i=i+1, and the next iteration of the momentum modified SP soft decision decoding is performed within the first round of momentum modified SP soft decision decoding. If the final iteration of momentum modified SP soft decision decoding has in fact been completed, then the method will store the variable node information, ν, for subsequent use in BF hard decision decoding. This initial variable node information, ν, is used as the initial condition, j=0, for the BF hard decision decoding. A BF hard decision decoding counter, j, is then incremented as shown for j=j+1, and the BF hard decision decoding is then performed using that counter.
At this point, it may then be determined if all of the syndromes are equal to zero. If all of the syndromes are in fact equal to zero, then the method has converged, and the method may then output the estimated codeword at this point after performing at least one iteration of BF hard decision decoding. Alternatively, if all of the syndromes are not equal to zero, then the method has not yet converged, and the method will continue to perform BF hard decision decoding until the method reaches a maximum number of BF hard decision decoding iterations J_{h}, e.g., if j=J_{h}. If the BF hard decision decoding has not yet reached the final BF hard decision decoding iteration, then the method will increment the BF hard decision decoding counter as shown for j=j+1.
When the BF hard decision decoding has in fact reached the final BF hard decision decoding iteration, then the method will store the estimated codeword at this point, and the SP soft decision decoding counter will then be incremented (based from its previous, final value in the first round of momentum modified SP soft decision decoding) as shown for i=i+1, and the method will continue to perform additional momentum modified SP soft decision decoding iterations. At this point, it will then again be determined of all of the syndromes are equal to zero. It is noted that this determination of whether the syndromes are all equal to zero may be performed at a last iteration of the additional momentum modified SP soft decision decoding iterations. If all of the syndromes are in fact equal to zero, then the method has converged, and the method may then output the estimated codeword. However, if the all of the syndromes are not yet equal to zero, the method will continue to perform additional momentum modified SP soft decision decoding iterations until a maximum number of additional momentum modified SP soft decision decoding iterations have been performed, as shown by I_{es}, e.g., if i=I_{es}.
Thereafter, if all of these additional momentum modified SP soft decision decoding iterations have not in fact been performed, then the method will increment the SP soft decision decoding counter as shown for i=i+1, and the method will continue to perform additional momentum modified SP soft decision decoding iterations until the maximum number of additional momentum modified SP soft decision decoding iterations have been performed as described above. Clearly, when the final momentum modified SP soft decision decoding iteration of the additional momentum modified SP soft decision decoding iterations has been reached, then the determination of whether all of the syndromes are equal to zero may then be made. When the maximum number of additional SP soft decision decoding iterations have in fact been performed, and if all of the syndromes are not equal to zero, then the method will output the previously stored, estimated codeword generated by the BF hard decision decoding.
It is noted that the methods described within the preceding figures may also be performed within any of the appropriate designs (communication systems, communication receivers and/or functionality described therein) that are described above without departing from the scope and spirit of the invention.
In view of the above detailed description of the invention and associated drawings, other modifications and variations will now become apparent. It should also be apparent that such other modifications and variations may be effected without departing from the spirit and scope of the invention.
Cited Patent | Filing date | Publication date | Applicant | Title |
---|---|---|---|---|
US3542756 | Feb 7, 1968 | Nov 24, 1970 | Codex Corp | Error correcting |
US3665396 | Oct 11, 1968 | May 23, 1972 | Codex Corp | Sequential decoding |
US4295218 | Jun 25, 1979 | Oct 13, 1981 | Regents Of The University Of California | Error-correcting coding system |
US5563897 * | Nov 18, 1994 | Oct 8, 1996 | France Telecom | Method for detecting information bits processed by concatenated block codes |
US6108388 * | Feb 6, 1996 | Aug 22, 2000 | France Telecom | Iterative-structure digital signal reception device, and module and method therefor |
US6430233 | Aug 30, 1999 | Aug 6, 2002 | Hughes Electronics Corporation | Single-LNB satellite data receiver |
US6473010 | Jun 26, 2000 | Oct 29, 2002 | Marvell International, Ltd. | Method and apparatus for determining error correction code failure rate for iterative decoding algorithms |
US6539367 * | May 26, 2000 | Mar 25, 2003 | Agere Systems Inc. | Methods and apparatus for decoding of general codes on probability dependency graphs |
US6567465 | Jun 27, 2001 | May 20, 2003 | Pc Tel Inc. | DSL modem utilizing low density parity check codes |
US6633856 | Oct 10, 2001 | Oct 14, 2003 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US20030033575 * | Oct 10, 2001 | Feb 13, 2003 | Tom Richardson | Methods and apparatus for decoding LDPC codes |
US20030104788 | Aug 30, 2002 | Jun 5, 2003 | Sungwook Kim | Decoding architecture for low density parity check codes |
US20030229843 * | Jun 11, 2003 | Dec 11, 2003 | Nam-Yul Yu | Forward error correction apparatus and method in a high-speed data transmission system |
Reference | ||
---|---|---|
1 | D.J.C. MacKay, "Good error Correcting codes based on very sparse matrices," IEEE Trans. Inform. Theory, vol. 45, pp. 399-431, Mar. 1999. | |
2 | E. Eleftheriou and S. Olcer, "Low-Density Parity-Check Codes for Digital Subscriber Lines," 0-7803-7400-Feb. 2002, IEEE, 2002, pp. 1752-1757. | |
3 | Kevin P. Murphy, Yair Weiss, Michael I. Jordan, "Loopy belief propagation for approximate interence: an empirical study," in Proc. Uncertainty in Artificial Intelligence, 1999. | |
4 | M. Luby, M. Mitzenmacher, A. Shokrollahi, D. Spielman, and V. Stemann, "Practical loss-resilient codes," 1997. | |
5 | R. Gallaher, Low-Density Parity-Check Codes, Cambridge, MA: MIT Press, 1963. | |
6 | T. J. Richardson and R. L. Urbanke, "The capacity of low-density parity-check code under message-passing decoding," IEEE Trans. Inform. Theory, vol. 47, pp. 599-618, Feb. 2001. | |
7 | * | Yu Kou et al. Low-Density Parity-Check Codes Based on Finite Geometries: A Rediscory and New Results.IEEE Transaction on Information Theory, vol. 47, No. 7 Nov. 2001. |
8 | Yu Kou, Shu Lin, and Marc P.C. Fossorier, "Low-Density Parity-Check Codes Based on Finite Geometries: A Rediscovery and New Results," IEEE Trans. Inform. Theory, vol. 47, No. 7, pp. 2711-2736, Nov. 2001. |
Citing Patent | Filing date | Publication date | Applicant | Title |
---|---|---|---|---|
US7434135 * | Sep 1, 2005 | Oct 7, 2008 | Kabushiki Kaisha Toshiba | Decoder and method for decoding low-density parity-check code |
US7707482 * | Jul 13, 2006 | Apr 27, 2010 | Daewoo Electronics Corp. | Method and device for decoding low-density parity check code and optical information reproducing apparatus using the same |
US7770090 * | Dec 16, 2005 | Aug 3, 2010 | Trident Microsystems (Far East) Ltd. | Efficient decoders for LDPC codes |
US7856593 | Oct 17, 2008 | Dec 21, 2010 | Weizhuang Xin | Low complexity decoding of low density parity check codes |
US7958424 | Jun 7, 2011 | Trident Microsystems (Far East) Ltd. | Multi-channel LDPC decoder architecture | |
US8095863 | Jan 10, 2012 | Vintomie Networks B.V., Llc | Low complexity decoding of low density parity check codes | |
US8219897 | Jul 10, 2012 | Vintomie Networks B.V., Llc | Low complexity decoding of low density parity check codes | |
US8312342 | Jun 26, 2009 | Nov 13, 2012 | Lsi Corporation | Reconfigurable minimum operator |
US8316272 | Apr 8, 2009 | Nov 20, 2012 | Lsi Corporation | Error-correction decoder employing multiple check-node algorithms |
US8327235 | Apr 8, 2009 | Dec 4, 2012 | Lsi Corporation | Error-floor mitigation of error-correction codes by changing the decoder alphabet |
US8370711 | Feb 5, 2013 | Ramot At Tel Aviv University Ltd. | Interruption criteria for block decoding | |
US8407553 | Dec 12, 2008 | Mar 26, 2013 | Lsi Corporation | RAM list-decoding of near codewords |
US8448039 | Mar 10, 2009 | May 21, 2013 | Lsi Corporation | Error-floor mitigation of LDPC codes using targeted bit adjustments |
US8458555 * | Jun 30, 2010 | Jun 4, 2013 | Lsi Corporation | Breaking trapping sets using targeted bit adjustment |
US8464128 | Jun 11, 2013 | Lsi Corporation | Breaking unknown trapping sets using a database of known trapping sets | |
US8464129 | Dec 12, 2008 | Jun 11, 2013 | Lsi Corporation | ROM list-decoding of near codewords |
US8464142 | Jun 11, 2013 | Lsi Corporation | Error-correction decoder employing extrinsic message averaging | |
US8484535 | Apr 21, 2009 | Jul 9, 2013 | Agere Systems Llc | Error-floor mitigation of codes using write verification |
US8499226 | Jun 29, 2010 | Jul 30, 2013 | Lsi Corporation | Multi-mode layered decoding |
US8504900 | Jul 2, 2010 | Aug 6, 2013 | Lsi Corporation | On-line discovery and filtering of trapping sets |
US8516330 | Jul 28, 2009 | Aug 20, 2013 | Lsi Corporation | Error-floor mitigation of layered decoders using LMAXB-based selection of alternative layered-decoding schedules |
US8549377 | Aug 2, 2010 | Oct 1, 2013 | Entropic Communications, Inc. | Efficient decoders for LDPC codes |
US8555129 | Jul 28, 2009 | Oct 8, 2013 | Lsi Corporation | Error-floor mitigation of layered decoders using non-standard layered-decoding schedules |
US8607115 | Jun 1, 2009 | Dec 10, 2013 | Lsi Corporation | Error-correction decoder employing check-node message averaging |
US8645810 | Jul 31, 2011 | Feb 4, 2014 | Sandisk Technologies Inc. | Fast detection of convergence or divergence in iterative decoding |
US8683299 | Aug 12, 2009 | Mar 25, 2014 | Lsi Corporation | Adjusting input samples in turbo equalization schemes to break trapping sets |
US8700976 | Aug 12, 2009 | Apr 15, 2014 | Lsi Corporation | Adjusting soft-output values in turbo equalization schemes to break trapping sets |
US8719670 * | Nov 19, 2008 | May 6, 2014 | Sk Hynix Memory Solutions Inc. | Coding architecture for multi-level NAND flash memory with stuck cells |
US8768990 | Nov 11, 2011 | Jul 1, 2014 | Lsi Corporation | Reconfigurable cyclic shifter arrangement |
US8806307 | Jan 2, 2013 | Aug 12, 2014 | Ramot At Tel Aviv University Ltd. | Interruption criteria for block decoding |
US9047213 * | Mar 14, 2014 | Jun 2, 2015 | Sk Hynix Memory Solutions Inc. | Coding architecture for multi-level NAND flash memory with stuck cells |
US9124297 | Jun 12, 2013 | Sep 1, 2015 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Trapping-set database for a low-density parity-check decoder |
US9166750 | Mar 8, 2013 | Oct 20, 2015 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Soft decision analyzer and method |
US20060123315 * | Sep 1, 2005 | Jun 8, 2006 | Kabushiki Kaisha Toshiba | Decoder and method for decoding low-density parity-check code |
US20070011564 * | Dec 16, 2005 | Jan 11, 2007 | Shachar Kons | Multi-channel LDPC decoder architecture |
US20070288825 * | Jul 13, 2006 | Dec 13, 2007 | Daewoo Electronics Corporation | Method and device for decoding low-density parity check code and optical information reproducing apparatus using the same |
US20100042890 * | Feb 18, 2010 | Lsi Corporation | Error-floor mitigation of ldpc codes using targeted bit adjustments | |
US20100042891 * | Jun 1, 2009 | Feb 18, 2010 | Lsi Corporation | Error-correction decoder employing check-node message averaging |
US20100042894 * | Jul 28, 2009 | Feb 18, 2010 | Lsi Corporation | Error-floor mitigation of layered decoders using lmaxb-based selection of alternative layered-decoding schedules |
US20100042896 * | Jul 28, 2009 | Feb 18, 2010 | Lsi Corporation | Error-floor mitigation of layered decoders using non-standard layered-decoding schedules |
US20100042898 * | Feb 18, 2010 | Lsi Corporation | Reconfigurable minimum operator | |
US20100042902 * | Feb 18, 2010 | Lsi Corporation | Error-floor mitigation of error-correction codes by changing the decoder alphabet | |
US20100042904 * | Feb 18, 2010 | Lsi Corporation | Breaking unknown trapping sets using a database of known trapping sets | |
US20100042905 * | Aug 12, 2009 | Feb 18, 2010 | Lsi Corporation | Adjusting input samples in turbo equalization schemes to break trapping sets |
US20100042906 * | Aug 12, 2009 | Feb 18, 2010 | LSl Corporation | Adjusting soft-output values in turbo equalization schemes to break trapping sets |
US20100241921 * | Apr 8, 2009 | Sep 23, 2010 | Lsi Corporation | Error-correction decoder employing multiple check-node algorithms |
US20110078548 * | Mar 31, 2011 | Weizhuang Xin | Low complexity decoding of low density parity check codes | |
US20110126075 * | Dec 12, 2008 | May 26, 2011 | Lsi Corporation | Rom list-decoding of near codewords |
US20110138253 * | Dec 12, 2008 | Jun 9, 2011 | Kiran Gunnam | Ram list-decoding of near codewords |
US20120005551 * | Jun 30, 2010 | Jan 5, 2012 | Lsi Corporation | Breaking trapping sets using targeted bit adjustment |
US20140281791 * | Mar 14, 2014 | Sep 18, 2014 | Sk Hynix Memory Solutions Inc. | Coding architecture for multi-level nand flash memory with stuck cells |
USRE45043 * | Apr 27, 2012 | Jul 22, 2014 | Bi-Woong Chung | Method and device for decoding low-density parity check code and optical information reproducing apparatus using the same |
CN102970047A * | Dec 1, 2012 | Mar 13, 2013 | 电子科技大学 | Low density parity check (LDPC) code weighting gradient descent bit flipping and decoding algorithm based on average amplitude |
CN102970047B * | Dec 1, 2012 | Feb 24, 2016 | 电子科技大学 | 基于平均幅度的ldpc码加权梯度下降比特翻转译码算法 |
U.S. Classification | 714/801, 714/782, 714/784, 714/783 |
International Classification | H03M13/11, H03M13/45, H03M13/37, G06F11/00 |
Cooperative Classification | H03M13/3707, H03M13/1108, H03M13/3746, H03M13/3738, H03M13/1111, H03M13/3723, H03M13/658 |
European Classification | H03M13/65V1, H03M13/37J, H03M13/37A, H03M13/11L1B, H03M13/11L1D, H03M13/37K, H03M13/37D |
Date | Code | Event | Description |
---|---|---|---|
Feb 19, 2003 | AS | Assignment | Owner name: BROADCOM CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SHEN, BA-ZHONG;CAMERON, KELLY BRIAN, DR.;REEL/FRAME:013801/0733;SIGNING DATES FROM 20030212 TO 20030213 |
Jul 22, 2008 | CC | Certificate of correction | |
Apr 28, 2011 | FPAY | Fee payment | Year of fee payment: 4 |
May 13, 2015 | FPAY | Fee payment | Year of fee payment: 8 |
Feb 11, 2016 | AS | Assignment | Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:BROADCOM CORPORATION;REEL/FRAME:037806/0001 Effective date: 20160201 |