A method and apparatus for decoding RS codes

By detecting uncorrectable errors in RS code decoding and calculating the error location using the syndrome and key equation, the problem of increased bit error rate caused by uncorrectable errors in existing technologies is solved, thereby improving the reliability and performance of the system.

CN117413474BActive Publication Date: 2026-02-27HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202180098816.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-06-25
Publication Date
2026-02-27
Estimated Expiration
2041-06-25

AI Technical Summary

Technical Problem

Existing RS code decoding methods cannot effectively improve the performance and stability of communication systems when detecting uncorrectable errors, leading to an increased bit error rate.

Method used

By determining the synergy and key equation, calculating the error location polynomial and the minimum length satisfying the key equation, uncorrectable errors are detected, and the decoding operation is abandoned when an uncorrectable error is detected, thus avoiding the introduction of further errors.

Benefits of technology

It improves system reliability and performance, reduces computational complexity and resource overhead, comprehensively detects uncorrectable errors, and avoids increasing the bit error rate.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117413474B_ABST
    Figure CN117413474B_ABST
Patent Text Reader

Abstract

Provided are an RS code decoding method and device. In the present application, a concomitant formula is determined according to a code word to be decoded, the code word being an RS encoded code word (S301); an error position polynomial and a minimum length satisfying a key equation are determined according to the concomitant formula (S302); if the minimum length satisfying the key equation is greater than a maximum error correction capability of the RS encoding (S303), an uncorrectable error is detected, and decoding of the code word is abandoned, otherwise, an error position is determined according to the error position polynomial; if the number of the determined error positions is not equal to the minimum length satisfying the key equation (S305), an uncorrectable error is detected, and decoding of the code word is abandoned, otherwise, the code word is corrected according to the error positions, and a decoding result of the code word is obtained (S307). The present application can detect uncorrectable errors, thereby improving system performance and reliability.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of communication, and in particular to an RS code decoding method and device. BACKGROUND

[0002] RS (Reed-Solomon) code is a commonly used error correction code, has good error correction and resistance to burst error capability, and is widely used in various communication scenarios and standards, such as IEEE 802.3bj, ITU G.975, etc. The error correction principle of RS code is to transmit a certain amount of check information while transmitting data, and when a small amount of errors occur in transmission, the original information can be recovered through the check information.

[0003] In communication, the sending end obtains a code word by encoding the information to be sent, and the code word is transmitted in the channel after modulation. During transmission, it may be interfered, so that some symbols are wrong. Among them, some errors belong to correctable errors, and the receiving end can recover through check information, and some errors belong to uncorrectable errors. When uncorrectable errors occur, if the receiving end decodes uncorrectable errors, the system performance will be reduced, more errors will be introduced, the error rate will be high, and the system stability will be affected.

[0004] Therefore, when decoding RS code, how to detect uncorrectable errors has practical significance for improving the performance and stability of the communication system. SUMMARY

[0005] The present application provides an RS code decoding method and device to detect uncorrectable errors and improve system performance and reliability.

[0006] In a first aspect, an RS code decoding method is provided, comprising: determining an adjoint according to a code word to be decoded, the code word being an RS encoded code word; determining an error location polynomial and a minimum length satisfying a key equation according to the adjoint; if the minimum length satisfying the key equation is greater than the maximum error correction capability of the RS code, detecting uncorrectable errors and giving up decoding the code word, otherwise, determining an error location according to the error location polynomial; if the number of determined error locations is not equal to the minimum length satisfying the key equation, detecting uncorrectable errors and giving up decoding the code word, otherwise, correcting errors of the code word according to the error location, and obtaining a decoding result of the code word.

[0007] Optionally, the error location polynomial and the minimum length satisfying the key equation are determined by solving the key equation according to the adjoint. Optionally, the key equation is:

[0008] S(x)Λ(x)=Ω(x) (mod x2t ), deg(Ω(x)) < deg(Λ(x)) ≤ t

[0009] Wherein, deg(Ω(x)) represents the order of error value polynomial Ω(x), deg(Λ(x)) represents the order of error location polynomial Λ(x), and t is the maximum error correction capability of RS encoding.

[0010] The above implementation manner can detect uncorrectable errors, thereby improving system reliability. On the other hand, compared with the multiple calculation of the adjoint in the traditional RS code decoding method, the above implementation manner does not need to calculate the adjoint multiple times, and therefore can reduce complexity and resource consumption, thereby improving system performance.

[0011] In a possible implementation manner, the determining the error location polynomial and the minimum length satisfying the key equation according to the adjoint includes: performing 2t iterations according to the adjoint to obtain the error location polynomial and the minimum length satisfying the key equation, t being the maximum error correction capability of RS encoding, wherein in the ith iteration, 1≤i≤2t: if the ith term coefficient of the adjoint and the current error location polynomial is not equal to zero and the current value of the minimum length satisfying the key equation is less than the current value of an auxiliary variable, saving the current value of the minimum length satisfying the key equation, updating the minimum length satisfying the key equation according to the formula L Λ = L B +1, and updating the value of the auxiliary variable to the saved minimum length satisfying the key equation, wherein L Λ is the minimum length satisfying the key equation after the ith iteration, and L B is the auxiliary variable; otherwise, keeping the minimum length satisfying the key equation unchanged and incrementing the value of the auxiliary variable.

