Soft-aided decoding of staircase codes
11251809 · 2022-02-15
Assignee
Inventors
- Alex Enrique Alvarado Segovia ('s -Hertogenbosch, NL)
- Yi Lei (Hefei, CN)
- Bin Chen (Hefei, CN)
- Gabriele Liga (Eindhoven, NL)
Cpc classification
H03M13/1111
ELECTRICITY
H03M13/3927
ELECTRICITY
H03M13/1108
ELECTRICITY
H03M13/45
ELECTRICITY
H03M13/6325
ELECTRICITY
H03M13/19
ELECTRICITY
International classification
H03M13/19
ELECTRICITY
H03M13/15
ELECTRICITY
Abstract
A hard-decision (HD) forward error correcting (FEC) coded signal is decoded by a decoder to produce decoded bits using marked reliable bits of the HD-FEC coded signal and marked unreliable bits of the HD-FEC coded signal. The marked reliable and unreliable bits are computed by calculation and marking blocks based on an absolute value of log-likelihood ratios of the HD-FEC coded signal. The HD-FEC coded signal may be, for example, a staircase code coded signal or a product code coded signal.
Claims
1. A method for decoding a hard-decision (HD) forward error correcting (FEC) coded signal received by a device over a communication channel, the method comprising: decoding the HD-FEC coded signal by the device to produce decoded bits; wherein the decoding uses marked reliable bits of the HD-FEC coded signal and marked unreliable bits of the HD-FEC coded signal.
2. The method of claim 1, wherein the decoding comprises: estimating code bits from the coded signal by an HD-based demapper; and generating the decoded bits from the estimated code bits by an HD-FEC decoder.
3. The method of claim 1, wherein the decoding comprises: computing the marked bits based on an absolute value of log-likelihood ratios (LLRs) of the HD-FEC coded signal.
4. The method of claim 1, wherein the decoding comprises: marking a bit of the HD-FEC coded signal as a reliable bit whenever an absolute value of a log-likelihood ratio for the bit exceeds a predetermined threshold δ.
5. The method of claim 4, wherein δ=10, or δ=11, or δ=12.
6. The method of claim 1, wherein the decoding comprises: sorting bits of the HD-FEC coded signal by the log-likelihood ratios for the bits and marking a subset of the sorted bits having lowest log-likelihood ratios as unreliable bits.
7. The method of claim 1, wherein the communication channel is optical, wired, or wireless.
8. The method of claim 1, wherein the hard-decision (HD) forward error correcting (FEC) coded signal is a staircase code (SCC) coded signal, a product code (PC) coded signal, a Hamming code coded signal, a BCH code coded signal, or a Reed-Solomon code coded signal.
9. The method of claim 1, wherein the decoding comprises detecting miscorrections and flipping bits whenever a miscorrection is detected.
10. A device for decoding a hard-decision (HD) forward error correcting (FEC) coded signal received by the device, the device comprising: a bit-marking circuit adapted to produce marked reliable bits of the HD-FEC coded signal and marked unreliable bits of the HD-FEC coded signal; an HD-FEC decoder adapted to decode the HD-FEC coded signal received by the device to produce decoded bits; wherein the HD-FEC decoder uses the marked reliable bits and the marked unreliable bits.
11. The device of claim 10, wherein the HD-FEC decoder comprises an HD-based demapper adapted to estimate code bits from the coded signal; and a bounded distance decoder (BDD) adapted to decode the decoded bits from the estimated code bits using the marked reliable bits and the marked unreliable bits.
12. The device of claim 10, wherein the bit-marking circuit is adapted to compute the marked reliable bits and the marked unreliable bits based on an absolute value of log-likelihood ratios (LLRs) of the HD-FEC coded signal.
13. The device of claim 10, wherein the bit-marking circuit is adapted to mark a bit of the HD-FEC coded signal as a reliable bit whenever an absolute value of a log-likelihood ratio for the bit exceeds a predetermined threshold δ.
14. The device of claim 13, wherein δ=10, or δ=11, or δ=12.
15. The device of claim 10, wherein the bit marking circuit is adapted to sort bits of the HD-FEC coded signal by the log-likelihood ratios of the bits and to mark a subset of the sorted bits having lowest log-likelihood ratios as unreliable bits.
16. A system for communicating a hard-decision (HD) forward error correcting (FEC) coded signal, the device comprising: a transmitter adapted to transmit the hard-decision (HD) forward error correcting (FEC) coded signal; a receiver adapted to receive the hard-decision (HD) forward error correcting (FEC) coded signal; wherein the receiver comprises: a bit-marking circuit adapted to produce marked reliable bits of the HD-FEC coded signal and marked unreliable bits of the HD-FEC coded signal; an HD-FEC decoder adapted to decode the HD-FEC coded signal received by the device to produce decoded bits; wherein the decoder uses the marked reliable bits and the marked unreliable bits.
17. The system of claim 16, wherein the HD-FEC decoder comprises an HD-based demapper adapted to estimate code bits from the coded signal; and a bounded distance decoder (BDD) adapted to decode the decoded bits from the estimated code bits using the marked reliable bits and the marked unreliable bits.
18. The system of claim 16, wherein the bit-marking circuit is adapted to compute the marked reliable bits and the marked unreliable bits based on an absolute value of log-likelihood ratios (LLRs) of the HD-FEC coded signal.
19. The system of claim 16, wherein the bit-marking circuit is adapted to mark a bit of the HD-FEC coded signal as a reliable bit whenever an absolute value of a log-likelihood ratio for the bit exceeds a predetermined threshold δ.
20. The system of claim 16, wherein the bit marking circuit is adapted to sort bits of the HD-FEC coded signal by the log-likelihood ratios of the bits and to mark a subset of the sorted bits having lowest log-likelihood ratios as unreliable bits.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
DETAILED DESCRIPTION
(14) Forward error correcting (FEC) codes, such as staircase codes (SCCs), are typically decoded using iterative bounded-distance decoding (BDD) and hard decisions. Embodiments of the present invention provide techniques for decoding hard-decision (HD) forward error correcting (FEC) codes using soft information from the channel. In particular, the technique involves marking highly reliable and highly unreliable bits. These marked bits are used to improve the miscorrection-detection capability of a SCC decoder and the error-correcting capability of BDD. For SCCs with 2-error-correcting Bose-Chaudhuri-Hocquenghem (BCH) component codes, the technique improves upon standard SCC decoding by up to 0.30 dB at a bit-error rate (BER) of 10.sup.−7. The technique achieves almost half of the gain achievable by an genie decoder with this structure. A complexity analysis based on the number of additional calls to the component BDD decoder shows that the relative complexity increase is only around 4% at a BER of 10.sup.−4. This additional complexity is shown to decrease as the channel quality improves. In addition to applications to staircase codes, the technique can also be applied to product codes, where simulation results show that the technique offers gains of up to 0.34 dB at a BER of 10.sup.−7.
(15) The present disclosure describes a soft-aided bit-marking (SABM) algorithm to improve the decoding of HD-FEC codes such as SCCs and PCs. The SABM algorithm includes marking highly reliable and highly unreliable bits. The SABM algorithm jointly increases the miscorrection-detection capability of the SCC decoder and the error-correcting capability of BDD. SABM also has low complexity. For SCCs, the SABM algorithm can function with modifications only to the decoding structure of the last block of each decoding window. Furthermore, in the SABM algorithm each component code does not need to be decoded more than twice. Also, the algorithm is based on marking bits only, and thus, no soft bits (log-likelihood ratios, LLRs) need to be stored. In addition, marked bits do not need to be tracked during the iterative process.
(16) System Model, SCCS, and BDD For purposes of illustration only, and without loss of generality, the techniques of the present invention will be described in detail for the case of SCCs. Those skilled in the art will appreciate that the bit-marking techniques apply as well to other HD-FEC codes.
System Model
(17) As shown in
(18) The standard HD receiver structure 106 for SCCs uses an HD-based demapper 110 to estimate the code bits, {circumflex over (b)}.sub.l,1, . . . , {circumflex over (b)}.sub.l,m, which are then fed to the FEC decoder 112, which produces decoded information bits 118. In an embodiment of the invention, the receiver architecture 108 adapts the HD-FEC decoder 106 to use soft information from the channel produced by LLR calculation block 114 and LLR marking block 116. In particular, in addition to the HD-estimated bits {circumflex over (b)}.sub.l,1, . . . , {circumflex over (b)}.sub.l,m, a sequence of marked bits denoted by q.sub.l,k are also provided to the decoder 112 by the LLR marking block 116. We call this architecture soft-aided (SA) HD-FEC decoding. These marked bits can be highly reliable bits (HRBs), highly unreliable bits (HUBs), or unmarked bits. The marking is determined by the LLR marking block 116 based on the absolute value of the LLRs |λk.sub.l,k|, which are computed from the signal y.sub.l by the LLR calculation block 114. The LLRs may be calculated as
(19)
with k=1, . . . , m, and where
Staircase Codes
(20)
(21) At the receiver side, SCCs are decoded iteratively using a sliding window covering L blocks. We use Y.sub.i to indicate the received SCC block after HD-demapper corresponding to the transmitted block B.sub.i. The decoder first iteratively decodes the blocks {Y.sub.0, . . . , Y.sub.L−1}. When a maximum number of iterations l is reached, the decoding window outputs the block Y.sub.0 and moves to decode the blocks {Y.sub.1, . . . , Y.sub.L}. The block Y.sub.1 is then delivered and operation continues on {Y.sub.2, . . . , Y.sub.L+1} This process continues indefinitely. Multiple decoding scheduling alternatives exist. We chose in this example embodiment the most popular one, namely, alternated decoding of pairs of SCC blocks within a window, from the bottom right to the top left of the SCC window.
(22) Bounded-Distance Decoding
(23) BDD is used to decode (in Hamming space) the received bit sequence for the component code C. To correct up to t errors, the MHD d.sub.0 of C must satisfy d.sub.0≥2t+1 (d.sub.0≥2t+2 for extended BCH codes with 1 additional parity bit). Thus, every codeword in the code C can be associated to a sphere of radius t. Within such a sphere, no other codewords exist. If the received sequence r falls inside one of these spheres, BDD will decode r to the corresponding codeword. Otherwise, BDD will declare a failure. For a given transmitted codeword c and a received sequence r, the BDD output c{circumflex over ( )} is thus given by
(24)
where d.sub.H(⋅, ⋅) represents the Hamming distance. In practice, BDD is often a syndrome-based decoder that uses syndromes to estimate the error pattern e. If the syndromes are all zeros, no errors are present. For the first two cases in Eq. 2, BDD will both declare decoding success and ĉ=r⊕e. In the second case, although BDD will still return an error pattern e, this case corresponds to a miscorrection. In the next section, we will show how to improve miscorrection detection (MD) using the underlying structure of SCCs and the marked HRBs.
The SABM Algorithm
(25) A flow chart of the SABM algorithm is shown in
(26) Decision block 302 checks if BDD successfully decodes r, and if so, then miscorrection detection is performed in decision block 304. If there was no miscorrection, then the decoding result ĉ is returned. If BDD does not decode successfully, or if there is a miscorrection, then bit flipping (BF) by block 306 is performed as a way to handle decoding failures and miscorrections. Both the miscorrection decision block 304 and bit flipping block 306 use marked bits.
(27) The SABM algorithm can in principle be applied to all received sequences r within L SCC blocks. However, due to the iterative sliding window decoding structure applied to SCCs, most of the errors are expected to be located in the last two blocks. To keep the complexity and latency low, it is preferred to use this algorithm on the received sequences from the last two blocks of the window. Therefore, from now on we only consider rows of the matrix [Y.sup.T.sub.i+L−2 Y.sub.i+L−1].
(28) Decoding Success: Improved Miscorrection Detection
(29) To avoid miscorrections, others have proposed rejecting the decoding result of BDD applied to [Y.sup.T.sub.i+L−2Y.sub.i+L−1] if the decoded codeword would cause conflicts with zero-syndrome codewords in [Y.sup.T.sub.i+L−3Y.sub.i+L−2]. That method protects bits in Y.sub.i+L−2 but cannot handle bits in the last block Y.sub.i+L−1. Instead, the present algorithm uses marked bits in Y.sub.i+L−1. In the present embodiment, we add the additional constraint that no HRBs in Y.sub.i+L−1 shall ever be flipped.
(30) The reliability of a bit is given by the absolute value of its LLR, where a high value indicates a more reliable bit. A predetermined threshold δ is selected to decide if a bit is a highly reliable bit (HRB). If |λ.sub.l,k|>δ, the corresponding bit is marked as an HRB. The decision of the staircase decoder will therefore be marked as a miscorrection if the decoded codeword causes conflicts with zero-syndrome codewords in [Y.sup.T.sub.i+L−3Y.sub.i+L−2], or if the decoded codeword flips a bit whose LLR satisfies |λ.sub.l,k|>δ.
Example 1
(31)
(32) A pair (i,j) is used to specify the location of a component codeword in each window, where i∈{1, 2, . . . , L−1} indicates the position relative to the current window and j∈{1, 2, . . . , w} indicates the corresponding row or column index in the matrix of two neighbor blocks. A triple (i, j, k) is used to indicate the k-th bit in the component codeword (i, j), where k∈{1, 2, . . . , 2w}. For example, the component codewords (1, 2) and (3, 1) are shown as shaded columns, while bits (1, 2, 11) and (3, 1, 4) are cells in these columns with darker shading. The bit sequence (3, 1) is a codeword in [Y.sup.T.sub.i+2Y.sub.i+3] whose syndrome is equal to zero.
(33) In the figure, thin crosses are received errors after channel transmission and thick crosses indicate miscorrections after BDD. Block Y.sub.i+4 is shown in more details with values of |λ.sub.l,k| indicated. Cells with values {12, 15, 22} greater than threshold δ=10 are shaded dark and marked HRBs, while cells with values less than δ=10 shaded light and are marked HUBs.
(34) After transmission, the received bit sequences for (4, 1) and (4, 3) have 5 and 4 errors, respectively, indicated by cells with thin crosses. When applying BDD, miscorrections (thick crosses) occur. For the received bits in (4, 1), BDD mistakenly detects bit (4, 1, 1) as an error and suggests to flip it. For the received bits in (4,3), the suggested flipping bit (4, 3, 5) in Y.sub.i+L−2 is also suggested to flip, even though it is not involved in any zero-syndrome codewords. However, the bit (4,3,9) is a HRB, and thus, our MD algorithm will successfully identify it as a miscorrection.
(35) The rule to never flip HRBs in Y.sub.i+L−1 is only a heuristic and does not guarantee perfect MD. For example, our MD algorithm fails when no bits are flipped by BDD because r={tilde over (c)}∈C. Nevertheless, as we will see later, our MD algorithm combined with bit flipping gives remarkably good results with very small added complexity.
(36) Decoding Failures and Miscorrections: Bit Flipping
(37) Returning to
(38) Case 1 (Decoding Failures): We target received sequences with t+1 errors. In this case, we flip a HUB with the lowest absolute LLR. The intuition here is that this marked bit was indeed one flipped by the channel. In the cases where the marked HUB corresponds to a channel error, the error correction capability of the code C is effectively increased by 1 bit.
(39) Case 2 (Miscorrections): We target miscorrections where BDD chooses a codeword {tilde over (c)}∈C at MHD of c. The intuition here is that most of the miscorrections caused by BDD will result in codewords at MHD from the transmitted codeword. When a miscorrection has been detected, our algorithm calculates the number of errors detected by BDD. This is equal to d.sub.H(r,{tilde over (c)})=w.sub.H(e). Then, our algorithm flips d.sub.0−w.sub.H(e)−t bits, which in some cases will result in r′ that satisfy d.sub.H(c, r′)=t. This will lead BDD 308 to find the correct codeword. More details are given in Examples 2 and 3. Again using the intuition that bits with the lowest reliability are the most likely channel errors, our BF algorithm flips the most unreliable d.sub.0−w.sub.H(e)−t bits. In practice, this means that out of n.sub.c code bits per codeword, only d.sub.0−w.sub.H(e)−t<t+1 (or t+2 for extended BCH codes) HUBs need to be marked (and sorted). The BF block 306 chooses the number of marked bits to flip based on this sorted list and the Hamming weight of the error pattern.
Example 2
(40)
Example 3
(41) Cells, i.e., (4,5,8), (4,5,9) and (4,5,10), with the lowest values {0.2, 0.7, 1.5} of |λ.sub.l,k| in
(42) For bit sequences (4,1) and (4,3), the decoding results of BDD are identified as miscorrections (as explained in Example 1) with w.sub.H(e)=1 and w.sub.H(e)=2, respectively. According to the BF rule for miscorrections, 3 and 2 bits with smallest |λ.sub.l,k| among the marked HUBs, i.e., (4,1,8), (4,1,10), (4,1,11) in (4,1), and (4,3,7), (4,3,10) in (4,3), will all be flipped. As a result, only 2 errors are left in (4,1) and (4,3), which are within the error correcting capability of BDD. This corresponds to Case 2.
(43) Returning to
(44) Algorithm Optimization and Simulation Results
(45) In this section, the component codes used for simulations are extended BCH codes with one extra parity bit and 2-error-correcting capability (t=2). The decoding window size is L=9, and the maximum number of iterations is l=7.
(46) LLR Threshold Choice
(47) One key aspect of the SABM algorithm is the selection of the bits to be marked as HRBs. This selection is based on the channel reliabilities, in particular, by using an LLR threshold δ. In order to optimize the process of marking bits as highly reliable, the LLR threshold needs to be selected.
(48) We first consider an SCC with R=0.87, whose component code is BCH(256,239,2) (w=128).
(49) The U-type trend results in
(50)
(51) The corresponding component codes we used are BCH(228,209,2) and BCH(504,485,2). These parameters are obtained by shortening the extended BCH(512, 493, 2) by 284 and 8 bits, respectively. We investigate the BER performance under two SNRs for each code rate. Furthermore, we investigate two modulation formats: 2-PAM (solid lines) and 8-PAM (dashed lines). The results in
(52) Post-BER Performance Analysis
(53)
(54)
and BER.sub.pre is the channel error probability. This figure also shows the performance of previously proposed methods, shown as diamonds and crossed circles. The reason why there is a quite high error floor in
(55) As shown in
(56)
(57)
(58) Complexity Analysis
(59) The number of calls to the component BDD decoder is a key factor defining the complexity and latency for iterative decoding of SCCs. In order to deal with BDD decoding failures and miscorrections, the SABM algorithm needs to call the component BDD decoder multiple times (once after every BF operation). These additional calls will increase the SCC decoding complexity and latency. To quantify this, we estimate the average number of calls to the component BDD decoder within one decoding window. The relative complexity increase caused by the SABM algorithm with respect to standard SCC decoding is thus given by
(60)
where
(61)
(62)
(63) Extension to Product Codes
(64) The decoding technique based on bit marking can be used for various HD-FEC codes, including product codes. A product code is a set of square arrays of size n.sub.c×n.sub.c, constructed in such a way that every rows or column is an allowed codeword in some component (block) code (n.sub.c, k.sub.c, t). Multiple algorithms exist to improve the decoding performance of PCs while keeping a manageable decoding complexity. We now describe another embodiment of the SABM algorithm which can be used for decoding PCs. This will be described as an adaptation of the embodiment for SCCs.
(65) SABM Algorithm for PC Decoding
(66) In the SCC case, both MD and BF are applied only to the last block in the decoding window exploiting the channel reliabilities (LLRs). This is justified by the fact that the last block contains less reliable bits as no previous decoding iterations were performed on it. Differently from SCCs, in the PC case, row and column decoding are performed iteratively within the same block. As a result, no bits within each block can be regarded as more or less reliable than others, and conflicts between column and row decoding are likely to arise. Thus, one may expect to obtain gains only when MD and BF is performed within the first decoding iterations.
(67) In particular, it was found that in order to achieve the optimal decoding performance for SCCs, the SABM algorithm is implemented to perform MD and BF only within the first decoding iteration and the first half of the second iteration (row decoding). Extending beyond the second iteration was observed to degrade the decoding performance, hypothetically due to conflicts between row and column decodings. Furthermore, the BF is only adopted in case of decoding failure (HUB flipping) and not in the case of miscorrection. As for the row decoding operated in the first iteration, MD is only operated based on the marked HRBs, since no previous information on the codeword syndromes is available from the decoder. From the first column decoding onwards, MD is based on both bit marking or syndrome information. The reliability threshold to mark the bits was also optimized for the PC case and the optimal value was found to be identical to the case of SCC, δ=δ*=10.
(68) B. Post-BER Performance Analysis
(69) We consider 3 different PCs based on 1-bit extended BCH codes as component codes with the following parameters (128,113,2), (256,239,2), and (512,493,2). These parameters result in a 128×128, 256×256, and 512×512 PC code arrays with overall code rate R=0.78, 0.87 and 0.93, respectively.
(70) The results are shown in
(71)
(72) The corresponding w=n.sub.c=128, 256, and 512. The achieved additional gains at BER of 10.sup.−7 are 0.34 dB, 0.24 dB, and 0.18 dB for R=0.78, 0.87 and 0.93, respectively. Although the obtained gain is comparable with existing techniques, the SABM algorithm is much simpler because it is only applied in the first 1.5 iterations and there is no need to track the change of the flipped bits.
CONCLUSIONS
(73) The SABM decoding algorithm uses a modification of the standard hard-decision-based forward error correction decoder and relies on the idea of marking bits. Embodiments of the algorithm use an improved miscorrection-detection mechanism and a bit-flipping operation to effectively prevent miscorrections and increase the error correcting capability of bounded-distance decoding. Large gains compared to standard SCC decoding are obtained with a very low added complexity. The algorithm is applicable to staircase codes and also to product codes with a similar performance improvement.