Spatially coupled FEC coding method and device using component codes of GEL code

By using GEL code as a component code in spatial coupling code and combining it with sliding window decoding technology, the limitations of low-latency, high-throughput and high-rate applications in existing technologies are overcome, low error floor and low-complexity decoding are achieved, and the performance of the communication system is improved.

CN114731166BActive Publication Date: 2025-10-03HUAWEI TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN201980101253.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-12-13
Publication Date
2025-10-03
Estimated Expiration
2039-12-13

AI Technical Summary

Technical Problem

Existing spatially coupled FEC codes have limitations when designing low-latency, high-throughput, and high-rate applications, making it difficult to achieve a low error floor and low-complexity decoding.

Method used

The generalized error localization (GEL) code is used as the component code of the spatial coupling code. By mapping the data symbol stream into symbol blocks and using the GEL code to form codewords, a low-complexity decoding process is achieved in combination with the sliding window decoding technology.

Benefits of technology

It achieves low-latency, high-throughput, and high-rate applications, while reducing the error floor level and improving decoding efficiency and performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114731166B_ABST
    Figure CN114731166B_ABST
Patent Text Reader

Abstract

The present disclosure provides an encoding and decoding device for implementing an improved forward error correction (FEC) encoding / decoding method. Specifically, the encoding device is used to encode a stream of data symbols using a spatially coupled code (e.g., a staircase code, a woven block code, or a continuously interleaved block code), wherein at least one generalized error location (GEL) code is used as a component code of the spatially coupled code. Accordingly, the decoding device is used to decode a sequence of encoded symbol blocks using a spatially coupled code, wherein at least one GEL code is used as a component code of the spatially coupled code. Thus, a suitable spatially coupled FEC code is designed that allows very low latency, high throughput, high rate applications with a low complexity decoding process, and allows for mitigation of error flooring.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a forward error correction (FEC) encoding method in a digital communication system, and more specifically, to an encoding / decoding method for low-latency, high-throughput, high-rate optical communication. To this end, the present disclosure proposes an encoding device, a decoding device, and corresponding methods. Background Art

[0002] The development of digital communication systems is closely linked to increasing data rates in communication channels. This inevitably leads to an increase in the number of transmission errors. Error correction codes aim to minimize this number.

[0003] Synthesizing error-correcting codes for modern data transmission systems is a challenging task because high performance, low latency, and low power consumption must be simultaneously achieved.

[0004] Currently, the most famous FEC codes suitable for high-performance, high-rate applications are based on the concept of spatial coupling or continuous interleaving. Spatial coupling is a very general concept. In the field of coding, this collection of spatially coupled or continuously interleaved block codes is a principle used for error and erasure correction in data communications and data storage. It facilitates the design of a semi-infinite sequence of code symbols such that any code symbol in the sequence is contained in at least one finite subsequence that forms a codeword for a code in the collection.

[0005] Figure 1 Some spatially coupled error-correcting codes (SC ECC) are shown, such as continuously interleaved Bose-Chaudhuri-Hocquenghem (CI-BCH) codes, braided block codes, and staircases. These error-correcting codes achieve high performance with low decoding complexity. Typically, in order to obtain a low-complexity decoding process, binary BCH codes with small error correction capabilities are used as component codes of spatially coupled codes. Due to the highly paralyzed decoding technology, SC ECC is suitable for high-throughput optical communications (e.g., 400Gb / s). However, the existing code construction of SC ECC has limitations in its characteristics. Existing error floor mitigation technology is very limited. It is difficult to design a traditional SC ECC with very low latency and high rate. Technology is limited to designing a low-latency spatially coupled ECC with a very low error floor (e.g., an output bit error rate (BER) of less than 1e-15).

[0006] Therefore, an improved design of spatially coupled FEC codes is needed. Summary of the Invention

[0007] In view of the above limitations, embodiments of the present disclosure aim to improve conventional FEC encoding methods. The goal is to provide an encoding device, a decoding device, and corresponding methods for achieving improved FEC encoding. Specifically, the goal is to design suitable spatially coupled codes that enable very low latency, high throughput, high-rate applications, and a low error floor with a low-complexity decoding process.

[0008] This object is achieved by the embodiments provided in the appended independent claims. Advantageous implementations of the disclosed embodiments are further defined in the dependent claims.

[0009] A first aspect of the present disclosure provides an encoding device for encoding a stream of data symbols using a spatially coupled code, wherein at least one generalized error location (GEL) code is used as a component code of the spatially coupled code.

[0010] Typically, spatially coupled codewords share symbols with previously formed codewords and subsequently formed codewords. According to an embodiment of the present disclosure, a GEL code is used to form a codeword for encoding a stream of data symbols. The structure of the GEL code can be as follows: Figure 4 shown.

[0011] Using at least one GEL code as a component code of a spatially coupled code enables very low-latency, high-throughput, and high-rate applications with a low-complexity decoding process. This allows the design of FEC codes with a low error floor. Thus, an improved encoding device implementing an improved spatially coupled encoding method is achieved.

[0012] In an implementation form of the first aspect, the encoding device is further configured to: map the stream of data symbols into a sequence of symbol blocks, wherein each symbol block includes L symbols, L is a positive integer, and the number of data symbols in the L symbols in each symbol block is less than or equal to L; and use the first block B i One or more symbols and one or more second blocks B j One or more symbols form a plurality of code words of the at least one GEL code, wherein i is a positive integer and j is a positive integer less than i.

[0013] Optionally, the stream of data symbols may be divided into a sequence of blocks of equal size, i.e., length L, and the blocks may be enumerated by positive integers. Possibly, one or more blocks of symbols may not be completely filled with data symbols of the stream of data symbols. Optionally, the first block B may be usedi The data symbols and the first block B i One or more previous blocks of, for example, block B i-1 ,... block B i-m , the symbols of to form the codewords of the GEL code, where m is a positive integer less than i.