[0012] Optionally, the BM algorithm or a derivative algorithm thereof can be used to determine the error location polynomial and the minimum length satisfying the key equation.

[0013] Further, in the process of performing 2t iterations according to the adjoint, the error value polynomial is also obtained.

[0014] In a possible implementation manner, after the error location polynomial is determined according to the adjoint, the method further includes: determining the error value polynomial according to the error location polynomial.

[0015] In a possible implementation manner, after the uncorrectable error is detected, the method further includes: outputting an alarm indication indicating that the uncorrectable error is detected.

[0016] In a possible implementation, after the syndrome is determined according to the code word to be decoded, the method further includes: if all the syndromes are equal to 0, taking information symbols in the code word as a decoding result of the code word; wherein the code word includes at least one information symbol and at least one check symbol.

[0017] In a second aspect, an RS decoder is provided, including: a syndrome determination unit configured to determine a syndrome according to a code word to be decoded, the code word being an RS encoded code word; an error location polynomial determination unit configured to determine an error location polynomial and a minimum length satisfying a key equation according to the syndrome; an error location determination unit configured to determine whether the minimum length satisfying the key equation is greater than a maximum error correction capability of RS encoding, if yes, detecting an uncorrectable error and giving up decoding the code word; otherwise, determining an error location according to the error location polynomial; an error correction unit configured to determine whether a number of the determined error locations is equal to the minimum length satisfying the key equation, if not, detecting an uncorrectable error and giving up decoding the code word; otherwise, performing error correction on the code word according to the error location to obtain a decoding result of the code word.

[0018] In a third aspect, an RS decoder is provided, including: one or more processors; one or more memories; wherein the one or more memories store one or more computer programs including instructions, when the instructions are executed by the one or more processors, causing the RS decoder to perform the method in any one of the first aspect.

[0019] In a fourth aspect, a chip is provided, including: one or more processors; one or more memories; wherein the one or more memories store one or more computer programs including instructions, when the instructions are executed by the one or more processors, causing the chip to perform the method in any one of the first aspect.

[0020] In a fifth aspect, a computer program product is provided, when the computer program product is invoked by a computer, causing the computer to perform the method in any one of the first aspect. BRIEF DESCRIPTION OF DRAWINGS

[0021] Figure 1 A vector space diagram for an RS code receiving end;

[0022] Figure 2 A traditional RS code decoding flow diagram;

[0023] Figure 3 An RS code decoding flow diagram provided by an embodiment of the present application;

[0024] Figure 4 This is a schematic diagram illustrating the implementation process of the BM algorithm in the embodiments of this application;

[0025] Figure 5 This application provides a schematic diagram of an RS decoding process.

[0026] Figure 6 This is a schematic diagram of the RS decoder provided in an embodiment of this application. Detailed Implementation

[0027] The following is a brief introduction to RS codes.

[0028] RS codes are an important subclass of non-binary BCH codes and are a type of maximum distance blockable code. The basic principle of RS codes is as follows: for a given polynomial (called the generator polynomial g(x)), the codeword polynomial calculated for each information segment is a multiple of g(x), that is, the remainder when the codeword polynomial is divided by the generator polynomial g(x) is 0. Thus, if the remainder when the received codeword polynomial is divided by the generator polynomial g(x) is not 0, it can be known that there is an error in the codeword, and through further calculation, up to t = (nk) / 2 errors can be corrected, where t is called the maximum error correction capability.

[0029] For example, the data to be encoded can be viewed as a vector D = (D1, D2, ..., D...). k If ), then the encoded data is a vector (D1, D2, ..., D). k C1, C2, ..., C e The encoded vector (D1, D2, ..., D) k C1, C2, ..., C e ) is called a codeword. Among them, D i (1≤i≤k) is called an information symbol, C i (1≤i≤e) is called a check code, and an information code and a check code are m bits of data respectively.

[0030] The main parameters of the RS code include (m, n, k), where m represents the symbol and is taken from the finite field GF(2). M ), where n represents the length of the codeword (i.e., the total number of information bits and check bits in a codeword), k is the length of the information segment (i.e., the number of information bits in a codeword), and the parity bit length (i.e., the number of check bits in a codeword) is e = nk. The maximum error correction capability of RS coding is t = (nk) / 2.

[0031] Consider finite fields Let α be a finite field Given the primitive element in the polynomial g(x), the generator polynomial g(x) is expressed as:

[0032]

[0033] Where, t∈Z + To assess the error-correcting capability of RS codes, if nk = 2t, then the (n,k)RS code can be defined as:

[0034] {c(x)|deg(c(x))≤n-1,c(x)≡0(mod g(c))}

[0035] After the RS code is modulated and transmitted in the channel, the vector received by the receiver is represented as follows:

[0036]

[0037] Here, e(x) represents the error pattern. When the number of erroneous symbols υ ≤ t (i.e., the weight of e(x) is less than or equal to t), there is exactly one codeword c(x) with a Hamming distance of υ to r(x). When the number of erroneous symbols υ > t, two situations may occur: first, there exists a codeword c′(x) with a Hamming distance less than or equal to t to r(x), in which case the decoder decodes r(x) into c′(x); second, there is no codeword with a Hamming distance less than or equal to t to r(x), in which case the error correction capability is exceeded. The error patterns in the above two situations are uncorrectable errors, and the error patterns in other situations are called correctable errors.

