Skip to main content
Log in

Improved decoding and error floor analysis of staircase codes

  • Published:
Designs, Codes and Cryptography Aims and scope Submit manuscript

Abstract

Staircase codes play an important role as error-correcting codes in optical communications. In this paper, a low-complexity method for resolving stall patterns when decoding staircase codes is described. Stall patterns are the dominating contributor to the error floor in the original decoding method. Our improvement is based on locating stall patterns by intersecting non-zero syndromes and flipping the corresponding bits. The approach effectively lowers the error floor and allows for a new range of block sizes to be considered for optical communications at a certain code rate or, alternatively, a significantly decreased error floor for the same block size. Further, an improved error floor analysis is introduced which provides a more accurate estimation of the contributions to the error floor.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

References

  1. Coe T., Jarchi M., Sridharan S.: Product code based forward error correction system. WO patent App. PCT/US2001/018,059. https://www.google.com/patents/WO2001093428A3?cl=en (2002).

  2. Condo C., Leduc-Primeau F., Sarkis G., Giard P., Gross W.J.: Stall pattern avoidance in polynomial product codes. In: 2016 IEEE Global Conference on Signal and Information Processing, GlobalSIP 2016—Proceedings (December), pp. 699–702 (2017). https://doi.org/10.1109/GlobalSIP.2016.7905932.

  3. Emmadi S., Narayanan K.R., Pfister H.D.: Half-product codes in flash memory. In: Non-Volatile Memories Workshop (2015).

  4. Häger C., Pfister H.D.: Miscorrection-free decoding of staircase codes. In: 2017 European Conference on Optical Communication (ECOC), pp. 1–3 (2017).

  5. Häger C., Pfister H.D.: Approaching miscorrection-free performance of product codes with anchor decoding. IEEE Trans. Commun. 66, 2797–2808 (2018).

  6. Holzbaur L., Bartz H., Wachter-Zeh A.: Improved decoding and error floor analysis of staircase codes. In: Workshop on Coding and Cryptography (2017).

  7. Jian Y.Y., Pfister H.D., Narayanan K.R., Rao R., Mazahreh R.: Iterative hard-decision decoding of braided bch codes for high-speed optical communication. In: 2013 IEEE Global Communications Conference GLOBECOM, pp. 2376–2381 (2013). https://doi.org/10.1109/GLOCOM.2013.6831429.

  8. Justesen J.: Performance of Product Codes and Related Structures with Iterated Decoding. IEEE Trans. Commun. 59(2), 407–415 (2011). https://doi.org/10.1109/TCOMM.2011.121410.090146, http://ieeexplore.ieee.org/document/5671556/.

  9. Mittelholzer T., Parnell T., Papandreou N., Pozidis H.: Improving the error-floor performance of binary half-product codes. In: 2016 International Symposium on Information Theory and Its Applications (ISITA), pp. 295–299 (2016).

  10. Pérez-Salvador B.R., De-los Cobos-Silva S., Gutiérrez-Ándrade M.A., Torres-Chazaro A.: A reduced formula for the precise number of (0,1)-matrices in A(R, S). Discret. Math. 256(12), 361–372 (2002). https://doi.org/10.1016/S0012-365X(01)00472-1.

    Article  MathSciNet  MATH  Google Scholar 

  11. Smith B.P., Farhood A., Hunt A., Kschischang F.R., Lodge J.: Staircase codes: FEC for 100 Gb/s OTN. J. Lightwave Technol. 30(1), 110–117 (2012). https://doi.org/10.1109/JLT.2011.2175479.

    Article  Google Scholar 

  12. Wang B.Y., Zhang F.: On the precise number of (0,1)-matrices in (R,S). Discret. Math. 187(13), 211–220 (1998). https://doi.org/10.1016/S0012-365X(97)00197-0, http://www.sciencedirect.com/science/article/pii/S0012365X97001970.

  13. Zhang L.M., Kschischang F.R.: Staircase codes with 6% to 33% overhead. J. Lightwave Technol. 32(10), 1999–2002 (2014). https://doi.org/10.1109/JLT.2014.2316732.

    Article  Google Scholar 

Download references

Acknowledgements

The authors would like to thank Gerhard Kramer and Frank Kschischang for the valuable discussions and the anonymous reviewers for their comments that helped improve the quality and presentation of this work.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Lukas Holzbaur.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

L. Holzbaur’s and A. Wachter-Zeh’s work was supported by the Technical University of Munich–Institute for Advanced Study, funded by the German Excellence Initiative and European Union Seventh Framework Programme under Grant Agreement No. 291763 and the German Research Foundation (Deutsche Forschungsgemeinschaft, DFG) unter Grant No. WA3907/1-1.

This is one of several papers published in Designs, Codes and Cryptography comprising the “Special Issue on Coding and Cryptography”.

Appendix

Appendix

Lemma 2

Denote by \(r_1,\ldots ,r_K\) the weight of the rows and by \(s_1,\ldots ,s_L\) the weight of the columns of a matrix \(\mathbf {A} \in \mathbb {F}_{2}^{K\times L}\). The cardinality of the set

$$\begin{aligned} \mathscr {Z}_{K,L}^{\varepsilon } = \left\{ \mathbf {A} | {{\mathrm{wt_H}}}(\mathbf {A}) = \varepsilon , r_i \ge t+1 \; \forall \; i \in [1,K], s_i \ge t+1 \; \forall \; i \in [1,L] \right\} \end{aligned}$$
(14)

is given by

$$\begin{aligned} |\mathscr {Z}_{K,L}^\varepsilon | = D(\varepsilon ,K,L,0) \end{aligned}$$
(15)

with