[0014] In an implementation form of the first aspect, each codeword of the at least one GEL code includes information symbols and parity symbols, and the code length of each codeword of the at least one GEL code is less than or equal to M, where M is a positive integer.

[0015] Generally, the codewords of the at least one GEL code can thus include two parts: one part includes information symbols and the other part includes parity symbols.

[0016] In an implementation form of the first aspect, the encoding device is further configured to: by using one or more data symbols of the first block B i And one or more symbols of the one or more second blocks B j To generate the parity symbols of each codeword of the at least one GEL code, where j < i; and store the generated parity symbols of each codeword of the at least one GEL code in the first block B i Wherein, the total number of the generated parity symbols and data symbols in the first block B i Is equal to L.

[0017] In an implementation form of the first aspect, the encoding device is further configured to: use one or more symbols of the first block B i And all the selected symbols in the other blocks of the sequence of blocks as the information symbols of at least one codeword of the at least one GEL code.

[0018] ]>In an implementation form of the first aspect, all the symbols of the first block B i And one or more symbols of the one or more second blocks B j Are represented as an n×N matrix, where i, n, and N are each positive integers, and j is a positive integer less than i.

[0019] In an implementation form of the first aspect, the multiple codewords of each GEL code are represented as a matrix with n rows and the number of columns less than or equal to N.

[0020] In an implementation form of the first aspect, the sum of the lengths of all the codewords of the multiple codewords of the at least one GEL code is equal to n*N.

[0021] In an implementation form of the first aspect, the encoding device is further configured to store each first block B iDivide into s m×m matrices, where each first block B i It is represented as a (s*m)×m matrix, where s and m are positive integers.

[0022] In an implementation form of the first aspect, the plurality of codewords of the at least one GEL code are represented as a (2*s*m)×m matrix.

[0023] In an implementation form of the first aspect, the encoding device is further configured to obtain at least one codeword of the plurality of codewords of the at least one GEL code based on the following m×m matrix:

[0024] (if(i,1),p(i,1)),(if(i,2),p(i,2)),…,(if(i,s),p(i,s)),(i,1),(i,2),…,(i,s), where f(x,y) is an integer-valued function and p(x,y) is a permutation function of any x, where, for any positive integer i, f(i,1)>f(i,2)>…>f(i,s)>0, x and y are positive integers, and the range of the integer-valued function p(x,y) is {1,2,…,s}.

[0025] In an implementation form of the first aspect, the first block B i Each symbol of is used as an information symbol or a check symbol of each code word of the at least one GEL code.

[0026] A second aspect of the present disclosure provides a decoding device for decoding a sequence of coded symbol blocks using a spatially coupled code, wherein at least one generalized error location (GEL) code is used as a component code of the spatially coupled code.

[0027] According to an embodiment of the present disclosure, before sending data, a sending device, such as the encoding device provided in the first aspect or any implementation form of the first aspect, encodes the data by using the GEL code as a component code in the spatial coupling structure. After receiving the data, a receiving device, such as the decoding device provided in the second aspect, decodes the data by using the same spatial coupling GEL code. It is worth noting that the sending device and the receiving device can first agree on the spatial coupling GEL codeword structure encoding method. Alternatively, before receiving the data sent by the sending device, the receiving device can first obtain the spatial coupling GEL codeword structure encoding method of the sending device.

[0028] Using at least one GEL code as a component code of a spatially coupled code enables very low-latency, high-throughput, and high-rate applications with a low-complexity decoding process. This allows the design of FEC codes with a low error floor. Consequently, an improved decoding device is achieved.

[0029] A third aspect of the present disclosure provides an encoding method, comprising encoding a stream of data symbols using a spatially coupled code, wherein at least one generalized error localization GEL code is used as a component code of the spatially coupled code.

[0030] The encoding method of the third aspect can be provided with an implementation similar to the encoding device of the first aspect. Accordingly, the encoding method of the third aspect and its implementation provide the same advantages and effects as the above-mentioned advantages and effects of the encoding device of the first aspect and its respective implementation.

[0031] A fourth aspect of the present disclosure provides a decoding method, comprising decoding a sequence of encoded symbol blocks using a spatially coupled code, wherein at least one GEL code is used as a component code of the spatially coupled code.

[0032] The decoding method of the fourth aspect can be provided with an implementation similar to the decoding device of the second aspect. Accordingly, the decoding method of the fourth aspect and its implementation provide the same advantages and effects as the above-mentioned advantages and effects of the decoding device of the second aspect and its respective implementation.

[0033] A fifth aspect of the present disclosure provides a computer program product, comprising program code, which, when run on a processor, executes the method of the first aspect and its implementation form or the second aspect and its implementation form.

[0034] It should be noted that all devices, elements, units and means described in this application can be implemented in software or hardware elements or any type of combination thereof. All steps performed by various entities described in this application and the functions performed by various entities described are intended to indicate that the respective entities are suitable for or used to perform the respective steps and functions. Even if in the following description of specific embodiments, a specific function or step performed by an external entity is not reflected in the description of the specific detailed elements of the entity that performs the specific step or function, it should be clear to those skilled in the art that these methods and functions can be implemented in respective software or hardware elements or any type of combination thereof. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] The above aspects and implementation forms of the present disclosure are illustrated in the following description of specific embodiments in conjunction with the accompanying drawings, wherein:

[0036] Figure 1 An example of a spatially coupled code construction is shown.

[0037] Figure 2 A scheme of spatially coupled block codes is shown.

[0038] Figure 3 The decoding process of sliding window decoding of spatial coupling codes is shown.