[0038] The Hamming sphere can also be used to understand potential channel errors. For a codeword c(x), the Hamming sphere is defined as all vectors whose Hamming distance is less than or equal to t. Therefore, the vector space at the receiver can be represented by... Figure 1 Indicates. For example... Figure 1 As shown, d min It is the minimum distance of the code, and satisfies The vector space at the receiver consists of multiple disjoint Hamming spheres and other vectors outside the Hamming spheres (as shown by the black dots in the figure). The center of each Hamming sphere is the codeword (as shown by the black square in the figure). During communication, the transmitter encodes the information to be sent into codewords. These codewords are then modulated and transmitted through the channel. During transmission, interference may occur, leading to errors in some symbols. When the received vector is an element within a Hamming sphere, this error is called a correctable error, and the decoder translates it into the codeword at the center of that Hamming sphere. When multiple errors occur, the received vector may not be within any Hamming sphere; this error is called an uncorrectable error.

[0039] Decoding uncorrectable errors will introduce more errors, leading to a higher bit error rate and affecting the stability of the communication system.

[0040] Based on the definition of the generator polynomial, the decoding process of RS codes can be as follows: Figure 2 As shown. Figure 2 An exemplary embodiment of a conventional RS decoding process is shown in the figure, which may include:

[0041] S201: Calculate the syndrome S(x) based on the received codeword r(x).

[0042] In this step, 2t (2t = nk) adjoint equations S(x) are calculated based on the value of the received polynomial r(x).

[0043] Calculate S using the definition of the adjoint. j =r(α) j ), and solve for S respectively. j The values ​​of these 2t are related to errors that occur in the channel.

[0044] S202: Based on the value of the syndrome S(x) S j Calculate the error position polynomial Λ(x) and the error value polynomial Ω(x).

[0045] The error position polynomial can be expressed as: Λ(x)=λ0+λ1x+λ2x 2 +…+λ t x t .

[0046] The error position polynomial Λ(x) and error value polynomial Ω(x) can be calculated using a key equation solving algorithm. The key equation for the RS code is:

[0047] S(x)Λ(x)=Ω(x)(mod x 2t ),deg(Ω(x)) <deg(Λ(x))≤t

[0048] Where deg(Ω(x)) represents the order of the error-valued polynomial Ω(x), and deg(Λ(x)) represents the order of the error-positioned polynomial Λ(x).

[0049] Common algorithms for solving the above key equation include BM (Berlekamp-Massey) algorithm, Euclidean algorithm, etc. Due to low computational complexity, the BM algorithm is selected as a commonly used key equation solving algorithm. In addition, algorithms derived from the BM algorithm, such as RiBM (Reformulation of inversionless BM), can improve the key path of the BM algorithm and reduce hardware resources, which makes the RS decoding method based on the BM or its derived algorithms the mainstream of current hardware implementation.

[0050] S203: Solve the error location polynomial Λ(x) to obtain the error location.

[0051] In this step, the roots of the error location polynomial Λ(x) can be solved by Chien search, and the reciprocal of the roots of the error location polynomial Λ(x) is the error location.

[0052] S204: Calculate the error value according to the error location and the error value polynomial Ω(x).

[0053] S205: Complete decoding according to the calculated error location and error value.

[0054] The above RS decoding method based on the BM or its derived algorithms (such as RiBM) mainly focuses on decoding correctable errors. In order to detect uncorrectable errors, the industry currently adopts the following methods:

[0055] One method is to compare the number of roots of the error location polynomial Λ(x) with the degree deg(Λ(x)) of the polynomial after completing Chien search, and if they are not equal, an uncorrectable error is detected. Using this method, some uncorrectable errors cannot be detected.

[0056] Another method is to calculate the syndrome S(x) again using the error-corrected codeword after error correction, and if the calculated syndrome is not equal to 0, it indicates that an uncorrectable error is detected. This method requires two times of calculation of the syndrome, which increases the computational complexity and resource overhead.

[0057] In order to detect uncorrectable errors and further improve system performance and reliability, the present application embodiment provides an RS code decoding method. The RS code decoding method provided by the present application embodiment can detect uncorrectable errors, and compared with the above-mentioned traditional error correction method, it can detect uncorrectable errors at a lower cost and more comprehensively.

[0058] The present application embodiments will be described in detail below with reference to the accompanying drawings.

[0059] Reference is made to Figure 3This application provides an RS code decoding process. This process can be implemented by an RS code decoder, which can be implemented in hardware, such as by an integrated circuit like a field-programmable gate array (FPGA), or in software, or a combination of both. This process can also be implemented by a communication device or electronic device with RS decoding capabilities. For example, the communication device could be a World Interoperability for Microwave Access (WiMAX) network device or a WiMAX terminal, capable of decoding received RS-encoded signals; another example is an electronic device that can demodulate RS-encoded digital television signals (such as a set-top box), or a DVD player capable of reading RS-encoded DVD data and decoding the read data.

[0060] like Figure 3 As shown, the process may include the following steps:

