This application claims priority of Taiwanese Invention Patent Application No. 108116365, filed on May 13, 2019.
The disclosure relates to a method and an error correction system for correcting an error at a unit position of a received signal, and more particularly to a method and an error correction system for correcting an error at a unit position of a received signal utilizing monomial trace coefficients.
A signal transmitted from a transmitter to a receiver over a communication channel may be unwantedly modified because of interference, and thus the signal received by the receiver may have noise and may not be the same as the signal transmitted by the transmitter. Therefore, using a decoder to perform error correction on received signals would be necessary to enhance reliability of data transmission.
In U.S. Pat. No. 8,296,634 B2 (Error Correction Decoder, Error Correction Value Generator, and Error Correction System), an error correction value can be obtained by computing a summation of trace mapping values. However, each of the trace mapping values is computed via a trace polynomial which may have more than one non-zero terms and need adder(s) to implement the computation. The more the non-zero terms the trace polynomial has, the more complex the hardware of the decoder needs to be and the more energy the decoder consumes.
Therefore, an object of the disclosure is to provide a method and an error correction system for correcting an error at a unit position of a received signal that can alleviate at least one of the drawbacks of the prior art.
According to one aspect of the disclosure, the method for correcting an error at a unit position of a received signal is provided, the received signal being generated based upon a generator polynomial having a plurality of roots. The method includes steps of: determining a target degree based upon a length of the received signal; obtaining a plurality of primitive polynomials each having a degree equal to the target degree; selecting one of the plurality of primitive polynomials as a target polynomial, roots of the target polynomial belonging to a Galois extension field of degree m, where the Galois extension field is an extension of Galois field, and m is the target degree; defining a plurality of syndromes according to the received signal, each of the syndromes being associated with a respective index; generating a group of product values based on the syndromes and the roots of the generator polynomial, each of the product values being represented Siβn-ij, where Si represents one of the syndrome associated with the index i, βi represents an ith one of the roots of the generator polynomial, n is the length of the received signal, and j represents the unit position of the received signal; for each of the product values, obtaining a coefficient polynomial
based on the product value, where α0 to αm-1 form a basis set of the Galois extension field, and αj0i to αj(m-1)i belong to the Galois field; for each of the coefficient polynomials obtained respectively from the product values, obtaining a monomial trace coefficient based on the coefficient polynomial according to the target polynomial and a trace mapping equation
wherein the monomial trace coefficient is calculated according to Tr(αji(α))=cij, and cij represents the monomial trace coefficient; generating an error correction value based on the monomial trace coefficients calculated respectively from the coefficient polynomials; and correcting the error at the unit position of the received signal based on the error correction value.
According to one aspect of the disclosure, the error correction system is configured to correct an error at a unit position of a received signal, where the received signal is generated based upon a generator polynomial having a plurality of roots.
The error correction system includes an error correction decoder and an error correcting device.
The error correction decoder includes a target polynomial generator, a syndrome generator, a monomial trace coefficient generator coupled to the target polynomial generator and the syndrome generator, and an error correction value generator.
The target polynomial generator is configured to determine a target degree based upon a length of the received signal, to obtain a plurality of primitive polynomials each having a degree equal to the target degree, and to select one of the plurality of primitive polynomials as a target polynomial. Roots of the target polynomial belong to a Galois extension field of degree m, where the Galois extension field is an extension of Galois field, and m is the target degree.
The syndrome generator is configured to define a plurality of syndromes according to the received signal. Each of the syndromes is associated with a respective index.
The monomial trace coefficient generator is configured to:
based on the product value, where α0 to αm-1 form a basis set of the Galois extension field, and αj0i to αj(m-1)i belong to the Galois field; and
wherein the monomial trace coefficients are calculated according to Tr(αji(α))=cij, and cij represents the monomial trace coefficients.
The error correction value generator is coupled to the monomial trace coefficient generator, and is configured to generate an error correction value based on the monomial trace coefficients calculated respectively from the coefficient polynomials.
The error correcting device is coupled to the error correction value generator, and is configured to correct the error at the unit position of the received signal based on the error correction value.
Other features and advantages of the disclosure will become apparent in the following detailed description of the embodiment (s) with reference to the accompanying drawings, of which:
Before the disclosure is described in greater detail, it should be noted that where considered appropriate, reference numerals or terminal portions of reference numerals have been repeated among the figures to indicate corresponding or analogous elements, which may optionally have similar characteristics.
Referring to
A source signal is encoded based upon a generator polynomial g(x) to generate a cyclic codeword. Then, the cyclic codeword is transmitted to the error correction system 100 via a transmission channel, where interference might occurred, to result in a signal with a length n received by the error correction system 100 (hereinafter referred to as the “received signal”). The cyclic codeword can be expressed as a codeword polynomial
where j is a variable representing a unit position of the received signal, j∈{0,1, . . . ,n−1}, and (c0,c1, . . . ,cn-1) denotes an associated code vector. Errors of the received signal attributed to the interference can be expressed as an error polynomial
Therefore, the received signal can be expressed as
The error correction decoder 101 includes a target polynomial generator 11, a syndrome generator 12, a monomial trace coefficient generator 13 coupled to the target polynomial generator 11 and the syndrome generator 12, and an error correction value generator 14 coupled to the monomial trace coefficient generator 13.
Further referring to
In step 20, the target polynomial generator 11 determines a target degree m based upon the length n of the received signal. Specifically, the target degree m is determined by selecting a smallest value that satisfies an equation of (2m−1)mod n=0.
In step 21, the target polynomial generator 11 obtains a plurality of primitive polynomials m(x) based on the target degree m. Each of the primitive polynomials m(x) is irreducible and has a degree equal to the target degree m. For example, the following table lists the primitive polynomials m(x) for when the target degree m is 3, 4, or 5.
In step 22, the target polynomial generator 11 further selects one of the plurality of primitive polynomials m(x) as a target polynomial p(x), where roots of the target polynomial p(x) belong to a Galois extension field GF(2m) of degree m, and the Galois extension field GF(2m) is an extension of Galois field GF(2).
In detail, step 22 includes sub-steps 221-225 to be iteratively performed for one or more of the primitive polynomials m(x) until the target polynomial p(x) is found, as shown in
First, the target polynomial generator 11 determines whether the degree of the primitive polynomial m(x) is an odd number (sub-step 221).
When it is determined that the degree of the primitive polynomial m(x) is an odd number, the target polynomial generator 11 determines whether for each term of the primitive polynomial m(x) except a constant term, a degree thereof is an odd number (sub-step 222).
When it is determined that all terms other than the constant term have an odd-number degree, the target polynomial generator 11 selects the primitive polynomial m(x) as the target polynomial p(x) (sub-step 225).
For example, when the target degree m is determined to be “3” in step 20, the primitive polynomials m(x) are found to be (x3+x2+1) and (x3+x+1) in step 21, accordingly. Then, in step 221, it is determined that for each of the primitive polynomials (x3+x2+1) and (x3+x+1), the degree of the primitive polynomial (i.e., three) is an odd number. The terms of the primitive polynomial (x3+x2+1) other than the constant term have degrees of 3 and 2, while the terms of the primitive polynomials (x3+x+1) other than the constant term have degrees of 3 and 1. Therefore, only the primitive polynomial (x3+x+1) is determined, in sub-step 222, to have odd-degree terms only, except a constant term. Therefore, the primitive polynomial (x3+x+1) is selected as the target polynomial p(x) in sub-step 225.
On the other hand, when it is determined, in sub-step 221, that the degree of the primitive polynomial m(x) is not an odd number, the target polynomial generator 11 calculates a difference value u by subtracting a highest odd degree of terms of the primitive polynomial m(x) from the target degree m (sub-step 223). Then, the target polynomial generator 11 determines whether the following first to third criterions are all satisfied (sub-step 224).
The first criterion is that the difference value u is greater than or equal to one half of the target degree m. The second criterion is that a number of those terms of the primitive polynomial m(x), the degree of each of which is an even number and is greater than the difference value u, is equal to a number of those terms of the primitive polynomial m(x) that have odd degrees. The third criterion is that, for each term of the primitive polynomial m(x) that has an odd degree, the primitive polynomial m(x) has a non-zero term having a degree that is equal to a sum of the odd degree and the difference value u.
When the first, second and third criterions are all satisfied, the target polynomial generator 11 selects the primitive polynomial m(x) as the target polynomial p(x) (sub-step 225).
For example, when the target degree m is determined to be “4” in step 20, the primitive polynomials m(x) are found, in step 21, to be (x4+x3+x2+x+1), (x4+x3+1) and (x4+x+1), accordingly. For each of these three primitive polynomials, the degree thereof is determined to be not an odd number in sub-step 221, and the corresponding difference value u thereof is calculated in sub-step 223. Specifically, the difference value is equal to one (i.e., u=1) for the primitive polynomial (x4+x3+x2+x+1) or (x4+x3+1), and is equal to three (i.e., u=3) for the primitive polynomial (x4+x+1). In sub-step 224, it is found that only the primitive polynomial (x4+x+1) satisfies all the first, second and third criterions.
In detail, the difference value u corresponding to the primitive polynomial (x4+x+1) is greater than one half of the target degree (that is u=3, m=4, and u>m/2). That is to say, the primitive polynomial (x4+x+1) satisfies the first criterion.
As for the second criterion, the primitive polynomial (x4+x+1) has only one term x4 having an even degree that is greater than the difference value u, and only one term x having an odd degree. That is to say, the number of those terms of the primitive polynomial (x4+x+1), the degree of each of which is an even number and is greater than the difference value u is one, and is equal to the number of those terms of the primitive polynomial (x4+x+1) that have odd degrees. Accordingly, the primitive polynomial (x4+x+1) satisfies the second criterion.
Regarding the third criterion, for each term of the primitive polynomial (x4+x+1) that has an odd degree (term x with degree of one), the primitive polynomial (x4+x+1) has a non-zero term x4 having a degree of four that is equal to a sum of the degree of the term x (one) and the difference value u (three). That is to say, the primitive polynomial (x4+x+1) satisfies the third criterion.
Thus, the primitive polynomial (x4+x+1) is selected as the target polynomial p(x) in sub-step 225.
Back to
In step 24, the monomial trace coefficient generator 13 generates a group of product values based on the syndromes and the roots of the generator polynomial g(x), wherein each of the product values is represented by Siβn-ij, where Si represents the syndrome associated with the index i, and βi represents an ith roots of the generator polynomial g(x).
In step 25, for each of the product values, the monomial trace coefficient generator 13 obtains a coefficient polynomial
based on the product value Siβn-ij, that is
where α0 to αm-1 form a basis set of the Galois extension field GF(2m), and αj0i to αj(m-1)i belong to the Galois field GF(2).
In step 26, for each of the coefficient polynomials, the monomial trace coefficient generator 13 obtains a monomial trace coefficient cij based on the coefficient polynomial according to a trace mapping equation
wherein the monomial trace coefficient cij is calculated according to
Tr(αji(α))=cij, (4)
i.e. let γ=αji(α), i∈R.
In step 27, the error correction value generator 14 generates an error correction value ej based on the monomial trace coefficients. Specifically, the error correction value ej is calculated based on
where S0 represents the syndrome with the index i=0.
In step 28, the error correcting device 102 corrects the error at the specific unit position j of the received signal based on the error correction value.
For example, in the case of m=3, the primitive polynomial (x3+x+1) would be selected as the target polynomial p(x) as previously described.
According to Equation (3) and γ=αji(α), each monomial trace coefficient can be obtained as
By using XOR operators (not shown) to perform addition operations, three equations x3=x+1, x4=x+x2 and x8=x can be obtained from the target polynomial p(x)=x3+x+1=0. Then, Equation (6) is simplified by substituting α3=α+1, α4=α+α2 and α8=α into Equation (6). As a result, the monomial trace coefficients cij=αj0i are obtained, i∈R. The error correction value can be calculated accordingly, and is expressed by
It should be noted that, without selecting the target polynomial p(x) according to this disclosure, there would be no guarantee that a monomial trace coefficient cij would be obtained. For example, in the case of m=3, if the primitive polynomial (x3+x2+1), rather than the primitive polynomial (x3+x+1), is selected for the subsequent calculation, we will get α3=α2+1, α4=1+α+α2, and α8=α for substituting into the equation of cij. Then, we can get the monomial trace coefficient cij=αj0i+αj1i+αj2i. Accordingly, the error correction value is calculated as
There will therefore be the need to provide four additional adders, and the hardware of the error correction decoder 101 would be relatively more complicated.
From the above, hardware of the error correction decoder 101 can be simplified because the target polynomial is selected properly according to this disclosure.
In the description above, for the purposes of explanation, numerous specific details have been set forth in order to provide a thorough understanding of the embodiment(s). It will be apparent, however, to one skilled in the art, that one or more other embodiments may be practiced without some of these specific details. It should also be appreciated that reference throughout this specification to “one embodiment,” “an embodiment,” an embodiment with an indication of an ordinal number and so forth means that a particular feature, structure, or characteristic may be included in the practice of the disclosure. It should be further appreciated that in the description, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of various inventive aspects, and that one or more features or specific details from one embodiment may be practiced together with one or more features or specific details from another embodiment, where appropriate, in the practice of the disclosure.
While the disclosure has been described in connection with what is (are) considered the exemplary embodiment(s), it is understood that this disclosure is not limited to the disclosed embodiment(s) but is intended to cover various arrangements included within the spirit and scope of the broadest interpretation so as to encompass all such modifications and equivalent arrangements.
Number | Date | Country | Kind |
---|---|---|---|
108116365 | May 2019 | TW | national |
Number | Name | Date | Kind |
---|---|---|---|
9954553 | Langhammer | Apr 2018 | B1 |
20060200729 | Ito | Sep 2006 | A1 |
20100169737 | Litsyn | Jul 2010 | A1 |
20110214031 | Chang | Sep 2011 | A1 |
20110276862 | Truong | Nov 2011 | A1 |
20160373134 | Langhammer | Dec 2016 | A1 |
Number | Date | Country | |
---|---|---|---|
20200366318 A1 | Nov 2020 | US |