$$\begin{aligned} D(a,b,c,d) = \sum _{w_{b+d}=\max \left\{ t+1,a-c(b-1)\right\} }^{\min \left\{ a-(b-1)(t+1),c\right\} } D(a-w_{b+d},b-1,c,d) \end{aligned}$$
(16)

and

$$\begin{aligned} D(w_{d+1},1,c,0)&= D(\varepsilon ,L,K,K), \end{aligned}$$
(17)
$$\begin{aligned} D(w_{d+1},1,c,K)&= \mathscr {A}([w_1,\ldots ,w_K],[w_{K+1},\ldots ,w_{K+L}]), \end{aligned}$$
(18)

where \(\mathscr {A}(\cdot ,\cdot )\) is given in [12].

Proof

The inputs of D(abcd) give the number of non-zero positions a that are to be distributed within the rows or columns (determined by an index offset d) of a matrix of size \(b\times c\), such that the conditions of (14) are fulfilled. Each recursion step of (15) determines the number of non-zero positions in one row, i.e., its Hamming weight. Trivially, the weight \(r_i\) of a row of an \(b \times c \) matrix is upper bounded by \(r_i \le c\). It follows that \(r_b \ge a-c(b-1)\), because otherwise the resulting matrix cannot be of weight a, even if all remaining rows are of maximal weight. By definition \(r_b \ge t+1\) and as this condition also has to hold for the other \(b-1\) rows, the Hamming weight of the b-th row can be at most \(a-(b-1)(t+1)\). Combining these conditions gives the limits of the sum in (16). The problem is reduced to distributing the remaining \(a-r_b\) non-zero positions among the rows of a \(b-1 \times c\) matrix, where the sum limits guarantee that the conditions on the weight of the rows can be met. When the case (17) is reached, the remaining non-zero positions have to be in the last row and its weight \(r_1\) is therefore given by the first function input. The recursion giving the weights \(w_{K+1},\ldots , w_{K+L}\) of the L columns is initiated, where \(d=K\) gives the offset in the indices of the weights. The same arguments as above hold for the limits of the sum. When the last column is reached , i.e., the case (18), the function \(\mathscr {A}([w_1,\ldots ,w_K],[w_{K+1},\ldots ,w_{K+L}])\) from [12] (see also [10]) gives the number of matrices corresponding to the unique weight vector \(\mathbf {w}\) of size \(K+L\). \(\square \)

Note that while this notation offers a mathematically correct way to calculate the cardinality, when implemented it would be beneficial to call the function \(\mathscr {A}(\mathbf {r}_{},\mathbf {b}^{})\) as few times as possible, as it is the computationally most complex part. As permutations of the input vectors lead to the same result, many calls of this function can be avoided by, e.g., maintaining a look-up table.

Lemma 3

Denote by \(r_1,\ldots ,r_K\) the weight of the rows of a matrix \(\mathbf {A} \in \mathbb {F}_{2}^{K\times L}\). The cardinality of the set

$$\begin{aligned} \mathscr {Z}_{K,L}^{\varepsilon } = \left\{ \mathbf {A}_{K \times L} | {{\mathrm{wt_H}}}(\mathbf {A}) = \varepsilon , r_i \ge t+1 \;\; \forall \; i \in [1,K] \right\} \end{aligned}$$

is given by

$$\begin{aligned} | \mathscr {Z}_{K,L}^\varepsilon | = F(\varepsilon ,K) \end{aligned}$$
(19)

with

and \(F(a,1) = \left( {\begin{array}{c}L\\ a\end{array}}\right) \).

Proof

There are \(\left( {\begin{array}{c}L\\ h\end{array}}\right) \) unique binary vectors \(\mathbf {r}_{}\) of length L with \({{\mathrm{wt_H}}}(\mathbf {r}_{}) = h\). Summing over all \(t+1 \le h \le L\) gives the number of unique binary vectors \(\mathbf {r}_{}\) of length L, such that \(t+1 \le {{\mathrm{wt_H}}}(\mathbf {r}_{}) \le L\), as

(20)

Let there be K vectors of weight

$$\begin{aligned} t+1 \le r_i&\le L \; \forall \; i \in [1,K] \end{aligned}$$
(21)

and let \(\sum _{i=1}^K r_i = \varepsilon \). For every distribution with \(r_1 = \delta \), it holds that \(\sum _{i=2}^K = \varepsilon -\delta \), and by (21) we obtain

$$\begin{aligned} \max \{t+1,\varepsilon -L(K-1)\} \le \delta \le \min \{\varepsilon -(K-1)(t+1),L\} \end{aligned}$$
(22)

as the region for \(\delta \) for which the constraints on the other rows are still satisfiable.

By setting the weight \(r_1 = \delta \), the problem is reduced to finding the number of unique distributions of weight \(\sum _{i=2}^K = \varepsilon -\delta \) over \(K-1\) rows, such that (21) holds. This results in the recursive equation

and \(F(a,1) = \left( {\begin{array}{c}L\\ a\end{array}}\right) \). The partial term \(\left( {\begin{array}{c}L\\ j\end{array}}\right) \) is given in (20), the bounds of the sum in (22). The partial term \(F(a-j,b-1)\) results in the number of unique distributions of the reduced problem. When \(b=1\) the last row is reached, which has to take the remaining difference between \(\varepsilon \) and the combined weight of the previous rows. The bounds on the sums assure, that the constraints for the last row are always met. \(\square \)

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Holzbaur, L., Bartz, H. & Wachter-Zeh, A. Improved decoding and error floor analysis of staircase codes. Des. Codes Cryptogr. 87, 647–664 (2019). https://doi.org/10.1007/s10623-018-0587-x

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10623-018-0587-x

Keywords

Mathematics Subject Classification

Navigation