WO2019011352A1 - 一种阶梯码解码方法和阶梯码解码装置 - Google Patents

一种阶梯码解码方法和阶梯码解码装置 Download PDF

Info

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
Application number
PCT/CN2018/104874
Other languages
English (en)
French (fr)
Inventor
殷俊杰
蔡轶
王卫明
孙二坤
Original Assignee
中兴通讯股份有限公司
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 中兴通讯股份有限公司 filed Critical 中兴通讯股份有限公司
Priority to US16/630,314 priority Critical patent/US11070313B2/en
Priority to JP2020501303A priority patent/JP2021525976A/ja
Publication of WO2019011352A1 publication Critical patent/WO2019011352A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/60Receivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • 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/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block 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

本申请公开了一种阶梯码解码方法和阶梯码解码装置,其中所述方法包括:步骤1,获取滑动窗的长度L,从第P个开始连续获取L个所述子码块作为滑动窗中的第一待解码子码块;步骤2,将第一待解码子码块分为多个第一待解码组,对多个待解码组分别进行解码,并根据解码结果更新多个第一待解码组,获取第一更新子码块;步骤3,将滑动窗向前滑动N个子码块的长度;步骤4,将第二待解码子码块分为多个第二待解码组,对多个第二待解码组进行解码,获取第二更新子码块后,输出第二更新子码块中的前M个子码块;步骤5,将滑动窗向后滑动S,返回步骤2,直至输出所有子码块的解码结果,其中,S为M和N的和。

Description

