WO2019011352A1 - 一种阶梯码解码方法和阶梯码解码装置 - Google Patents
一种阶梯码解码方法和阶梯码解码装置 Download PDFInfo
- Publication number
- WO2019011352A1 WO2019011352A1 PCT/CN2018/104874 CN2018104874W WO2019011352A1 WO 2019011352 A1 WO2019011352 A1 WO 2019011352A1 CN 2018104874 W CN2018104874 W CN 2018104874W WO 2019011352 A1 WO2019011352 A1 WO 2019011352A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- decoded
- sub
- code
- block
- subcode
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B10/00—Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
- H04B10/60—Receivers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2906—Coding, 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/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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/2939—Coding, 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0047—Decoding adapted to other signal detection operation
- H04L1/005—Iterative decoding, including iteration between signal detection and decoding operation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0045—Arrangements at the receiver end
- H04L1/0052—Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Definitions
- the present application relates to the field of optical communication FEC technology, for example, to a ladder code decoding method and a ladder code decoding device.
- the step code is a new type of FEC pattern, which combines the idea of convolutional code and product code.
- the coding method of the step code is similar to the coding method of the product code, and between any two adjacent sub-code blocks There is a strong correlation, that is, any adjacent two step code sub-code blocks can be combined into a complete BCH (Bose, Ray-Chaudhuri, Hocquenghem) code block unit, so that the entire ladder code can be regarded as a length trend Infinite chain structure.
- BCH Bit-Chaudhuri, Hocquenghem
- each time the decoding output of one step code sub-code block is completed it is necessary to perform the decoding process repeatedly and repeatedly, and in order to obtain higher decoding performance, it is necessary to increase the decoding frequency, resulting in hardware circuit implementation complexity. High, high power consumption, large decoding delay, and poor performance after decoding.
- the present application provides a ladder code decoding method and a ladder code decoding apparatus to avoid a situation in which the hardware circuit for FEC code decoding in the related art has high complexity, large power consumption, large decoding delay, and poor decoding performance.
- a ladder code decoding method including steps 1 to 5.
- Step 1 Obtain a length L of the sliding window, and sequentially acquire L pieces of the subcode blocks from the Pth in the received subcode block according to the receiving time from the front to the back, as the sliding window a first to-be-decoded sub-code block, where P is a positive integer greater than or equal to 1, and L is a positive integer.
- Step 2 The first to-be-decoded sub-code block is divided into a plurality of first to-be-decoded groups, and the plurality of to-be-decoded groups are separately decoded, and the plurality of first to-be-decoded groups are updated according to the decoding result. Get the first update subcode block.
- Step 3 sliding the sliding window forwards the lengths of the N sub-code blocks according to the receiving time, and sliding the remaining first sub-code blocks in the sliding window into the sliding N of the subcode blocks of the window serve as a second to-be-decoded sub-code block, where N is less than P.
- Step 4 The second to-be-decoded sub-code block is divided into a plurality of second to-be-decoded groups, and the plurality of second to-be-decoded groups are decoded, and the plurality of second to-be-decoded groups are updated according to the decoding result, and the second After the sub-code block is updated, the first M sub-code blocks in the second updated sub-code block are output as a decoding result.
- Step 5 sliding the sliding window back by the length of the S subcode blocks according to the receiving time, and sliding the remaining second subcode blocks in the sliding window into the S sub-code blocks of the sliding window are used as the first to-be-decoded sub-code block, and return to step 2 until the decoding result of all the sub-code blocks is output, where S is the sum of M and N.
- the embodiment of the present application further provides a ladder code decoding apparatus, including a first to-be-decoded sub-code block acquisition module, a first decoding module, a first sliding module, a second decoding module, and a second sliding module.
- the first to-be-decoded sub-code block obtaining module is configured to acquire the length L of the sliding window, and sequentially acquire L pieces of the sub-code from the Pth in the received sub-code block according to the receiving time from the front to the back.
- the code block is used as the first to-be-decoded sub-code block in the sliding window, where P is a positive integer greater than or equal to 1, and L is a positive integer.
- a first decoding module configured to divide the first to-be-decoded sub-code block into a plurality of first to-be-decoded groups, separately decode the plurality of to-be-decoded groups, and update the plurality of first according to the decoding result
- the group to be decoded acquires the first updated subcode block.
- a first sliding module configured to slide the sliding window forward by a length of the N sub-code blocks according to the receiving time, and slide the remaining first sub-code blocks in the sliding window
- the N sub-code blocks entering the sliding window are used as a second to-be-decoded sub-code block, where N is less than P.
- a second decoding module configured to: after the second to-be-decoded sub-code block is divided into a plurality of second to-be-decoded groups, decode the plurality of second to-be-decoded groups, and update the plurality of second to-bes according to the decoding result Decoding the group, after acquiring the second update subcode block, outputting the first M subcode blocks in the second update subcode block as a decoding result.
- a second sliding module configured to slide the sliding window back by the length of the S subcode blocks according to the receiving time, and to save the second updated subcode block in the sliding window Ssethe sub-code blocks that are slid into the sliding window are used as the first to-be-decoded sub-code block, and the first sliding module and the second decoding module are triggered to be output until the decoding result of all the sub-code blocks is output, where , S is the sum of M and N.
- the embodiment of the present application further provides a storage medium, where the storage medium includes a stored program, where the program runs to perform the method described in any one of the above.
- the embodiment of the present application further provides a processor configured to run a program, where the program is executed to perform the method described in any of the above.
- the application also provides a ladder decoding method, including steps 1 to 5.
- Step 1 Obtain a length L of the sliding window, and sequentially acquire L pieces of the subcode blocks from the Pth in the received subcode block according to the receiving time from the front to the back, as the sliding window a first to-be-decoded sub-code block, where P is a positive integer greater than or equal to 1, and L is a positive integer.
- Step 2 The first to-be-decoded sub-code blocks are separately decoded, and the first to-be-decoded group is updated according to the decoding result, and the first updated sub-code block is obtained.
- Step 3 sliding the sliding window forward by the length of the N sub-code blocks according to the receiving time, and sliding the first updated sub-code block with the N sub-sliders into the sliding window
- the code block is used as the second to-be-decoded sub-code block, where N is smaller than P; the second to-be-decoded sub-code block is grouped and decoded, and the second to-be-decoded group is updated according to the decoding result, and the second updated sub-code block is obtained.
- Step 4 sliding the sliding window back by the length of the N sub-code blocks according to the receiving time, and sliding the second updated sub-code block with the N sub-sliders into the sliding window
- the code block is used as the first to-be-decoded sub-code block, where N is smaller than P; and then steps 2 and 3 are performed.
- This step is repeated K times, where K is an integer greater than or equal to 0; when K is 0, it indicates that this step may not be performed, and jumps directly to step 5.
- Step 5 After obtaining the second update subcode block, output the first M second update subcode blocks as a decoding result; and sliding the sliding window backwards to the S subcode blocks according to the receiving time Length, and the second updated subcode block remaining in the sliding window and the S subcode blocks sliding into the sliding window are used as the first to be decoded subcode block, and the process returns to step 2, Until the decoding result of all the subcode blocks is output.
- S is the sum of M and N.
- M is 1 or 2.
- An embodiment of the present application further provides a ladder decoding apparatus, where the apparatus includes a first to-be-decoded sub-code block acquisition module, a first decoding module, a first sliding module, a second decoding module, and a second sliding module.
- the first to-be-decoded sub-code block obtaining module is configured to acquire the length L of the sliding window, and sequentially acquire L pieces of the sub-code from the Pth in the received sub-code block according to the receiving time from the front to the back.
- the code block is used as the first to-be-decoded sub-code block in the sliding window, where P is a positive integer greater than or equal to 1, and L is a positive integer.
- a first decoding module configured to divide the first to-be-decoded sub-code block into a plurality of first to-be-decoded groups, separately decode the plurality of first to-be-decoded groups, and update the multiple according to the decoding result
- the first to-be-decoded group acquires the first updated sub-code block.
- a first sliding module configured to slide the sliding window forward by a length of the N sub-code blocks according to the receiving time, and slide the remaining first sub-code blocks in the sliding window Entering the N subcode blocks of the sliding window as a second to-be-decoded sub-code block, where N is smaller than P; dividing the second to-be-decoded sub-code block into a plurality of second to-be-decoded groups, and Decoding a plurality of second to-be-decoded groups, updating the plurality of second to-be-decoded groups according to the decoding result, and acquiring a second updated sub-code block.
- a second decoding module configured to slide the sliding window back by the length of the N subcode blocks according to the receiving time, and slide the remaining second update subcode blocks in the active window Entering the N sub-code blocks of the sliding window as the first to-be-decoded sub-code block, where N is smaller than P; triggering the first decoding module and the first sliding module; triggering the second decoding module to perform K times, wherein K is an integer greater than or equal to 0; when K is 0, this step may not be performed, and jumps directly to step 5.
- a second sliding module configured to: after acquiring the second updated subcode block, output the first M subcode blocks of the second updated subcode block as a decoding result; and sliding the sliding window backward according to the receiving time
- the length of the sub-code block, and the second updated sub-code block remaining in the sliding window, and the S sub-code blocks sliding into the sliding window are used as the first to-be-decoded sub-block
- the code block returns to step 2 until the decoding result of all the subcode blocks is output.
- S is the sum of M and N.
- M is 1 or 2.
- the embodiment of the present application further provides a storage medium, where the storage medium includes a stored program, where the program runs to perform the method described in any one of the above.
- the embodiment of the present application further provides a processor configured to run a program, wherein the program is executed to perform the method described in any of the above.
- FIG. 1 is a flowchart of a step code decoding method in Embodiment 1 of the method of the present application;
- FIG. 2 is a flowchart of packet decoding of a step code decoding method in Embodiment 2 of the method of the present application;
- FIG. 3 is a flowchart of a method for decoding a ladder code in Embodiment 3 of the method of the present application;
- Embodiment 4 is a flowchart of an initial decoding method for hard decoding of a ladder code in Embodiment 4 of the method of the present application;
- FIG. 5 is a flowchart of a decoding method for hard decoding of a ladder code in Embodiment 4 of the method of the present application;
- FIG. 6 is a flowchart of an initial decoding method for stepping code soft decoding in Embodiment 5 of the method according to the present application;
- FIG. 7 is a flowchart of a decoding method of step code soft decoding according to Embodiment 5 of the method of the present application;
- FIG. 8 is a flowchart of an initialization decoding method for stepping code soft-hard combining decoding according to Embodiment 6 of the method of the present application;
- FIG. 9 is a flowchart of a decoding method of step-code soft-hard combining decoding according to Embodiment 6 of the method of the present application.
- FIG. 10 is a schematic structural diagram of a ladder code decoding apparatus according to Embodiment 7 of the method of the present application.
- FIG. 11 is a flowchart of a method for decoding a ladder code in Embodiment 8 of the method of the present application.
- FIG. 12 is a flowchart of a method for decoding a ladder code in Embodiment 9 of the method of the present application.
- FIG. 1 is a flowchart of a ladder code decoding method in Embodiment 1 of the present application.
- the ladder code decoding method in Embodiment 1 of the present application shown in FIG. 1 includes steps 1 to 5.
- step 1 the length L of the sliding window is obtained, and in the received sub-code block, L sub-code blocks are successively acquired from the P-th sub-code block in the order of receiving time from the front to the back. a first to-be-decoded sub-code block in the sliding window, where P is a positive integer greater than or equal to 1, and L is a positive integer.
- the sliding window is arranged to slide back and forth in the sub-code block to be decoded during the decoding process of the step code, and assist a certain decoding method for decoding.
- the length L of the sliding window can be set in advance according to requirements.
- L pieces of the subcode blocks are successively acquired in order from the front to the end according to the reception time as the subcode blocks to be decoded in the sliding window.
- the L may be set to a positive integer greater than 2 to ensure complete completion of the method described in this embodiment.
- the continuous acquisition from the Pth subcode block is prepared for the subsequent sliding window to slide forward.
- L is an even number.
- step 2 the first to-be-decoded sub-code block is divided into a plurality of first to-be-decoded groups, and the plurality of first to-be-decoded groups are separately decoded, and the plurality of first ones are updated according to the decoding result.
- the group to be decoded acquires the first updated subcode block.
- the first to-be-decoded sub-code block in the sliding window is divided into a plurality of first to-be-decoded groups, and the plurality of first to-be-decoded groups are separately decoded, because multiple Decoding the first to-be-decoded group in each of the plurality of first to-be-decoded groups to be decoded in a certain order, or to decode the plurality of first to-be-decoded groups at the same time.
- the decoding process between the plurality of first to-be-decoded packets is not associated.
- step 3 the sliding window is slid forward by the length of the N sub-code blocks according to the receiving time, and the first updated sub-code block remaining in the sliding window is slid into the sliding window.
- the N sub-code blocks of the sliding window are used as the second to-be-decoded sub-code block, where N is smaller than P. In an embodiment, N is one.
- the sliding window slides into the N sub-code blocks with the earlier reception time, and slides out the N first receiving times of the latest update time.
- Code block Since it is acquired from the Pth sub-code block, the N that slides forward must be smaller than P.
- step 4 the second to-be-decoded sub-code block is divided into a plurality of second to-be-decoded groups, and the plurality of second to-be-decoded groups are separately decoded, and the plurality of second to-be-waited are updated according to the decoding result.
- Decoding the group after acquiring the second update subcode block, outputting the first M subcode blocks in the second update subcode block as a decoding result.
- the second to-be-decoded sub-code block in the sliding window is divided into a plurality of second to-be-decoded groups, and the plurality of second to-be-decoded groups are separately decoded, because multiple to the second The to-be-decoded group is separately decoded, and the to-be-decoded sub-code blocks in each of the second to-be-decoded groups may be separately decoded in a certain order, or multiple second to-be-decoded groups may be simultaneously decoded, but the multiple The decoding process between the two groups to be decoded is not associated.
- the second update subcode block corresponding to the code block. Since this step directly outputs the first M subcode blocks in the second update subcode block as a decoding result, the M value should be set as small as possible while satisfying the requirements of the decoding rate and the expected accuracy requirement. .
- the M can be set to a positive integer less than 10, and in one embodiment, M is 2.
- step 5 the sliding window slides the lengths of the S subcode blocks backward according to the receiving time, and slides the remaining second update subcode blocks in the sliding window.
- the S sub-code blocks of the sliding window are used as the first to-be-decoded sub-code block, and the process returns to step 2 until the decoding result of all the sub-code blocks is output, where S is the sum of M and N.
- the sliding window is slid backwards through the S subcode blocks, and the sliding window is still located after the sliding
- the remaining second update sub-module, and the newly-slided sub-code block, as the new first to-be-decoded sub-code block of the sliding window return to step 2 for grouping and decoding, and output a new one.
- updating the first M subcode blocks in the subcode block as a decoding result until all the second update subcode blocks corresponding to the subcode block are output as a decoding result, or stopping the above iterative decoding step according to requirements Subcode block location.
- the step code decoding method provided in this embodiment separately decodes the plurality of packets by dividing the subcode block to be decoded in the sliding window into a plurality of packets, and updates the to-be-decoded subcode according to the decoding result. After acquiring the first updated subcode block, the block slides the sliding window forward by N subcode blocks, re-groups and decodes the second to-be-decoded sub-code block in the sliding window to obtain the second updated sub-code block, and outputs the second.
- the sliding window is slid backward by S subcode blocks, where S is the sum of M and N, and then returning to obtain the first update subcode block for iterative decoding In this way, the output subcode block is output as the decoding result.
- the second is a flowchart of packet decoding in the step code decoding method in the second embodiment of the present application.
- the method for decoding the ladder code in the second embodiment of the method is as shown in FIG.
- the first to-be-decoded sub-code block is divided into a plurality of first to-be-decoded groups, and the plurality of first to-be-decoded groups are respectively decoded, and the plurality of first to-be-decoded groups are updated according to the decoding result, and the first update is obtained.
- An implementation of the subcode block step includes steps 10, 20, and 30.
- step 10 starting from the first one of the first to-be-decoded sub-code blocks, the first to-be-decoded sub-code block is transposed at an interval to obtain a first to-be-decoded trans-transcode sub-block.
- one of the sub-code blocks needs to be transposed.
- the method provided in this embodiment uses one of the first to-be-decoded sub-code blocks. For the interval, the transposition is performed from the first one to obtain the first transposed sub-code block to be decoded.
- each transposed subcode block in each of the first to-be-decoded transposed sub-code blocks and the adjacent post-received first to-be-decoded sub-code block are grouped as a group. Obtaining a plurality of first to-be-decoded groups.
- the first to-be-decoded sub-code block received first is transposed, and the first received sub-code block to be decoded is not performed. Transpose.
- step 30 a plurality of the first to-be-decoded groups are respectively decoded, and the first to-be-decoded sub-code blocks in the plurality of first to-be-decoded sub-code groups are updated according to the decoding result, and the multiple An update subcode block.
- the plurality of the first to-be-decoded groups are separately decoded row by row, and the decoding between the plurality of the first to-be-decoded groups is not associated, and the decoding order may be arbitrarily set according to requirements or Decode at the same time.
- the first to-be-decoded sub-code block is grouped and decoded, and the step of grouping may be performed by using the first to-be-decoded sub-code block according to the receiving time.
- the two adjacent first to-be-decoded sub-code blocks are grouped as a group to obtain a plurality of first to-be-decoded groups, and one of the first to-be-decoded sub-code blocks belongs to only one of the first to-be-decoded groups. And then transposing the first to-be-decoded sub-code block received in the first to-be-decoded group, and then performing a subsequent decoding step.
- the first to-be-decoded sub-code blocks in the sliding window are respectively obtained in the order of receiving time from the front to the back to obtain a plurality of first to-be-decoded groups, respectively
- the first to-be-decoded sub-code block is decoded and updated. Since the first to-be-decoded sub-code block is divided into a plurality of packets and the plurality of packets are separately decoded, the decoding rate of the ladder code is greatly improved.
- the second to-be-decoded sub-code block is divided into a plurality of second to-be-decoded groups, and the plurality of second to-be-decoded groups are decoded, and the plurality of second to-be-waited are updated according to the decoding result.
- Decoding the group obtaining the second update subcode block, including: starting from the first subcode block in the second to-be-decoded subcode block, and corresponding to the second to-be-decoded subcode at intervals of one code block Sub-code block transposition, obtaining a second to-be-decoded trans-transcode sub-code block; and transposing each of the second to-be-decoded trans-transcode sub-code blocks and adjacent ones And the plurality of second to-be-decoded groups are respectively decoded, and the plurality of second to-be-decoded groups are updated according to the decoding result.
- the second to-be-decoded sub-code block is obtained, and the second updated sub-code block is obtained.
- the description of the embodiment is the same as that of the embodiment 2 given in FIG.
- the second to-be-decoded sub-code blocks in the sliding window are grouped into two to be decoded according to the receiving time from the front to the back, respectively
- the plurality of second to-be-decoded groups decode and update the second to-be-decoded sub-code block. Since the second to-be-decoded sub-code block is divided into a plurality of packets and the plurality of packets are respectively decoded, the decoding rate of the ladder code is greatly improved.
- the decoding the first to-be-decoded group separately includes using a linear block code when the first to-be-decoded sub-code block in the first to-be-decoded group is a hard-coded code. Decoding is performed; when the first to-be-decoded sub-code block is not a hard-coded code, the decoding is performed by using a soft decoding algorithm.
- This embodiment supports different decoding modes for different first to-be-decoded sub-code blocks, and improves the applicable range of the ladder code decoding provided by the present application.
- decoding of the second group to be decoded is the same as the decoding of the first group to be decoded, and details are not described herein.
- the continuously acquiring the L subcode blocks as the subcode block to be decoded in the sliding window includes: when the obtained first subcode block is all the subcode blocks When the first subcode block is received; the all zero code block is supplemented as the first one of the to-be-decoded subcode blocks in the sliding window, and the Lth of the sliding window is The sub-code block to be decoded is slid out of the sliding window; and the updating the to-be-decoded sub-code block according to the decoding result includes: updating the to-be-decoded sub-code block except the all-zero code block according to the decoding result.
- the sliding window when the first sub-code block to be decoded received in the sliding window is the first sub-code block received in all the sub-code blocks, the sliding window is required.
- the first location is supplemented with an all zero code block to decode the first of the subcode blocks to be decoded.
- the decoding situation after the first sub-code block grouping is avoided, and the applicable range of the ladder code provided by the present application is improved.
- FIG. 3 is a flowchart of a method for decoding a ladder code in the third embodiment of the present application.
- the method for decoding the ladder code in the third embodiment of the present application is as shown in step 3 of the first embodiment of the present application.
- An implementation manner includes steps 100 and 200.
- step 100 starting from receiving the first sub-code block, sequentially arranging two adjacent sub-code blocks as a group to obtain a plurality of initial groups to be decoded, one of the sub-codes The block belongs to only one initial group to be decoded, and when the number of received sub-code blocks is an odd number, the supplementary all-zero code block is grouped together with the sub-code block to obtain a plurality of initial groups to be decoded.
- the embodiment before the start of step 1 in Embodiment 1, when the number of received subcode blocks is less than L, in order to improve the decoding accuracy of the step code, the embodiment will receive the subcode block. Performing grouping, when receiving the first subcode block, supplementing all zero code blocks into two groups, and when receiving the second subcode block, then combining the first and second subcode blocks into two The group, when receiving the third sub-code block, Malawis the all-zero code block and the first sub-code block, and groups the second sub-code block and the third sub-code block, and so on.
- the subcode block received first needs to be transposed.
- step 200 the plurality of initial groups to be decoded are decoded, and the subcode blocks are updated according to the decoding result, and then the process returns to step 100 until the Lth subcode blocks are received.
- decoding the first initial group to be decoded can update the first subcode block according to the decoded result, and the all zero code block is not updated.
- the updated first sub-code block and the received second sub-code block are used to form a second initial group to be decoded, and then decoded, and the first and second are updated. Sub-code blocks, and so on, up to the Lth of the sub-code blocks received.
- the decoding process of initializing the received sub-code block is performed by using two groups of methods.
- the received sub-code block has been completely decoded and decoded before the subsequent decoding process starts, thereby reducing the decoding error rate of the ladder code provided by the present application.
- the following describes the normal decoding process of hard decoding, soft decoding, soft-hard combining decoding, and the normal decoding process of hard decoding, soft decoding, and soft-hard combining decoding of the present application, respectively.
- FIG. 4 is a flowchart of an initial decoding method for hard decoding of a ladder code in Embodiment 4 of the method of the present application.
- L 6
- the decoding process directly performs linear block code hard.
- Decoding when the number of receiving sub-code blocks is less than 6, it is recommended to decode the received data, so that the decoded output when the number of sub-blocks is received to 6 will be decoded by 3 complete iterations ( One iteration decoding includes one horizontal and one vertical decoding).
- the initialization decoding method of the step code hard decoding in the method 4 of the method of the present application as shown in FIG. 4 is as follows.
- [B T 1 , B 2 ] is decoded (shown by the solid arrow 2 in the left diagram of FIG. 4), and the information in the B 1 and B 2 code blocks is simultaneously updated.
- B T 1 represents the transpose of the updated subcode block B 1 .
- [B T 0 , B 1 ] and [B T 2 , B 3 ] are decoded (shown by solid arrows 3 and 4 in the left figure of FIG. 4), and The information in the B 1 , B 2 and B 3 code blocks is updated at the same time, where B T 2 represents the transposition of the updated sub-code block B 2 .
- the subcode block B 0 is counted, there are already 6 subcode blocks in the sliding window (shown in the shaded portion in the left figure of Fig. 4), but since the subcode block B 0 is the all-zero subcode block of the staircase code convention It is not a real receiving code block, so after the initialization decoding is completed, there is no decoding output.
- the new code block received next is the B 6 and B 7 subcode blocks, at which point the sliding window will slide back the length of the 2 code blocks (shown in the shaded portion of the right figure of Figure 4).
- the six subcode blocks included in the new position of the sliding window are B 2 , B 3 , B 4 , B 5 , B 6 and B 7 , respectively .
- the sliding window corresponds to the buffer device in the circuit.
- the method for decoding the ladder code hard decoding in the method embodiment 4 of the present application, as shown in FIG. 5, includes steps 1 to 6.
- step 2 the B(1), B(2), and B(3) code group units are decoded line by line (shown by the dotted arrows 1, 2, and 3 in the left figure of Fig. 5); and B(1) is updated at the same time.
- the decoding process can directly perform BCH hard decoding; if the received soft information is not hard-coded, the decoding method is turbo soft decoding. algorithm.
- B 1 , B 2 , B 3 , B 4 , and B 5 have undergone several decodings after undergoing the process of initializing decoding, so that the output B 1 has undergone 3 iterative translations.
- the code (1 complete iterative decoding includes 1 horizontal and 1 vertical decoding).
- step four the B(1), B(2), and B(3) code group units are respectively decoded (shown by the dotted arrows 4, 5, and 6 in FIG. 5); and B(1), B are updated at the same time.
- (2), and B (3) in the code block information, and outputs B B (1) is 1, B 2; B thus outputted 1, B 2 also experienced three times iterative decoding.
- step 6 the operation in step S15 is repeated, thereby completing the decoding output of all the step code sub-code blocks of B 5 , B 6 ....
- each time the decoding output of one step code subcode block is completed only the code block iterative decoding process needs to be performed three times. Therefore, the complexity of the hardware circuit is greatly reduced; at the same time, the time delay of decoding is greatly reduced, which is beneficial to the metro metrology application; in addition, the performance is greatly improved.
- the sub-iterative decoding includes 1 horizontal and 1 vertical decoding).
- [B T 0 , B 1 ] is soft-decoded (shown by the solid arrow 1 in the left figure of FIG. 6), and only the soft information in the B1 code block is updated.
- T is the meaning of transposition
- B T 0 represents the transposition of all zero subcode blocks.
- the subcode block B 0 is counted, there are already 4 subcode blocks in the sliding window (shown in the shaded portion in the left figure of Fig. 6), but since the subcode block B 0 is the all-zero subcode block of the staircase code convention It is not a real receiving code block, so after the initialization decoding is completed, there is no decoding output.
- the new code block received next is the B 4 subcode block, at which point the sliding window will slide to the right by the length of one code block (shown in the shaded portion of the right figure of Figure 6).
- the four subcode blocks included in the new position of the sliding window are B 1 , B 2 , B 3 and B 4 , respectively .
- the sliding window corresponds to the buffer device in the circuit.
- FIG. 7 is a flowchart of a decoding method of step code soft decoding in Embodiment 5 of the method of the present application. After receiving soft information without hard decision, the decoding method may select multiple soft decoding algorithms.
- the decoding method of the step code soft decoding in the embodiment 5 of the method of the present application as shown in FIG. 7 includes steps S21 to S26.
- step S22 the B(1) and B(2) code group units are respectively soft-decoded row by row (shown by the dotted arrows 1 and 2 in the left figure of FIG. 7); and B(1), B(2) are simultaneously updated. Information of two subcode blocks in a code block.
- step S23 the sliding window is slid forward by one code block length, and the four step code subcode blocks included in the new position of the sliding window are: B 1 , B 2 , B 3 , B 4 (Fig. 7
- step S24 the B(1) and B(2) code group units are respectively soft-decoded (shown by the dotted arrows 3 and 4 in FIG. 7); and the B(1) and B(2) code blocks are simultaneously updated.
- the soft information, and the B 1 and B 2 soft information in B (1) are hard judged and output; thus, the output B 1 and B 2 also undergo 2 iterative decoding.
- step S25 the sliding window is slid backward by 3 code block lengths, and the 4 step code subcode blocks included in the new position of the sliding window are: B 4 , B 5 , B 6 , B 7 (Fig. 7 right picture) The diagonal line portion is shown); then the operations of steps S21 to S24 are repeated, and the hard decision information of B 3 and B 4 in the corresponding B (1) is output.
- step S26 the operation in step S25 is repeated, thereby completing the decoding output of all the step code sub-code blocks of B 5 , B 6 ....
- soft information that has not been hard-cased is received, and the decoding method is hard-decoded.
- the algorithm combines the hybrid decoding of the soft decoding algorithm. When the number of received subcode blocks is less than 6, it is recommended to soft decode the received data, so that the decoded output when the number of subcode blocks is received is 6 After 3 complete iterations of decoding (1 iteration decoding includes 1 horizontal and 1 vertical decoding).
- [B T 0 , B 1 ] is soft-decoded (shown by the solid arrow 1 in the left figure of FIG. 8), and only the soft information in the B 1 code block is updated.
- T is the meaning of transposition
- B T 0 represents the transposition of all zero subcode blocks.
- [B T 0 , B 1 ] and [B T 2 , B 3 ] are soft decoded (shown by solid arrows 3 and 4 in the left figure of Fig. 8), and The soft information in the B 1 , B 2 and B 3 code blocks is updated at the same time, where B T 2 represents the transposition of the updated sub-code block B 2 .
- [B T 1 , B 2 ] and [B T 3 , B 4 ] are soft-decoded (shown by solid arrows 5 and 6 in the left figure of Fig. 8), and The soft information in the B 1 , B 2 , B 3 and B 4 code blocks is updated at the same time, where B T 3 represents the transposition of the updated sub-code block B 3 .
- [B T 0 , B 1 ], [B T 2 , B 3 ] and [B T 4 , B 5 ] are soft decoded (Fig. 8 left figure Line arrows 7, 8, 9), and simultaneously update the soft information in the B 1 , B 2 , B 3 , B 4 and B 5 code blocks, where B T 4 represents the rotation of the updated sub-code block B 4 Set.
- the subcode block B 0 is counted, there are already 6 subcode blocks in the sliding window (shown in the shaded portion in the left figure of Fig. 8), but since the subcode block B 0 is a full zero subcode block with a step code convention It is not a real receiving code block, so after the initialization decoding is completed, there is no decoding output.
- the new code block received next is the B 6 subcode block, at which point the sliding window will slide to the right by the length of one code block (shown in the shaded portion of the right figure of Figure 8).
- the six subcode blocks included in the new position of the sliding window are B 1 , B 2 , B 3 , B 4 , B 5 and B 6 , respectively .
- the sliding window corresponds to the buffer device in the circuit.
- the decoding method of the ladder code soft-hard combining decoding in the sixth embodiment of the present application as shown in FIG. 9 includes steps S31 to S36.
- the soft information of two subcode blocks in the code block is hard-judged, hard-decoded (shown by the thick dashed arrow 1 in the left figure of FIG. 9), and the B(1) code is updated at the same time.
- the hard information in the block; then the B(2) and B(3) code group units are soft-decoded line by line (shown by the dotted arrows 2 and 3 in the left figure of Figure 9); and B(2), B(3) are updated at the same time.
- the soft information of two subcode blocks in the code block is hard-judged, hard-decoded (shown by the thick dashed arrow 4 in FIG. 9), and the B(1) code is updated at the same time.
- the hard information in the block; then the B(2) and B(3) code group units are soft-decoded line by line (shown by the dotted arrows 2 and 3 in Fig. 9); and B(2), B(3) are updated at the same time.
- the soft information of two subcode blocks in the code block is hard-judged, hard
- step S35 the sliding window is slid backward by 3 code block lengths, and the 6 step code subcode blocks included in the new position of the sliding window are: B 4 , B 5 , B 6 , B 7 , B 8 , B 9 (shown in the hatched portion on the right side of Fig. 9); then the operations of steps S31 through S34 are repeated, and the hard decision information B 3 , B 4 in the corresponding B (1) is output.
- step S36 the operation in step S35 is repeated, thereby completing the decoding output of all the step code subcode blocks of B 5 , B 6 ....
- the ladder code decoding apparatus in Embodiment 7 of the present application includes: an initial group acquisition module 80 to be decoded, to be decoded.
- the to-be-decoded initial group obtaining module 80 is configured to, after receiving the first one of the sub-code blocks, sequentially group the two adjacent sub-code blocks as a group to obtain a plurality of initial groups to be decoded.
- the one subcode block belongs to only one initial group to be decoded, and when the number of received subcode blocks is an odd number, the all zero code block is supplemented and grouped together with the subcode block.
- L is an even number.
- the initial group decoding module 90 to be decoded is configured to decode the plurality of initial groups to be decoded, and update the L subcode blocks according to the decoding result, and then return to the initial group acquisition module to be decoded until the Lth subcode is received. Piece.
- the first to-be-decoded sub-code block obtaining module 100 is configured to acquire the length L of the sliding window, and acquire L consecutively from the Pth in the received sub-code block according to the receiving time from the front to the back.
- the subcode block is used as the first to-be-decoded sub-code block in the sliding window, where P is a positive integer greater than or equal to 1, and L is a positive integer. In an embodiment, L is an even number.
- the first to-be-decoded sub-code block obtaining module 100 is further configured to: when the obtained first sub-code block is the first sub-code block received by the first one of all the sub-code blocks; And being the first one of the to-be-decoded sub-code blocks in the sliding window, and sliding the Lth of the to-be-decoded sub-code blocks in the sliding window out of the sliding window.
- the first decoding module 200 is configured to divide the first to-be-decoded sub-code block into a plurality of first decoding groups, respectively decode the plurality of first decoding groups, and update the plurality of first to-be-acquired according to the decoding result. Decoding the group to obtain the first updated sub-code block.
- the first decoding block 200 includes a first transposition unit, a first to-be-decoded group acquisition unit, and a first decoding unit.
- the first transposition unit is configured to start transposing the first to-be-decoded sub-code block at an interval from the first sub-code block in the first to-be-decoded sub-code block to obtain the first to-be-coded Decode the transposed subcode block.
- the first to-be-decoded group obtaining unit is configured to: each of the first to-be-decoded transposed sub-code blocks and the adjacent one of the first to-be-decoded sub-codes to be decoded
- the blocks are grouped as a group to obtain a plurality of first to-be-decoded groups.
- the first decoding unit is configured to separately decode the plurality of first to-be-decoded groups, and update the first to-be-decoded sub-code blocks in the plurality of first to-be-decoded groups according to a decoding result, to obtain a first update. Subcode block.
- the first decoding unit is further configured to: when the first to-be-decoded sub-code block is a hard-coded code, perform decoding by using a linear block code; when the first to-be-decoded sub-code block is not a hard-coded code At the time, the decoding is performed using a soft decoding algorithm.
- the first decoding unit is further configured to: update the first to-be-decoded group except the all-zero code block according to the decoding result, and acquire the first updated sub-code block.
- the first sliding module 300 is configured to slide the sliding window forward by the length of the N sub-code blocks according to the receiving time, and block the first updated sub-code block in the sliding window N of the subcode blocks that are slid into the sliding window as a second to-be-decoded sub-code block, where N is less than P; in one embodiment, N is one.
- the second decoding module 400 is configured to divide the second to-be-decoded sub-code block into a plurality of second to-be-decoded groups, decode the plurality of second to-be-decoded groups, and update the plurality of second to-be-decoded according to the decoding result. And after acquiring the second update subcode block, outputting the first M subcode blocks in the second update subcode block as a decoding result.
- the second decoding module 400 includes a second transposition unit, a second to-be-decoded group acquisition unit, and a second decoding unit.
- the second transposition unit is configured to, according to a first sub-code block in the second to-be-decoded sub-code block, transpose the second to-be-decoded sub-code block at an interval to obtain a second The transposed sub-code block to be decoded.
- the second to-be-decoded group obtaining unit is configured to: each of the second to-be-decoded transposed sub-code blocks and the adjacent second to-be-decoded sub-codes The blocks are grouped as a group to obtain a plurality of second groups to be decoded.
- the second decoding unit is configured to separately decode the plurality of second to-be-decoded groups, and update the second to-be-decoded sub-code blocks in the plurality of second to-be-decoded groups according to the decoding result, to obtain a second update subcode.
- M is two.
- the second sliding module 500 is configured to slide the sliding window to the length of the S sub-code blocks according to the receiving time, and to save the second updated sub-code block in the sliding window. And the S sub-code blocks that are slid into the sliding window are used as the first to-be-decoded sub-code block, and the first sliding module and the second decoding module are triggered to be output until the decoding result of all the sub-code blocks is output.
- S is the sum of M and N.
- the step code decoding apparatus separately decodes a plurality of packets by dividing a plurality of packets to be decoded in the sliding window into blocks, and updates the to-be-decoded sub-code block according to the decoding result.
- the sliding window is slid forward by N subcode blocks, and then re-grouped and decoded to obtain a second update subcode block, and the first M subcode blocks in the second update subcode block are output as a decoding result.
- the step code decoding apparatus provided by the present application, after dividing the sub-code block to be decoded in the sliding window into a plurality of packets, respectively decoding a plurality of packets, and updating the to-be-decoded sub-code block to obtain an updater according to the decoding result.
- the code block After the code block, the first M subcode blocks in the updated subcode block are output as a decoding result, and the sliding window is swept backward by S subcode blocks, and the above steps are repeated.
- the output update sub-code block is decoded separately, and then the sliding window is slid and the packet and decoding steps are repeated, and the updated sub-code block is sequentially output as the decoding result, and only a limited decoding operation is required for each step code sub-code block to be decoded.
- the iterative decoding process of the number of times greatly reduces the implementation complexity of the hardware circuit, reduces the decoding time delay, and improves the decoding performance.
- the program can be stored in a computer readable storage medium, and the storage medium can include: ROM, RAM. , disk or CD, etc.
- An embodiment of the present application provides a ladder code decoding method, including steps 1 to 5.
- step 1 the length L of the sliding window is obtained, and in the received sub-code block, L sub-code blocks are successively acquired from the P-th sub-code block in the order of receiving time from the front to the back. a first to-be-decoded sub-code block in the sliding window, where P is a positive integer greater than or equal to 1, and L is a positive integer.
- step 2 the first to-be-decoded sub-code block is divided into a plurality of first to-be-decoded groups, and the plurality of first to-be-decoded groups are separately decoded, and the plurality of first ones are updated according to the decoding result.
- the group to be decoded acquires the first updated subcode block.
- step 3 the sliding window is slid forward by the length of the N sub-code blocks according to the receiving time, and the first updated sub-code block remaining in the sliding window is slid into the sliding window.
- the N sub-code blocks of the sliding window are used as the second to-be-decoded sub-code block, where N is smaller than P; the second to-be-decoded sub-code block is divided into a plurality of second to-be-decoded groups, for the plurality of The second group to be decoded is separately decoded, and the plurality of second to-be-decoded groups are updated according to the decoding result, and the second updated sub-code block is obtained.
- step 4 the sliding window is slid back by the length of the N sub-code blocks according to the receiving time, and the second updated sub-code block remaining in the sliding window is slid into the sliding window.
- the N sub-code blocks of the sliding window are used as the first to-be-decoded sub-code block, where N is smaller than P; and then steps 2 and 3 are performed, and this step is performed K times repeatedly, where K is greater than or equal to 0. Integer; when K is 0, this step can be executed, skip to step 5
- step 5 after acquiring the second update subcode block, outputting the first M subcode blocks in the second update subcode block as a decoding result; and sliding the sliding window backward according to the receiving time. Length of the subcode block, and the second updated subcode block remaining in the sliding window and the S subcode blocks sliding into the sliding window are used as the first to be decoded subcode block Return to step 2 until the decoding result of all the subcode blocks is output.
- S is the sum of M and N.
- FIG. 11 is a flowchart of a method for decoding a ladder code in Embodiment 8 of the method of the present application, which may be received by soft information or hard decision information.
- the decoding method of the step code decoding in the eighth embodiment of the method of the present application as shown in FIG. 11 includes steps S81 to S86. It is assumed that the present embodiment has completed initialization in a similar manner to Embodiment 5.
- step S82 the B(1) and B(2) code group units are respectively decoded line by line (shown by the dotted arrows 1 and 2 in the left figure of Fig. 11); the B(1) and B(2) codes are updated at the same time. Information about two subcode blocks in a block.
- step S83 the sliding window is slid forward by one block length, and the four step code subcode blocks included in the new position of the sliding window are: B 1 , B 2 , B 3 , B 4 (Fig. 11
- the B(1) and B(2) code group units are respectively decoded (shown by dotted arrows 3 and 4 in Fig. 11); the information in the B(1) and B(2) code blocks is simultaneously updated.
- step S84 after acquiring the updated B(1) and B(2) code blocks, the sliding window is slid backward by the length of one of the subcode blocks according to the receiving time, and the sliding window is
- step S85 the sliding window is slid backward by 3 code block lengths, and the 4 step code subcode blocks included in the new position of the sliding window are: B 4 , B 5 , B 6 , B 7 (Fig. 11 right picture) The diagonal line portion is shown); then the operations of steps S81 through S84 are repeated, and the information of B3, B4 in the corresponding B(1) is output.
- step S86 the operation in step S85 is repeated, thereby completing the decoding output of all the step code subcode blocks of B 5 , B 6 ....
- FIG. 12 is a flowchart of a method for decoding a ladder code in Embodiment 9 of the method of the present application, where soft information or hard decision information is received.
- the decoding method of the step code decoding in the embodiment 9 of the present application shown in FIG. 12 includes steps S91 to S96.
- step S92 the B(1) and B(2) code group units are decoded line by line (shown by the dotted arrows 1 and 2 in the left figure of Fig. 12); and the B(1) and B(2) codes are updated at the same time. Information about two subcode blocks in a block.
- step S93 the sliding window is slid forward by one block length, and the four step code subcode blocks included in the new position of the sliding window are: B 1 , B 2 , B 3 , B 4 (Fig. 12
- the B(1) and B(2) code group units are respectively decoded (shown by dotted arrows 3 and 4 in Fig. 12); the information in the B(1) and B(2) code blocks is simultaneously updated.
- step S94 after acquiring the updated B(1) and B(2) code blocks, sliding the sliding window back by one length of the subcode block according to the receiving time, and then sliding the window
- step S95 the sliding window is slid backward by two code block lengths, and the four step code subcode blocks included in the new position of the sliding window are: B 3 , B 4 , B 5 , B 6 (Fig. 12 right picture) The diagonal line portion is shown); then the operations of step S91 to step S94 are repeated, and the information of B 2 in the corresponding B(1) is output.
- step S96 the operation in step S95 is repeated, thereby completing the decoding output of all the step code sub-code blocks of B 3 , B 4 ....
- An embodiment of the present application provides a ladder decoding apparatus, where the apparatus includes a first to-be-decoded sub-code block acquisition module, a first decoding module, a first sliding module, a second decoding module, and a second sliding module.
- the first to-be-decoded sub-code block obtaining module is configured to acquire the length L of the sliding window, and sequentially acquire L pieces of the sub-code from the Pth in the received sub-code block according to the receiving time from the front to the back.
- the code block is used as the first to-be-decoded sub-code block in the sliding window, where P is a positive integer greater than or equal to 1, and L is a positive integer.
- a first decoding module configured to divide the first to-be-decoded sub-code block into a plurality of first to-be-decoded groups, separately decode the plurality of first to-be-decoded groups, and update the multiple according to the decoding result
- the first to-be-decoded group acquires the first updated sub-code block.
- a first sliding module configured to slide the sliding window forward by a length of the N sub-code blocks according to the receiving time, and slide the remaining first sub-code blocks in the sliding window Entering the N subcode blocks of the sliding window as a second to-be-decoded sub-code block, where N is smaller than P; dividing the second to-be-decoded sub-code block into a plurality of second to-be-decoded groups, and Decoding a plurality of second to-be-decoded groups, updating the plurality of second to-be-decoded groups according to the decoding result, and acquiring a second updated sub-code block.
- a second decoding module configured to slide the sliding window back by the length of the N subcode blocks according to the receiving time, and slide the remaining second update subcode blocks in the active window Entering the N sub-code blocks of the sliding window as the first to-be-decoded sub-code block, where N is smaller than P; triggering the first decoding module and the first sliding module; triggering the second decoding module to perform K times, wherein K is an integer greater than or equal to 0; when K is 0, this step may not be performed, and jumps directly to step 5.
- a second sliding module configured to: after acquiring the second updated subcode block, output the first M subcode blocks of the second updated subcode block as a decoding result; and sliding the sliding window backward according to the receiving time
- the length of the subcode block, and the second updated subcode block remaining in the sliding window and the S subcode blocks sliding into the sliding window are used as the first to-be-decoded subcode
- the block is rotated to trigger the first decoding module and the second decoding module until the decoding result of all the sub-code blocks is output.
- S is the sum of M and N.
- M is 1 or 2.
- step decoding device For the content further defined by the step decoding device in this embodiment, reference may be made to the content of the step decoding device in the foregoing embodiment, and details are not described herein again.
- the embodiment of the present application further provides a storage medium, where the storage medium includes a stored program, where the program runs to perform the method described in any one of the above.
- the embodiment of the present application further provides a processor configured to run a program, where the program is executed to perform the method described in any of the above.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Electromagnetism (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
Claims (28)
- 一种阶梯码解码方法,包括:步骤1,获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数;步骤2,将所述第一待解码子码块分为多个第一待解码组,对所述多个待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块;步骤3,将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P;步骤4,将所述第二待解码子码块分为多个第二待解码组,对多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块后,输出所述第二更新子码块中的前M个子码块作为解码结果;步骤5,将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块,与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,返回步骤2,直至输出所有所述子码块的解码结果,其中,S为M和N的和。
- 如权利要求1所述的方法,其中,L为偶数。
- 如权利要求1所述的方法,其中,N为1。
- 如权利要求1所述的方法,其中,M为2。
- 如权利要求1所述的方法,其中,所述将所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块,包括:从所述第一待解码子码块中的第一个开始,以一个为间隔将所述第一待解码子码块进行转置,获取第一待解码转置子码块;将所述第一待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第一待解码子码块作为一组进行分组,获取所述多个第一待解码组;分别解码所述多个第一待解码组,并根据解码结果更新所述多个第一待解码组中的所述第一待解码子码块,获取所述第一更新子码块。
- 如权利要求1所述的方法,其中,所述将所述第二待解码子码块分为多 个第二待解码组,对所述多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块,包括:从所述第二待解码子码块中的第一个子码块开始,以一个为间隔将所述第二待解码子码块进行转置,获取第二待解码转置子码块;将所述第二待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第二待解码子码块作为一组进行分组,获取所述多个第二待解码组;分别解码所述多个第二待解码组,并根据解码结果更新所述多个第二待解码组中的所述第二待解码子码块,获取所述第二更新子码块。
- 如权利要求1所述的方法,其中,所述将所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,包括:当所述第一待解码子码块是经过硬判的码时,利用线性分组码进行解码;当所述第一待解码子码块不是经过硬判的码时,利用软解码算法进行解码。
- 如权利要求1所述的方法,其中,所述连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,包括:当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时,将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗;所述根据解码结果更新所述多个第一待解码组,获取第一更新子码块,包括:根据解码结果更新所述多个第一待解码组中除了所述全零码块以外的所述第一待解码子码块,获取第一更新子码块。
- 如权利要求8所述的方法,在所述步骤1之前,所述方法还包括:步骤100,从接收到第一个所述子码块开始,按顺序将相邻的两个所述子码块作为一组进行分组,获取多个待解码初始组,一个所述子码块只属于一个所述待解码初始组,其中,当接收到的子码块个数为奇数时,补充全零码块与所述子码块一起进行分组;步骤200,解码所述多个待解码初始组,并根据解码结果更新所述子码块后返回步骤100,直至接收到第L个所述子码块。
- 一种阶梯码解码装置,包括:第一待解码子码块获取模块,设置为获取滑动窗的长度L,按照接收时间由 前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数;第一解码模块,设置为将所述第一待解码子码块分为多个第一待解码组,对所述多个待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块;第一滑动模块,设置为将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P;第二解码模块,设置为将所述第二待解码子码块分为多个第二待解码组,对多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块后,输出所述第二更新子码块中的前M个子码块作为解码结果;第二滑动模块,设置为将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块,与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,返回触发第一滑动模块和第二解码模块,直至输出所有所述子码块的解码结果,其中,S为M和N的和。
- 如权利要求10所述的装置,其中,L为偶数。
- 如权利要求10所述的装置,其中,N为1。
- 如权利要求10所述的装置,其中,M为2。
- 如权利要求10所述的装置,其中,所述第一解码模块,包括:第一转置单元,设置为从所述第一待解码子码块中的第一个开始,以一个为间隔将所述第一待解码子码块进行转置,获取第一待解码转置子码块;第一待解码组获取单元,设置为将所述第一待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第一待解码子码块作为一组进行分组,获取所述多个第一待解码组;第一解码单元,设置为分别解码所述多个第一待解码组,并根据解码结果更新所述多个第一待解码组中的所述第一待解码子码块,获取第一更新子码块。
- 如权利要求10所述的装置,其中,所述第二解码模块,包括:第二转置单元,设置为从所述第二待解码子码块中的第一个开始,以一个为间隔将所述第二待解码子码块进行转置,获取第二待解码转置子码块;第二待解码组获取单元,设置为将所述第二待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第二待解码子码块作为一组进行分组,获取所述多个第二待解码组;第二解码单元,设置为分别解码所述多个第二待解码组,并根据解码结果更新所述多个第二待解码组中的所述第二待解码子码块,获取第二更新子码块。
- 如权利要求10所述的装置,其中,所述第一解码模块,设置为当所述第一待解码子码块是经过硬判的码时,利用线性分组码进行解码;当所述第一待解码子码块不是经过硬判的码时,利用软解码算法进行解码。
- 如权利要求10所述的装置,其中,所述第一待解码子码块获取模块,设置为:当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时;将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗;所述第一解码模块,设置为根据解码结果更新所述多个第一待解码组中除了所述全零码块以外的所述第一待解码子码块,获取所述第一更新子码块。
- 如权利要求17所述的装置,还包括:待解码初始组获取模块,设置为从接收到第一个所述子码块开始,按顺序将相邻的两个所述子码块作为一组进行分组,获取多个待解码初始组,所述一个所述子码块只属于一个所述待解码初始组,其中,当接收到的子码块个数为奇数时,补充所述全零码块与所述子码块一起进行分组;待解码初始组解码模块,设置为解码所述多个待解码初始组,并根据解码结果更新所述子码块后返回触发待解码初始组获取模块,直至接收到第L个所述子码块。
- 一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行权利要求1-9中任一项所述的阶梯解码方法。
- 一种处理器,所述处理器设置为运行程序,其中,所述程序运行时执行权利要求1-9中任一项所述的阶梯解码方法。
- 一种阶梯码解码方法,包括:步骤1,获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个子码块开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数;步骤2,将所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块;步骤3,将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P;将所述第二待解码子码块分为多个第二待解码组,对所述多个第二待解码组分别进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块;步骤4,将所述滑动窗按照所述接收时间,向后滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块与滑入所述滑动窗的N个所述子码块作为所述第一待解码子码块,其中N小于P;再执行步骤2和步骤3;将此步骤反复执行K次,其中K为大于等于0的整数;当K为0的时候表示此步骤可以不执行,直接跳到步骤5;步骤5,获取第二更新子码块后,输出所述第二更新子码块中的前M个子码块作为解码结果;将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,返回步骤2,直至输出所有所述子码块的解码结果。
- 如权利要求21所述的方法,其中,S为M和N的和。
- 如权利要求21所述的方法,其中,M为1或2。
- 一种阶梯码解码装置,包括:第一待解码子码块获取模块,设置为获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数;第一解码模块,设置为将所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,并根据解码结果更新所述多个第一待 解码组,获取第一更新子码块;第一滑动模块,设置为将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P;将所述第二待解码子码块分为多个第二待解码组,并对所述多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块;第二解码模块,设置为将所述滑动窗按照所述接收时间,向后滑动N个所述子码块的长度,并将所述活动窗内剩余的所述第二更新子码块与滑入所述滑动窗的N个所述子码块作为所述第一待解码子码块,其中N小于P;触发第一解码模块和第一滑动模块;触发第二解码模块执行K次,其中K为大于等于0的整数;当K为0的时候表示此步骤可以不执行,直接跳到步骤5;第二滑动模块,设置为获取第二更新子码块后,输出所述第二更新子码块的前M个子码块作为解码结果;将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,转去触发第一解码模块和第二解码模块,直至输出所有所述子码块的解码结果。
- 如权利要求24所述的装置,其中,S为M和N的和。
- 如权利要求24所述的装置,M为1或2。
- 一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行权利要求21-23中任一项所述的阶梯解码方法。
- 一种处理器,所述处理器设置为运行程序,其中,所述程序运行时执行权利要求21-23中任一项所述的阶梯解码方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/630,314 US11070313B2 (en) | 2017-07-10 | 2018-09-10 | Staircase code decoding method and staircase code decoding apparatus |
JP2020501303A JP2021525976A (ja) | 2017-07-10 | 2018-09-10 | 階段符号復号方法及び階段符号復号装置 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710555990.9A CN109245846B (zh) | 2017-07-10 | 2017-07-10 | 一种阶梯码解码方法和阶梯码解码装置 |
CN201710555990.9 | 2017-07-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2019011352A1 true WO2019011352A1 (zh) | 2019-01-17 |
Family
ID=65001497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/104874 WO2019011352A1 (zh) | 2017-07-10 | 2018-09-10 | 一种阶梯码解码方法和阶梯码解码装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11070313B2 (zh) |
JP (1) | JP2021525976A (zh) |
CN (1) | CN109245846B (zh) |
WO (1) | WO2019011352A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109787641B (zh) * | 2017-11-15 | 2024-02-06 | 中兴通讯股份有限公司 | staircase码的解码方法、装置及存储介质 |
US11709734B2 (en) * | 2021-04-30 | 2023-07-25 | Micron Technology, Inc. | Error correction with syndrome computation in a memory device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8656244B1 (en) * | 2010-10-29 | 2014-02-18 | Massachusetts Institute Of Technology | Rate adaptive nonbinary LDPC codes with low encoding complexity |
US20140237325A1 (en) * | 2011-04-13 | 2014-08-21 | Cortina Systems, Inc. | Staircase forward error correction coding |
CN105429646A (zh) * | 2015-06-30 | 2016-03-23 | 南京大学 | 一种咬尾阶梯码的编码及解码方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI497920B (zh) * | 2007-11-26 | 2015-08-21 | Sony Corp | Data processing device and data processing method |
EP2529486B1 (en) * | 2010-01-27 | 2014-10-15 | Telefonaktiebolaget LM Ericsson (publ) | Error floor reduction in iteratively decoded fec codes |
CN106059596B (zh) * | 2016-06-24 | 2019-05-14 | 中山大学 | 以二元bch码为成份码的分组马尔可夫叠加编码方法及其译码方法 |
US10110256B2 (en) * | 2016-09-16 | 2018-10-23 | Micron Technology, Inc. | Apparatuses and methods for staircase code encoding and decoding for storage devices |
-
2017
- 2017-07-10 CN CN201710555990.9A patent/CN109245846B/zh active Active
-
2018
- 2018-09-10 JP JP2020501303A patent/JP2021525976A/ja active Pending
- 2018-09-10 US US16/630,314 patent/US11070313B2/en active Active
- 2018-09-10 WO PCT/CN2018/104874 patent/WO2019011352A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8656244B1 (en) * | 2010-10-29 | 2014-02-18 | Massachusetts Institute Of Technology | Rate adaptive nonbinary LDPC codes with low encoding complexity |
US20140237325A1 (en) * | 2011-04-13 | 2014-08-21 | Cortina Systems, Inc. | Staircase forward error correction coding |
CN105429646A (zh) * | 2015-06-30 | 2016-03-23 | 南京大学 | 一种咬尾阶梯码的编码及解码方法 |
Non-Patent Citations (2)
Title |
---|
SMITH, BENJAMIN P .: "Staircase Codes: FEC for 100 Gb/s OTN", JOURNAL OF LIGHTWAVE TECHNOLOGY, 30 January 2012 (2012-01-30), XP080559124 * |
ZHANG, LEI M. ET AL.: "Staircase Codes With 6% to 33% Overhead", JOURNAL OF LIGHTWAVE TECHNOLOGY, 15 May 2014 (2014-05-15), XP011547432 * |
Also Published As
Publication number | Publication date |
---|---|
CN109245846B (zh) | 2022-07-05 |
CN109245846A (zh) | 2019-01-18 |
US11070313B2 (en) | 2021-07-20 |
US20200220653A1 (en) | 2020-07-09 |
JP2021525976A (ja) | 2021-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101110586B1 (ko) | 연결된 반복 및 대수 코딩 | |
CN101621299B (zh) | 一种突发纠错的方法、设备和装置 | |
CN1168237C (zh) | 移动通信系统中的分量解码器及其方法 | |
US20130198592A1 (en) | Turbo code parallel interleaver and parallel interleaving method thereof | |
JP2005033705A (ja) | 復号装置および復号方法 | |
US7502983B2 (en) | Binary error-correction coding method and decoding method for trellis with permuted and sequential symbols | |
WO2019011352A1 (zh) | 一种阶梯码解码方法和阶梯码解码装置 | |
US11750219B2 (en) | Decoding method, decoder, and decoding apparatus | |
CN1741614A (zh) | 使用冗余对视/音频和语音数据进行解码的方法和系统 | |
US20150155886A1 (en) | QPP Interleaver/DE-Interleaver for Turbo Codes | |
US11323139B2 (en) | Apparatuses and methods for mapping frozen sets between polar codes and product codes | |
US9189321B2 (en) | Error correction encoding method, decoding method and associated devices | |
US9325351B2 (en) | Adaptive multi-core, multi-direction turbo decoder and related decoding method thereof | |
CN112534724B (zh) | 用于解码极化码和乘积码的解码器和方法 | |
JP2003152556A (ja) | 誤り訂正符号復号装置 | |
Li et al. | Reconfigurable forward error correction decoder for beyond 100 Gbps high speed optical links | |
WO2019011351A1 (zh) | 一种阶梯码解码方法和阶梯码解码装置 | |
CN109245777B (zh) | 一种阶梯码解码方法和阶梯码解码装置 | |
KR102324655B1 (ko) | 계단 코드의 디코딩 방법, 계단 코드 디코딩 장치, 및 저장매체 | |
WO2021120729A1 (zh) | 译码方法、设备、可读存储介质、芯片及计算机程序产品 | |
RU2541844C1 (ru) | Способ декодирования кода-произведения с использованием упорядоченного по весу смежного класса векторов ошибок и устройство его реализующее | |
KR101218658B1 (ko) | 불규칙 반복 다상 누산 코드를 이용한 부호화 방법 및 복호화 방법 | |
KR101221062B1 (ko) | 가변 usc 부호를 이용한 부호화 및 복호화 방법 | |
KR101267654B1 (ko) | 가변 부호어 길이를 지원하는 불규칙 반복 다상 누산 부호화 및 복호화 방법과 이를 위한 장치 | |
KR20130043723A (ko) | 다상-누산 코드를 이용한 부호화 방법 및 복호화 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18831461 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2020501303 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 27.05.2020) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18831461 Country of ref document: EP Kind code of ref document: A1 |