[0061] S301: Determine the syntactic based on the codeword to be decoded, which is an RS-encoded codeword.

[0062] Optionally, before S301, RS-encoded codewords can be acquired or received first. For example, in a WiMAX communication scenario, the WiMAX terminal receives RS-encoded signals; in a digital television application scenario, the set-top box receives RS-encoded digital television signals; and in a DVD application scenario, the DVD player reads a DVD disc to obtain RS-encoded data.

[0063] The codeword to be decoded can be represented as a receiving polynomial, and then 2t (2t = nk) synods can be calculated based on the value of the receiving polynomial. Here, n represents the length of the codeword (that is, the total number of information symbols and check symbols contained in a codeword), k is the length of the information segment (that is, the number of information symbols in a codeword), and t is the maximum error correction capability.

[0064] Calculate the syndrome S using the definition of syndrome i =r(α) i ), and solve the syndrome S respectively. i The value of . For example, the principle for calculating the adjoint is as follows:

[0065] The vector received by the receiver is represented as:

[0066] r(x) = c(x) + e(x)

[0067] If the generator polynomial g(x) used for encoding is:

[0068] g(x) = (x - a p )(x - a p+1 )(x - a p+2 )…(x - a p+n-k-1 )

[0069] Because

[0070] c(x)≡0(mod g(x))

[0071] Therefore

[0072] c(a i ) = 0, i = p, p + 1, …, p + n - k - 1

[0073] Therefore

[0074] r(a i ) = c(a i ) + e(a i ) = e(a i ), i = p, p + 1, …, p + n - k - 1

[0075] Let

[0076] S i = r(a i ) = e(a i ), i = p, p + 1, …, p + n - k - 1

[0077] The values of the 2t syndromes are related to the errors generated by the channel.

[0078] Optionally, if at least one syndrome is not equal to 0, it indicates that the code word to be decoded has errors, and a subsequent error correction process is performed; if all syndromes are equal to 0, it indicates that the code word to be decoded does not need to be decoded, and the information symbols in the code word can be directly output as the decoding result.

[0079] S302: determining an error location polynomial and a minimum length satisfying the key equation according to the syndromes.

[0080] In this step, the error location polynomial and the minimum length satisfying the key equation can be calculated by a key equation solving algorithm.

[0081] Embodiments of the present application can use a BM algorithm, a RiBM algorithm, or the like to solve the key equation to obtain the error location polynomial and the minimum length satisfying the key equation.

[0082] In an example, the step can be performed by 2t iterations of the adjoint formula to obtain the error locator polynomial Λ(x) and the minimum length L satisfying the key equation. In the ith iteration (1≤i≤2t): if the ith coefficient of the adjoint formula and the current error locator polynomial Λ(x) is not equal to zero and the current L is less than the current value of the auxiliary variable, then save L, update L according to the formula L Λ B +1, and update the value of the auxiliary variable to the saved L; otherwise, keep L unchanged and increment the value of the auxiliary variable.

[0083] The following describes the BM algorithm used in the embodiments of the present application as an example.

[0084] The BM algorithm finds L and the error locator polynomial Λ(x) by iteration, so that the degree of the error value polynomial Ω(x) deg(Ω(x))<L.

[0085] The BM algorithm keeps the error locator polynomial Λ(x), the auxiliary update polynomial B(x), the auxiliary variable γ and L Λ , L B , updates Λ(x) using B(x), γ and L Λ , L B , and until the key equation is satisfied.

[0086] Before the iteration starts, Λ(x) = 1, B(x) = 1, γ = 1, L Λ = 0, L B = 0.

[0087] After the ith iteration, the BM algorithm guarantees that the L, L+1, …, i coefficients of S(x)Λ(x) are 0, where i = 1, 2, …, 2t. After 2t iterations, the solution satisfying the key equation can be obtained.

[0088] In the ith iteration, the BM algorithm sets:

[0089] Λ(x) = γΛ(x) - dxB(x)

[0090] where d is the ith coefficient of S(x)Λ(x). If d ≠ 0 and LΛ≤LB, set:

[0091] B(x) = Λ(x), γ = d, L Λ = L B + 1, L B = L Λ

[0092] Otherwise, set:

[0093] B(x) = xB(x), L B = L B + 1​

[0094] Through the iteration process of the above BM algorithm, the error position polynomial Λ(x) and L Λ , L Λ are finally output, which are the minimum length satisfying the key equation.

[0095] An exemplary, Figure 4 implementation process of the BM algorithm is shown. As shown in the figure, the process can include the following steps: Figure 4

[0096] S400: Perform parameter initialization, let Λ(x) = 1, B(x) = 1, γ = 1, L Λ = 0, L B = 0;

[0097] S401: Initialize the iteration number i = 1;

[0098] The following S402 to S411 are the iteration process, which specifically includes:

[0099] S402: Calculate the ith term coefficient of S(x)Λ(x)

[0100] S403: If d ≠ 0 and L Λ ≤ L B , go to S404, otherwise go to S407;

[0101] S404: Update the intermediate parameter t(x) = Λ(x), update the error position polynomial Λ(x) = γΛ(x)-dxB(x);

[0102] S405: Update B(x) = t(x), update γ = d;

