CN109245777B - Ladder code decoding method and ladder code decoding device - Google Patents

Ladder code decoding method and ladder code decoding device Download PDF

Info

Publication number
CN109245777B
CN109245777B CN201710555986.2A CN201710555986A CN109245777B CN 109245777 B CN109245777 B CN 109245777B CN 201710555986 A CN201710555986 A CN 201710555986A CN 109245777 B CN109245777 B CN 109245777B
Authority
CN
China
Prior art keywords
sub
code
decoded
decoding
code blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710555986.2A
Other languages
Chinese (zh)
Other versions
CN109245777A (en
Inventor
殷俊杰
蔡轶
王卫明
孙二坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201710555986.2A priority Critical patent/CN109245777B/en
Priority to PCT/CN2018/104349 priority patent/WO2019011348A1/en
Publication of CN109245777A publication Critical patent/CN109245777A/en
Application granted granted Critical
Publication of CN109245777B publication Critical patent/CN109245777B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2939Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using convolutional codes

Abstract

The invention discloses a step code decoding method and a step code decoding device, wherein the method comprises the following steps: step 1, obtaining the length L of a sliding window, and continuously obtaining L sub code blocks as sub code blocks to be decoded in the sliding window according to the sequence of receiving time from front to back, wherein L is a positive integer; step 2, grouping the sub-code blocks to be decoded, then respectively decoding, updating the sub-code blocks to be decoded according to decoding results to obtain updated sub-code blocks, and outputting the first M updated sub-code blocks as decoding results, wherein M is smaller than L; and 3, sliding the sliding window backwards by the length of the M sub-code blocks, recombining the rest updated sub-code blocks in the sliding window and the sub-code blocks slid into the sliding window into the sub-code blocks to be decoded in the sliding window, and returning to the step 2 until the decoding results of all the sub-code blocks are output. The invention reduces the complexity of hardware circuit and reduces the time delay of decoding.

Description

Ladder code decoding method and ladder code decoding device
Technical Field
The present invention relates to the field of optical communication FEC technologies, and in particular, to a step code decoding method and a step code decoding device.
Background
Forward Error Correction (FEC) technology is widely applied to optical communication systems at present, so as to achieve the purposes of improving the Error rate performance of the system and improving the reliability of system communication. The ladder code is a novel FEC code type, the concept of convolutional code and product code is combined, the encoding mode of the ladder code is similar to that of the product code, meanwhile, strong correlation exists between any two adjacent sub-code blocks, namely, the two adjacent ladder code sub-code blocks can be combined into a complete bch code block unit, and thus the whole ladder code can be regarded as a chain structure with the length approaching to infinity. In the decoding mode of the ladder code, a decoding process needs to be repeated for many times when decoding output of one ladder code sub-code block is completed, and the number of decoding times needs to be increased to obtain higher decoding performance, so that a hardware circuit is high in implementation complexity, high in power consumption, large in decoding delay, and poor in performance after decoding.
Disclosure of Invention
The invention provides a step code decoding method and a step code decoding device, which are used for solving the problems of high complexity, high power consumption, large decoding delay and poor decoding performance of a hardware circuit for FEC code decoding in the prior art.
According to an aspect of the present invention, there is provided a staircase code decoding method, including:
step 1, obtaining the length L of a sliding window, and continuously obtaining L sub code blocks in the received sub code blocks from the front to the back according to the sequence of the receiving time as sub code blocks to be decoded in the sliding window, wherein L is a positive integer;
step 2, grouping the sub-code blocks to be decoded, then respectively decoding, updating the sub-code blocks to be decoded according to decoding results, obtaining updated sub-code blocks, and outputting the first M updated sub-code blocks as decoding results, wherein M is smaller than L;
and 3, sliding the sliding window backwards by the length of the M sub-code blocks according to the receiving time, recombining the rest updated sub-code blocks in the sliding window and the sub-code blocks slid into the sliding window into the sub-code blocks to be decoded in the sliding window, and returning to the step 2 until the decoding results of all the sub-code blocks are output.
The present invention also provides a ladder code decoding apparatus, comprising:
a to-be-decoded sub-code block acquisition module, configured to acquire a length L of a sliding window, and continuously acquire, in the received sub-code blocks, L sub-code blocks as to-be-decoded sub-code blocks in the sliding window according to a sequence from front to back of receiving time, where L is a positive integer;
a decoding result output module, configured to group the sub-code blocks to be decoded and then decode the grouped sub-code blocks, update the sub-code blocks to be decoded according to a decoding result to obtain updated sub-code blocks, and output the first M updated sub-code blocks as decoding results, where M is smaller than L;
and the sliding module is used for sliding the sliding window backwards by the length of the M sub-code blocks according to the receiving time, recombining the rest updated sub-code blocks in the sliding window and the sub-code blocks slid into the sliding window into the sub-code blocks to be decoded in the sliding window, and inputting the sub-code blocks to be decoded into the decoding result output module.
The step code decoding method provided by the invention is characterized in that the sub-code blocks to be decoded in the sliding window are grouped and then decoded respectively, the sub-code blocks to be decoded are updated according to the decoding result to obtain updated sub-code blocks, M updated sub-code blocks are output as the decoding result, and the step is repeated after the sliding penetrates through the M sub-code blocks and then slides backwards. The updated sub-code blocks are respectively decoded and output after grouping, grouping and decoding steps are repeated after the sliding window slides, the updated sub-code blocks are sequentially output as decoding results, and only a few iterative decoding processes are needed when decoding output of one ladder code sub-code block is completed, so that the implementation complexity of a hardware circuit is greatly reduced, the decoding time delay is reduced, and the decoding performance is improved.
The foregoing description is only an overview of the technical solutions of the present invention, and the embodiments of the present invention are described below in order to make the technical means of the present invention more clearly understood and to make the above and other objects, features, and advantages of the present invention more clearly understandable.
Drawings
Various other advantages and benefits will become apparent to those of ordinary skill in the art upon reading the following detailed description of the preferred embodiments. The drawings are only for purposes of illustrating the preferred embodiments and are not to be construed as limiting the invention. Also, like reference numerals are used to refer to like parts throughout the drawings. In the drawings:
FIG. 1 is a flowchart of a staircase code decoding method according to embodiment 1 of the present invention;
FIG. 2 is a flowchart of block decoding according to the staircase decoding method in embodiment 2 of the present invention;
FIG. 3 is a flowchart of a staircase code decoding method according to embodiment 3 of the present invention;
FIG. 4 is a flowchart of an initial decoding method for ladder code hard decoding according to embodiment 4 of the present invention;
FIG. 5 is a flowchart of a decoding method of ladder code hard decoding according to embodiment 4 of the present invention;
FIG. 6 is a flowchart of an initial decoding method of ladder code soft decoding according to embodiment 5 of the present invention;
FIG. 7 is a flowchart of a decoding method of soft decoding of ladder codes in embodiment 5 of the present invention;
FIG. 8 is a flowchart of an initial decoding method for soft-hard combining decoding of ladder codes according to embodiment 6 of the present invention;
FIG. 9 is a flowchart of a decoding method of soft-hard combining decoding of ladder codes according to embodiment 6 of the present invention;
fig. 10 is a schematic structural diagram of a ladder code decoding apparatus in embodiment 7 of the method of the present invention.
Detailed Description
Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
Fig. 1 is a flowchart of a ladder code decoding method in embodiment 1 of the method of the present invention, and the ladder code decoding method in embodiment 1 of the method of the present invention shown in fig. 1 includes:
step 1, obtaining the length L of a sliding window, and continuously obtaining L sub code blocks in the received sub code blocks from the front to the back according to the sequence of the receiving time, wherein the L is a positive integer and is used as the sub code block to be decoded in the sliding window.
Specifically, the sliding window is used for sliding back and forth in the sub code block to be decoded in the decoding process of the ladder code, and assists a certain decoding method to decode. The length L of the sliding window may be preset according to the requirement. In the method provided by this embodiment, L sub-code blocks are continuously obtained in the order from the front to the back of the receiving time as the sub-code blocks to be decoded in the sliding window. The L can be set to a positive integer greater than 2 to ensure complete completion of the method.
And 2, grouping the sub-code blocks to be decoded, decoding the grouped sub-code blocks respectively, updating the sub-code blocks to be decoded according to decoding results, acquiring updated sub-code blocks, and outputting the first M updated sub-code blocks as decoding results, wherein M is smaller than L.
Specifically, the sub-code blocks to be decoded in the sliding window are grouped and then decoded respectively, and since the decoding is performed respectively, the sub-code blocks to be decoded in each group can be decoded respectively according to a certain sequence, or can be decoded simultaneously, but the decoding process between each group is not related.
And the output first M updated sub-code blocks are the updated sub-code blocks corresponding to the M to-be-decoded sub-code blocks received firstly in the sliding window according to the sequence of the receiving time from front to back. Since the first M updated sub-code blocks are directly output as the decoding result in this step, the M value should be set as small as possible on the premise of satisfying the requirement of the decoding rate and the expected accuracy requirement. The M may be set to a positive integer less than within 100.
And 3, sliding the sliding window backwards by the length of the M sub-code blocks according to the receiving time, recombining the rest updated sub-code blocks in the sliding window and the sub-code blocks slid into the sliding window into the sub-code blocks to be decoded in the sliding window, and returning to the step 2 until the decoding results of all the sub-code blocks are output.
Specifically, after the M updated sub-code blocks are output, the sliding window is slid backwards by the M sub-code blocks, the remaining updated sub-modules still located in the sliding window after sliding and the newly slid sub-code blocks are reused as the sub-code blocks to be decoded of the sliding window, the step 2 is returned to perform block decoding, and the M updated sub-code blocks are output again as decoding results until all the updated sub-code blocks corresponding to the sub-code blocks are output as decoding results, or the iterative decoding step is stopped at the position of the set sub-code block according to requirements.
The step code decoding method provided by the invention is characterized in that the sub-code blocks to be decoded in the sliding window are grouped and then are respectively decoded, the sub-code blocks to be decoded are updated according to the decoding result to obtain updated sub-code blocks, M updated sub-code blocks are output as the decoding result, and the sliding window is slid backwards to the M sub-code blocks, and then the steps are repeated. The updated sub-code blocks are respectively decoded and output after grouping, grouping and decoding steps are repeated after the sliding window slides, the updated sub-code blocks are sequentially output as decoding results, and only a few iterative decoding processes are needed when decoding output of one ladder code sub-code block is completed, so that the implementation complexity of a hardware circuit is greatly reduced, the decoding time delay is reduced, and the decoding performance is improved.
In one embodiment, since the sub-code blocks to be decoded in the sliding window need to be grouped, and due to the characteristics of the step code, the L is preferably even, so that the grouping in this embodiment includes grouping the sub-code blocks to be decoded two by two.
In one embodiment, M is preferably 1 to ensure the accuracy of the decoding result, i.e. 1 updated sub-code block is output as the decoding result each time, and the sliding window slides backward one sub-code block for iterative decoding.
Fig. 2 is a flowchart of block decoding in a ladder code decoding method in embodiment 2 of the method of the present invention, and the preferred steps of the ladder code decoding method in embodiment 2 of the method of the present invention shown in fig. 2, namely "decoding the grouped sub-code blocks to be decoded respectively, and updating the sub-code blocks to be decoded according to the decoding result" in embodiment 1 include:
and step 10, starting from the first sub-code block to be decoded, transposing the sub-code block to be decoded at an interval of one sub-code block to be decoded, and acquiring a transposed sub-code block to be decoded.
Specifically, according to the characteristics of the ladder code, when two groups are decoded, one of the sub-code blocks needs to be transposed.
And 20, splicing the transposed sub-code block to be decoded and the adjacent received sub-code block to be decoded, and grouping the spliced transposed sub-code block and the adjacent received sub-code block to be decoded to obtain a group to be decoded.
Specifically, in the obtained group to be decoded, the received sub-code block to be decoded is transposed, and the received sub-code block to be decoded is not transposed.
And step 30, respectively decoding the blocks to be decoded, updating the sub-code blocks to be decoded according to decoding results, and acquiring updated sub-code blocks.
Specifically, each group to be decoded is decoded row by row, and the decoding between each group to be decoded has no association, and the decoding order can be set arbitrarily or the decoding can be performed simultaneously according to the requirement. It should be noted that, in this embodiment, grouping and decoding the sub-code blocks to be decoded are mainly completed, where the grouping step may also be performed by grouping the sub-code blocks to be decoded according to the receiving time by using two adjacent sub-code blocks to be decoded as a group to obtain a group to be decoded, where one sub-code block to be decoded only belongs to one group to be decoded, and then performing subsequent decoding steps after transferring the sub-code block to be decoded that is received in advance in the group to be decoded.
In the step code decoding method provided in this embodiment, after grouping every two sub-code blocks to be decoded in the sliding window in the order from the front to the back of the receiving time, the sub-code blocks to be decoded are decoded and updated respectively. Because the sub code blocks to be decoded are grouped and then decoded respectively, the decoding rate of the ladder code is greatly improved.
In one embodiment, the separately decoding the groups to be decoded includes decoding with a linear block code when the sub-code blocks to be decoded in the groups to be decoded are hard-judged codes; otherwise, decoding is performed by using a soft decoding algorithm. The embodiment supports different decoding modes for different sub-code blocks to be decoded, and improves the application range of the step code decoding provided by the invention.
In one embodiment, the successively acquiring L sub-code blocks as the sub-code blocks to be decoded in the sliding window includes: when the acquired first sub-code block is the first received sub-code block in all the sub-code blocks; supplementing an all-zero code block into a first sub-code block to be decoded in the sliding window, and sliding an L-th sub-code block to be decoded in the sliding window out of the sliding window; the updating the sub-code blocks to be decoded according to the decoding result includes: and updating the sub code blocks to be decoded except the all-zero code block according to the decoding result. This embodiment provides that when the first received sub-code block to be decoded in the sliding window is the first received sub-code block in all the sub-code blocks, an all-zero code needs to be supplemented at the first position of the sliding window in order to decode the first sub-code block to be decoded. In this embodiment, by supplementing the all-zero code before the first sub-code block, the decoding problem after the first sub-code block is grouped is solved, and the application range of the ladder code provided by the present invention is improved.
Fig. 3 is a flowchart of a ladder code decoding method in embodiment 3 of the method of the present invention, and the ladder code decoding method in embodiment 3 of the method of the present invention shown in fig. 3 is a preferred step before step 1 in embodiment 1 of the present invention, and includes:
and 100, grouping two adjacent sub-code blocks as a group in sequence from the time when the first sub-code block is received to the time when the L-th sub-code block is received, and acquiring an initial group to be decoded, wherein one sub-code block only belongs to the one initial group to be decoded, and supplementing the all-zero code and grouping the sub-code blocks when the number of the received and decoded sub-code blocks is odd.
Specifically, before step 1 in embodiment 1 is started, in order to improve the decoding accuracy of the ladder code when the number of received sub-code blocks is not enough L, this embodiment groups the received sub-code blocks, complements the all-zero code into two groups when a first sub-code block is received, groups the first and second sub-code blocks into two groups when a second sub-code block is received, groups the all-zero code and the first code when a third sub-code block is received, groups the second and third codes, and so on.
In each initial group to be decoded, the sub-code blocks received first need to be transposed.
Step 200, decoding the initial group to be decoded, updating the sub-code blocks according to the decoding result, and returning to step 100 until the L-th sub-code block is received.
Specifically, after a first sub-code block is received and a first initial group to be decoded is formed by the first sub-code block and an all-zero code, the initial group to be decoded is decoded, and the first sub-code block is divided by updating according to the decoding result, and the all-zero code is not updated. And when a second sub-code block is received, forming an initial group to be decoded by using the updated first sub-code block and the received second sub-code block, decoding, updating the first sub-code block and the second sub-code block, and so on until the Lth sub-code block is received.
In the step code decoding method provided in this embodiment, before receiving L sub-code blocks of a preset sliding window, the received sub-code blocks are subjected to an initialized decoding process in a group of two, and through the initialized decoding process, the received sub-code blocks are subjected to complete iterative decoding before a subsequent decoding process starts, so that the decoding error rate of the step code provided by the present invention is reduced.
The following is an example of the initial decoding of the hard decoding, soft decoding, and soft-hard combining decoding of the present invention, and the normal decoding process of the hard decoding, soft decoding, and soft-hard combining decoding of the present invention, respectively.
Fig. 4 is a flowchart of an initialization decoding method for hard decoding of a ladder code in method embodiment 4 of the present invention, where L is 6 as an example, and a received ladder code is a code subjected to hard decision, a decoding process directly performs hard decoding of a linear block code, and the initialization decoding method for hard decoding of a ladder code in method embodiment 4 of the present invention shown in fig. 4 includes:
(1) when the 1 st sub-code block B is received1When is, pair [ BT 0,B1](where T is the transposed meaning) is decoded (shown by the solid arrow 1 in the left diagram of FIG. 4), and only B is updated1Information in the code block.
(2) When receiving the 2 nd sub-code block B2When is, pair [ BT 1,B2]Decoding is performed (indicated by the solid arrow 2 in the left diagram of fig. 4) and B is updated simultaneously1And B2Information in the code block.
(3) When receiving the 3 rd sub-code blockB3When is, pair [ BT 0,B1]And [ BT 2,B3]Decoding is performed (indicated by solid arrows 3, 4 in the left diagram of fig. 4) and B is updated simultaneously1、B2And B3Information in the code block.
(4) When the 4 th sub-code block B is received4When is, pair [ BT 1,B2]And [ BT 3,B4]Decoding is performed (indicated by solid arrows 5, 6 in the left diagram of fig. 4) and B is updated simultaneously1、B2、B3And B4Information in the code block.
(5) When the 5 th sub-code block B is received5When is, pair [ BT 0,B1]、[BT 2,B3]And [ BT 4,B5]Decoding (indicated by solid arrows 7, 8, 9 in the left diagram of fig. 4) and updating B simultaneously1、B2、B3、B4And B5Information in the code block.
If arithmetic sub-code block B0There are already 6 sub-code blocks in the sliding window (indicated by the hatched portion in the left diagram of fig. 4), but since the sub-code block B0The code block is a full 0 sub-code block appointed by the ladder code, and is not a true receiving code block, so that the initial decoding is finished, and the decoding output is not carried out. The next new received code block is B6For the sub-code blocks, the sliding window will be slid rightward by the length of 1 code block (indicated by the hatched portion in the right diagram of fig. 4). The 6 sub-code blocks included in the new position of the sliding window are respectively B1、B2、B3、B4、B5And B6. In practical implementation, the sliding window corresponds to a buffer device in the circuit. The decoding method of the step code hard decoding in embodiment 4 of the method of the present invention is described below with reference to fig. 5.
Fig. 5 is a flowchart of a decoding method for hard decoding of a ladder code in method embodiment 4 of the present invention, taking L ═ 6 as an example, and if the received ladder code is a code subjected to hard decision, the decoding process directly performs hard decoding of a linear block code, and as shown in fig. 5, the decoding method for hard decoding of a ladder code in method embodiment 4 of the present invention includes:
(1) the 6 sub-code blocks (shown by the diagonal line part in the left diagram of fig. 5) in the sliding window are divided into 3 groups by two adjacent bit units: [ B ]T 1,B2]、[BT 3,B4]And [ BT 5,B6](where T is transposed meaning); for convenience of the following description, these groups are respectively referred to as: b (1) ═ BT 1,B2]、B(2)=[BT 3,B4]、B(3)=[BT 5,B6]。
(2) Decoding the B (1), B (2) and B (3) code block units row by row respectively (shown by dotted arrows 1, 2 and 3 in the left figure of FIG. 5); simultaneously updating the information of two sub-code blocks in the code blocks B (1), B (2) and B (3), and then outputting B in B (1)1
B1、B2、B3、B4And B5After undergoing the process of initial decoding, the decoding is performed for several times, thus outputting B1Then it goes through 3 iterative decoding (1 complete iterative decoding includes 1 horizontal and 1 vertical decoding).
(3) The sliding window slides backwards for 1 code block length, and then 6 ladder code sub-code blocks included in the new position of the sliding window are respectively: b is2、B3、B4、B5、B6And B7(shown by the hatched portion in the right diagram of FIG. 5); wherein B is2、B3、B4、B5、B6For code block data updated after decoding in the last sliding window,B7is the data newly added to the sliding window. These 6 sub-code blocks are divided into 3 groups in two adjacent bit units: b (1) ═ BT 2,B3]、B(2)=[BT 4,B5]、B(3)=[BT 6,B7];
(4) Decoding the B (1), B (2) and B (3) code-group units respectively (indicated by dotted arrows 4, 5 and 6 in the right diagram of fig. 5); updating information in B (1), B (2) and B (3) code blocks simultaneously, and outputting B in B (1)2(ii) a B thus outputted2Also go through 3 iterative decoding.
(5) Repeating the operation in the step (3) and the step (4) to further complete the operation B3、B4… and all subsequent decoded outputs of the received ladder code sub-code blocks, all of which have undergone 3 iterative decoding.
In this embodiment, each time decoding output of one ladder code sub-code block is completed, only 3 times of code block iterative decoding processes need to be performed. Therefore, the complexity of hardware circuit implementation is greatly reduced; meanwhile, the decoding time delay is greatly reduced, and the metro application of the network is facilitated; in addition, the performance is greatly improved.
Fig. 6 is a flowchart of an initial decoding method for soft decoding of ladder codes in embodiment 5 of the method of the present invention, where L is 4, and if soft information that has not been hard determined is received, the decoding method may select various soft decoding algorithms. As shown in fig. 6, the initial decoding method for soft decoding of ladder codes in embodiment 5 of the method of the present invention includes:
(1) when the 1 st sub-code block B is received1When is, pair [ BT 0,B1](where T is the transposed meaning) is soft decoded (shown by the solid arrow 1 in the left diagram of FIG. 6), and only B is updated1Soft information in a code block;
(2) when receiving the 2 nd sub-code block B2When is, pair [ BT 1,B2]Soft decoding (shown by the solid arrow 2 in the left diagram of fig. 6) is performed while updating B1And B2Soft information in a code block;
(3) when the 3 rd sub-code block B is received3When is, pair [ BT 0,B1]And [ BT 2,B3]Soft decoding (shown by solid arrows 3, 4 in the left diagram of fig. 6) is performed and B is updated simultaneously1、B2And B3Soft information in a code block;
if arithmetic sub-code block B0There are already 4 sub-code blocks in the sliding window (indicated by the hatched portion in the left diagram of fig. 6), but since sub-code block B0The code block is a full 0 sub-code block appointed by the ladder code, and is not a true receiving code block, so that the initial decoding is finished, and the decoding output is not carried out. The next new received code block is B4For the subcode block, the sliding window will be slid rightward by the length of 1 code block (indicated by the hatched portion in the right diagram of fig. 6). The 4 sub-code blocks included in the new position of the sliding window are respectively B1、B2、B3And B4. In practical implementation, the sliding window corresponds to a buffer device in the circuit.
Fig. 7 is a flowchart of a decoding method of ladder code soft decoding in embodiment 5 of the method of the present invention, where soft information without hard decision is received, and the decoding method can select various soft decoding algorithms. The decoding method for soft decoding of ladder codes in embodiment 5 of the method of the present invention as shown in fig. 7 includes:
(1) the 4 sub-code blocks (shown by the hatched portion in the left diagram of fig. 7) in the sliding window are divided into 2 groups by two adjacent bit units: [ B ]T 1,B2]、[BT 3,B4](where T is transposed meaning); for convenience of the following description, these groups are respectively referred to as: b (1) ═ BT 1,B2]、B(2)=[BT 3,B4]。
(2) Soft decoding is performed on the B (1) and B (2) code block units row by row respectively (indicated by dashed arrows 1 and 2 in the left diagram of fig. 7); updating information of two sub-code blocks in B (1) and B (2) code blocks simultaneously, and then updating B in B (1)1Outputting the soft information after hard judgment;
B1、B2、B3、B4b which has undergone several decoding after undergoing the process of initializing soft decoding and is output1Then it goes through 2 iterative decodes (1 complete iterative decoding includes 1 horizontal and 1 vertical decoding).
(3) The sliding window slides backwards for 1 code block length, and then 4 ladder code sub-code blocks included in the new position of the sliding window are respectively: b is2、B3、B4、B5(shown by the hatched portion in the right diagram of FIG. 7); wherein B is2、B3、B4For code block data updated after decoding in the last sliding window, B5Is the data newly added to the sliding window. These 4 sub-code blocks are grouped into 2 groups in two adjacent bit units: b (1) ═ BT 2,B3]、B(2)=[BT 4,B5]。
(4) Soft decoding is performed on the B (1) and B (2) code block units (indicated by dotted arrows 3 and 4 in the right diagram of fig. 7); updating soft information in B (1) and B (2) code blocks simultaneously, and updating B in B (1)2Outputting the soft information after hard judgment; b of output2Again, 2 iterative decodes were experienced.
(5) Repeating the operation in the step (3) and the step (4) to further complete the operation B3、B4… and all subsequent decoded outputs of the received ladder code sub-code blocks, all of which have undergone 2 iterative decoding.
Fig. 8 is a flowchart of an initial decoding method for soft-hard combined decoding of a ladder code in method embodiment 6 of the present invention, where L is 6, and if soft information that has not undergone hard decision is received in this embodiment, the decoding method uses a hybrid decoding method combining a hard decoding algorithm and a soft decoding algorithm, and as shown in fig. 8, the initial decoding method for soft-hard combined decoding of a ladder code in method embodiment 6 of the present invention includes:
(1) when the 1 st sub-code block B is received1When is, pair [ BT 0,B1](where T is the transposed meaning) is soft-decoded (shown by the solid arrow 1 in the left diagram of FIG. 8), and only B is updated1Soft information in the code block.
(2) When receiving the 2 nd sub-code block B2When is, pair [ BT 1,B2]Soft decoding (shown by the solid arrow 2 in the left diagram of fig. 8) is performed while updating B1And B2Soft information in the code block.
(3) When the 3 rd sub-code block B is received3When is, pair [ BT 0,B1]And [ BT 2,B3]Soft decoding (shown by solid arrows 3, 4 in the left diagram of fig. 8) is performed and B is updated simultaneously1、B2And B3Soft information in the code block.
(4) When the 4 th sub-code block B is received4When is, pair [ BT 1,B2]And [ BT 3,B4]Soft decoding (shown by solid arrows 5, 6 in the left diagram of fig. 8) is performed and B is updated simultaneously1、B2、B3And B4Soft information in the code block.
(5) When the 5 th sub-code block B is received5When is, pair [ BT 0,B1]、[BT 2,B3]And [ BT 4,B5]Soft decoding (shown by solid arrows 7, 8, 9 in the left diagram of fig. 8) is performed and B is updated simultaneously1、B2、B3、B4And B5Soft information in the code block.
Arithmetic sub-code block B0There are already 6 sub-code blocks in the sliding window (indicated by the hatched portion in the left diagram of fig. 8), but since the sub-code block B0The code block is a full 0 sub-code block appointed by the ladder code, and is not a true receiving code block, so that the initial decoding is finished, and the decoding output is not carried out. The next new received code block is B6The sub-code blocks, in which case the sliding window will be slid rightward by the length of 1 code block (indicated by the hatched portion in the right diagram of fig. 8). At this time, the 6 sub-code blocks included in the new position of the sliding window are respectively B1、B2、B3、B4、B5And B6. In practical implementation, the sliding window corresponds to a buffer device in the circuit.
Fig. 9 is a flowchart of a decoding method of soft-hard combined decoding of a ladder code in method embodiment 6 of the present invention, where L is 6, and if soft information that has not undergone hard decision is received in this embodiment, the decoding method is a hybrid decoding method combining a hard decoding algorithm and a soft decoding algorithm, and as shown in fig. 9, the decoding method of soft-hard combined decoding of a ladder code in method embodiment 6 of the present invention includes:
(1) the 6 sub-code blocks (shown by the hatched portion in the left diagram of fig. 9) in the sliding window are divided into 2 groups by two adjacent bit units: [ B ]T 1,B2]、[BT 3,B4]、[BT 5,B6](where T is transposed meaning); for convenience of the following description, these groups are respectively referred to as: b (1) ═ BT 1,B2]、B(2)=[BT 3,B4]、B(3)=[BT 5,B6]。
(2) The data in the B (1) code block unit is hard-judged first, and then hard-decoded line by line respectively (indicated by a thick dotted arrow 1 in the left diagram of fig. 9), and the hard information of two sub-code blocks in the B (1) code block is updated at the same time; soft decoding is performed on the B (2) and B (3) code group units line by line respectively (indicated by thin dotted arrows 2 and 3 in the left diagram of fig. 9), and information of two sub code blocks in the B (1) and B (2) code groups is updated simultaneously; then outputs the hard information B in B (1)1
(3) The sliding window slides backwards for 1 code block length, and then 6 ladder code sub-code blocks included in the new position of the sliding window are respectively: b is2、B3、B4、B5、B6、B7(shown by the hatched portion in the right diagram of FIG. 9); wherein B is2、B3、B4、B5、B6For code block data updated after decoding in the last sliding window, B7Is the data newly added to the sliding window. These 6 sub-code blocks are divided into 3 groups in two adjacent bit units: b (1) ═ BT 2,B3]、B(2)=[BT 4,B5]、B(3)=[BT 6,B7]。
(4) The data in the B (1) code block unit is hard-judged first, and then hard-decoded line by line respectively (indicated by a thick dotted arrow 4 in the right diagram of fig. 9), and the hard information of two sub-code blocks in the B (1) code block is updated at the same time; soft decoding is performed on the B (2) and B (3) code block units line by line respectively (indicated by thin dotted arrows 5 and 6 in the right diagram of fig. 9), and two sub-blocks in the B (2) and B (3) code blocks are updated simultaneouslyInformation of the code block; then outputs the hard information B in B (1)2
(5) Repeating the operation in the step (3) and the step (4) to further complete the operation B3、B4… and all subsequent decoded outputs of the received ladder code sub-code blocks, all of which have undergone 3 iterative decoding.
Fig. 10 is a schematic structural diagram of a ladder code decoding apparatus according to embodiment 7 of the method of the present invention, and the ladder code decoding apparatus according to embodiment 7 of the method of the present invention shown in fig. 10 includes:
the to-be-decoded initial group obtaining module 100 is configured to, from the time when a first sub-code block is received to the time when an lth sub-code block is received, sequentially group two adjacent sub-code blocks as a group to obtain an initial group to be decoded, where one sub-code block only belongs to the one initial group to be decoded, and when the number of the received decoded sub-code blocks is an odd number, supplement the all-zero code and group the sub-code.
And the to-be-decoded initial group decoding module 200 is configured to decode the to-be-decoded initial group, update the sub code blocks according to the decoding result, and return the sub code blocks to the to-be-decoded initial group acquisition module until the lth sub code block is received.
A to-be-decoded sub-code block obtaining module 300, configured to obtain a length L of a sliding window, and continuously obtain, in the received sub-code blocks, L sub-code blocks as to-be-decoded sub-code blocks in the sliding window according to a sequence from front to back of a receiving time, where L is a positive integer; preferably, L is an even number. The method is specifically used when the obtained first sub-code block is the first received sub-code block of all the sub-code blocks; supplementing an all-zero code block into the first sub-code block to be decoded in the sliding window, and sliding the L-th sub-code block to be decoded in the sliding window out of the sliding window.
A decoding result output module 400, configured to group the sub-code blocks to be decoded and then decode the grouped sub-code blocks, update the sub-code blocks to be decoded according to a decoding result to obtain updated sub-code blocks, and output the first M updated sub-code blocks as decoding results, where M is smaller than L; preferably, M is 1. The device comprises a grouping unit and a decoding unit, wherein the grouping unit is used for transposing the sub-code blocks to be decoded by taking one as an interval from the first sub-code block to be decoded to obtain the transposed sub-code block to be decoded; grouping the transposed sub-code block to be decoded and the adjacent received sub-code block to be decoded as a group to obtain a group to be decoded; the decoding unit is used for respectively decoding the to-be-decoded blocks, updating the to-be-decoded sub-code blocks according to decoding results, acquiring updated sub-code blocks, and specifically, when the to-be-decoded sub-code blocks are hard-judged codes, decoding by using linear block codes; otherwise, decoding is performed by using a soft decoding algorithm. And is specifically configured to update the sub-code blocks to be decoded except the all-zero code block according to the decoding result.
A sliding module 500, configured to slide the sliding window backward by the length of the M sub-code blocks according to the receiving time, recombine the remaining updated sub-code blocks in the sliding window and the sub-code blocks slid into the sliding window into the sub-code blocks to be decoded in the sliding window, and input the sub-code blocks to be decoded into the decoding result output module 400.
The ladder code decoding device provided by the invention respectively decodes the sub-code blocks to be decoded in the sliding window after grouping, updates the sub-code blocks to be decoded according to the decoding result to obtain updated sub-code blocks, outputs M updated sub-code blocks as the decoding result, slides the M sub-code blocks backwards by the sliding penetration, and repeats the steps. The updated sub-code blocks are respectively decoded and output after grouping, grouping and decoding steps are repeated after the sliding window slides, the updated sub-code blocks are sequentially output as decoding results, and only a few iterative decoding processes are needed when decoding output of one ladder code sub-code block is completed, so that the implementation complexity of a hardware circuit is greatly reduced, the decoding time delay is reduced, and the decoding performance is improved.
Those skilled in the art will appreciate that all or part of the steps in the methods of the above embodiments may be implemented by associated hardware instructed by a program, which may be stored in a computer-readable storage medium, and the storage medium may include: ROM, RAM, magnetic or optical disks, and the like.
In short, the above description is only a preferred embodiment of the present invention, and is not intended to limit the scope of the present invention. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.