一种阶梯码解码方法和阶梯码解码装置
本申请要求在2017年07月10日提交中国专利局、申请号为201710555990.9的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及光通信FEC技术领域,例如涉及一种阶梯码解码方法和阶梯码解码装置。
背景技术
前向纠错(Forward Error Correction,FEC)技术目前已经被广泛地应用于光通信系统中,以改善系统的误码率性能、提高系统通信的可靠性。其中,阶梯码是一种新型的FEC码型,它结合了卷积码及乘积码的思想,阶梯码的编码方式与乘积码的编码方式类似,同时任意相邻的两个子码块之间都有很强的相关性,也就是任意相邻的两个阶梯码子码块都可以组合成一个完整的BCH(Bose、Ray-Chaudhuri、Hocquenghem)码块单元,这样整个阶梯码可以看作一个长度趋于无穷的链式结构。在阶梯码的解码方式中,每完成一个阶梯码子码块的解码输出,需要进行来回反复多次的解码过程,而且要想获取较高的解码性能则需要增加解码次数,导致硬件电路实现复杂度高、功耗大、解码延迟大,同时解码后的性能也较差。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本申请提供一种阶梯码解码方法和阶梯码解码装置,用以避免相关技术中用于FEC码解码的硬件电路实现复杂度高、功耗大、解码延迟大且解码性能差的情况。
依据本申请的一个方面,提供一种阶梯码解码方法,包括步骤1至步骤5。
步骤1,获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待 解码子码块,其中,P为大于等于1的正整数,L为正整数。
步骤2,将所述第一待解码子码块分为多个第一待解码组,对所述多个待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块。
步骤3,将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P。
步骤4,将所述第二待解码子码块分为多个第二待解码组,对多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块后,输出所述第二更新子码块中的前M个子码块作为解码结果。
步骤5,将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块,与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,返回步骤2,直至输出所有所述子码块的解码结果,其中,S为M和N的和。
本申请实施例还提供一种阶梯码解码装置,包括第一待解码子码块获取模块,第一解码模块,第一滑动模块,第二解码模块以及第二滑动模块。
第一待解码子码块获取模块,设置为获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数。
第一解码模块,设置为将所述第一待解码子码块分为多个第一待解码组,对所述多个待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块。
第一滑动模块,设置为将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P。
第二解码模块,设置为将所述第二待解码子码块分为多个第二待解码组后,对多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块后,输出所述第二更新子码块中的前M个子码块作为解码结果。
第二滑动模块,设置为将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块,与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,返回触发第一滑动模块和第二解码模块,直至输出所有所述子码块的解码结果,其中,S为M和N的和。
本申请实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项所述的方法。
本申请实施例还提供了一种处理器,该处理器设置为运行程序,其中,该程序运行时执行上述任一项所述的方法。
本申请还提供一种梯码解码方法,包括步骤1至步骤5。
步骤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,直至输出所有所述子码块的解码结果。
在一实施例中,S为M和N的和。
在一实施例中,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个所述子码块作为所述第一待解码子码块,返回步骤2,直至输出所有所述子码块的解码结果。
在一实施例中,S为M和N的和。
在一实施例中,M为1或2。
本申请实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项所述的方法。
本申请实施例还提供了一种处理器,该处理器设置为运行程序,其中,该 程序运行时执行上述任一项所述的方法。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
附图仅用于示出部分实施方式,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请方法实施例1中阶梯码解码方法的流程图;
图2为本申请方法实施例2中阶梯码解码方法分组解码的流程图;
图3为本申请方法实施例3中阶梯码解码方法的流程图;
图4为本申请方法实施例4中阶梯码硬解码的初始化解码方法的流程图;
图5为本申请方法实施例4中阶梯码硬解码的解码方法的流程图;
图6为本申请方法实施例5中阶梯码软解码的初始化解码方法的流程图;
图7为本申请方法实施例5的阶梯码软解码的解码方法的流程图;
图8为本申请方法实施例6的阶梯码软硬结合解码的初始化解码方法的流程图;
图9为本申请方法实施例6的阶梯码软硬结合解码的解码方法的流程图;
图10为本申请方法实施例7的阶梯码解码装置的结构示意图;
图11为本申请方法实施例8中的阶梯码的解码方法的流程图;
图12为本申请方法实施例9中的阶梯码的解码方法的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以多种形式实现本公开而不应被这里阐述的实施例所限制。提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1为本申请方法实施例1中的阶梯码解码方法的流程图,如图1所示的本申请方法实施例1中的阶梯码解码方法,包括步骤1至步骤5。
在步骤1中,获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个子码块开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数。
在一实施例中,所述滑动窗设置为在阶梯码的解码过程中,在待解码子码块中前后滑动,并辅助一定的解码方法进行解码。所述滑动窗的长度L可以根据需求进行预先的设定。在本实施例所提供的方法中,按照接收时间由前到后的顺序连续获取L个所述子码块,作为所述滑动窗内的待解码子码块。所述L可设定为大于2的正整数,以保证完整的完成本实施例所述的方法。所述从第P个子码块开始连续获取,是为了后续滑动窗向前滑动做准备。
在一实施例中,L为偶数。
在步骤2中,将所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块。
在一实施例中,将所述滑动窗内的所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,由于对多个第一待解码组分别进行解码,可将所述每对多个第一待解码组组内的待解码子码块按照一定的顺序分别解码,也可以将多个第一待解码组同时进行解码,但所述多个第一待解码分组之间的解码过程没有关联。
在步骤3中,将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P。在一实施例中,N为1。
在一实施例中,向前滑动N个子码块后,所述滑动窗内滑入接收时间更早的N个所述子码块,滑出N个接收时间最晚的所述第一更新子码块。由于是从第P个所述子码块开始获取的,因此向前滑动的N必须小于P。
在步骤4中,将所述第二待解码子码块分为多个第二待解码组,对所述多个第二待解码组分别进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块后,输出所述第二更新子码块中的前M个子码块作为解码结果。
在一实施例中,将所述滑动窗内的所述第二待解码子码块分为多个第二待解码组,对多个第二待解码组分别进行解码,由于对多个第二待解码组分别进行解码,可将所述每个第二待解码组内的待解码子码块按照一定的顺序分别解码,也可以将多个第二待解码组同时进行解码,但所述多个第二待解码组之间的解码过程没有关联。
所述输出所述第二更新子码块中的前M个子码块,为根据接收时间由前到后的顺序,在所述滑动窗内最先接收到的M个所述第二待解码子码块对应的所述第二更新子码块。由于本步骤直接输出所述第二更新子码块中的前M个子码块作为解码结果,在满足解码的速率的要求和预期的准确性需求的前提下,应将M值设定的尽量小。所述M可设定为小于10以内的正整数,在一实施例中,M为2。
在步骤5中,将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块,与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,返回步骤2,直至输出所有所述子码块的解码结果,其中,S为M和N的和。
在一实施例中,N=1,M=2,则S=3。
在一实施例中,在输出所述第二更新子码块中的前M个子码块后,将所述滑动窗向后滑动S个所述子码块,将滑动后依然位于所述滑动窗内的剩余的第二更新子模块,和新滑入的所述子码块,作为所述滑动窗的新的第一待解码子码块,返回步骤2进行分组和解码,并输出新的第二更新子码块中的前M个子码块作为解码结果,直至输出所述子码块对应的所有第二更新子码块作为解码结果,或根据需求,将上述迭代解码步骤停止于设定好的子码块位置。
本实施例所提供的阶梯码解码方法,通过将所述滑动窗内的待解码子码块分为多个分组,分别对所述多个分组进行解码,根据解码结果更新所述待解码子码块获取第一更新子码块后,将滑动窗向前滑动N个子码块后,对滑动后窗口内的第二待解码子码块重新分组和解码获取第二更新子码块,输出第二更新子码块中的前M个子码块作为解码结果后,将滑动窗向后滑动S个子码块,其中S为M和N的和,再返回获取第一更新子码块的步骤进行迭代解码,以此输出更新子码块作为解码结果,每完成一个阶梯码子码块的解码输出,只需要进行有限次数的迭代解码过程,降低了硬件电路的实现复杂度,减小了解码的时间延迟,并提高了解码性能。
图2为本申请方法实施例2中的阶梯码解码方法中分组解码的流程图,如图2所示的本申请方法实施例2中的阶梯码解码方法,为所述实施例1中“将所述第一待解码子码块分为多个第一待解码组,对多个第一待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块”步 骤的一种实现方式,包括步骤10,步骤20和步骤30。
在步骤10中,从所述第一待解码子码块中的第一个开始,以一个为间隔将所述第一待解码子码块进行转置,获取第一待解码转置子码块。
在一实施例中,根据阶梯码的特点,在两两分组进行解码时,需要将其中一个子码块进行转置,本实施例所提供的方法,以一个所述第一待解码子码块为间隔,从第一个开始进行转置,获取第一待解码转置子码块。
在步骤20中,将每个所述第一待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第一待解码子码块作为一组进行分组,获取多个第一待解码组。
在一实施例中,在获取到的每个第一待解码组中,先接收到的所述第一待解码子码块进行了转置,后接收到的第一待解码子码块没有进行转置。
在步骤30中,分别解码多个所述第一待解码组,根据解码结果更新所述多个第一待解码子码组中的所述第一待解码子码块,获取所述多个第一更新子码块。
在一实施例中,将多个所述第一待解码组分别逐行进行解码,且多个所述第一待解码组之间的解码没有任何关联,可以根据需求任意设定解码的顺序或同时进行解码。需要说明的是,本实施例主要完成将所述第一待解码子码块进行分组以及解码,其中分组的步骤,也可以采用将所述第一待解码子码块按照所述接收时间,以相邻的两个所述第一待解码子码块作为一组进行分组,获取多个第一待解码组,且一个所述第一待解码子码块只属于一个所述第一待解码组,然后再将所述第一待解码组中先接收到的所述第一待解码子码块进行转置后,再进行后续的解码步骤。
本实施例所提供的阶梯码解码方法中,将所述滑动窗内的第一待解码子码块按照接收时间由前到后的顺序进行两两分组获取多个第一待解码组后,分别解码并更新第一待解码子码块。由于将第一待解码子码块分为多个分组后对所述多个分组分别进行解码,大大提高了阶梯码的解码速率。
在一实施例中,所述将所述第二待解码子码块分为多个第二待解码组,对多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块,包括:从所述第二待解码子码块中的第一个子码块开始,以一个码块为间隔将所述第二待解码子码的对应子码块进行转置,获取第二待解 码转置子码块;将所述第二待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第二待解码子码块作为一组进行分组,获取多个第二待解码组;分别解码所述多个第二待解码组,并根据解码结果更新所述多个第二待解码组中的所述第二待解码子码块,获取第二更新子码块。
在一实施例中,本实施例的说明同图2给出的实施例2的说明。本实施例所提供的阶梯码解码方法中,将所述滑动窗内的第二待解码子码块按照接收时间由前到后的顺序进行两两分组为多个第二待解码后,分别对多个第二待解码组解码并更新第二待解码子码块。由于将第二待解码子码块分为多个分组后分别对多个分组进行解码,大大提高了阶梯码的解码速率。
在一实施例中,所述分别解码所述第一待解码组,包括当所述第一待解码组中的所述第一待解码子码块是经过硬判的码时,利用线性分组码进行解码;当所述第一待解码子码块不是经过硬判的码时,利用软解码算法进行解码。本实施例针对不同的第一待解码子码块,支持不同的解码方式,提高了本申请所提供的阶梯码解码的适用范围。
需要说明的是,所述分别解码所述第二待解码组,与分别解码所述第一待解码组相同,不再赘述。
在一实施例中,所述连续获取L个所述子码块作为所述滑动窗中的待解码子码块,包括:当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时;将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗;所述根据解码结果更新所述待解码子码块,包括:根据解码结果更新除所述全零码块外的所述待解码子码块。本实施例给出了当所述滑动窗中第一个接收到的待解码子码块,为所有所述子码块中第一个接收到的子码块时,需要在所述滑动窗的第一个位置补充一个全零码块,以便对第一个所述待解码子码块进行解码。本实施例通过在第一个子码块前补充全零码块的方式,避免了第一个子码块分组后的解码情况,提高了本申请所提供的阶梯码的适用范围。
图3为本申请方法实施例3中的阶梯码解码方法的流程图,如图3所示的本申请方法实施例3中的阶梯码解码方法,是在本申请实施例1步骤1之前的步骤的一种实现方式,包括步骤100和步骤200。
在步骤100中,从接收到第一个所述子码块开始,按顺序将相邻的两个所 述子码块作为一组进行分组,获取多个待解码初始组,一个所述子码块只属于一个所述待解码初始组,其中,当接收到的子码块个数为奇数时,补充全零码块与所述子码块一起进行分组,得到多个待解码初始组。
在一实施例中,在实施例1中的步骤1开始之前,当接收到的子码块的数量不够L个时,为了提高阶梯码的解码准确度,本实施例将接收到的子码块进行分组,当接收到第一个子码块时,补充全零码块组成两个一组,当接收到第二个子码块时,再将第一个和第二个子码块组成两个一组,接收到第三个子码块时,将全零码块和第一个子码块组成一组,并将第二个子码块和第三个子码块组成一组,以此类推。
其中,在每个待解码初始组中,先接收到的所述子码块需要进行转置。
在步骤200中,解码所述多个待解码初始组,并根据解码结果更新所述子码块后返回步骤100,直至接收到第L个所述子码块。
在一实施例中,从接收到的第一个子码块开始,利用第一个子码块与全零码块组成第一个待解码初始组后,解码所述第一个待解码初始组,并能根据解码的结果更新除所述第一个子码块,全零码块不更新。当接收到第二个子码块时,利用更新后的第一个子码块和接收到的第二个子码块组成第二个待解码初始组后,进行解码,并更新第一个和第二个子码块,以此类推,直至接收到的第L个所述子码块。
本实施例所提供的阶梯码解码方法,在接收到预设的滑动窗的长度L个子码块之前,利用两个一组的方式,将接收到的子码块进行初始化的解码过程,通过所述初始化的解码过程,在后续的解码过程开始之前,已经将接收到的子码块进行了完整的迭解码,从而降低本申请所提供的阶梯码的解码误码率。
下面分别以本申请的硬解码、软解码、软硬结合解码的初始化解码,以及本申请的硬解码、软解码、软硬结合解码的正常解码过程进行举例说明。
图4为本申请方法实施例4中阶梯码硬解码的初始化解码方法的流程图,以L=6为例,接收到的阶梯码是经过硬判的码,则解码过程直接进行线性分组码硬解码,当最开始接收子码块数量不到6的时候,建议对接收到的数据也进行解码,这样后续当接收子码块数量到6的时候的解码输出将经过完整的3次迭代解码(1次迭代解码包括1次横向及1次纵向解码)。
如图4所示的本申请方法实施例4中阶梯码硬解码的初始化解码方法如下。
当接收到第1个子码块B 1的时候,对[B T 0,B 1]进行解码(图4左图中实线箭头1所示),并只更新B 1码块中的信息,其中T为转置的意思,B T 0表示全零子码块的转置。
当接收到第2个子码块B2的时候,对[B T 1,B 2]进行解码(图4左图中实线箭头2所示),并同时更新B 1及B 2码块中的信息,其中B T 1表示更新后的子码块B 1的转置。当接收到第3个子码块B 3的时候,对[B T 0,B 1]及[B T 2,B 3]进行解码(图4左图中实线箭头3、4所示),并同时更新B 1、B 2及B 3码块中的信息,其中B T 2表示更新后的子码块B 2的转置。
当接收到第4个子码块B4的时候,对[B T 1,B 2]及[B T 3,B 4]进行解码(图4左图中实线箭头5、6所示),并同时更新B 1、B 2、B 3及B 4码块中的信息。
当接收到第5个子码块B 5的时候,对[B T 0,B 1]、[B T 2,B 3]及[B T 4,B 5]进行解码(图4左图中实线箭头7、8、9所示),并同时更新B 1、B 2、B 3、B 4及B 5码块中的信息,其中B T 2表示更新后的子码块B 2的转置。
如果算上子码块B 0,滑动窗中已经有了6个子码块(图4左图中斜线部分所示),但是由于子码块B 0是阶梯码约定好的全零子码块,不是真正的接收码块,所以初始化解码完成后,并没有解码输出。接下来接收到的新码块是B 6、B 7子码块,此时滑动窗将向后滑动2个码块的长度(图4右图中斜线部分所示)。此时滑动窗新位置里面包括的6个子码块分别是B 2、B 3、B 4、B 5、B 6及B 7。实际实现的时候,滑动窗对应电路中的缓存装置。
图5为本申请方法实施例4中阶梯码硬解码的解码方法的流程图,以L=6为例,接收到的阶梯码是经过硬判的码,则解码过程直接进行线性分组码硬解码,如图5所示的本申请方法实施例4中的阶梯码硬解码的解码方法,包括步骤一至步骤六。
在步骤一中,将这滑动窗中6个子码块(图5左图中斜线部分所示)以相邻两个为单位分成3组:[B T 2,B 3]、[B T 4,B 5]及[B T 6,B 7](其中T为转置的意思);为了后续的表述方便,将这些组分别记为:B(1)=[B T 2,B 3]、B(2)=[B T 4,B 5]、B(3)=[B T 6,B 7];
在步骤二中,对B(1)、B(2)及B(3)码组单元分别逐行进行解码(图5左图虚线箭头1、2、3所示);同时更新B(1)、B(2)及B(3)码块中两个子码块的信息。
需要说明的是,如果接收到的阶梯码是经过硬判的码,则解码过程直接进 行BCH硬解码即可;如果接收到的是没有经过硬判的软信息,则解码方法则是turbo软解码算法。同时从上面的方法中我们看到B 1、B 2、B 3、B 4、及B 5经历了初始化解码的过程后已经经历了几次解码,这样输出的B 1则经历了3次迭代译码(1次完整的迭代译码包括1次横向及1次纵向译码)。
在步骤三中,对滑动窗向前滑动1个码块长度,则滑动窗新位置里面包括的6个阶梯码子码块分别是:B 1、B 2、B 3、B 4、B 5及B 6(图5中图斜线部分所示);将这6个子码块以相邻两个位单位分成3组:B(1)=[B T 1,B 2]、B(2)=[B T 3,B 4]、B(3)=[B T 5,B 6]。
在步骤四中,对B(1)、B(2)及B(3)码组单元分别进行解码(图5中图虚线箭头4、5、6所示);同时更新B(1)、B(2)及B(3)码块中的信息,并输出B(1)中的B 1、B 2;这样输出的B 1、B 2同样经历了3次迭代译码。
在步骤五中,对滑动窗向后滑动3个码块长度,则滑动窗新位置里面包括的6个阶梯码子码块分别是:B 4、B 5、B 6、B 7、B 8、B 9(图5右图斜线部分所示,其中i>=0);然后重复步骤S11到步骤S14的操作,输出相应B(1)中的B 3,B 4
在步骤六中,重复步骤S15中的操作,进而完成B 5、B 6…所有阶梯码子码块的解码输出。
在本实施例中,每完成一个阶梯码子码块的解码输出,只需要进行3次的码块迭代解码过程。因此在硬件电路实现复杂度上大大降低;同时也大大降低了解码的时间延迟,有利于网络的美俏(metro)应用;另外,在性能上有较大的提升。
图6为本申请方法实施例5中的阶梯码软解码的初始化解码方法的流程图,取L=4,接收到的是没有经过硬判的软信息,则解码方法则可以选择多种软解码算法。
当最开始接收子码块数量不到4的时候,建议对接收到的数据也进行软解码,这样后续当接收子码块数量到4的时候的解码输出将经过完整的2次迭代解码(1次迭代解码包括1次横向及1次纵向解码)。如图6所示的本申请方法实施例5中的阶梯码软解码的初始化解码方法。
当接收到第1个子码块B 1的时候,对[B T 0,B 1]进行软解码(图6左图中实线箭头1所示),并只更新B1码块中的软信息,其中T为转置的意思,B T 0表示全零子码块的转置。
当接收到第2个子码块B2的时候,对[B T 1,B 2]进行软解码(图6左图中实线箭头2所示),并同时更新B 1及B 2码块中的软信息,其中B T 1表示更新后的子码块B 1的转置。
当接收到第3个子码块B 3的时候,对[B T 0,B 1]及[B T 2,B 3]进行软解码(图6左图中实线箭头3、4所示),并同时更新B 1、B 2及B 3码块中的软信息,其中B T 2表示更新后的子码块B 2的转置。
如果算上子码块B 0,滑动窗中已经有了4个子码块(图6左图中斜线部分所示),但是由于子码块B 0是阶梯码约定好的全零子码块,不是真正的接收码块,所以初始化解码完成后,并没有解码输出。接下来接收到的新码块是B 4子码块,此时滑动窗将向右滑动1个码块的长度(图6右图中斜线部分所示)。此时滑动窗新位置里面包括的4个子码块分别是B 1、B 2、B 3及B 4。实际实现的时候,滑动窗对应电路中的缓存装置。
图7为本申请方法实施例5中的阶梯码软解码的解码方法的流程图,接收到的是没有经过硬判的软信息,则解码方法则可以选择多种软解码算法。如图7所示的本申请方法实施例5中的阶梯码软解码的解码方法,包括步骤S21至步骤S26。
在步骤S21中,将这滑动窗中4个子码块(图7左图中斜线部分所示)以相邻两个位单位分成2组:[B T 2,B 3]、[B T 4,B 5](其中T为转置的意思);为了后续的表述方便,将这些组分别记为:B(1)=[B T 2,B 3]、B(2)=[B T 4,B 5]。
在步骤S22中,对B(1)、B(2)码组单元分别逐行进行软解码(图7左图中虚线箭头1、2所示);同时更新B(1)、B(2)码块中两个子码块的信息。
在步骤S23中,对滑动窗向前滑动1个码块长度,则滑动窗新位置里面包括的4个阶梯码子码块分别是:B 1、B 2、B 3、B 4(图7中图斜线部分所示);将这4个子码块以相邻两个位单位分成2组:B(1)=[B T 1,B 2]、B(2)=[B T 3,B 4]。
在步骤S24中,对B(1)、B(2)码组单元分别进行软解码(图7中图虚线箭头3、4所示);同时更新B(1)、B(2)码块中的软信息,并将B(1)中的B 1、B 2软信息作硬判后输出;这样输出的B 1、B 2同样经历了2次迭代译码。
在步骤S25中,对滑动窗向后滑动3个码块长度,则滑动窗新位置里面包括的4个阶梯码子码块分别是:B 4、B 5、B 6、B 7(图7右图斜线部分所示);然后重复步骤S21到步骤S24的操作,输出相应B(1)中的B 3,B 4的硬判信息。
在步骤S26中,重复步骤S25中的操作,进而完成B 5、B 6…所有阶梯码子码块的解码输出。
图8为本申请方法实施例6中的阶梯码软硬结合解码的初始化解码方法的流程图,L=6,本实施例接收到的是没有经过硬判的软信息,则解码方法则硬解码算法结合软解码算法的混合解码,当最开始接收子码块数量不到6的时候,建议对接收到的数据也进行软解码,这样后续当接收子码块数量到6的时候的解码输出将经过完整的3次迭代解码(1次迭代解码包括1次横向及1次纵向解码)。
如图8所示的本申请方法实施例6中的阶梯码软硬结合解码的初始化解码方法。
当接收到第1个子码块B1的时候,对[B T 0,B 1]进行软解码(图8左图中实线箭头1所示),并只更新B 1码块中的软信息,其中T为转置的意思,B T 0表示全零子码块的转置。
当接收到第2个子码块B 2的时候,对[B T 1,B 2]进行软解码(图8左图中实线箭头2所示),并同时更新B 1及B 2码块中的软信息,其中B T 1表示更新后的子码块B 1的转置。
当接收到第3个子码块B3的时候,对[B T 0,B 1]及[B T 2,B 3]进行软解码(图8左图中实线箭头3、4所示),并同时更新B 1、B 2及B 3码块中的软信息,其中B T 2表示更新后的子码块B 2的转置。
当接收到第4个子码块B4的时候,对[B T 1,B 2]及[B T 3,B 4]进行软解码(图8左图中实线箭头5、6所示),并同时更新B 1、B 2、B 3及B 4码块中的软信息,其中B T 3表示更新后的子码块B 3的转置。
当接收到第5个子码块B 5的时候,对[B T 0,B 1]、[B T 2,B 3]及[B T 4,B 5]进行软解码(图8左图中实线箭头7、8、9所示),并同时更新B 1、B 2、B 3、B 4及B 5码块中的软信息,其中B T 4表示更新后的子码块B 4的转置。
如果算上子码块B 0,滑动窗中已经有了6个子码块(图8左图中斜线部分所示),但是由于子码块B 0是阶梯码约定好的全零子码块,不是真正的接收码块,所以初始化解码完成后,并没有解码输出。接下来接收到的新码块是B 6子码块,此时滑动窗将向右滑动1个码块的长度(图8右图中斜线部分所示)。此时滑动窗新位置里面包括的6个子码块分别是B 1、B 2、B 3、B 4、B 5及B 6。实际实现的 时候,滑动窗对应电路中的缓存装置。
图9为本申请方法实施例6中的阶梯码软硬结合解码的解码方法的流程图,L=6,本实施例接收到的是没有经过硬判的软信息,则解码方法则硬解码算法结合软解码算法的混合解码,如图9所示的本申请方法实施例6中的阶梯码软硬结合解码的解码方法,包括步骤S31至步骤S36。
在步骤S31中,将这滑动窗中6个子码块(图9左图中斜线部分所示)以相邻两个位单位分成3组:[B T 2,B 3]、[B T 4,B 5]及[B T 6,B 7](其中T为转置的意思);为了后续的表述方便,将这些组分别记为:B(1)=[B T 2,B 3]、B(2)=[B T 4,B 5]、B(3)=[B T 6,B 7]。
在步骤S32中,对B(1)=[B T 2,B 3]中的软信息进行硬判,进行硬解码(图9左图粗虚线箭头1所示),同时更新B(1)码块中的硬信息;然后对B(2)及B(3)码组单元分别逐行进行软解码(图9左图虚线箭头2、3所示);同时更新B(2)、B(3)码块中两个子码块的软信息。
在步骤S33中,对滑动窗向前滑动1个码块长度,则滑动窗新位置里面包括的6个阶梯码子码块分别是:B 1、B 2、B 3、B 4、B 5及B 6(图9中图斜线部分所示);将这6个子码块以相邻两个位单位分成3组:B(1)=[B T 1,B 2]、B(2)=[B T 3,B 4]、B(3)=[B T 5,B 6]。
在步骤S34中,对B(1)=[B T 1,B 2]中的软信息进行硬判,进行硬解码(图9中图粗虚线箭头4所示),同时更新B(1)码块中的硬信息;然后对B(2)及B(3)码组单元分别逐行进行软解码(图9中图虚线箭头2、3所示);同时更新B(2)、B(3)码块中两个子码块的软信息。
在步骤S35中,对滑动窗向后滑动3个码块长度,则滑动窗新位置里面包括的6个阶梯码子码块分别是:B 4、B 5、B 6、B 7、B 8、B 9(图9右图斜线部分所示);然后重复步骤S31到步骤S34的操作,输出相应B(1)中的硬判信息B 3,B 4
在步骤S36中,重复步骤S35中的操作,进而完成B 5、B 6…所有阶梯码子码块的解码输出。
图10为本申请方法实施例7中的阶梯码解码装置的结构示意图,如图10所示的本申请方法实施例7中的阶梯码解码装置,包括:待解码初始组获取模块80、待解码初始组解码模块90、第一待解码子码块获取模块100、第一解码 模块200、第一滑动模块300、第二解码模块400、以及第二滑动模块500。
待解码初始组获取模块80,设置为从接收到第一个所述子码块开始,按顺序将相邻的两个所述子码块作为一组进行分组,获取多个待解码初始组,所述一个子码块只属于一个待解码初始组,其中,当接收到的子码块个数为奇数时,补充所述全零码块与所述子码块一起进行分组。
L为偶数。
待解码初始组解码模块90,设置为解码所述多个待解码初始组,并根据解码结果更新所述L个子码块后返回待解码初始组获取模块,直至接收到第L个所述子码块。
第一待解码子码块获取模块100,设置为获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数,在一实施例中,L为偶数。第一待解码子码块获取模块100还设置为当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时;将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗。
第一解码模块200,设置为将所述第一待解码子码块分为多个第一解码组,分别对多个第一解码组进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块。所述第一解码块200包括第一转置单元、第一待解码组获取单元、第一解码单元。所述第一转置单元设置为从所述第一待解码子码块中第一个子码块开始,以一个为间隔将所述第一待解码子码块进行转置,获取第一待解码转置子码块。所述第一待解码组获取单元设置为将每个所述第一待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第一待解码子码块作为一组进行分组,获取多个第一待解码组。所述第一解码单元设置为分别解码所述多个第一待解码组,并根据解码结果更新所述多个第一待解码组中的所述第一待解码子码块,获取第一更新子码块。所述第一解码单元还设置为当所述第一待解码子码块是经过硬判的码时,利用线性分组码进行解码;当所述第一待解码子码块不是经过硬判的码时,利用软解码算法进行解码。所述第一解码单元还设置为根据解码结果更新除所述全零码块外的所述第一待解码组,获取第一更新子码块。
第一滑动模块300,设置为将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P;在一实施例中,N为1。
第二解码模块400,设置为将所述第二待解码子码块分成多个第二待解码组,对多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块后,输出所述第二更新子码块中的前M个子码块作为解码结果。第二解码模块400包括第二转置单元、第二待解码组获取单元和第二解码单元。所述第二转置单元设置为从所述第二待解码子码块中的第一个子码块开始,以一个为间隔将所述第二待解码子码块进行转置,获取第二待解码转置子码块。所述第二待解码组获取单元设置为将每个所述第二待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第二待解码子码块作为一组进行分组,获取多个第二待解码组。第二解码单元设置为分别解码所述多个第二待解码组,并根据解码结果更新所述多个第二待解码组中的所述第二待解码子码块,获取第二更新子码块。在一实施例中,M为2。
第二滑动模块500,设置为将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块,与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,返回触发第一滑动模块和第二解码模块,直至输出所有所述子码块的解码结果,其中,S为M和N的和。
本实施例所提供的阶梯码解码装置,通过将所述滑动窗内的待解码子码块分为的多个分组后分别对多个分组解码,根据解码结果更新所述待解码子码块获取第一更新子码块后,将滑动窗向前滑动N个子码块后,重新分组和解码获取第二更新子码块,输出第二更新子码块中的前M个子码块作为解码结果后,将滑动窗向后滑动S个子码块,其中S为M和N的和,再返回获取第一更新子码块的步骤进行迭代解码,以此输出更新子码块作为解码结果,每完成一个阶梯码子码块的解码输出,只需要进行有限次数的迭代解码过程,降低了硬件电路的实现复杂度,减小了解码的时间延迟,并提高了解码性能。
本申请所提供的阶梯码解码装置,通过将所述滑动窗内的待解码子码块分为多个分组后分别对多个分组解码,根据解码结果更新所述待解码子码块获取 更新子码块后,输出更新子码块中的前M个子码块作为解码结果,并将所述滑动窗向后滑动S个子码块后重复上述步骤。通过分组后分别解码输出更新子码块,再将所述滑动窗滑动后重复分组及解码步骤,依次输出更新子码块作为解码结果,每完成一个阶梯码子码块的解码输出,只需要进行有限次数的迭代解码过程,大大降低了硬件电路的实现复杂度,减小了解码的时间延迟,并提高了解码性能。
本领域普通技术人员可以理解上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
本申请一实施例提供一种阶梯码解码方法,包括步骤1至步骤5。
在步骤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,直至输出所有所 述子码块的解码结果。
在一实施例中,S为M和N的和。
在一实施例中,N=1,M=1或2。当M=1时,S=2;当M=2时,S=3。
图11为本申请方法实施例8中的阶梯码的解码方法的流程图,接收到的是软信息或者硬判信息均可。如图11所示的本申请方法实施例8中的阶梯码解码的解码方法,包括步骤S81至步骤S86。假设本实施例按照实施例5相似的方式已经完成了初始化。
在步骤S81中,将这滑动窗中4个子码块(图11左图中斜线部分所示)以相邻两个位单位分成2组:[B T 2,B 3]、[B T 4,B 5](其中T为转置的意思);为了后续的表述方便,将这些组分别记为:B(1)=[B T 2,B 3]、B(2)=[B T 4,B 5]。
在步骤S82中,对B(1)、B(2)码组单元分别逐行进行解码(图11左图中虚线箭头1、2所示);同时更新B(1)、B(2)码块中两个子码块的信息。
在步骤S83中,对滑动窗向前滑动1个码块长度,则滑动窗新位置里面包括的4个阶梯码子码块分别是:B 1、B 2、B 3、B 4(图11中图斜线部分所示);将这4个子码块以相邻两个位单位分成2组:B(1)=[B T 1,B 2]、B(2)=[B T 3,B 4]。对B(1)、B(2)码组单元分别进行解码(图11中图虚线箭头3、4所示);同时更新B(1)、B(2)码块中的信息。
在步骤S84中,在获取更新后的B(1)、B(2)码块后,将所述滑动窗按照所述接收时间,向后滑动1个所述子码块的长度,则滑动窗新位置里面包括的4个阶梯码子码块分别是:B 2、B 3、B 4、B 5,其中B(1)=[B T 2,B 3]、B(2)=[B T 4,B 5](图11左图斜线部分所示);再执行步骤S82和步骤S83,将此步骤S84再重复执行2次;输出相应B(1)中的B 1,B 2的信息。
在步骤S85中,对滑动窗向后滑动3个码块长度,则滑动窗新位置里面包括的4个阶梯码子码块分别是:B 4、B 5、B 6、B 7(图11右图斜线部分所示);然后重复步骤S81到步骤S84的操作,输出相应B(1)中的B3,B4的信息。
在步骤S86中,重复步骤S85中的操作,进而完成B 5、B 6…所有阶梯码子码块的解码输出。
图12为本申请方法实施例9中的阶梯码的解码方法的流程图,接收到的是软信息或者硬判信息均可。如图12所示的本申请方法实施例9中的阶梯码解码的解码方法,包括步骤S91至步骤S96。
在步骤S91中,将这滑动窗中4个子码块(图12左图中斜线部分所示)以相邻两个位单位分成2组:[B T 2,B 3]、[B T 4,B 5](其中T为转置的意思);为了后续的表述方便,将这些组分别记为:B(1)=[B T 2,B 3]、B(2)=[B T 4,B 5]。
在步骤S92中,对B(1)、B(2)码组单元分别逐行进行解码(图12左图中虚线箭头1、2所示);同时更新B(1)、B(2)码块中两个子码块的信息。
在步骤S93中,对滑动窗向前滑动1个码块长度,则滑动窗新位置里面包括的4个阶梯码子码块分别是:B 1、B 2、B 3、B 4(图12中图斜线部分所示);将这4个子码块以相邻两个位单位分成2组:B(1)=[B T 1,B 2]、B(2)=[B T 3,B 4]。对B(1)、B(2)码组单元分别进行解码(图12中图虚线箭头3、4所示);同时更新B(1)、B(2)码块中的信息。
在步骤S94中,在获取更新后的B(1)、B(2)码块后,将所述滑动窗按照所述接收时间,向后滑动1个所述子码块的长度,则滑动窗新位置里面包括的4个阶梯码子码块分别是:B 2、B 3、B 4、B 5,其中B(1)=[B T 2,B 3],B(2)=[B T 4,B 5](图12左图斜线部分所示);再执行步骤S92和步骤S93,将此步骤S94再重复执行1次;输出相应B(1)中的B 1的信息。
在步骤S95中,对滑动窗向后滑动2个码块长度,则滑动窗新位置里面包括的4个阶梯码子码块分别是:B 3、B 4、B 5、B 6(图12右图斜线部分所示);然后重复步骤S91到步骤S94的操作,输出相应B(1)中的B 2的信息。
在步骤S96中,重复步骤S95中的操作,进而完成B 3、B 4…所有阶梯码子码块的解码输出。
关于本实施例中的阶梯解码方法进一步限定的内容可参考前述实施例中阶梯解码方法的内容,在此不再赘述。
本申请一实施例提供一种阶梯解码装置,该装置包括第一待解码子码块获取模块,第一解码模块,第一滑动模块,第二解码模块以及第二滑动模块。
第一待解码子码块获取模块,设置为获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数。
第一解码模块,设置为将所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,并根据解码结果更新所述多个第一待 解码组,获取第一更新子码块。
第一滑动模块,设置为将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P;将所述第二待解码子码块分为多个第二待解码组,并对所述多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块。
第二解码模块,设置为将所述滑动窗按照所述接收时间,向后滑动N个所述子码块的长度,并将所述活动窗内剩余的所述第二更新子码块与滑入所述滑动窗的N个所述子码块作为所述第一待解码子码块,其中N小于P;触发第一解码模块和第一滑动模块;触发第二解码模块执行K次,其中K为大于等于0的整数;当K为0的时候表示此步骤可以不执行,直接跳到步骤5。
第二滑动模块,设置为获取第二更新子码块后,输出所述第二更新子码块的前M个子码块作为解码结果;将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,转去触发第一解码模块和第二解码模块,直至输出所有所述子码块的解码结果。
在一实施例中,S为M和N的和。
在一实施例中,M为1或2。
关于本实施例中的阶梯解码装置进一步限定的内容可参考前述实施例中阶梯解码装置的内容,在此不再赘述。
本申请实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项所述的方法。
本申请实施例还提供了一种处理器,该处理器设置为运行程序,其中,该程序运行时执行上述任一项所述的方法。