[0103] S406: Update the intermediate parameter L t = L Λ , update L Λ = L B + 1, update L B = L t , and then go to S410;

[0104] S407: Update the error position polynomial Λ(x) = γΛ(x)-dxB(x);

[0105] S408: Update B(x) = x B(x);

[0106] S409: Update L B = L B + 1, and then go to S410;

[0107] ​S410: complete the iteration process, update the iteration number i=i+1;

[0108] S411: determine whether the iteration is completed for 2t times, i.e. whether the iteration number i reaches 2t, if yes, go to S412, otherwise return to S402 to perform the next iteration;

[0109] S412: end the iteration, and output the error position polynomial Λ(x) and the value of L Λ , the value of L Λ is the minimum length satisfying the key equation.

[0110] S303: compare the minimum length satisfying the key equation and the maximum error correction capability of the RS encoding, if the minimum length satisfying the key equation is greater than the maximum error correction capability, it is detected that the uncorrectable error, the decoding operation on the current code word is abandoned, the decoding process of the code word is ended, otherwise go to S304.

[0111] Optionally, if the uncorrectable error is detected, an alarm indication can also be output to indicate that the uncorrectable error is detected.

[0112] S304: determine the error position according to the error position polynomial, and count the number of error positions.

[0113] In this step, the roots of the error position polynomial Λ(x) can be solved by Chien search, and the number of roots of the error position polynomial Λ(x) is counted, wherein the root of the error position polynomial Λ(x) indicates the error position.

[0114] The number of roots of the error position polynomial Λ(x) can be represented as:

[0115] |{α i |Λ(α -i )=0,i=0,1,…,n-1}|

[0116] Wherein, “|” is the delimiter symbol of the set.

[0117] S305: compare the number of error positions with the minimum length satisfying the key equation, if the number of error positions is not equal to the minimum length satisfying the key equation, it is detected that the uncorrectable error, the decoding operation on the current code word is abandoned, the decoding process of the code word is ended, otherwise go to S306.

[0118] Optionally, if the uncorrectable error is detected, an alarm indication can also be output to indicate that the uncorrectable error is detected.

[0119] S306: determine the error value corresponding to the corresponding error position according to the error position.

[0120] Optionally, the Forney algorithm can be used to determine the error values at the error positions. The determined error positions can be substituted into the definition of the syndrome to obtain a system of equations, which can be solved to obtain the error values at all error positions.

[0121] For example, the Forney algorithm can be based on the following principles:

[0122] Suppose errors occur at positions x j1 ,x j2 ,…,x jl , j1< j2< … < j1< n-1, then

[0123] Λ(x) = (1 + α -j1 x)(1 + α -j2 x)…(1 + α -jl x)

[0124] = 1 + σ1x + σ2x 2 + … + σ l-1 x l-1 + σ l x l

[0125]

[0126] wherein:

[0127] S(x) = 1 + S1x + … + S l x l

[0128] then:

[0129] Ω(x) = 1 + (S1+ σ1)x + (S2+ σ1S + σ2)x 2 + …

[0130] + (S l + σ1S -1 + σ2S l-2 + … + σ l )x l

[0131]

[0132]

[0133]

[0134] Let Substituting the above equation can obtain:

[0135]

[0136] wherein, In particular, if h≠k, then one of the terms Therefore

[0137] Therefore, we have

[0138]

[0139]

[0140] The coefficients of the error polynomial, i.e., the error values corresponding to each error position, can be solved by the above formula.

[0141] S307: Correct the code word to be decoded according to the error position and the error value corresponding to the error position, to obtain a decoding result.

[0142] In this step, the error value can be added to the corresponding error position to complete the error correction.

[0143] By using the embodiments of the present application, on the one hand, compared with the traditional RS code decoding method which relies on the order deg(Λ(x)) of the error position polynomial to detect uncorrectable errors, the uncorrectable errors can be comprehensively detected, thereby improving the system reliability. The following will briefly describe the case of using the BM algorithm to calculate the error polynomial, and the case of using other algorithms is similar.

[0144] Consider the key equation as follows:

[0145] S(x)Λ(x)=Ω(x)(mod x 2t ),deg(Ω(x))<deg(Λ(x))≤t

[0146] Where the accompanying formula S(x) is completely determined by the error pattern e(x). It is worth noting that for some uncorrectable errors, the equation has no solution. In the embodiments of the present application, the BM algorithm gives the solution of the following equation:

[0147] S(x)Λ(x)=Ω(x)(mod x 2t ),deg(Ω(x))<L≤2t

[0148] It can be proved that for any accompanying formula S(x), the above equation has a solution.

[0149] When the error pattern e(x) is a correctable error, there must be:

[0150] deg(Ω(x))<L=deg(Λ(x))≤t

[0151] When the error pattern e(x) is an uncorrectable error, the cases of deg(Λ(x))≠L and L>t can occur. Therefore, the traditional RS code decoding method that relies on deg(Λ(x)) to detect uncorrectable errors is not completely reliable.

[0152] On the other hand, since the embodiments of the present application do not need to calculate the syndrome multiple times, compared with the traditional RS code decoding method, the embodiments of the present application can reduce the complexity and resource consumption, thereby improving the system performance.