[0039] Figure 4 An example of a generalized error location GEL code is shown.

[0040] Figure 5 The GEL code encoding process is shown.

[0041] Figure 6 The decoding process of the GEL code is shown.

[0042] Figure 7 The use of GEL codes as component codes in a spatial coupling configuration according to an embodiment of the present disclosure is shown.

[0043] Figure 8 An encoding device according to an embodiment of the present disclosure is shown.

[0044] Figure 9 The use of GEL codes as component codes in a ladder construction according to an embodiment of the present disclosure is shown.

[0045] Figure 10 A decoding device according to an embodiment of the present disclosure is shown.

[0046] Figure 11 An encoding method according to an embodiment of the present disclosure is shown.

[0047] Figure 12 A decoding method according to an embodiment of the present disclosure is shown.

[0048] Figure 13 The performance and error floor of the staircase BCH code and the staircase GEL code are shown.

[0049] Figure 14 A comparison of the stepped GEL ladder with different component BCH codes and different decoding delays (related to the decoding window size) is shown.

[0050] Figure 15 The performance and delay of the staircase BCH code and the staircase GEL code are shown. DETAILED DESCRIPTION

[0051] Illustrative embodiments of encoding / decoding methods, encoding / decoding devices, and computer program products are described with reference to the accompanying drawings. Although this description provides detailed examples of possible implementations, it should be noted that these details are merely exemplary and in no way limit the scope of this application.

[0052] In addition, one embodiment / example may relate to other embodiments / examples. For example, any description including but not limited to terms, elements, processes, instructions and / or technical advantages mentioned in one embodiment / example is applicable to other embodiments / examples.

[0053] Figure 2The scheme of a spatially coupled block code is shown. Data is transmitted in frames. Each frame consists of information symbols and parity symbols. New information symbols are placed in a new frame. The parity symbols of a frame are the parity symbols of the GEL code codeword. The GEL code codeword can be obtained through the GEL code encoding process. The information symbols used in the GEL code encoding process are selected from the symbols of some previous frame and the information symbols of the new frame.

[0054] Specifically, spatially coupled codes can be constructed by the following process: dividing data into blocks, where each block consists of information symbols and check symbols; placing new information symbols into new blocks; and obtaining the check symbols of the new blocks from some symbols of the previous blocks and the new information symbols through the encoding process of the block code.

[0055] The main components of this scheme are the block code and the mapper. For example, the input to the mapper of a ladder and braided block code, such as a block-by-block braided block code, is the new information symbol and all the symbols of the previous block. The difference between these types of codes lies in the internal structure of the mapper.

[0056] The principle of spatial coupling is not limited to Figure 2 The scheme presented in

[15] can be considered to implement more than one block code and more than one mapper. Depending on the block index, the check symbol of a block can depend on a different number of previous blocks. Some padding with zero or non-zero symbols can also be used.

[0057] Decoding of spatially coupled codes is performed using a "sliding window" decoding technique. That is, the receiver collects s ​​subsequent symbol blocks V from the channel and / or from previous processing i , V i+1 ,……,V i+s-1 (window). Then, the sliding window decoding step is applied, such as Figure 3 After this, the window is “shifted” and the decoder only utilizes the following blocks V i+1 , V i+2 ,……,V i+s .

[0058] Figure 3 The decoding process of sliding window decoding of spatial coupling codes is shown.

[0059] Existing spatially coupled code constructions have limitations in their characteristics.

[0060] For example, consider a ladder code with an overhead OH of 6.67%. It can be shown that constructing a ladder code with reasonably low latency, good performance, and a low error floor is impossible: a code based on BCH correcting two errors has low latency but a high error floor. Some additional error floor mitigation technique is required, and even then, the error floor approaches 1e-15. In contrast, a code based on BCH correcting three errors has good performance but unacceptably high latency (as shown in Table 1). Therefore, there is no "intermediate" code suitable for low latency and high performance, while also offering a low error floor and a relatively simple decoding algorithm.

[0061] Table 1 - Performance of ladders with different delays and OH equal to 6.67%

[0062]

[0063] Figure 4 A class of block codes, generalized error-locating GEL codes, is shown in Figure 1. Typically, a GEL codeword structure consists of a row code and a column code. The parity check bits of the column code are encoded using the row code to obtain the parity check bits of the GEL code. The row code can also be called the outer code, and the column code can be called the inner code.

[0064] make Be a finite field with q elements. Let For [n,k i ,d i ] q Linear code, i∈{0,1,…,L}, such that Here, 0 is a zero vector of length n. Therefore, we have n=k0>k1>...>k L = 0. Let Hc be of the following form A nonsingular matrix on :

[0065]

[0066] Among them, H i It is m i ×n submatrix, and m i =k i–1 –k i , i∈{0,1,…,L}; In addition, the matrix H i , H i–1 ,……,H forms The parity check matrix.

[0067] make for [N,K i ,D i ] QiLinear code, i∈{0,1,…,L}, where If C satisfies the following conditions, then The linear subspace C of the n×N matrix on is called the GEL code, whose components are L+1 inner codes and L outer codes

[0068]