Claims (28)

  1. 一种阶梯码解码方法,包括:
    步骤1,获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数;
    步骤2,将所述第一待解码子码块分为多个第一待解码组,对所述多个待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块;
    步骤3,将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P;
    步骤4,将所述第二待解码子码块分为多个第二待解码组,对多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块后,输出所述第二更新子码块中的前M个子码块作为解码结果;
    步骤5,将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块,与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,返回步骤2,直至输出所有所述子码块的解码结果,其中,S为M和N的和。
  2. 如权利要求1所述的方法,其中,L为偶数。
  3. 如权利要求1所述的方法,其中,N为1。
  4. 如权利要求1所述的方法,其中,M为2。
  5. 如权利要求1所述的方法,其中,所述将所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块,包括:
    从所述第一待解码子码块中的第一个开始,以一个为间隔将所述第一待解码子码块进行转置,获取第一待解码转置子码块;
    将所述第一待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第一待解码子码块作为一组进行分组,获取所述多个第一待解码组;
    分别解码所述多个第一待解码组,并根据解码结果更新所述多个第一待解码组中的所述第一待解码子码块,获取所述第一更新子码块。
  6. 如权利要求1所述的方法,其中,所述将所述第二待解码子码块分为多 个第二待解码组,对所述多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块,包括:
    从所述第二待解码子码块中的第一个子码块开始,以一个为间隔将所述第二待解码子码块进行转置,获取第二待解码转置子码块;
    将所述第二待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第二待解码子码块作为一组进行分组,获取所述多个第二待解码组;
    分别解码所述多个第二待解码组,并根据解码结果更新所述多个第二待解码组中的所述第二待解码子码块,获取所述第二更新子码块。
  7. 如权利要求1所述的方法,其中,所述将所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,包括:
    当所述第一待解码子码块是经过硬判的码时,利用线性分组码进行解码;
    当所述第一待解码子码块不是经过硬判的码时,利用软解码算法进行解码。
  8. 如权利要求1所述的方法,其中,所述连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,包括:
    当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时,将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗;
    所述根据解码结果更新所述多个第一待解码组,获取第一更新子码块,包括:
    根据解码结果更新所述多个第一待解码组中除了所述全零码块以外的所述第一待解码子码块,获取第一更新子码块。
  9. 如权利要求8所述的方法,在所述步骤1之前,所述方法还包括:
    步骤100,从接收到第一个所述子码块开始,按顺序将相邻的两个所述子码块作为一组进行分组,获取多个待解码初始组,一个所述子码块只属于一个所述待解码初始组,其中,当接收到的子码块个数为奇数时,补充全零码块与所述子码块一起进行分组;
    步骤200,解码所述多个待解码初始组,并根据解码结果更新所述子码块后返回步骤100,直至接收到第L个所述子码块。
  10. 一种阶梯码解码装置,包括:
    第一待解码子码块获取模块,设置为获取滑动窗的长度L,按照接收时间由 前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数;
    第一解码模块,设置为将所述第一待解码子码块分为多个第一待解码组,对所述多个待解码组分别进行解码,并根据解码结果更新所述多个第一待解码组,获取第一更新子码块;
    第一滑动模块,设置为将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P;
    第二解码模块,设置为将所述第二待解码子码块分为多个第二待解码组,对多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块后,输出所述第二更新子码块中的前M个子码块作为解码结果;
    第二滑动模块,设置为将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块,与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,返回触发第一滑动模块和第二解码模块,直至输出所有所述子码块的解码结果,其中,S为M和N的和。
  11. 如权利要求10所述的装置,其中,L为偶数。
  12. 如权利要求10所述的装置,其中,N为1。
  13. 如权利要求10所述的装置,其中,M为2。
  14. 如权利要求10所述的装置,其中,所述第一解码模块,包括:
    第一转置单元,设置为从所述第一待解码子码块中的第一个开始,以一个为间隔将所述第一待解码子码块进行转置,获取第一待解码转置子码块;
    第一待解码组获取单元,设置为将所述第一待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第一待解码子码块作为一组进行分组,获取所述多个第一待解码组;
    第一解码单元,设置为分别解码所述多个第一待解码组,并根据解码结果更新所述多个第一待解码组中的所述第一待解码子码块,获取第一更新子码块。
  15. 如权利要求10所述的装置,其中,所述第二解码模块,包括:
    第二转置单元,设置为从所述第二待解码子码块中的第一个开始,以一个为间隔将所述第二待解码子码块进行转置,获取第二待解码转置子码块;
    第二待解码组获取单元,设置为将所述第二待解码转置子码块中的每个转置子码块和相邻的后接收到的所述第二待解码子码块作为一组进行分组,获取所述多个第二待解码组;
    第二解码单元,设置为分别解码所述多个第二待解码组,并根据解码结果更新所述多个第二待解码组中的所述第二待解码子码块,获取第二更新子码块。
  16. 如权利要求10所述的装置,其中,所述第一解码模块,设置为当所述第一待解码子码块是经过硬判的码时,利用线性分组码进行解码;当所述第一待解码子码块不是经过硬判的码时,利用软解码算法进行解码。
  17. 如权利要求10所述的装置,其中,所述第一待解码子码块获取模块,设置为:
    当获取到的第一个子码块为所有所述子码块中第一个接收到的所述子码块时;将全零码块补充为所述滑动窗中的第一个所述待解码子码块,并将所述滑动窗中的第L个所述待解码子码块滑出所述滑动窗;
    所述第一解码模块,设置为根据解码结果更新所述多个第一待解码组中除了所述全零码块以外的所述第一待解码子码块,获取所述第一更新子码块。
  18. 如权利要求17所述的装置,还包括:
    待解码初始组获取模块,设置为从接收到第一个所述子码块开始,按顺序将相邻的两个所述子码块作为一组进行分组,获取多个待解码初始组,所述一个所述子码块只属于一个所述待解码初始组,其中,当接收到的子码块个数为奇数时,补充所述全零码块与所述子码块一起进行分组;
    待解码初始组解码模块,设置为解码所述多个待解码初始组,并根据解码结果更新所述子码块后返回触发待解码初始组获取模块,直至接收到第L个所述子码块。
  19. 一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行权利要求1-9中任一项所述的阶梯解码方法。
  20. 一种处理器,所述处理器设置为运行程序,其中,所述程序运行时执行权利要求1-9中任一项所述的阶梯解码方法。
  21. 一种阶梯码解码方法,包括:
    步骤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,直至输出所有所述子码块的解码结果。
  22. 如权利要求21所述的方法,其中,S为M和N的和。
  23. 如权利要求21所述的方法,其中,M为1或2。
  24. 一种阶梯码解码装置,包括:
    第一待解码子码块获取模块,设置为获取滑动窗的长度L,按照接收时间由前到后的顺序,在接收到的子码块中,从第P个开始连续获取L个所述子码块作为所述滑动窗中的第一待解码子码块,其中,P为大于等于1的正整数,L为正整数;
    第一解码模块,设置为将所述第一待解码子码块分为多个第一待解码组,对所述多个第一待解码组分别进行解码,并根据解码结果更新所述多个第一待 解码组,获取第一更新子码块;
    第一滑动模块,设置为将所述滑动窗按照所述接收时间,向前滑动N个所述子码块的长度,并将所述滑动窗内剩余的所述第一更新子码块与滑入所述滑动窗的N个所述子码块作为第二待解码子码块,其中N小于P;将所述第二待解码子码块分为多个第二待解码组,并对所述多个第二待解码组进行解码,根据解码结果更新所述多个第二待解码组,获取第二更新子码块;
    第二解码模块,设置为将所述滑动窗按照所述接收时间,向后滑动N个所述子码块的长度,并将所述活动窗内剩余的所述第二更新子码块与滑入所述滑动窗的N个所述子码块作为所述第一待解码子码块,其中N小于P;触发第一解码模块和第一滑动模块;触发第二解码模块执行K次,其中K为大于等于0的整数;当K为0的时候表示此步骤可以不执行,直接跳到步骤5;
    第二滑动模块,设置为获取第二更新子码块后,输出所述第二更新子码块的前M个子码块作为解码结果;将所述滑动窗按照所述接收时间,向后滑动S个所述子码块的长度,并将所述滑动窗内剩余的所述第二更新子码块与滑入所述滑动窗的S个所述子码块作为所述第一待解码子码块,转去触发第一解码模块和第二解码模块,直至输出所有所述子码块的解码结果。
  25. 如权利要求24所述的装置,其中,S为M和N的和。
  26. 如权利要求24所述的装置,M为1或2。
  27. 一种存储介质,所述存储介质包括存储的程序,其中,所述程序运行时执行权利要求21-23中任一项所述的阶梯解码方法。
  28. 一种处理器,所述处理器设置为运行程序,其中,所述程序运行时执行权利要求21-23中任一项所述的阶梯解码方法。
PCT/CN2018/104874 2017-07-10 2018-09-10 一种阶梯码解码方法和阶梯码解码装置 WO2019011352A1 (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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