[0153] Optionally, in some embodiments of the present application, an error value polynomial can also be calculated, and when the error positions are determined, the error positions are determined according to the error value polynomial and the error position polynomial, for example, the Forney algorithm can be used to calculate the error values corresponding to the error positions by using the error position polynomial and the error value polynomial.

[0154] Optionally, the embodiments of the present application can use the following methods to calculate the error value polynomial:

[0155] Method one:

[0156] After the error position polynomial Λ(x) is calculated, the error value polynomial Ω(x) is calculated by Ω=S(x)Λ(x)mod x 2t .

[0157] Method two:

[0158] In the iteration process of the BM algorithm and similar algorithms, the calculation of the error value polynomial Ω(x) is increased.

[0159] Method three:

[0160] When the RiBM algorithm and similar algorithms are used, the error value polynomial Ω(x) is calculated by the following equation: (h) .

[0161] S(x)Λ(x)=Ω(x)+x 2t Ω(h)(x)

[0162] According to the combination of one or more embodiments described above, the RS decoding process will be described below by taking the RiBM algorithm as an example. Figure 5

[0163] Referring to Figure 5 , an RS decoding process provided by the embodiments of the present application is shown in the figure, which can include:

[0164] S501: Calculate the syndrome S(x) according to the code word to be decoded r(x).

[0165] ​S502: If S(x) = 0, i.e. all the conjugate equations are 0, it indicates that the code word r(x) has no error, then go to S503, otherwise it indicates that the code word r(x) has error, then go to S504.

[0166] S503: Output the information symbols of the code word as the decoding result, and complete the decoding of the code word.

[0167] S504: Use the RSBM algorithm to calculate the error position polynomial Λ(x), the minimum length L satisfying the key equation, and the error value polynomial Ω (h) (x) according to the conjugate equation S(x).

[0168] S505: If L > t, it is detected that the error is uncorrectable, and the decoding of the code word is ended, otherwise go to S506.

[0169] Wherein t represents the maximum error correction capability of RS encoding.

[0170] S506: Perform a money search on the error position polynomial Λ(x) to obtain the roots of the error position polynomial Λ(x), and count the number of the roots of the error position polynomial Λ(x) within the range of the code word. Wherein the roots of the error position polynomial Λ(x) can indicate the error position.

[0171] S507: If the number of the roots of the error position polynomial Λ(x) is not equal to L, it is detected that the error is uncorrectable, and the decoding of the code word is ended, otherwise go to S508.

[0172] S508: Use the Forney algorithm to calculate the error value by using the error position polynomial Λ(x) and the error value polynomial Ω (h) (x).

[0173] S509: Correct the error of the code word according to the error position and the error value, obtain the decoding result and output.

[0174] It should be noted that, Figure 5 The specific implementation of each step in the flowchart can refer to the foregoing embodiments, which will not be repeated here.

[0175] Based on the same technical concept, the embodiment of the present application also provides an RS decoder.

[0176] Referring to Figure 6 , a structure schematic diagram of the RS decoder provided by the embodiment of the present application. The RS decoder can include: a conjugate equation determination unit 601, an error position polynomial determination unit 602, an error position determination unit 603, and an error correction unit 604.

[0177] The accompanying type determining unit 601 is configured to determine an accompanying type according to a code word to be decoded, the code word being an RS encoded code word;

[0178] The error position polynomial determining unit 602 is configured to determine an error position polynomial and a minimum length satisfying a key equation according to the accompanying type;

[0179] The error position determining unit 603 is configured to determine whether the minimum length satisfying the key equation is greater than a maximum error correction capability of RS encoding, if yes, it is detected that the error is uncorrectable, and decoding of the code word is abandoned; otherwise, an error position is determined according to the error position polynomial.

[0180] The error correction unit 604 is configured to determine whether the number of determined error positions is equal to the minimum length satisfying the key equation, if not, it is detected that the error is uncorrectable, and decoding of the code word is abandoned; otherwise, error correction is performed on the code word according to the error positions, to obtain a decoding result of the code word.

[0181] Optionally, the error position polynomial determining unit 602 is specifically configured to: perform 2t iterations according to the accompanying type, to obtain the error position polynomial and the minimum length satisfying the key equation, t being the maximum error correction capability of RS encoding, wherein in the ith iteration, 1≤i≤2t:

[0182] If the ith term coefficient of the accompanying type and the current error position polynomial is not equal to zero and the current value of the minimum length satisfying the key equation is less than the current value of the auxiliary variable, the current value of the minimum length satisfying the key equation is saved, the minimum length satisfying the key equation is updated according to the formula L Λ =L B +1, and the value of the auxiliary variable is updated as the saved minimum length, wherein L Λ The minimum length satisfying the key equation after the ith iteration, L B is the auxiliary variable; otherwise, the minimum length satisfying the key equation is kept unchanged, and the value of the auxiliary variable is incremented.

[0183] Further, the error position polynomial determining unit 602 obtains an error value polynomial in the process of performing 2t iterations according to the accompanying type. Correspondingly, the error correction unit 604 can calculate error values corresponding to each error position according to the error position polynomial and the error value polynomial.

[0184] Optionally, the error position polynomial determining unit 602 determines an error value polynomial according to the error position polynomial after determining the error position polynomial according to the accompanying type. Correspondingly, the error correction unit 604 can calculate error values corresponding to each error position according to the error position polynomial and the error value polynomial.

