Embodiments of the present disclosure relate to codes defined over sparse structures, and more specifically, to fair-density parity check codes targeting high-rate applications.
According to embodiments of the present disclosure, methods and systems of and computer program products for error-corrected communication are provided. In some embodiments, a base matrix is constructed. The base matrix comprises a plurality of columns. A plurality of permutations is applied to the base matrix to obtain a plurality of permuted matrices. A parity-check matrix is generated by concatenating the plurality of permuted matrices. A plurality of codewords is generated based on the parity-check matrix. A message is encoded according to the plurality of codewords. The encoded message is transmitted via a noisy channel.
In some embodiments, a system is provided. The system comprises a computing node. The computing node comprises a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor of the computing node to cause the processor to perform a method. The method comprises the following steps: A base matrix is constructed. The base matrix comprises a plurality of columns. A plurality of permutations is applied to the base matrix to obtain a plurality of permuted matrices. A parity-check matrix is generated by concatenating the plurality of permuted matrices. A plurality of codewords is generated based on the parity-check matrix. A message is encoded according to the plurality of codewords. The encoded message is transmitted via a noisy channel.
In some embodiments, a computer program product for parity-check coding and decoding is provided. The computer program product comprises a computer readable storage medium having program instructions embodied therewith. The program instructions are executable by a processor to cause the processor to perform a method. The method comprises the following steps: A base matrix is constructed. The base matrix comprises a plurality of columns. A plurality of permutations is applied to the base matrix to obtain a plurality of permuted matrices. A parity-check matrix is generated by concatenating the plurality of permuted matrices. A plurality of codewords is generated based on the parity-check matrix. A message is encoded according to the plurality of codewords. The encoded message is transmitted via a noisy channel.
The accompanying drawings, which are incorporated into and constitute a part of this specification, illustrate various exemplary embodiments and together with the description, serve to explain the principles of the disclosed embodiments.
The present disclosure provides fair-density parity-check (FDPC) codes for targeting high-rate applications. In particular, in some embodiments of the present disclosure, a base parity-check matrix Hb can be used as a starting point. The base parity-check matrix Hb can have dimension 2√{square root over (n)}×n, where n is the code block length. The number of ones in each row and column of Hb can be equal to √{square root over (n)} and 2, respectively. In some embodiments, a deterministic combinatorial method for picking the base matrix Hb, assuming n=4t2 for some integer t≥2, is provided. In some embodiments, this method can be extended by obtaining permuted versions of Hb (e.g., via random permutations of its columns) and stacking them on top of each other, leading to codes of dimension k≥n−2s√{square root over (n)}+s, for some s≥2, referred to as order-s FDPC codes.
In some embodiments, methods are provided to explicitly characterize and bound the weight distribution of the new codes and utilize them to derive union-type approximate upper bounds on their error probability under Maximum Likelihood (ML) decoding. In some embodiments, for the binary erasure channel (BEC), it is demonstrated that the approximate ML bound of FDPC codes closely follows the random coding upper bound (RCU) for a wide range of channel parameters. In some embodiments, FDPC codes, under the low-complexity min-sum decoder, improve upon 5G-LDPC codes for transmission over the binary-input additive white Gaussian noise (B-AWGN) channel by almost 0.5 dB (for n=1024, and rate=0.878). In some embodiments, a new decoder is provided as a combination of a weighted min-sum message-passing (MP) decoding algorithm together with a new progressive list (PL) decoding component, referred to as the MP-PL decoder, to decode FDPC codes and to further boost the performance of the codes.
Simulation results are shown for various high-rate FDPC codes in moderate-to-large block length regimes according to some embodiments of the present disclosure. It is numerically demonstrated that these codes beat alternative codes for various channels and a wide range of parameters, with the significantly lower-complexity and lower-latency MP-PL decoder.
This disclosure enables new code constructions and decoding algorithms in high-rate regimes suitable for ultra-high throughput (e.g., high-frequency/optical) applications. Accordingly, the present disclosure is applicable in the context of wireless networks such as cellular networks and similar high throughput environments.
The present disclosure describes a new class of error-correcting codes, referred to as fair-density parity-check (FDPC) codes. The codes target high-rate applications including high-speed wireless and wireline links. In some embodiments, the code construction can be via directly designing the parity-check matrix. In some embodiments, the design can be based on a base matrix with a combinatorial design. In some embodiments, the number and the indices of ones in each row and column of the base matrix can be designed in a certain novel way. In some embodiments, this base matrix can be extended by obtaining permuted versions of the base matrix and stacking them on top of each other, leading to codes of general dimensions. In some embodiments, a combination of a weighted min-sum message-passing (MP) decoding algorithm together with a new progressive list (PL) decoding component, referred to as the MP-PL decoder, can be used to decode FDPC codes. Simulation results confirm the superiority of high-rate FDPC codes in moderate-to-large code block length regimes, compared to other state-of-the-art codes, for various channels and a wide range of parameters, with the significantly lower-complexity and lower-latency MP-PL decoder.
Reference will now be made in detail to the exemplary embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
The systems, devices, and methods disclosed herein are described in detail by way of examples and with reference to the figures. The examples discussed herein are examples only and are provided to assist in the explanation of the apparatuses, devices, systems, and methods described herein. None of the features or components shown in the drawings or discussed below should be taken as mandatory for any specific implementation of any of these devices, systems, or methods unless specifically designated as mandatory.
Also, for any methods described, regardless of whether the method is described in conjunction with a flow diagram, it should be understood that unless otherwise specified or required by context, any explicit or implicit ordering of steps performed in the execution of a method does not imply that those steps must be performed in the order presented but instead may be performed in a different order or in parallel.
As used herein, the term “exemplary” is used in the sense of “example,” rather than “ideal.” Moreover, the terms “a” and “an” herein do not denote a limitation of quantity, but rather denote the presence of one or more of the referenced items.
In various embodiments of the present disclosure, a new family of codes is provided, named fair-density parity-check (FDPC) codes, targeting high-rate applications together with a parallelizable and low-complexity variation of message-passing (MP) decoder boosted with a newly proposed progressives list (PL) decoder component, referred to as the MP-PL decoder.
Base code construction: Let n=4t2, for some integer t≥2. The parameter n is the code block length. Then, in some embodiments, the base parity-check matrix Hb can be constructed as follows: The matrix Hb consists of all binary column-vectors of length 4t and Hamming weight two with the indices of the two non-zero entries differing by an odd number. The base code construction is also referred to as order-1 FDPC code.
Extended code construction: In some embodiments, the FDPC code of order s, where s≥2, can be defined by applying s−1 different permutations to the base matrix Hb, where permutations can be applied column-wise, and stacking them on top of each other in order to obtain the overall parity-check matrix H for an order-s FDPC code.
MP-PL decoder: In some embodiments, the MP-PL decoder for general noisy channels can be run in multiple stages. The MP decoder utilized in one single stage of the MP-PL decoder can be with the min-sum decoder with weighted updates, where the weight can be set to a small fixed constant. At the end of each stage, the PL decoding component can be activated. In particular, one of the bit indices can be selected and the decoding can proceed across two parallel paths, one with the selected bit being 0, and another one with the selected bit being 1. The index of this bit, a number in the range of 1, 2, . . . , n, is referred to as a path-splitting index.
Path-splitting index selection criterion: In some embodiments, the criterion depends solely on which parity-check equations at the end of the current stage are not yet satisfied. More specifically, in some embodiments, m1, m2, . . . , mr, can be set to either 0 or 1, where mi=0 when the i-th parity-check equation (corresponding to the i-th row of H) is satisfied, and mi=1, otherwise. Then the deficiency of the j-th variable node can be defined as the sum of m{Ji}'s, where Ji's are the indices of its neighboring check nodes. The variable node with the maximum deficiency can be selected as the path splitting index.
Proposed path metrics and list pruning: In some embodiments, when the list size, which doubles after each decoding stage, reaches the maximum L (set to 1024 in some embodiments, though the average list size is often much smaller), only L decoding paths with the maximum path metric, as defined later in the “Path metric and list pruning” section, can be pursued for the next stage, and the remaining paths can be discarded.
Checking paths for codewords and stopping point: In some embodiments, for each decoding path at the end of each decoding stage, if all the parity-check equations are satisfied, then the current hard decisions can be set as the decoder output and the decoder stops. Also, in some embodiments, a certain threshold can be set on the number of decoding stages, where the MP-PL decoding algorithm can stop and a block decoding failure can be announced if a codeword is not reached yet. This threshold can be set, e.g., to 16, 20, etc.
Codes defined over sparse structures include, for example, low-density parity-check (LDPC) codes. In general, LDPC codes are specified via a certain sparse structure on the parity-check matrix, e.g., by setting the number of ones in each row and column to be a small fixed number. Consequently, LDPC codes are often designed for fixed moderate-rate codes, e.g., the code rate of 5G LDPC codes is approximately between 1/3 and 8/9.
Besides LDPC codes, alternative codes may also be designed with decoders that are often optimized at moderate rates in order to address diverse and often extreme scenarios in wireless systems. However, ultra-high data rate mmWave and THz links, envisioned for 5G systems and beyond, with precise beam alignment and interference cancellation at the front end lead to an effective high-SNR regime from the decoder's perspective. Also, optical channels exhibit very high SNRs with already low effective bit-error rate (BER) yet necessitating forward error correction (FEC) in order to ensure the target BER requirements are met (typically less than 10−9 and can be as low as 10−15). Such high-throughput communication scenarios also require very low-latency and low-overhead coding mechanisms, rendering various coding schemes with advanced and complex decoders inapplicable.
In some embodiments of the present disclosure, fair-density parity-check (FDPC) codes targeting high-rate applications are introduced together with a parallelizable and low-complexity variation of MP decoder boosted with a newly proposed progressive list (PL) decoder component, referred to as the MP-PL decoder.
Due to the relatively simpler analysis over binary erasure channels (BECs), compared to general noisy channels, typically the first step to study new codes/decoders is to study them over BECs.
A simplified approximation, also referred to as the dispersion bound, is often used to measure the gap between the performance of practical channel codes and what is fundamentally achievable, e.g., with random codes. The dispersion bound provides a closed form approximation for both the RCU and the converse bound, presuming that these two bounds are very close. However, when the code rate is close to zero or one, the approximation may become inaccurate. This phenomenon can be characterized in depth for low-rate channel coding, and, as can be seen in
It is also observed that the performance of the FDPC code can be boosted since there is a considerable gap between the min-sum performance curve and the approximate ML curve. To this end, we propose a parallelizable and low-complexity variation of min-sum message passing (MP) decoder coupled with a newly proposed progressives list (PL) decoder component, referred to as the MP-PL decoder. The MP component in the MP-PL decoder is with the min-sum approximation, one of the simplest possible forms of message passing. The decoder performance is about 1 dB away from the approximate ML bound of FDPC codes, mainly due to the simplicity of its MP component, with the major advantage of enabling a low-complexity low-latency implementation. For instance, no multiplication/division of log-likelihood ratios (LLRs) are involved in the decoder. The only operations involved are addition/comparison of LLRs as well as scaling them by a fixed constant. The FDPC code with this variation of MP-PL decoder performs worse (about 0.5 dB) than a polar-CRC code with SCL decoder (CRC=8, L=32) in lower SNRs. Nevertheless, FDPC provides a sharper curve at higher SNRs and the FDPC code with MP-PL decoder beats polar-CRC with SCL decoder (CRC=8, L=32) in lower SNRs at BLER<10−5. For this comparison, a lower bound is used on the performance of polar-CRC. The lower bound is derived by only counting the number of codewords with weight equal to the minimum distance. Also, at this BLER, the MP-PL decoder is, on average, 50 times less complex and 800 times faster in latency, compared with SCL, the details of which are discussed later in the “Decoding Complexity and Latency” section. At this SNR, the MP-PL decoder is, on average, 18 times less complex and 190 faster in latency, compared with SCL, the details of which are discussed later in the “Decoding Complexity and Latency” section. The lower bound for the polar-CRC is for any decoder, including the ML decoder, and indicates that with ML decoder FDPC code is a better code than polar-CRC at least for BLER<10−4.
The performance of BCH code with hard-decision decoding (HDD) is also shown in
Let n=4t2, for some integer t≥2. Then, in some embodiments of the present disclosure, the base parity-check matrix Hb can be constructed as follows.
Definition 1: The matrix Hb consists of all binary column-vectors of length 4t and Hamming weight two with the indices of the two non-zero entries differing by an odd number.
All rows of Hb have weight 2t.
Example 1. For t=2, the matrix Hb is given as follows:
Lemma 1: The binary rank of Hb is 4t−1. Furthermore, the code Cb with Hb as its parity-check matrix has minimum distance dmin(Cb)=4.
Proof: The sum of all rows of Hb equals zero. Hence, rank(Hb)≤4t−1. Now, suppose that the sum of a subset S of rows of Hb is zero. Consider the Tanner graph G representing the parity-check matrix Hb. Then any two variable nodes in G connecting via a check node must either both appear in S or both not appear in S (since the column weights of Hb are exactly two). Since G is connected, then the only non-trivial possibility for Sis the set of all rows of Hb. This implies rank(Hb)=4t−1.
With regard to dmin(Cb), columns of Hb are distinct and no three of them sum up to zeros. The latter is due to the property of Hb that the non-zero entries in any of its columns differ by an odd number. There are selections of four columns of Hb summing to zeros. Hence, dmin(Cb)=4.
Let s≥2. Then, in some embodiments, the FDPC code of order s can be defined by applying s−1 different permutations to the base matrix Hb, where permutations are applied column-wise, and stacking them on top of each other in order to obtain the overall parity-check matrix H. More specifically, let π1, . . . , πs-1 be distinct permutations on the set [n]:={1, 2, . . . , n}. Then the parity-check matrix H for the order-s FDPC code associated with this set of permutations is given as follows:
where r=2s√{square root over (n)}=4st. The rows of H may not be linearly independent. Hence, the dimension of an order-s FDPC code is greater than or equal to n−r+s. As an example, in the case of order-2 FDPC codes, there is simply one permutation π, and the parity-check matrix H is the result of stacking Hb and π(Hb) on top of each other.
In some embodiments, the weight distribution for the order-1 FDPC code Cb with Hb as its parity-check matrix is derived as follows. To this end, the Tanner graph Gb representing Hb, where variable nodes are indexed by 1, 2, . . . , n, and check nodes are indexed by 1, 2, . . . , r, where r=4t, is considered. Then the following lemma describes a certain property of codewords in Cb.
Lemma 2: Let c=(c1, c2, . . . , cn) be a non-zero codeword of weight w in Cb. Let Ic={i1, i2, . . . , iw} denote its support, e.g., the indices of non-zero entries in c, and consider the subgraph Gb′⊆Gb induced by variable nodes i1, i2, . . . , iw and their neighbors. Then Gb′ is either a loop or a collection of non-overlapping loops.
Proof: The columns of Hb indexed by indices in IC sum up to zeros. Consider ij∈Ic and let j1 and j2 denote the indices of non-zero entries in the ij-th column of Hb. Then there must be at least one other variable node in Ic (more precisely, an odd number of them), other than ij, that is connected to the check node j1. The same is true for the check node j2. Then we follow the same argument for these two until we eventually reach a loop (since some variable node will be eventually revisited). This loop is contained in Gb′, and we can remove it from Gb′ and repeat the same argument for what is left in Gb′. This concludes the proof.
Example 2. Consider the code Cb with parameter t=2, as presented in Example 1. Then the vector (1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) is a codeword in Cb. The sub-graph induced by columns indexed by 1, 2, 3, 5 consists of all edges connecting variable nodes 1, 2, 3, 5 and check nodes 1, 2, 3, 4, which is a loop of length 8.
Definition 2: A codeword in the order-1 FDPC code Cb is irreducible if its corresponding induced sub-graph Gb′, as discussed in Lemma 2, consists of a single loop. For instance, the codeword presented in Example 2 (or any other codeword of weight 4 or 6) is an irreducible codeword.
If a codeword c is not irreducible, then it can be written as a sum of irreducible codewords with non-overlapping supports. This collection of irreducible codewords is referred to as a base for the codeword c, which is unique for each codeword. There are irreducible codewords of any even weight between 4 and 4t, which is the maximum possible length for irreducible codewords. The next lemma presents the exact number of irreducible codewords of any given weight.
Lemma 3: Let m with 4≤m≤4t be an even integer. Then there exists
irreducible codewords of weight m in Cb. For any other m, there exists no irreducible codeword of weight m.
Proof: The proof is by following counting arguments.
For w∈[n], let Aw denote the number of codewords of weight w in the code Cb. The next lemma builds upon Lemma 3 in order to obtain bounds on the weight distribution coefficients Aw's.
Proposition 4: For any n and w≤n we have
where the summation is over all non-negative integers a4, a6, . . . , α4t with Σm=44tmam=w.
Proof: The upper bound is obtained by upper bounding the number of all possible collections of irreducible codewords that form a base for a codeword of weight w.
The upper bound in Proposition 4 can be improved by excluding the counted instances of collections of irreducible codewords where some of them overlap with each other. Taking into account such an improvement results in a cumbersome, yet computable, upper bound which is used when presenting the numerical upper bounds on the performance of ML decoder utilizing the upper bounds on the weight distribution of the code.
Next, consider the ensemble of all FDPC codes of length n=4t2 and order s. In particular, s=2 is considered but the results on the weight distribution can be extended to general s in a straightforward fashion.
Suppose that the permutation π in the construction of the order-2 FDPC code is selected uniformly at random, and let Aw(2) denote the random variable representing the number of codewords of weight w in the resulting code. Then the expected value of the weight, denoted by ε{Aw(2)}, averaged over all permutations is given as follows:
Example 3: For w=4, combining (4) with Lemma 3 and straightforward computations leads to
And, similarly, for w=6 we have
Remark 1. Example 3 demonstrates that the average number of low-weight codewords in the random ensemble of FDPC codes is a small constant. This can be leveraged to easily increase the minimum distance of the code by shortening it, something that can significantly improve the code performance in the error floor region. For instance, by carefully shortening the code by 1 bit, FDPC codes of minimum distance at least 6 are obtained with high probability. Shortening an (n, k) code by t bits results in an (n−t, k−t) code, which may have a negligible effect on the rate for high-rate codes and small values of t. For instance, shortening an order-2 FDPC code of length 210, a (1024, 899) code, by 20 bits results in a (1004, 879) code reducing the rate only by 0.0024 from 0.8779 to 0.8755. The FDPC code with the performance shown in
Remark 2. In this remark, the process of shortening the codes in the ensemble is discussed more explicitly. For instance, consider the weight w=4 and suppose the aim is to shorten the FDPC codes by α4 bits, corresponding to weight-4 codewords. For each FDPC code C in the ensemble with at least α4 codewords, we remove one column from the parity-check matrix with the index corresponding to a non-zero entry of one of the weight-4 codewords. This shortening process will reduce the number of weight-4 codewords by at least α4. If the number of weight-4 codewords in an FDPC code in the ensemble is less than α4, one can still shorten the code by α4 bits and ensure that no weight-4 codeword remains in the code. One can continue the shortening process, in a similar fashion, with α6 bits corresponding to weight-6 codewords, etc.
In this section, bounds on the probability of error of the maximum likelihood (ML) decoder for FDPC codes, according to some embodiments of the present disclosure, are derived. Communication over BEC (E) is considered. The following union-type upper bound holds on the probability of error of the ML decoder, denoted by Pe(ML), for any linear code {tilde over (C)}:
where {Ãw:w=dmin, . . . , n} denote the weight distribution of {tilde over (C)}, and dmin is the minimum distance of {tilde over (C)}. The reasoning behind this bound is as follows. Given an erasure pattern ε the ML decoder fails if and only if there is a non-zero codeword c in {tilde over (C)} whose support is a subset of the erasure positions. And the bound in (7) is a union bound on the probability that the set of erasure positions contain a codeword, where the union bound is taken with respect to all possible codewords. However, this upper bound, with all the terms therein, may become numerically inaccurate to compute as each term Ãwϵw is the product of two terms, with one decaying exponentially small and then the other one growing exponentially large. Therefore, instead of the whole expression in (7), a common approach is to consider a threshold wt and compute the expression only up to the wt-th term. For a properly chosen value of wt, this gives a precise approximation for the performance of the ML decoder. This is often referred to as an approximate union bound on the performance of ML decoder.
For the ensemble of FDPC codes, say the order-2 one, one could take the expected value from both sides of (7) and arrive at
The next lemma discusses how this upper bound can be revised for the ensemble of shortened FDPC codes.
Proposition 5: For w=4, 6, . . . , 2(d−1), for some integer d>2, consider integers αw≥└ε{Aw(2)}┘. Consider the ensemble of shortened FDPC codes by Σi=2d-1α2i bits and minimum distance d, where α2i columns of H are eliminated, reducing the number of weight-2i codewords by α2i. Let
and assume that γ<1. Then the average probability of ML decoder over the ensemble of FDPC codes with dmin≥2d is upper bounded as follows:
Proof: For any w, using Markov inequality, the probability that a random FDPC code has more than αw codewords of weight w is upper bounded by
Then by taking the union bound across all w's, for w=4, 6, . . . , 2(d−1), the probability that an FDPC code has a codeword of weight less than 2d, after shortening by Σi=2d-1α2i bits, is upper bounded by γ. Hence, at least a fraction of 1−γ of FDPC codes have minimum distance d and the expected value of codewords of weight w≥d over these codes is at most
The rest of the proof is the same as the proof for the original upper bound in (7).
The approximate ML bound of the ensemble of FDPC codes shown in
For transmission over B-AWGN with noise variance σ2, an upper bound on the performance of the ML decoder, similar to the one in (7), holds:
where, again, a linear code {tilde over (C)} with weight distribution {Ãw:w=dmin, . . . , n} is considered for transmission. Also, Q(⋅) is the q-function representing the tail of the cumulative probability distribution of normal Gaussian distribution.
Also, similarly, the result in Proposition 5 can be revised to get an upper bound on the probability of ML decoder for shortened FDPC codes for transmission over the B-AWGN channel:
where γ is defined in (9), and dis as defined in Proposition 5. The approximate ML bound of the ensemble of FDPC codes shown in
In this section, the proposed MP-PL decoding algorithm to boost the performance of FDPC codes, according to some embodiments of the present disclosure, is presented. This is done separately for BEC channels and the general class of noisy channels, due to the very different nature of how erased/erroneous bits are decoded in an MP-type decoding for these channels. A major building block of the decoding algorithm, in both cases, is a variation of iterative message-passing (MP) decoding algorithm. Another major building block, which is the main novel component, is a progressive list decoder that is combined with multiple stages of the MP decoder to form the MP progressive list (MP-PL) decoder, which will be discussed in detail in this section.
Let c=(c1, c2, . . . , cn) denote the transmitted codeword, which is received at the receiver with some erasures (e.g., a certain number of coded bits are erased). The MP-PL decoder is run in multiple stages, to be discussed next.
Standard MP decoder for BEC. In each iteration of the MP decoder, any erased variable node which connects to a check node whose other variable node neighbors are already decoded and known, will be turned from erasure to a successfully decoded bit. More specifically, consider an erased bit ci
As highlighted above in the description of constructing a base matrix, all rows of H have weight equal to 2t. Then if all other ci
A single stage in the MP-PL decoder. In each stage, the standard MP decoder is utilized repeatedly for a certain number of iterations λit (for example, λit=4 is set in the simulations shown in the Figures), or until it saturates, e.g., when no new erasure is decoded from one iteration to the next, whichever comes first. At this point, the PL decoding component is initiated. In particular, one of the erasures that is not decoded yet is selected, say cj
Path-splitting index selection criterion. The criterion solely depends on the location of current erasures in the current path. Let He denote a sub-matrix of the parity-check matrix H by selecting columns of H corresponding to the current erasures. Let m1, m2, . . . , mr denote the number of ones in rows of He, where r is the number of rows in both H and He. Let mi′ be the minimum non-zero value in the set {mi:i∈[r]}. Then ji is selected as the index of one of the non-zero entries in the i′-th row of H that corresponds to a current erasure.
Remark 3. Roughly speaking, the logic behind the selection of the path-splitting indices is to increase the chances of recovering from more erasures when further applying the MP decoding iterations. For instance, if mi′=2, then the way the current path-splitting index is selected ensures that at least another erasure will be corrected in the next iteration of the MP decoder.
The MP-PL decoder outcome. Let L=2l denote the maximum list size. Then the MP-PL decoder continues up to the l-th stage, or until all erasures are decoded in at least one decoding path, whichever comes first. If there is more than one path in which all erasures are corrected, it implies that there is more than one codeword that matches with all the non-erased received bits. In other words, the transmitted codeword is not uniquely decodable for such an erasure pattern scenario.
A brief pseudo-code for the MP-PL decoder, while skipping some detailed steps, is presented as Algorithm 1 above. Some of the omitted details include killing decoding paths where some variable nodes received inconsistent messages in the MP decoder, and handling cases with multiple output codewords.
The MP-PL decoder for general noisy channels can also be run in multiple stages, same as in the BEC case. However, the criterion for selecting path-splitting indices and how to efficiently check if a codeword is obtained are different. The latter does not apply to the BEC case as all decoding paths are equally likely as long as there is no inconsistency in their MP updates. The MP decoder utilized in some embodiments in one single stage of the MP-PL decoder is with the min-sum decoder with weighted updates. Also, in some embodiments, inspired by the SCL decoding of polar codes, a list pruning strategy can be adopted by comparing a certain metric associated with the decoding paths.
Weighted min-sum MP decoder. In this decoder, all message updates are done while scaled with a small fixed constant β, e.g., β=0.05. Furthermore, the LLRs of the coded bits continue to be updated in each round. More specifically, let y(cur)=(y1(cur), . . . , yn(cur)) denote the current soft information for the coded bits c=(c1, . . . , cn) in the LLR domain. Let also qi,j(cur) (and rj,i(cur)) denote the current message passed from the i-th variable node to the j-th check node, (and vice versa) when H(j, i)=1. Then the updated soft information yi(new), qi,j(new), and rj,i(new) of the i-th coded bit are as follows:
where :={i′:i′≠i, H(j, i′)=1} and β is a fixed constant that is referred to as the weight in the weighted min-sum MP decoder. For example, β can be set to be a small value, e.g., β=0.05 is set in the simulations shown in the Figures. All soft information is updated at once in each iteration. In a sense, this version of MP decoding keeps accumulating all the previously generated LLRs in prior iterations while scaling them down in order to not having the accumulated LLRs saturate quickly.
Remark 4. As it is evident from (14), the scaling of yi's does not affect the decoder. Hence, in cases such as the AWGN or fading channels, the plain channel output can be used as the input to the MP-PL decoder in the first stage. This gives an advantage, especially in non-coherent settings, over most soft-decision decoders which require the knowledge of the channel, e.g., the channel gain and noise variance, in order to generate the LLRs to be fed into the decoder.
Path-splitting index selection criterion. The proposed criterion depends solely on which parity-check equations at the end of the current stage are not yet satisfied. More specifically, let m1, m2, . . . , mr, with mi∈{0, 1}, where mi=0 when the i-th parity-check equation (corresponding to the i-th row of H) is satisfied, and mi=1, otherwise. Then the deficiency of the j-th variable node is defined as the sum of mj
In the simulations shown in the Figures, the number of path splittings has been limited to 16, e.g., the maximum list size is 216. List-pruning strategies can be adopted, same as in the SCL decoding of polar codes, to ensure the list size remains small. Also, this is the worst case scenario, and the average list size is much smaller (e.g., close to 1 for high-SNRs). Also, as shown in
Path metric and list pruning. Let yi(rec) and yi(cur) denote the received and the current soft information for the coded bit ci, for i∈[n]. Then the current path metric can be computed as follows:
When the list size reaches the maximum L (set to 1024 in the simulations shown in the Figures, though the average list size is often much smaller), only L decoding paths with the maximum path metric, as defined above, are pursued for the next stage.
Checking paths for codewords and stopping point. For each decoding path at the end of each decoding stage, if all the parity-check equations are satisfied, then the current hard decisions can be set as the decoder output and the decoder can stop. Also, a certain threshold can be set on the number of decoding stages, where the MP-PL decoding algorithm stops and a block decoding failure is announced if a codeword is not reached yet. This threshold is set to 20 in the simulations shown in the Figures.
Let the complexity of comparison, addition, and multiplication/division in the soft information/LLR domain be denoted by μc, μa, and μd, respectively, where the unit can be one logical bit operation. Similarly, let the latency of comparison, addition, and multiplication/addition be denoted by υc, υa, and υd, respectively, where the unit could be the delay of one logical bit operation. In each iteration, for each parity-check node, the first and the second minimum over its neighboring variable nodes need to be computed. This is done with the complexity of 2√{square root over (n)}μc, and latency of 2 log nυc. Each variable node update is done with the complexity of 2sμa and latency of (log s+2)υa for an order-s FDPC code. Then the total complexity of each iteration is 2sn (2μc+μa). Assuming full parallelization of all variable and check node operations, which can be done in principle, the total latency of each iteration is 2 log nυc+ (log s+2)υa. Since all parameters other than n can be treated as constants, the complexity and latency of each iteration are essentially O(n) and O(log n), respectively. With list-decoding, the average complexity of the MP-PL decoder scales with the average of L, but not the latency.
To arrive at the complexity/latency comparisons reported above, consider that the SCL decoding of polar codes has complexity and latency of O(Ln log n) and O(n), respectively. More specifically, the complexity is nL log n(μd+μa) and the latency is n(2υd+υa). Then assuming a fixed-point implementation with 8 bits, μd≈8μa, μa≈2μc can be used, where similar relations hold also for υc, υa, and υd. The exact numbers depend on the actual hardware implementation, however, it is expected that the numbers stay in the same range. With these rough estimates, the complexity comparisons reported above are arrived at. The average number of iterations and list sizes in MP-PL decoder of FDPC codes at SNR=5.25 dB with the performance reported in
In addition to the simulation results provided above, in this section, a scenario is studied in the large block length regime, e.g., with n=16384. In this regime, mainly suitable for optical applications, the latency considerations call for highly parallelizable decoders. As a result, product codes and their other variations, including staircase codes, are examples of codes applicable in this regime.
Even though it is difficult to obtain simulations results at very low BERs (e.g., BER=10−12), relevant for optical applications, using Monte Carlo simulations, the error floor region of FDPC codes can at least be commented on. The BLER performance of a code in its error floor region is mainly dominated by the Ad
The results and discussions in this section demonstrate that FDPC codes are suitable for optical applications in high-rate large block length regimes.
In computing node 10 there is a computer system/server 12, which is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with computer system/server 12 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.
Computer system/server 12 may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Computer system/server 12 may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.
As shown in
Bus 18 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, Peripheral Component Interconnect (PCI) bus, Peripheral Component Interconnect Express (PCIe), and Advanced Microcontroller Bus Architecture (AMBA).
Computer system/server 12 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system/server 12, and it includes both volatile and non-volatile media, removable and non-removable media.
System memory 28 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and/or cache memory 32. Computer system/server 12 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 34 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus 18 by one or more data media interfaces. As will be further depicted and described below, memory 28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the disclosure.
Program/utility 40, having a set (at least one) of program modules 42, may be stored in memory 28 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 42 generally carry out the functions and/or methodologies of embodiments as described herein.
Computer system/server 12 may also communicate with one or more external devices 14 such as a keyboard, a pointing device, a display 24, etc.; one or more devices that enable a user to interact with computer system/server 12; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 12 to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces 22. Still yet, computer system/server 12 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 20. As depicted, network adapter 20 communicates with the other components of computer system/server 12 via bus 18. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server 12. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.
The present disclosure may be embodied as a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
Computer readable program instructions for carrying out operations of the present disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
Aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
The descriptions of the various embodiments of the present disclosure have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.
This application claims priority from U.S. Provisional Application No. 63/545,623, titled “FAIR-DENSITY PARITY-CHECK CODING AND DECODING” filed on Oct. 25, 2023, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
63545623 | Oct 2023 | US |