Claims (8)

1. A method for decoding a ladder code, the method comprising the steps of:
step 1, obtaining the length L of a sliding window, and continuously obtaining L sub-code blocks in the received sub-code blocks as sub-code blocks to be decoded in the sliding window according to the sequence of receiving time from front to back, wherein L is a positive integer greater than or equal to 4 and is an even number;
step 2, grouping the sub-code blocks to be decoded, then respectively decoding, updating the sub-code blocks to be decoded according to decoding results, obtaining updated sub-code blocks, and outputting the first M updated sub-code blocks as decoding results, wherein M is smaller than L;
step 3, sliding the sliding window backwards by the length of the M sub-code blocks according to the receiving time, recombining the rest updated sub-code blocks in the sliding window and the sub-code blocks slid into the sliding window into the sub-code blocks to be decoded in the sliding window, and returning to the step 2 until the decoding results of all the sub-code blocks are output;
the grouping the sub-code blocks to be decoded and then respectively decoding the sub-code blocks, and updating the sub-code blocks to be decoded according to decoding results comprises the following steps:
starting from the first sub-code block to be decoded, transposing the sub-code block to be decoded at intervals to obtain a transposed sub-code block to be decoded;
splicing the transposed sub-code block to be decoded and the adjacent received sub-code block to be decoded, and grouping the spliced transposed sub-code block to be decoded into a group to obtain a group to be decoded;
and respectively decoding the groups to be decoded, updating the sub-code blocks to be decoded according to decoding results, and acquiring updated sub-code blocks.
2. The staircase code decoding method of claim 1 wherein: m is 1.
3. The ladder code decoding method of claim 1, wherein said separately decoding the groups to be decoded comprises:
when the sub-code blocks to be decoded in the code blocks to be decoded are codes subjected to hard judgment, decoding by utilizing a linear block code; if not, then,
decoding is performed using a soft decoding algorithm.
4. The staircase code decoding method of claim 1 wherein said successively obtaining L of said sub-code blocks as sub-code blocks to be decoded in said sliding window comprises:
when the acquired first sub-code block is the first received sub-code block in all the sub-code blocks;
supplementing an all-zero code block into a first sub-code block to be decoded in the sliding window, and sliding an L-th sub-code block to be decoded in the sliding window out of the sliding window;
the updating the sub-code blocks to be decoded according to the decoding result includes:
and updating the sub code blocks to be decoded except the all-zero code block according to the decoding result.
5. The staircase code decoding method of claim 4 wherein, prior to step 1, the method further comprises:
step 100, from the time when the first sub-code block is received to the time when the lth sub-code block is received, grouping two adjacent sub-code blocks as a group in sequence to obtain an initial group to be decoded, wherein one sub-code block only belongs to the one initial group to be decoded, and supplementing the all-zero code and grouping the sub-code blocks when the number of the received decoded sub-code blocks is odd;
step 200, decoding the initial group to be decoded, updating the sub-code blocks according to the decoding result, and returning to step 100 until the L-th sub-code block is received.
6. A ladder code decoding apparatus, comprising:
the decoding method comprises the steps that a to-be-decoded sub-code block acquisition module is used for acquiring the length L of a sliding window, and continuously acquiring L sub-code blocks in the received sub-code blocks as to-be-decoded sub-code blocks in the sliding window according to the sequence of receiving time from front to back, wherein L is a positive integer greater than or equal to 4 and is an even number;
a decoding result output module, configured to group the sub-code blocks to be decoded and then decode the grouped sub-code blocks, update the sub-code blocks to be decoded according to a decoding result, obtain updated sub-code blocks, and output the first M updated sub-code blocks as decoding results, where M is smaller than L;
a sliding module, configured to slide the sliding window backward by the length of M sub-code blocks according to the receiving time, recombine the remaining updated sub-code blocks in the sliding window and the sub-code blocks slid into the sliding window into the sub-code blocks to be decoded in the sliding window, and input the sub-code blocks to be decoded into the decoding result output module;
the decoding result output module comprises a grouping unit and a decoding unit, wherein the grouping unit is used for transposing the sub-code blocks to be decoded by taking one as an interval from the first sub-code block to be decoded to obtain the transposed sub-code block to be decoded; splicing the transposed sub-code block to be decoded and the adjacent received sub-code block to be decoded, and grouping the spliced transposed sub-code block to be decoded into a group to obtain a group to be decoded; and the decoding unit is used for respectively decoding the groups to be decoded, updating the sub-code blocks to be decoded according to decoding results and acquiring updated sub-code blocks.
7. The ladder code decoding device as set forth in claim 6, wherein: m is the number of 1, and M is,
the decoding unit is specifically configured to perform decoding by using a linear block code when the sub-code block to be decoded is a hard code; otherwise, decoding by using a soft decoding algorithm;
the to-be-decoded sub-code block acquiring module is specifically configured to, when an acquired first sub-code block is the first received sub-code block of all the sub-code blocks; supplementing an all-zero code block into a first sub-code block to be decoded in the sliding window, and sliding an L-th sub-code block to be decoded in the sliding window out of the sliding window; the decoding result output module is specifically configured to update the sub code blocks to be decoded, except the all-zero code block, according to a decoding result.
8. The ladder code decoding device as set forth in claim 6, further comprising:
the decoding-waiting initial group obtaining module is configured to, starting from the reception of the first sub-code block to the reception of the lth sub-code block, sequentially group two adjacent sub-code blocks as a group to obtain a decoding-waiting initial group, where one sub-code block only belongs to the one decoding-waiting initial group, and when the number of received decoded sub-code blocks is odd, perform grouping on the complement all-zero code and the sub-code block;
and the decoding module of the initial group to be decoded is used for decoding the initial group to be decoded, updating the sub-code blocks according to the decoding result and returning the sub-code blocks to the acquisition module of the initial group to be decoded until the L-th sub-code block is received.
CN201710555986.2A 2017-07-10 2017-07-10 Ladder code decoding method and ladder code decoding device Active CN109245777B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710555986.2A CN109245777B (en) 2017-07-10 2017-07-10 Ladder code decoding method and ladder code decoding device
PCT/CN2018/104349 WO2019011348A1 (en) 2017-07-10 2018-09-06 Staircase code decoding method and staircase code decoding apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710555986.2A CN109245777B (en) 2017-07-10 2017-07-10 Ladder code decoding method and ladder code decoding device

