Encoder, decoder, encoding method and decoding method
The two-part encoding/decoding system for LDPC codes addresses the issue of trapping sets by correcting recheck segment errors, enhancing error correction capability and reducing decoding failures.
Patent Information
- Application Number
- CN201911015545.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-10-21
- Filing Date
- 2019-10-24
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2040-06-04
AI Technical Summary
Existing low-density parity-check (LDPC) codes struggle to correct errors effectively at very low raw bit error rates due to trapping sets that cannot be corrected during the decoding process.
An encoder and decoder system that employs a two-part encoding and decoding process, using different encoding/decoding rules for the first and second parts of the codeword, with a synthesis unit combining them, and a second decoding unit correcting errors in a recheck segment to avoid trapping sets.
Enhances error correction capability by reducing decoding failures and improving overall system performance at low bit error rates.
Smart Images

Figure CN112769436B_ABST
Abstract
Description
Technical Field
[0001] The invention relates to an encoder, a decoder, an encoding method and a decoding method based on a low-density parity check code. Background Art
[0002] Low-Density Parity-Check (LDPC) code is a linear error correction code that is widely used in error correction mechanisms in communication systems and memory devices. However, even though the error correction capability of LDPC code is better than that of algebraic code, it is still not good enough when the raw bit error rate (RBER) is very low. Summary of the invention
[0003] The embodiment of the present invention discloses an encoder based on a low-density parity-check code, comprising a first encoding unit, a second encoding unit and a synthesis unit. The first encoding unit is used to receive information to be encoded, and generate a first part of code words according to a first encoding rule and the information to be encoded, wherein the first encoding rule is a coding rule for generating low-density parity-check codes. The second encoding unit is coupled to the first encoding unit, and is used to receive the first part of code words, and generate a second part of code words according to a second encoding rule different from the first encoding rule and a recheck section of the first part of code words. The synthesis unit is coupled to the first encoding unit and the second encoding unit, and is used to synthesize the first part of code words and the second part of code words to generate a code word. A plurality of trap sets corresponding to the first encoding rule include at least one error bit in the recheck section.
[0004] The embodiment of the present invention discloses a decoder based on low-density parity check code, including a first decoding unit and a second decoding unit. The first decoding unit is used to receive a codeword, extract a first part of the codeword, decode the first part of the codeword according to a first decoding rule, and determine whether the decoding of the first part of the codeword is successful, wherein the first decoding rule is a decoding rule for decoding low-density parity check code. The second decoding unit is coupled to the first decoding unit, and is used to receive the codeword processed by the first decoding unit when the first decoding unit determines that the decoding of the first part of the codeword fails, extract a second part of the codeword, decode the second part of the codeword according to a second decoding rule different from the first decoding rule, correct a recheck segment of the first part of the codeword according to a result of decoding the second part of the codeword, and transmit the first part of the codeword after the recheck segment is corrected to the first decoding unit for decoding again. A plurality of trap sets corresponding to the first decoding rule include at least one error bit in the recheck segment.
[0005] The embodiment of the present invention discloses a coding method based on a low-density parity check code, comprising: receiving a to-be-coded information through an encoder; generating a first part of codewords through the encoder according to a first coding rule and the to-be-coded information, wherein the first coding rule is a coding rule for generating low-density parity check codes; generating a second part of codewords through the encoder according to a second coding rule different from the first coding rule and a recheck section in the first part of codewords; and synthesizing the first part of codewords and the second part of codewords through the encoder to generate a codeword. A plurality of trap sets corresponding to the first coding rule include at least one error bit in the recheck section.
[0006] The embodiment of the present invention discloses a decoding method based on a low-density parity check code, comprising: receiving a codeword through a decoder; extracting a first part of the codeword through the decoder, decoding the first part of the codeword according to a first decoding rule, wherein the first decoding rule is a decoding rule for decoding low-density parity check codes; judging whether the decoding is successful through the decoder; when the decoding is judged to be unsuccessful, extracting a second part of the codeword through the decoder, decoding the second part of the codeword according to a second decoding rule; correcting a recheck section of the first part of the codeword according to a result obtained by decoding the second part of the codeword through the decoder; and decoding the first part of the codeword whose recheck section has been corrected through the decoder according to the first decoding rule. The plurality of trap sets corresponding to the first decoding rule include at least one error bit in the recheck section.
[0007] In order to better understand the above and other aspects of the present invention, the following embodiments are specifically described in detail with reference to the accompanying drawings: BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Figure 1 FIG. 4 is a block diagram of an encoding / decoding system based on a low-density parity check (LDPC) code according to an embodiment of the present invention.
[0009] Figure 2 A schematic diagram of a trapping set of an LDPC code is shown.
[0010] Figure 3 FIG. 4 is a block diagram of an encoder based on LDPC codes according to an embodiment of the present invention.
[0011] Figure 4 A flowchart of an encoding algorithm based on LDPC codes according to an embodiment of the present invention is shown.
[0012] Figure 5 FIG. 4 is a block diagram of a decoder based on LDPC codes according to an embodiment of the present invention.
[0013] Figure 6A flowchart of a decoding algorithm based on LDPC codes according to an embodiment of the present invention is shown.
[0014]
Explanation of symbols
[0015] 10: Encoding / decoding system
[0016] 20: Encoder
[0017] 30: Decoder
[0018] 40: Channel
[0019] 201: First coding unit
[0020] 203: Second coding unit
[0021] 205: Synthesis Unit
[0022] 301: First decoding unit
[0023] 303: Second decoding unit
[0024] TP1~TP5: Trap Set
[0025] S401~S617: Steps DETAILED DESCRIPTION
[0026] In order to make the objectives, technical solutions and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with specific embodiments and with reference to the accompanying drawings.
[0027] Please refer to Figure 1 , Figure 1 A block diagram of an encoding / decoding system based on a low-density parity check (LDPC) code according to an embodiment of the present invention is shown. The encoding / decoding system 10 includes an encoder 20 and a decoder 30. The encoder 20 is configured to encode a to-be-encoded information IF into a codeword according to an encoding algorithm based on the LDPC code, and transmit the codeword to the decoder 30 through a channel 40. The decoder 30 is configured to decode the codeword into a decoded information DeIF according to a decoding algorithm based on the LDPC code. The encoder 20, the decoder 30, the encoding algorithm and the decoding algorithm will be described in detail below.
[0028] Before describing the encoder 20, the decoder 30, the encoding algorithm, and the decoding algorithm, the problems faced by LDPC codes will be described. Figure 2Schematic diagram of the trapping set of the LDPC code shown. The codeword generated based on a specific LDPC coding rule may generate erroneous bits due to various reasons during the transmission through the channel and when the decoder receives it. Some codewords containing errors (hereinafter referred to as error patterns) can be successfully corrected by the decoder during the iteration process and the correct information can be decoded, while some error patterns cannot be corrected during the iteration process due to the LDPC code mechanism, so that the correct information cannot be decoded. The set formed by these error patterns that cannot be corrected is called the trapping set of the specific LDPC coding rule. That is, in traditional LDPC codes, error patterns that fall into the trapping set cannot be corrected by the LDPC decoder. This will result in the error correction capability of traditional LDPC coding being difficult to further improve when the raw bit error rate (RBER) is very low. In Figure 2 In the example, a codeword obtained after encoding includes ten bits. The corresponding trap sets include TP1 to TP5, where the correct bits are represented by white circles and the wrong bits are represented by black circles.
[0029] Please refer to Figure 3 , Figure 3 FIG. 2 is a block diagram of an encoder based on LDPC codes according to an embodiment of the present invention. The encoder 20 comprises a first encoding unit 201 , a second encoding unit 203 and a synthesis unit 205 .
[0030] The first encoding unit 201 is configured to receive the information to be encoded IF, and generate a first partial codeword CW1 according to a first encoding rule and the information to be encoded IF, wherein the first encoding rule is a coding rule for generating an LDPC code. In other words, the first partial codeword CW1 generated after the information to be encoded IF is encoded by the first encoding unit 201 is an LDPC codeword. It should be noted that the coding rule of the LDPC code is well known to those skilled in the art and will not be described in detail herein.
[0031] The second coding unit 203 is coupled to the first coding unit 203, and is configured to receive the first partial codeword CW1, and generate a second partial codeword CW2 according to a second coding rule and a recheck segment in the first partial codeword CW1, wherein the second coding rule is different from the first coding rule, for example, the second coding rule can be used to generate a coding rule of Bose-Chaudhuri-Hocquenghem code (BCH code). In other embodiments, the second coding rule can also be a coding rule for generating a cyclic redundancy check code (CRC), a check sum, a Reed-Solomon code (RS-code) and a turbo code. The so-called "recheck segment" refers to a segment composed of some bits of the first partial codeword CW1, and the bits constituting the recheck segment can be continuous or discontinuous. The recheck segment is determined according to the trap set corresponding to the first coding rule, and each trap set corresponding to the first coding rule includes at least one error bit in the recheck segment. The length of the recheck section is smaller than the length of the first partial codeword CW1.
[0032] In order to understand more clearly how to set the retest section, Figure 2 Assume that the trap set corresponding to the first encoding rule is Figure 2 In one embodiment, the recheck section can be set to the eighth to tenth bits of the first partial codeword CW1, that is, three consecutive bits. Figure 2 It can be seen from the trap sets that trap set TP1 has one error bit in the recheck segment, trap set TP2 has one error bit in the recheck segment, trap set TP3 has one error bit in the recheck segment, trap set TP4 has two error bits in the recheck segment, and trap set TP5 has one error bit in the recheck segment, that is, the condition for determining the recheck segment is met. In another embodiment, the recheck segment can be set to consist of the second bit and the eighth bit of the first partial codeword CW1, that is, two discontinuous bits. From Figure 2 It can be seen from the trap sets that trap set TP1 has an error bit in the re-verification section, trap set TP2 has an error bit in the re-verification section, trap set TP3 has an error bit in the re-verification section, trap set TP4 has an error bit in the re-verification section, and trap set TP5 has an error bit in the re-verification section, that is, the condition for determining the re-verification section is met.
[0033] It is worth mentioning that after determining the first coding rule, the coding designer can obtain a trap set corresponding to the first coding rule by analyzing the possible error patterns of the first part of the codeword CW1, and then determine the recheck section by analyzing the trap set. Therefore, the recheck section can be pre-set in the second coding unit 203.
[0034] The synthesizing unit 205 is coupled to the first coding unit 201 and the second coding unit 203, and is configured to generate a code word CW according to the first partial code word CW1 and the second partial code word CW2. In one embodiment, the synthesizing unit 205 may connect the second partial code word CW2 to the first partial code word CW1 to generate the code word CW. In another embodiment, the synthesizing unit 205 may connect the first partial code word CW1 to the second partial code word CW2 to generate the code word CW. In yet another embodiment, the synthesizing unit 205 may insert the second partial code word CW2 into the first partial code word CW1 to generate the code word CW.
[0035] Please refer to Figure 4 , Figure 4 A flowchart of an encoding algorithm based on LDPC codes according to an embodiment of the present invention is shown. Figure 4 The encoding algorithm used by the encoder 20 is drawn as a flow chart to facilitate understanding.
[0036] In step S401, a piece of information to be encoded is received.
[0037] In step S403, the information to be encoded is encoded into a first part of codewords according to a first encoding rule, wherein the first encoding rule is an LDPC code encoding rule.
[0038] In step S405 , a verification segment in the first partial codeword is encoded into a second partial codeword according to a second encoding rule, wherein the second encoding rule is different from the first encoding rule.
[0039] In step S407 , the first partial codeword and the second partial codeword are combined to generate a codeword.
[0040] The codeword CW is received by the decoder 30 after passing through the channel 40. The details of the decoder 30 will be described below.
[0041] The decoder 30 includes a first decoding unit 301 and a second decoding unit 303. The first decoding unit 301 is configured to extract a first part codeword CW1 in the codeword CW, and decode the first part codeword CW1 according to a first decoding rule corresponding to a first encoding rule. Since the codeword CW may cause partial bit errors due to factors such as noise after passing through the channel 40. When the first decoding unit 301 cannot successfully decode the first part codeword CW1, it is determined that the decoding has failed. When the first decoding unit 301 can successfully decode the first part codeword CW1, it is determined that the decoding is successful, and the decoded first part codeword CW1 will be output as the decoded information DeIF. In one embodiment, even if the decoding is determined to have failed,
[0042] The first decoding unit 301 can still correct some of the error bits in the first partial codeword CW1 during the decoding process, and the error pattern formed by the remaining error bits that cannot be corrected is likely to fall into the trap set. After determining that the decoding fails, the first decoding unit 301 will transmit the codeword CW including the first partial codeword CW1 that has been initially corrected to the second decoding unit 303.
[0043] The second decoding unit 303 is coupled to the first decoding unit 301, and is configured to receive the codeword CW including the first partial codeword CW1 that has undergone preliminary correction from the first decoding unit 301, extract the second partial codeword CW2 in the codeword CW, and decode the second partial codeword CW2 according to a second decoding rule corresponding to the second encoding rule, and correct the recheck segment of the first partial codeword CW1 according to a result obtained by decoding the second partial codeword CW2. When an error bit is found in the recheck segment when decoding the second partial codeword CW2, the second decoding unit 303 can determine the error bit in the recheck segment according to the result obtained by decoding the second partial codeword CW2 and correct it. When no error bit is found in the recheck segment when decoding the second partial codeword CW2, the second decoding unit 303 does not change the recheck segment. Since each trap set includes at least one error bit in the re-check segment, when the error pattern of the first partial codeword CW1 after preliminary correction falls into the trap set, the second decoding unit 303 can correct the error bit in the re-check segment so that the error pattern of the first partial codeword CW1 corrected by the second decoding unit 303 no longer falls into the trap set.
[0044] The codeword CW processed by the second decoding unit 303 is transmitted to the first decoding unit 301. The first decoding unit 301 is configured to extract the first part of the codeword CW1 in the codeword CW processed by the second decoding unit 303, and decode the first part of the codeword CW1 according to the first decoding rule. Since the first part of the codeword CW1 processed by the second decoding unit 303 may no longer fall into the trap set, the first decoding unit 301 may successfully decode the first part of the codeword CW1 and output the decoded first part of the codeword CW1 as the decoded information DeIF. If the first decoding unit 301 still cannot successfully decode the first part of the codeword CW1, it will determine that the decoding confirmation fails and end the decoding process. It should be noted that, since the trap set obtained through analysis is not guaranteed to include all error patterns that will cause the first decoding unit 301 to fail to successfully decode the first part of the codeword CW1, the error pattern of the first part of the codeword CW1 processed by the second decoding unit 303 may belong to the trap set that has not been analyzed, resulting in decoding confirmation failure. Even so, the above encoder and decoder can still solve the situation where the first part of the codeword CW1 cannot be successfully decoded due to the analyzed trap set, so that the probability of error correction is increased.
[0045] Please refer to Figure 6 , Figure 6 A flowchart of a decoding algorithm based on LDPC codes according to an embodiment of the present invention is shown. Figure 4 The decoding algorithm used by the decoder 30 is drawn as a flow chart for easier understanding.
[0046] In step S601, a codeword is received.
[0047] In step S603 , a first portion of codewords is extracted and the first portion of codewords is decoded according to a first decoding rule.
[0048] In step S605, it is determined whether the decoding is successful. If the decoding is successful, the process goes to step S607; if the decoding is unsuccessful, the process goes to step S609.
[0049] In step S607, the decoded first part of the codeword is output as decoded information.
[0050] In step S609 , a second portion of the codewords is extracted, and the second portion of the codewords is decoded according to a second decoding rule.
[0051] In step S611 , a verification segment of the first partial codeword is corrected according to a result obtained by decoding the second partial codeword.
[0052] In step S613, the first part of the codeword of the re-verification section that has been corrected is decoded according to the first decoding rule.
[0053] In step S615, it is determined whether the decoding is successful. If the decoding is successful, the process proceeds to step S617; if the decoding is unsuccessful, the process ends.
[0054] In step S617, the decoded first part of the codeword is output as decoded information.
[0055] The present invention provides a second layer of protection for the correctness of the recheck segment by having an encoder generate a second part of the codeword based on the recheck segment of the first part of the codeword (LDPC code). When the first decoding unit of the decoder (used to decode the LDPC code) cannot successfully decode the first part of the codeword, the decoder can verify the correctness of the recheck segment based on the second part of the codeword through the second decoding unit and correct the error bits of the recheck segment. When the error bits of the recheck segment are corrected, the first decoding unit may correct other errors in the first part of the codeword in a chain based on the correct recheck segment and successfully decode. Therefore, the present invention can effectively reduce the decoding failure caused by the trap set at a small cost, thereby improving the error correction capability of the overall encoding / decoding system.
[0056] The specific embodiments described above further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above description is only a specific embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the protection scope of the present invention.
Claims
1. A low-density parity-check code based encoder, include: A first encoding unit, for receiving information to be encoded, and generating a first part of codewords according to a first encoding rule and the information to be encoded, wherein the first encoding rule is an encoding rule for generating low-density parity-check codes; a second encoding unit, coupled to the first encoding unit, for receiving the first partial codeword and generating a second partial codeword according to a second encoding rule different from the first encoding rule and a recheck segment of the first partial codeword; as well as a synthesis unit, coupled to the first encoding unit and the second encoding unit, for synthesizing the first partial codeword and the second partial codeword to generate a codeword, A plurality of trap sets corresponding to the first coding rule include at least one error bit in the re-verification section.
2. The encoder of claim 1, wherein the second encoding rule is an encoding rule for generating a BCH code.
3. The encoder according to claim 1, wherein the recheck section comprises a plurality of consecutive bits in the first partial codeword.
4. The encoder according to claim 1, wherein the recheck section comprises a plurality of discontinuous bits in the first partial codeword.
5. The encoder according to claim 1, wherein the length of the re-check segment is smaller than the length of the first part of the codeword.
6. A decoder based on low-density parity-check codes, include: a first decoding unit, for receiving a codeword, extracting a first part of the codeword, decoding the first part of the codeword according to a first decoding rule, and determining whether the decoding of the first part of the codeword is successful, wherein the first decoding rule is a decoding rule for decoding low-density parity-check codes; a second decoding unit coupled to the first decoding unit, for receiving the codeword processed by the first decoding unit, extracting a second codeword of the codeword according to a second decoding rule different from the first decoding rule, correcting a recheck segment of the first codeword according to a result of decoding the second codeword, and transmitting the first codeword after the recheck segment is corrected to the first decoding unit for decoding again, when the first decoding unit determines that decoding of the first codeword fails. A plurality of trap sets corresponding to the first decoding rule include at least one error bit in the re-verification section.
7. The decoder of claim 6, wherein the second encoding rule is a decoding rule for decoding BCH code.
8. The decoder of claim 6, wherein the verification section comprises a plurality of consecutive bits in the first partial codeword.
9. The decoder of claim 6, wherein the verification section comprises a plurality of discontinuous bits in the first partial codeword.
10. The decoder of claim 6, wherein the length of the re-check section is smaller than the length of the first partial codeword.
11. A coding method based on low-density parity-check codes, include: Receiving information to be encoded through an encoder; Generate a first part of codewords by the encoder according to a first coding rule and the information to be encoded, wherein the first coding rule is a coding rule for generating low-density parity-check codes; Generating a second partial codeword by the encoder according to a second encoding rule different from the first encoding rule and a recheck segment in the first partial codeword; and The encoder combines the first part of the codeword and the second part of the codeword to generate a codeword, A plurality of trap sets corresponding to the first coding rule include at least one error bit in the re-verification section.
12. The encoding method according to claim 11, wherein the second encoding rule is an encoding rule for generating a BCH code.
13. The encoding method according to claim 11, wherein the verification section comprises a plurality of consecutive bits in the first partial codeword.
14. The encoding method according to claim 11, wherein the re-check section comprises a plurality of discontinuous bits in the first partial codeword.
15. The encoding method according to claim 11, wherein the length of the re-check segment is smaller than the length of the first part of the codeword.
16. A decoding method based on low-density parity-check code, include: Receiving a code word through a decoder; Retrieving a first portion of the codeword by the decoder, and decoding the first portion of the codeword according to a first decoding rule, wherein the first decoding rule is a decoding rule for decoding low-density parity-check codes; Determine whether the decoding is successful by using the decoder; When it is determined that the decoding fails, a second part of the codeword is captured by the decoder, and the second part of the codeword is decoded according to a second decoding rule; Correcting a recheck segment of the first partial codeword according to a result obtained by decoding the second partial codeword by the decoder; as well as Decoding the first portion of the codeword of the re-verification section that has been corrected according to the first decoding rule by the decoder, A plurality of trap sets corresponding to the first decoding rule include at least one error bit in the re-verification section.
17. The decoding method of claim 16, wherein the second coding rule is a decoding rule for decoding BCH code.
18. The decoding method according to claim 16, wherein the re-check section comprises a plurality of consecutive bits in the first partial codeword.
19. The decoding method according to claim 16, wherein the re-check section comprises a plurality of discontinuous bits in the first partial codeword.
20. The decoding method of claim 16, wherein the length of the re-check segment is smaller than the length of the first partial codeword.