[0069] About arrive Any isomorphism (from The vector space of all s×N matrices on is a vector space of dimension N on .

[0070] The most general case of this construction is to use N different nested inner codes so that in, for Linear code, i∈{0,1,…,L} and j∈{1,2,…,N}. In this case, condition (2) can be modified as follows:

[0071]

[0072] in, yes The corresponding submatrix of (j) is the j-th column of c, j∈{1,2,…,N}.

[0073] Specifically, a single set of nested inner codes is used in this embodiment. In order to obtain a simple method for systematically encoding the GEL code, the systematic encoding of the outer code and the special form of the matrix Hc are utilized, namely:

[0074]

[0075] Among them, I i It is m i ×m i Identity matrix; O i,j It is m i ×m j zero matrix; and P i,j yes m on i ×m j matrix.

[0076] According to the structure of matrix Hc and the parameters of outer code, the codeword c of GEL code can be divided into m i ×K i or m i ×(N–Ki ), i∈{0,1,…,L}, are as follows:

[0077]

[0078] Among them, X i and Y i m i ×K i and m i ×(N–K i ) submatrix, i∈{0,1,…,L}.

[0079] Figure 5 Flowchart representing a possible GEL encoding process.

[0080] enter: on Values ​​(these values ​​are considered information symbols)

[0081] Output: c—GEL code word ( n×N matrix on

[0082] 1: Set the matrix c with zeros

[0083] 2: For i: = 1 to L, execute

[0084] 3: Use the input m i ×K i Information symbol set c X i Submatrix

[0085] 4: End

[0086] 5:c:=H B c

[0087] 6: For i: = 1 to L, execute

[0088] 7: Through system encoder A i To X i Encode and obtain the check symbol Z i

[0089] 8: Use Z i Set Y i Submatrix c

[0090] 9: End

[0091] 10:

[0092] Among them, the matrix It is H B The standard inverse matrix of

[0093] Figure 6 A flow chart showing a possible decoding process of a GEL code.

[0094] Input: v—word from the channel

[0095] Output: c—GEL code word or updated word v and decoding failure signal

[0096] 1: List of erased locations l1, l2, ..., l L+1 Set to an empty list

[0097] 2: For i: = 1 to L, execute

[0098] 3: Get an error as a i :=H i v's codeword A i

[0099] 4: List l at erased location i With the help of decoder A i to a i Decoding

[0100] 5: If you observe the word a i If decoding fails, the decoding is completed and v and decoding failure are returned.

[0101] 6: Otherwise continue decoding

[0102] 7: For each column, the corresponding error symbol or erased symbol a i

[0103] 8: By using the decoding results a1, a2, ..., a i The error value or erased value in the position is obtained by comparing with the check matrix The corresponding syndrome vector s

[0104] 9: Through decoder B i , get the error pattern e corresponding to the vector s

[0105] 10: If decoding failure is observed, add the column number to the list l i+1

[0106] 11: Otherwise, update the corresponding column of v by subtracting pattern e

[0107] 12: End

[0108] 13: End

[0109] 14: If the list of erased locations l L+1 If it is not empty, the decoding is completed and v is returned and the decoding fails.

[0110] 15: Otherwise return the updated word v as c

[0111] It is possible to partially decode GEL codes. In practice, it is possible to perform several iterations of the channel loop and update the channel word v. This may reduce the number of errors in the word, but it will not correct all errors. This type of strategy can be used for iterative decoding of spatially coupled codes, where the GEL code is a component code.

[0112] In order to design a long GEL code with high performance, it is necessary to use an outer code on a large domain with a large minimum distance. In addition, the existing GEL codes do not support iterative decoding. Therefore, the present disclosure proposes to use GEL codes as component codes in a spatial coupling structure, such as Figure 7 shown.

[0113] Figure 8 An encoding device 100 according to an embodiment of the present disclosure is shown. The encoding device 100 may include processing circuitry (not shown) for executing, performing, or initiating the various operations of the encoding device 100 described herein. The processing circuitry may include hardware and software. The hardware may include analog circuits or digital circuits, or both. The digital circuitry may include components such as application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), or multi-function processors. In one embodiment, the processing circuitry includes one or more processors and non-volatile memory connected to the one or more processors. The non-volatile memory may carry executable program code that, when executed by one or more processors, causes the encoding device 100 to execute, perform, or initiate the operations or methods described herein.

[0114] According to an embodiment of the present disclosure, the encoding device 100 is configured to encode a stream of data symbols 101 using a spatially coupled code 102. Specifically, at least one GEL code is used as a component code of the spatially coupled code 102.

[0115] According to an embodiment of the present disclosure, data stream symbols are divided into a sequence of blocks of equal size, and the blocks are enumerated using positive integers.

[0116] Therefore, according to an embodiment of the present disclosure, the encoding device 100 is further configured to map the stream of data symbols 101 into a sequence of symbol blocks, wherein each block includes L symbols, L is a positive integer, and the number of data symbols in the L symbols in each block is less than or equal to L. Further, the encoding device 100 is configured to use block B iOne or more data symbols and one or more blocks B j One or more symbols form a plurality of code words of at least one GEL code, wherein i is a positive integer and j is a positive integer less than i.

[0117] Use block B i and one or more previous blocks B j The symbols are used to form the codeword of the GEL code. Block B should not be restricted j amount.

[0118] Optionally, each codeword of the at least one GEL code includes an information symbol and a check symbol, and a code length of each codeword is less than or equal to M, where M is a positive integer.

[0119] According to an embodiment of the present disclosure, the encoding device 100 may be configured to generate a block B by using i One or more data symbols and one or more blocks B j One or more symbols of the GEL code are used to generate a check symbol for each codeword of the at least one GEL code, wherein i and j are both positive integers and j is less than i. The encoding device 100 can be used to store the check symbol for each codeword of the at least one GEL code generated in block B. i In which, block B i The total number of generated check symbols and data symbols in is equal to L.

[0120] It is worth noting that when encoding device 100 maps the stream of data symbols 101 into a sequence of symbol blocks, different numbers of data symbols may be mapped into different blocks. Specifically, some blocks may include space reserved for storing check symbols. Accordingly, some blocks may include L data symbols; some blocks may consist of x data symbols and Lx check symbols, where x is a positive integer less than L.

[0121] Optionally, block B i It is composed of information symbols, that is, data symbols mapped from the stream of data symbols, and check symbols generated by the encoding device 100. Specifically, the check symbols can be based on the block B i The symbols of the previous block are generated and can be additionally based on the symbols in block B i It is generated by using the check symbols stored in the previous block.

[0122] Optionally, the encoding device 100 may also be used to convert block B i The one or more symbols of and all selected symbols in other blocks of the block of the sequence are used as information symbols of at least one codeword of at least one GEL code.

[0123] Therefore, after separating the stream of data symbols and enumerating the blocks, let block B i All data symbols and block Bj Some symbols are represented as a single block of length K, where i and j are positive integers and K is a positive integer. Let the code length of each GEL code in the multiple GEL codes be at most K. j The symbol representation of the block is a single block of length K, and the check symbol of each code in the multiple GEL codes is generated, where j is at most i, and the block B i At least some symbols of and all selected symbols in other blocks are used as information symbols of at least one GEL code. And, the generated check symbols are stored in block B i middle.

[0124] In another embodiment of the present disclosure, block B i All data symbols and one or more blocks B j The one or more symbols of the GEL code may be represented as an n×N matrix, where n and N are positive integers. Alternatively, the multiple codewords of each GEL code may be represented as a matrix with n rows and a number of columns less than or equal to N. According to an embodiment of the present disclosure, the sum of the lengths of all codewords of the multiple codewords of each GEL code may be equal to n*N.

[0125] It is worth noting that when block B j With the help of the symbol representation of n×N matrix, the check symbol of each code in multiple GEL codes can be generated, where j is at most i, and the block B i At least some symbols of the block B and all selected symbols in the other blocks are used as information symbols of at least one GEL code. Similar to the previously described embodiment, the generated check symbols are stored in block B. i middle.

[0126] Optionally, block B i Each symbol of can be the information symbol or check symbol of at least one GEL code in a plurality of GEL codes. Alternatively, block B i Each symbol of may be an information symbol or a check symbol of exactly one GEL code among a plurality of GEL codes.

[0127] According to one embodiment of the present disclosure, each block B i It can be expressed as a (s*m)×m matrix, where each block B i is divided into s m×m matrices, where s and m are both positive integers. Specifically, block B i The j-th m×m matrix of is represented by (i,j), where j is a positive integer less than or equal to s.

[0128] In other words, let each block be an (s*m)×m matrix, and fix the enumeration of m×m matrices within the block. For any positive integers i and j, the jth m×m matrix of the i-th block is denoted by (i, j), where j is at most s.

[0129] Optionally, the plurality of codewords of the at least one GEL code are represented as a (2*s*m)×m matrix.

[0130] According to an embodiment of the present disclosure, the encoding device 100 may be configured to obtain at least one codeword of a GEL code from the following m×m matrix:

[0131] (if(i,1),p(i,1)),(if(i,2),p(i,2)),…,(if(i,s),p(i,s)),(i,1),(i,2),…,(i,s), where f(x,y) is an integer-valued function and p(x,y) is a permutation function of any x, where, for any positive integer i, f(i,1)>f(i,2)>…>f(i,s)>0, and the range of the integer-valued function p(x,y) is {1,2,…,s}.

[0132] Alternatively, with the help of a (2*s*m)×m matrix representation, the check symbols of the GEL code can be generated, wherein all symbols of the matrices (if(i,1), p(i,1)), (if(i,2), p(i,2)), ..., (if(i,s), p(i,s)) and at least some symbols of the matrices (i,1), (i,2), ..., (i,s) are used as information symbols. Similar to the previously described embodiment, the generated check symbols are stored in block B i Optionally, all symbols represented as a (2*s*m)×m matrix are used as information symbols or check symbols.

[0133] Furthermore, let the (2*s*m)×m matrix be obtained as follows: fill the transposed matrix of (if(i,1),p(i,1)), (if(i,2),p(i,2)), ..., (if(i,s),p(i,s)) from top to bottom, and then fill the matrix in sequence: (i,1), (i,2), ..., (i,s), that is,

[0134] (if(i,1),p(i,1)) T

[0135] (if(i,2),p(i,2)) T

[0136]

[0137] (if(i,s),p(i,s)) T

[0138] (i,1)

[0139] (i,2)

[0140]

[0141] (i,s)

[0142] For every even integer x, let function f(x,y) = f0(y), and for every odd integer x, let function f(x,y) = f1(y), where functions f0(y) and f1(y) are positive integer functions such that f0(1)>f0(2)>…>f0(s)>0, and f1(1)>f1(2)>…>f1(s)>0. Let function p(x,y) be a reverse permutation, i.e., for any positive integers x and y in {1,2,…,s}, p(x,y) = s+1-y. Let s be 1, function f0(y) is equal to f1(y), and f0(1) = f1(1) = 1. In this way, a step-type spatial coupling design can be obtained.

[0143] Figure 9 , a ladder structure with GEL component codes according to an embodiment of the present disclosure is shown.

[0144] A specific embodiment using staircase-type spatial coupling and a single block code, the GEL code, is described below.

[0145] Example 1:

[0146] Let the GEL code C be a linear binary code of length 57800 and dimension 55866 consisting of 4 inner codes and 3 outer codes. The codeword c of the code C can be considered as a 340×170 matrix of bits.

[0147] Let three of the four inner codes of GEL code C be narrow original shortened binary BCH codes of length 340 and a zero code. That is, is a [340,340,1]2 code with a generating polynomial g0(x)=1, is a system with g1(x)=g0(x)·(x 9 +x 4 +1)·(x+1)=x 10 +x 9 +x 5 +x 4 +x+1's [340,330,4]2 code, is a generator polynomial g 2(x) =g1(x)·(x 9 +x 6 +x 4 +x 3 +1)=x 19 +x 18 +x 16 +x 15 +x 13 +x 12 +x11 +x 10 +x 9 +x 6 +x 4 +x 3 +x+1 is the [340,321,6]2 code, and B3 is the binary zero code of length 340.

[0148] Let the check matrix H C is the form (4) discussed above, namely:

[0149]

[0150] Therefore, m1=10, m2=9, m3=321.

[0151] Let the outer code of GEL code C be three codes of length 170 on different extensions of the binary field. That is, It is the zero code on GF(1024), is with a generating polynomial GF(512) on Cyclic Reed-Solomon code, where α is a primitive element of GF(512) and the last It is CF(2 321 ) Same code. can be used as an error-correcting code, for which some nontrivial encoding and decoding procedures are required. So, for the sake of formal description only, and code.

[0152] In this paper, each column codeword c of the GEL code is constructed by The code word of the code. Moreover, the multiplication of H2 and c matrix is ​​the RS code Code word.

[0153] Decoding code C can be divided into three steps:

[0154] 1. By The decoder decodes the column;

[0155] 2. Obtained by multiplying H2 and c matrices The word, then The decoder decodes the word;

[0156] 3. Using the decoding results of the previous step, The syndrome decoder decodes some columns.

[0157] It is worth noting that the decoding failure of a column in the first decoding step can be used as a signal to erase the column in the second decoding step. The decoded column number is the same as the symbol number. The error and / or erasure values ​​in decoding are the syndrome values ​​of the columns of the H2 parity check matrix. The parity check matrix of the code, so the syndrome values ​​calculated using these matrices in the first and second decoding steps presented above can be used to calculate The syndrome decoder decodes the column.

[0158] Let the spatial coupling be based on a staircase design and a single-block (component) GEL code C. This means that, considering a semi-infinite sequence of 170 × 170 binary matrices So that:

[0159] 1. Matrix B1 is a zero matrix;

[0160] 2. For positive integers i greater than 1, the matrix is the code word of code C;

[0161] Among them, B T is the transposed matrix of B.

[0162] The encoding of the semi-infinite sequence is done by using the encoding process of code C, encoding the matrix one by one. The 26966 bits of the payload are used as the information bits of the codeword, and then 1934 parity check bits are obtained. The payload bits and the obtained parity check bits can form a matrix B i .

[0163] Example 2:

[0164] Example 2 is based on Example 1.

[0165] Reed Solomon [544,514,31] 1024 The code is used in different standards and is also called KP4 code. [537,514,25] is obtained by puncturing the last 7 check symbols of KP4 1024 code.

[0166] Consider the collection and the spatial coupling code described in Example 1. The code can be considered as a semi-finite sequence of a 170×170 binary matrix Each block B i It consists of 26966 information bits and 1934 parity check bits. Consider that encoding the code can be completed in two steps: first, form 5 code words and use Bi The remaining 116 bits are filled with zeros. Second, 1934 parity bits are obtained as in Example 1. There is no need to transmit the 116 zero information bits over the channel. The positions of the 116 missing zeros in the information bits of the code block are known to the receiver.

[0167] Example 3:

[0168] Let GEL code C be a linear code of length 2646 and dimension 2573 over GF(128) consisting of 4 inner codes and 3 outer codes. The codeword c of code C can be considered as a 126×21 matrix over GF(128).

[0169] Let two of the four inner codes of GEL code C be Reed-Solomon codes of length 126 on GF(128), and let the other codes be the same and be zero codes. That is, is [126,126,1] with generating polynomial g0(x)=1 128 Identical code or looping code; is a generator polynomial [126,125,4] 128 Circular Reed-Solomon code; is a generator polynomial [126,124,5] 128 Circular Reed-Solomon code; and is a zero code of length 126 over GF(128), where α is a primitive element of GF(128).

[0170] Let the outer code of GEL be a code of length 21 over different extensions of GF(128). That is, Is in GF(128 3 ) on the zero code, is with a generating polynomial [21,11,11] on GF(128) 128 Circular Reed-Solomon code, where is a primitive element of GF(128), and the last one Is in GF(128 122 ) Same code. can be used as an error-correcting code, for which some nontrivial encoding and decoding procedures are required. So, for the sake of formal description only, and code.

[0171] Let the check matrix H c is the form (4) discussed above, namely:

[0172]

[0173] Therefore, m1=3, m2=1, m3=122.

[0174] In this paper, each column codeword c of GEL code C is constructed by Moreover, the matrix multiplication of H2 and GEL code word c is RS code Code word.

[0175] Decoding code C can be divided into three steps:

[0176] 1. By The decoder decodes the column;

[0177] 2. Obtained by multiplying H2 and c matrices The word, then The decoder decodes the word;

[0178] 3. Using the decoding results of the previous step, The syndrome decoder decodes some columns.

[0179] It is worth noting that the decoding failure of a column in the first decoding step can be used as a signal to erase the column in the second decoding step. The decoded column number is the same as the symbol number. The error and / or erasure values ​​in decoding are the syndrome values ​​of the columns of the H2 parity check matrix. The parity check matrix of the code, so the syndrome values ​​calculated using these matrices of the first and second decoding steps presented above can be used to calculate The syndrome decoder decodes the column.

[0180] Consider a semi-infinite sequence of 63×63 matrices over GF(128) Make

[0181] 1. Matrix B1 is a zero matrix;

[0182] 2. For every positive integer i greater than 1, the matrix It can be divided into 3 codewords of code C as follows: the first 21 columns (from 1 to 21) form the first codeword of C, the second 21 columns (from 22 to 42) form the second codeword of C, and the last 21 columns of the matrix (from 43 to 63) form the third codeword of C;

[0183] Among them, B T is the transposed matrix of B.

[0184] All possible semi-infinite sequences of 63×63 matrices over GF(128) described above The spatial coupling code is formed. Consider that the encoding of the spatial coupling code is to use the encoding process of code C and encode it matrix by matrix. That is, the matrix The 3750 (=1250·3) symbols of the payload on GF(128) are used as information symbols of 3 GEL code words, and then 219 (=73·3) check symbols are obtained for any positive integer i greater than 1. The payload and the obtained check symbols form the matrix B i .

[0185] Example 4:

[0186] Example 4 is based on Example 3.

[0187] Let C be the GEL code of length 2646 and dimension 2573 over GF(128) described in Example 3.

[0188] Consider a semi-infinite sequence of 63×21 matrices over GF(128) Each matrix B i Divide into 3 matrices B of size 21 i,1 ,,B i,2 and B i,3 , making

[0189] The function f(x,y) is fixed as follows: for any positive integer x, f(x,1) = 7, f(x,2) = 5 and f(x,3) = 3. For any positive integer x, the function p(x,y) is fixed, for example, p(x,1) = 3, p(x,2) = 2 and p(x,3) = 1. Then, the spatial coupling code is constructed as follows:

[0190] 1. Matrices B1, B2, ..., B7 are zero matrices;

[0191] 2. For every positive integer i greater than 7, the matrix is the code word of C;

[0192] Among them, B T is the transposed matrix of B.

[0193] All possible semi-infinite sequences of 63×21 matrices over GF(128) described above The code is encoded by the encoding process of code C, which is continuous encoding matrix by matrix. That is, for each positive integer i greater than 7, the matrix and The 1250 symbols of the payload on GF(128) are used as information symbols of the GEL codeword, and then 73 check symbols are obtained. The payload and the obtained check symbols form the matrix B i .

[0194] Figure 10 A decoding device 200 according to an embodiment of the present disclosure is shown. Specifically, the decoding device 200 is configured to decode a sequence of encoded symbol blocks 201 using a spatially coupled code 102 , wherein at least one GEL code is used as a component code of the spatially coupled code 102 .

[0195] The decoding device 200 decodes the received FEC-encoded symbol block. The symbol block received at the decoder side is decoded using the same spatial coupling code 102 used at the encoder side. That is, at least one GEL code is used as a component code of the spatial coupling code 102. It should be noted that the decoding process of the two previously described embodiments is the same as Figure 3 shown.

[0196] Figure 11 1 shows an encoding method 1100 according to an embodiment of the present disclosure. Specifically, the method 1100 may be Figure 8 The encoder device 100 shown performs the encoding method 1100 , which comprises a step 1101 of encoding a stream of data symbols 101 using a spatially coupled code 102 , wherein at least one GEL code is used as a component code of the spatially coupled code 102 .

[0197] Figure 12 FIG1 shows a decoding method 1200 according to an embodiment of the present disclosure. Specifically, the method 1200 may be performed by Figure 10 The decoder device shown performs the decoding method 1200 , which comprises step 1201 of decoding a sequence of coded symbol blocks 201 using a spatially coupled code 102 , wherein at least one GEL code is used as a component code of the spatially coupled code 102 .

[0198] While conventional staircase codes based on BCH codes, which can correct up to two errors, have a higher error floor, the designed convolutional staircase GEL code, based on the GEL structure, can correct up to two errors per column and up to three errors in some columns.

[0199] like Figure 13 As shown in Figure 2, the resulting FEC has a lower error floor and a better performance curve slope. Note that both FECs have the same overhead and latency. The error floor level is independent of the decoding algorithm's latency.

[0200] Furthermore, staircase GEL is suitable for high-rate and very low-latency constructions, which are not achievable by staircase BCH and GEL, respectively. Let us set the following requirements: latency less than 174 kbit, throughput 800 Gbps, overhead 9%, and output bit error rate outBER 1e-15. Classic staircase BCH requires a large window size to avoid poor performance. Staircase GEL can meet all requirements (see Table 2 and Figure 14 ).

[0201] Table 2 - Performance and error leveling of step BCH and step GEL

[0202]

[0203] The performance is obtained by extrapolating the software simulation results to 1e-11 by outputting the BER.

[0204] Compare other examples of ladder codes and ladder GEL codes. The overhead of these codes is about 6.67%. Specifically, ladder GEL codes refer to ladder constructions with GEL component codes. As shown in Table 3 and Figure 15 As shown, it can be seen that in most cases, the stepped GEL shows better performance.

[0205] Table 1 - Performance and latency of staircase BCH and staircase GEL codes

[0206]

[0207] In summary, the main idea of ​​this disclosure is to use forward error correction based on spatially coupled codes constructed by using at least one GEL code as a block code (component code). It can be seen that any spatially coupled GEL code can be considered a subcode of a spatially coupled code, and the spatial coupling method is the same as B1 and component codes.

[0208] The present disclosure has been described with reference to various exemplary embodiments and implementations. However, those skilled in the art will be able to understand and arrive at other variations by practicing the disclosure for which protection is sought, studying the drawings, the disclosure, and the independent claims. In the claims and the specification, the term "comprising" does not exclude other elements or steps, and the indefinite article "a" or "an" does not exclude a plurality. A single element or other unit may perform the functions of several entities or items recited in the claims. The fact that certain measures are recited in mutually different dependent claims does not mean that a combination of these measures cannot be used in an advantageous implementation.

[0209] In addition, any method according to an embodiment of the present disclosure can be implemented in a computer program having code means that, when executed by a processing device, causes the processing device to perform the steps of the method. The computer program is included in a computer-readable medium of a computer program product. The computer-readable medium can basically include any memory, such as ROM (Read-Only Memory), PROM (Programmable Read-Only Memory), EPROM (Erasable PROM), flash memory, EEPROM (Electrically Erasable PROM), or a hard disk drive.

[0210] Furthermore, those skilled in the art will recognize that embodiments of the encoding device 100 include necessary communication capabilities in the form of, for example, functions, means, units, elements, etc., for implementing the solution. Examples of other such means, units, elements, and functions are: a processor, a memory, a buffer, a control logic, an encoder, a decoder, a rate matcher, a down-rate matcher, a mapping unit, a multiplier, a decision unit, a selection unit, a switch, an interleaver, a deinterleaver, a modulator, a demodulator, an input, an output, an antenna, an amplifier, a receiver unit, a transmitter unit, a DSP, a trellis-coded modulation (TCM) encoder, a TCM decoder, a power supply unit, a feed, a communication interface, a communication protocol, etc., which are appropriately arranged together to implement the solution.

[0211] In particular, the processor of the encoding device 100 may include, for example, one or more instances of a central processing unit (CPU), a processing unit, a processing circuit, a processor, an application specific integrated circuit (ASIC), a microprocessor, or other processing logic that can interpret and execute instructions. Therefore, the expression "processor" may refer to a processing circuit that includes multiple processing circuits, for example, any, some, or all of the processing circuits described above. The processing circuit may also perform data processing functions for inputting, outputting, and processing data, including data buffering and device control functions, such as call processing control, user interface control, etc.

[0212] Finally, it should be understood that the present disclosure is not limited to the above-described embodiments, but also relates to and includes all embodiments within the scope of protection of the appended independent claims.

Claims

1. An encoding device (100), characterized in that Used for: A stream of data symbols (101) is encoded using a spatially coupled code (102), At least one generalized error location GEL code is used as a component code of the spatial coupling code (102), and the spatial coupling code (102) shares symbols with a previously formed codeword and a subsequently formed codeword.

2. The encoding device (100) according to claim 1, characterized in that Also used for: mapping the stream of data symbols (101) into a sequence of symbol blocks, wherein each symbol block includes L symbols, L being a positive integer, and the number of data symbols (101) in the L symbols in each symbol block is less than or equal to L; and Use the first block (B i ) and one or more symbols of the second block (B j ) to form multiple code words of the at least one GEL code.

3. The encoding device (100) according to claim 2, characterized in that in: Each codeword of the at least one GEL code includes an information symbol and a check symbol, and The code length of each codeword of the at least one GEL code is less than or equal to M, where M is a positive integer.

4. The encoding device (100) according to claim 3, characterized in that Also used for: By using the first block (B i ) and the one or more second blocks (B j ), generating the check symbol of each codeword of the at least one GEL code; and The check symbol of each code word of the at least one GEL code is stored in the first block (B i ), wherein the first block (B i ) in which the total number of check symbols and data symbols (101) generated is equal to L.

5. The encoding device (100) according to claim 3 or 4, characterized in that in, The first block (B i ) and the one or more second blocks (B j ) is represented as an n×N matrix, where n and N are positive integers.

6. The encoding device (100) according to claim 5, characterized in that in, The multiple codewords of each GEL code are represented as a matrix with n rows and the number of columns being less than or equal to N.

7. The encoding device (100) according to claim 5 or 6, characterized in that in, A sum of lengths of all codewords of the plurality of codewords of the at least one GEL code is equal to n*N.

8. The encoding device (100) according to any one of claims 2 to 7, characterized in that in: The encoding device (100) is further configured to convert each first block (B i ) is divided into s m×m matrices, where each first block (B i ) is represented as a (s*m)×m matrix, where s and m are positive integers.

9. The encoding device (100) according to claim 8, characterized in that in, The plurality of codewords of the at least one GEL code are represented as a (2*s*m)×m matrix.

10. The encoding device (100) according to claim 8 or 9, characterized in that The method is further configured to obtain at least one codeword of the plurality of codewords of the at least one GEL code based on the following m×m matrix: (if(i,1),p(i,1)),(if(i,2),p(i,2)),…,(if(i,s),p(i,s)),(i,1),(i,2),…,(i,s), where f(x,y) is an integer-valued function and p(x,y) is a permutation function of any x, where, for any positive integer i, f(i,1)>f(i,2)>…>f(i,s)>0, and the range of the integer-valued function f(x,y) is {1,2,…,s}.

11. The encoding device (100) according to any one of claims 2 to 10, characterized in that in, The first block (B i ) is used as an information symbol or a check symbol of each code word of the at least one GEL code.

12. A decoding device (200), characterized in that Used for: Using a spatially coupled code (102), a sequence of coded symbol blocks (201) is decoded. At least one generalized error location GEL code is used as a component code of the spatial coupling code (102), and the spatial coupling code (102) shares symbols with a previously formed codeword and a subsequently formed codeword.

13. A coding method (1100), characterized in that include: A stream of data symbols (101) is encoded using a spatially coupled code (102), At least one generalized error location GEL code is used as a component code of the spatial coupling code (102), and the spatial coupling code (102) shares symbols with a previously formed codeword and a subsequently formed codeword.

14. A decoding method (1200), characterized in that: include: Using a spatially coupled code (102), a sequence of coded symbol blocks (201) is decoded. At least one generalized error location GEL code is used as a component code of the spatial coupling code (102), and the spatial coupling code (102) shares symbols with a previously formed codeword and a subsequently formed codeword.

15. A computer program product, characterized in that The method comprises a program code which, when run on a processor, performs the method (1100, 1200) according to claim 13 or 14.

Citation Information

Patent Citations

  • Grouping space coupling low density parity check coding method

    CN103731160A