Publications (2)

Publication Number Publication Date
CN109245777A CN109245777A (en) 2019-01-18
CN109245777B true CN109245777B (en) 2021-11-12

Family

ID=65001051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710555986.2A Active CN109245777B (en) 2017-07-10 2017-07-10 Ladder code decoding method and ladder code decoding device

Country Status (2)

Country Link
CN (1) CN109245777B (en)
WO (1) WO2019011348A1 (en)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8522116B2 (en) * 2010-08-04 2013-08-27 Marvell Israel (M.I.S.L.) Ltd. Systems and methods for performing forward error correction
CN103166649B (en) * 2011-12-19 2016-06-15 国际商业机器公司 For method, device and the decoder of decode cycle code
CN102938647B (en) * 2012-11-20 2015-09-30 华为技术有限公司 Change-over circuit and chip
US9325351B2 (en) * 2013-03-13 2016-04-26 Mediatek Singapore Pte. Ltd. Adaptive multi-core, multi-direction turbo decoder and related decoding method thereof
CN104052503B (en) * 2013-03-15 2017-10-13 广达电脑股份有限公司 Error correcting code
CN105429646B (en) * 2015-06-30 2019-03-22 南京大学 A kind of encoding and decoding method of tail biting ladder code
CN106248117B (en) * 2016-08-29 2018-11-30 珠海格力电器股份有限公司 Determine grating and photoelectric encoder