[0185] Optionally, the error position determination unit 603 and / or the error correction unit 604 further output an alarm indication indicating that the uncorrectable error is detected after detecting the uncorrectable error.

[0186] Optionally, after the syndrome determination unit 601 determines the syndromes according to the code word to be decoded, if it is determined that all the syndromes are equal to 0, it is determined that the code word does not need to be decoded, and the information symbols in the code word are taken as the decoding result of the code word.

[0187] Optionally, the error position polynomial determination unit 602 can be a BM algorithm unit or a RiBM algorithm unit, configured to perform a related algorithm; the error position determination unit 603 can be a money search unit, configured to determine the error position by performing a money search method; and the error correction unit can be a Forney algorithm unit, configured to calculate the error value by performing a Forney algorithm.

[0188] It should be noted that the RS decoder provided in the embodiments of the present application can implement all the method steps achieved by the method embodiments and achieve the same technical effects, and thus the same parts and beneficial effects of the method embodiments will not be described in detail herein.

[0189] Based on the same technical concept, the embodiments of the present application further provide an RS decoder, which can implement the method processes provided in the embodiments of the present application.

[0190] The RS decoder can include at least one processor, which is coupled with a memory, reads and executes instructions in the memory to implement the steps of the method provided in the embodiments of the present application. Optionally, the RS decoder can further include a communication interface, configured to support the RS decoder to receive or send signaling or data. The communication interface in the RS decoder can be configured to implement the interaction with other electronic devices. The processor can be configured to implement the steps of the method in any of the schematic diagrams. Figure 3 、 Figure 4 、 Figure 5 The RS decoder can include at least one processor, which is coupled with a memory, reads and executes instructions in the memory to implement the steps of the method provided in the embodiments of the present application. Optionally, the RS decoder can further include a communication interface, configured to support the RS decoder to receive or send signaling or data. The communication interface in the RS decoder can be configured to implement the interaction with other electronic devices. The processor can be configured to implement the steps of the method in any of the schematic diagrams.

[0191] Based on the same idea as the above method embodiments, the embodiments of the present application also provide a computer readable storage medium, which stores some instructions. When the instructions are invoked and executed by a computer, the computer can complete the method involved in the above method embodiments and any possible design of the method embodiments. In the embodiments of the present application, the computer readable storage medium is not limited, for example, it can be a RAM (random-access memory), a ROM (read-only memory) or the like.

[0192] Based on the same idea as the above method embodiments, the present application also provides a computer program product, which can complete the method involved in the above method embodiments and any possible design of the method embodiments when invoked and executed by a computer.

[0193] Based on the same idea as the above method embodiments, the present application also provides a chip, which can include a processor and an interface circuit, and is used to complete the method involved in the above method embodiments and any possible design of the method embodiments. The "coupling" means that two components are directly or indirectly combined with each other. The combination can be fixed or movable. The combination can allow the flowing liquid, electricity, electrical signals or other types of signals to communicate between the two components.

[0194] It can be understood that the processor in the embodiments of the present application can be a CPU (Central Processing Unit), and can also be other general-purpose processors, DSPs (Digital Signal Processors), ASICs (Application Specific Integrated Circuits), FPGAs (Field Programmable Gate Arrays) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. The general-purpose processor can be a microprocessor or any conventional processor.

[0195] The method steps in the embodiments of the present application can be realized by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, which can be stored in a random access memory, a flash memory, a read-only memory, a programmable read-only memory, an erasable programmable read-only memory, an electrically erasable programmable read-only memory, a register, a hard disk, a mobile hard disk, a CD-ROM, or any other form of storage medium well known in the art. An exemplary storage medium is coupled to the processor, so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be an integral part of the processor. The processor and the storage medium can be located in an ASIC. In addition, the ASIC can be located in a base station or a terminal. Of course, the processor and the storage medium can also exist as discrete components in the base station or the terminal.

[0196] In the above embodiments, all or part of the embodiments can be realized by software, hardware, firmware, or any combination thereof. When realized by software, all or part of the embodiments can be realized in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When loaded and executed by a computer, all or part of the processes or functions described in the embodiments of the present application are performed. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a base station, a user equipment, or other programmable devices. The computer programs or instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another computer-readable storage medium, for example, the computer programs or instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center through a wired or wireless manner. The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that integrates one or more available media. The available media can be a magnetic medium, for example, a floppy disk, a hard disk, a magnetic tape; an optical medium, for example, a digital video disc; or a semiconductor medium, for example, a solid-state disk. The computer-readable storage medium can be a volatile or non-volatile storage medium, or can include both volatile and non-volatile storage media.

[0197] In various embodiments of the present application, the terms and / or descriptions of different embodiments are consistent and can be mutually referred to if there is no special description and no logical conflict. The technical features in different embodiments can be combined to form new embodiments according to their inherent logical relationship.

[0198] In the present application, "at least one" means one or more, "multiple" means two or more. The "and / or" describes the relationship between the associated objects, which means that there can be three kinds of relationships, for example, A and / or B, which can represent: A exists alone, A and B exist together, and B exists alone, where A and B can be singular or plural. In the textual description of the present application, the character " / " generally indicates that the associated objects before and after are in an "or" relationship; in the formula of the present application, the character " / " indicates that the associated objects before and after are in a "division" relationship.

[0199] It can be understood that various numerical numbers involved in the embodiments of the present application are only distinguished for the convenience of description, and are not used to limit the scope of the embodiments of the present application. The size of the serial number of each process does not mean the order of execution, and the execution order of each process should be determined according to its function and inherent logic.

Claims

1. An RS code decoding method, characterized in that, include: The syntactic is determined based on the codeword to be decoded, wherein the codeword is an RS-encoded codeword; Through multiple iterations, the error position polynomial and the minimum length satisfying the key equation are determined based on the adjoint expression; wherein, when the coefficients of the adjoint expression and the current error position polynomial are not equal to zero and the current value of the minimum length satisfying the key equation is less than or equal to the current value of the auxiliary variable, the minimum length satisfying the key equation is updated based on the auxiliary variable. If, in the multiple iterations, the minimum length satisfying the key equation is greater than the maximum error correction capability of the RS code, an uncorrectable error is detected, and decoding of the codeword is abandoned; otherwise, the error position is determined according to the error position polynomial. If the number of identified error locations is not equal to the minimum length satisfying the key equation, an uncorrectable error is detected, and decoding of the codeword is abandoned. Otherwise, the codeword is corrected based on the error locations to obtain the decoding result of the codeword.

2. The method as described in claim 1, characterized in that, The process of determining the error location polynomial and the minimum length satisfying the key equation through multiple iterations, based on the adjoint equation, includes: Based on the aforementioned syndrome, 2t iterations are performed to obtain the error location polynomial and the minimum length satisfying the key equation, where t is the maximum error correction capability of RS coding, and in the 2t iterations... i In the iteration, 1≤ i ≤2t: If the th... of the syndrome and the current error position polynomial i If the coefficient of the secondary term is not equal to zero and the current value of the minimum length satisfying the key equation is less than the current value of the auxiliary variable, then save the current value of the minimum degree to which the key equation is satisfied, and proceed according to the formula. L Λ = L B +1, update the minimum length that satisfies the key equation, and update the value of the auxiliary variable to the saved minimum length that satisfies the key equation, where, L Λ No. i The minimum length that satisfies the key equation after the nth iteration. L B As an auxiliary variable; Otherwise, keep the minimum length that satisfies the key equation unchanged, and increment the value of the auxiliary variable.

3. The method as described in claim 2, characterized in that, During the 2t iterations based on the aforementioned syndrome, an error value polynomial is also obtained.

4. The method as described in claim 1 or 2, characterized in that, After determining the error position polynomial based on the syndrome, the method further includes: The error value polynomial is determined based on the error location polynomial.

5. The method according to any one of claims 1-4, characterized in that, After detecting an uncorrectable error, the method further includes: The output is used to indicate an alarm signal that an uncorrectable error has been detected.

6. The method according to any one of claims 1-5, characterized in that, After determining the syndrome based on the codeword to be decoded, the method further includes: If all syntactic elements are equal to 0, then the information code elements in the codeword are used as the decoding result of the codeword; wherein the codeword includes at least one information code element and at least one check code element.

7. An RS decoder, characterized in that, include: The syndrome determination unit is used to determine the syndrome based on the codeword to be decoded, wherein the codeword is an RS-encoded codeword; An error location polynomial determination unit is used to determine the error location polynomial and the minimum length satisfying the key equation through multiple iterations based on the adjoint; wherein, when the coefficients of the adjoint and the current error location polynomial are not equal to zero and the current value of the minimum length satisfying the key equation is less than or equal to the current value of the auxiliary variable, the minimum length satisfying the key equation is updated based on the auxiliary variable. An error location determination unit is used to determine, during the multiple iterations, whether the minimum length satisfying the key equation is greater than the maximum error correction capability of the RS code. If so, an uncorrectable error is detected, and decoding of the codeword is abandoned; otherwise, the error location is determined according to the error location polynomial. The error correction unit is used to determine whether the number of identified error positions is equal to the minimum length that satisfies the key equation. If it is not equal, an uncorrectable error is detected and the decoding of the codeword is abandoned. Otherwise, the codeword is corrected according to the error positions to obtain the decoding result of the codeword.

8. An RS decoder, characterized in that, include: One or more processors; One or more memories; wherein the one or more memories store one or more computer programs, the one or more computer programs including instructions that, when executed by the one or more processors, cause the RS decoder to perform the method as described in any one of claims 1-6.

9. A chip, characterized in that, include: One or more processors; One or more memories; wherein the one or more memories store one or more computer programs, the one or more computer programs including instructions that, when executed by the one or more processors, cause the chip to perform the method as described in any one of claims 1-6.

10. A computer program product, characterized in that, When the computer program product is invoked by a computer, it causes the computer to perform the method as described in any one of claims 1-6.

Citation Information

Patent Citations

  • Decoding method for channel error correcting BCH code and RS code

    CN101459431A

  • Decoding circuit and decoding method

    JP2003168983A

  • Method and associated decoding circuit for decoding an error correction code

    US20170077962A1

  • Low power Reed-Solomon decoder

    US8949697B1