Also Published As

Publication number Publication date
WO2019011348A1 (en) 2019-01-17
CN109245777A (en) 2019-01-18

Similar Documents

Publication Publication Date Title
CN108702290B (en) Concatenated polarization encoding and sliding window polarization encoding
CN106571831B (en) LDPC hard decision decoding method and decoder based on deep learning
CN105637767B (en) Method and device for processing rate matching of codes
US6304995B1 (en) Pipelined architecture to decode parallel and serial concatenated codes
CN108292967B (en) Encoding and decoding method and device for polarization code
US11171741B2 (en) Polar code transmission method and apparatus
EP3748882A1 (en) Polar code encoding method and device
CN109150383B (en) Polar code encoding method and device
CN109245846B (en) Ladder code decoding method and ladder code decoding device
US20120151295A1 (en) Device and method for turbo-encoding a block of data
US20160049962A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
CN109245777B (en) Ladder code decoding method and ladder code decoding device
CN109245847B (en) Ladder code decoding method and ladder code decoding device
JP2005539451A (en) Method for decrypting data using a data window
CN109245848B (en) Ladder code decoding method and ladder code decoding device
US10516418B2 (en) Hybrid type iterative decoding method and apparatus
CN108471341B (en) Method for convolutional encoding and decoding
CN112534724B (en) Decoder and method for decoding polarization code and product code
CN110022158B (en) Decoding method and device
CN107453761B (en) Turbo code decoding method and Turbo code decoder
CN110535478B (en) Dual-input Turbo-like code closed set identification method in DVB-RCS2 protocol
CN107733445B (en) Turbo code word generating method and decoding method
JP2004282787A (en) Signal transmitting apparatus and encoding apparatus
CN112398483A (en) LDPC encoding method, device, base station and readable storage medium
CN110784283A (en) Method, device and decoding system for determining forward error correction frame boundary

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant