Misplaced Pages

Reed–Solomon error correction

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

In information theory and coding theory , Reed–Solomon codes are a group of error-correcting codes that were introduced by Irving S. Reed and Gustave Solomon in 1960. They have many applications, including consumer technologies such as MiniDiscs , CDs , DVDs , Blu-ray discs, QR codes , Data Matrix , data transmission technologies such as DSL and WiMAX , broadcast systems such as satellite communications, DVB and ATSC , and storage systems such as RAID 6 .

#946053

107-519: Reed–Solomon codes operate on a block of data treated as a set of finite-field elements called symbols. Reed–Solomon codes are able to detect and correct multiple symbol errors. By adding t = n  −  k check symbols to the data, a Reed–Solomon code can detect (but not correct) any combination of up to t erroneous symbols, or locate and correct up to ⌊ t /2⌋ erroneous symbols at unknown locations. As an erasure code , it can correct up to t erasures at locations that are known and provided to

214-449: A 0 ) p m ( a 1 ) ⋯ p m ( a n − 1 ) ] {\displaystyle C(m)={\begin{bmatrix}p_{m}(a_{0})\\p_{m}(a_{1})\\\cdots \\p_{m}(a_{n-1})\end{bmatrix}}} This function C {\displaystyle C} is a linear mapping. To generate the corresponding systematic encoding matrix G, multiply

321-488: A 0 ) p m ( a 1 ) ⋯ p m ( a n − 1 ) ] {\displaystyle C(m)={\begin{bmatrix}p_{m}(a_{0})\\p_{m}(a_{1})\\\cdots \\p_{m}(a_{n-1})\end{bmatrix}}} This function C {\displaystyle C} is a linear mapping , that is, it satisfies C ( m ) = A m {\displaystyle C(m)=Am} for

428-509: A 0 , … , a n − 1 {\displaystyle a_{0},\dots ,a_{n-1}} of the field F {\displaystyle F} . Thus the classical encoding function C : F k → F n {\displaystyle C:F^{k}\to F^{n}} for the Reed–Solomon code is defined as follows: C ( m ) = [ p m (

535-905: A 1 a 1 2 … a 1 k − 1 ⋮ ⋮ ⋮ ⋱ ⋮ 1 a n − 1 a n − 1 2 … a n − 1 k − 1 ] [ m 0 m 1 ⋮ m k − 1 ] {\displaystyle C(m)=Am={\begin{bmatrix}1&a_{0}&a_{0}^{2}&\dots &a_{0}^{k-1}\\1&a_{1}&a_{1}^{2}&\dots &a_{1}^{k-1}\\\vdots &\vdots &\vdots &\ddots &\vdots \\1&a_{n-1}&a_{n-1}^{2}&\dots &a_{n-1}^{k-1}\end{bmatrix}}{\begin{bmatrix}m_{0}\\m_{1}\\\vdots \\m_{k-1}\end{bmatrix}}} This matrix

642-553: A i ) = m i  for all  i ∈ { 0 , … , k − 1 } . {\displaystyle p_{m}(a_{i})=m_{i}{\text{ for all }}i\in \{0,\dots ,k-1\}.} Then p m {\displaystyle p_{m}} is evaluated at the other points a k , … , a n − 1 {\displaystyle a_{k},\dots ,a_{n-1}} . C ( m ) = [ p m (

749-425: A n − 1 ) ] {\displaystyle C(m)={\begin{bmatrix}p_{m}(a_{0})\\p_{m}(a_{1})\\\cdots \\p_{m}(a_{n-1})\end{bmatrix}}} The inverse Fourier transform could be used to convert an error free set of n < q message values back into the encoding polynomial of k coefficients, with the constraint that in order for this to work, the set of evaluation points used to encode

856-505: A ∈ F ( X − a ) . {\displaystyle X^{q}-X=\prod _{a\in F}(X-a).} It follows that GF( p ) contains a subfield isomorphic to GF( p ) if and only if m is a divisor of n ; in that case, this subfield is unique. In fact, the polynomial X − X divides X − X if and only if m is a divisor of n . Given a prime power q = p with p prime and n > 1 ,

963-405: A ) = ∑ i = 0 k − 1 m i a i . {\displaystyle p_{m}(a)=\sum _{i=0}^{k-1}m_{i}a^{i}\,.} The codeword of m {\displaystyle m} is obtained by evaluating p m {\displaystyle p_{m}} at n {\displaystyle n} different points

1070-473: A + b α + c α 2 ) = − a + ( − b ) α + ( − c ) α 2 (for  G F ( 8 ) , this operation is the identity) ( a + b α + c α 2 ) + ( d + e α + f α 2 ) = (

1177-447: A + b α + c α 2 + d α 3 ) ( e + f α + g α 2 + h α 3 ) = ( a e + b h + c g + d f ) + ( a f + b e + b h + c g + d f + c h + d g ) α + (

SECTION 10

#1732802017947

1284-442: A + d ) + ( b + e ) α + ( c + f ) α 2 ( a + b α + c α 2 ) ( d + e α + f α 2 ) = ( a d + b f + c e ) + ( a e + b d + b f + c e + c f ) α + (

1391-796: A c + r b d ) + ( a d + b c ) α ( a + b α ) − 1 = a ( a 2 − r b 2 ) − 1 + ( − b ) ( a 2 − r b 2 ) − 1 α {\displaystyle {\begin{aligned}-(a+b\alpha )&=-a+(-b)\alpha \\(a+b\alpha )+(c+d\alpha )&=(a+c)+(b+d)\alpha \\(a+b\alpha )(c+d\alpha )&=(ac+rbd)+(ad+bc)\alpha \\(a+b\alpha )^{-1}&=a(a^{2}-rb^{2})^{-1}+(-b)(a^{2}-rb^{2})^{-1}\alpha \end{aligned}}} The polynomial X 3 − X − 1 {\displaystyle X^{3}-X-1}

1498-598: A f + b e + c d + c f ) α 2 {\displaystyle {\begin{aligned}-(a+b\alpha +c\alpha ^{2})&=-a+(-b)\alpha +(-c)\alpha ^{2}\qquad {\text{(for }}\mathrm {GF} (8),{\text{this operation is the identity)}}\\(a+b\alpha +c\alpha ^{2})+(d+e\alpha +f\alpha ^{2})&=(a+d)+(b+e)\alpha +(c+f)\alpha ^{2}\\(a+b\alpha +c\alpha ^{2})(d+e\alpha +f\alpha ^{2})&=(ad+bf+ce)+(ae+bd+bf+ce+cf)\alpha +(af+be+cd+cf)\alpha ^{2}\end{aligned}}} The polynomial X 4 + X + 1 {\displaystyle X^{4}+X+1}

1605-779: A g + b f + c e + c h + d g + d h ) α 2 + ( a h + b g + c f + d e + d h ) α 3 {\displaystyle {\begin{aligned}(a+b\alpha +c\alpha ^{2}+d\alpha ^{3})+(e+f\alpha +g\alpha ^{2}+h\alpha ^{3})&=(a+e)+(b+f)\alpha +(c+g)\alpha ^{2}+(d+h)\alpha ^{3}\\(a+b\alpha +c\alpha ^{2}+d\alpha ^{3})(e+f\alpha +g\alpha ^{2}+h\alpha ^{3})&=(ae+bh+cg+df)+(af+be+bh+cg+df+ch+dg)\alpha \;+\\&\quad \;(ag+bf+ce+ch+dg+dh)\alpha ^{2}+(ah+bg+cf+de+dh)\alpha ^{3}\end{aligned}}} The field GF(16) has eight primitive elements (the elements that have all nonzero elements of GF(16) as integer powers). These elements are

1712-433: A GF( p ) - vector space . It follows that the number of elements of F is p for some integer n . The identity ( x + y ) p = x p + y p {\displaystyle (x+y)^{p}=x^{p}+y^{p}} (sometimes called the freshman's dream ) is true in a field of characteristic p . This follows from the binomial theorem , as each binomial coefficient of

1819-423: A finite field or Galois field (so-named in honor of Évariste Galois ) is a field that contains a finite number of elements . As with any field, a finite field is a set on which the operations of multiplication, addition, subtraction and division are defined and satisfy certain basic rules. The most common examples of finite fields are the integers mod p when p is a prime number . The order of

1926-667: A "narrow sense code", i = 1 {\displaystyle i=1} . C = { ( s 1 , s 2 , … , s n ) | s ( a ) = ∑ i = 1 n s i a i  is a polynomial that has at least the roots  α 1 , α 2 , … , α n − k } . {\displaystyle \mathbf {C} =\left\{\left(s_{1},s_{2},\dots ,s_{n}\right)\;{\Big |}\;s(a)=\sum _{i=1}^{n}s_{i}a^{i}{\text{

2033-434: A code of RS( N ,  K ) which results in N codewords of length N symbols each storing K symbols of data, being generated, that are then sent over an erasure channel. Any combination of K codewords received at the other end is enough to reconstruct all of the N codewords. The code rate is generally set to 1/2 unless the channel's erasure likelihood can be adequately modelled and is seen to be less. In conclusion, N

2140-449: A finite field is its number of elements, which is either a prime number or a prime power . For every prime number p and every positive integer k there are fields of order p , all of which are isomorphic . Finite fields are fundamental in a number of areas of mathematics and computer science , including number theory , algebraic geometry , Galois theory , finite geometry , cryptography and coding theory . A finite field

2247-429: A finite field. For any element x in F and any integer n , denote by n ⋅ x the sum of n copies of x . The least positive n such that n ⋅ 1 = 0 is the characteristic p of the field. This allows defining a multiplication ( k , x ) ↦ k ⋅ x of an element k of GF( p ) by an element x of F by choosing an integer representative for k . This multiplication makes F into

SECTION 20

#1732802017947

2354-408: A non-zero element may be computed with the extended Euclidean algorithm; see Extended Euclidean algorithm § Simple algebraic field extensions . However, with this representation, elements of GF( q ) may be difficult to distinguish from the corresponding polynomials. Therefore, it is common to give a name, commonly α to the element of GF( q ) that corresponds to the polynomial X . So,

2461-481: A polynomial is given by Conway polynomials . They ensure a certain compatibility between the representation of a field and the representations of its subfields. In the next sections, we will show how the general construction method outlined above works for small finite fields. The smallest non-prime field is the field with four elements, which is commonly denoted GF(4) or F 4 . {\displaystyle \mathbb {F} _{4}.} It consists of

2568-518: A polynomial over  F  of degree  < k } . {\displaystyle \mathbf {C} ={\Bigl \{}\;{\bigl (}p(a_{1}),p(a_{2}),\dots ,p(a_{n}){\bigr )}\;{\Big |}\;p{\text{ is a polynomial over }}F{\text{ of degree }}<k\;{\Bigr \}}\,.} Since any two distinct polynomials of degree less than k {\displaystyle k} agree in at most k − 1 {\displaystyle k-1} points, this means that any two codewords of

2675-503: A portion of the bar code is damaged. When the bar code scanner cannot recognize a bar code symbol, it will treat it as an erasure. Reed–Solomon coding is less common in one-dimensional bar codes, but is used by the PostBar symbology. Specialized forms of Reed–Solomon codes, specifically Cauchy -RS and Vandermonde -RS, can be used to overcome the unreliable nature of data transmission over erasure channels . The encoding process assumes

2782-579: A practice that has since become very widespread in deep space and satellite (e.g., direct digital broadcasting) communications. Viterbi decoders tend to produce errors in short bursts. Correcting these burst errors is a job best done by short or simplified Reed–Solomon codes. Modern versions of concatenated Reed–Solomon/Viterbi-decoded convolutional coding were and are used on the Mars Pathfinder , Galileo , Mars Exploration Rover and Cassini missions, where they perform within about 1–1.5 dB of

2889-438: A prime number and k is a positive integer). In a field of order p , adding p copies of any element always results in zero; that is, the characteristic of the field is p . For q = p , all fields of order q are isomorphic (see § Existence and uniqueness below). Moreover, a field cannot contain two different finite subfields with the same order. One may therefore identify all finite fields with

2996-745: A result, the codewords s ( x ) {\displaystyle s(x)} are indeed elements of C {\displaystyle \mathbf {C} } , that is, they are divisible by the generator polynomial g ( x ) {\displaystyle g(x)} : s ( x ) ≡ p ( x ) ⋅ x t − s r ( x ) ≡ s r ( x ) − s r ( x ) ≡ 0 mod g ( x ) . {\displaystyle s(x)\equiv p(x)\cdot x^{t}-s_{r}(x)\equiv s_{r}(x)-s_{r}(x)\equiv 0\mod g(x)\,.} This function s {\displaystyle s}

3103-485: A symbol that has the property α = r , in the same way that the complex number i is a symbolic square root of −1 . Then, the elements of GF( p ) are all the linear expressions a + b α , {\displaystyle a+b\alpha ,} with a and b in GF( p ) . The operations on GF( p ) are defined as follows (the operations between elements of GF( p ) represented by Latin letters are

3210-532: A table of the same size as the order of the field. DVB-S Digital Video Broadcasting – Satellite ( DVB-S ) is the original DVB standard for satellite television and dates from 1995, in its first release, while development lasted from 1993 to 1997. The first commercial applications were by Canal+ in France and Galaxy in Australia, enabling digitally broadcast, satellite-delivered television to

3317-410: A way that s ( x ) {\displaystyle s(x)} becomes divisible by g ( x ) {\displaystyle g(x)} . Then the coefficients of p ( x ) {\displaystyle p(x)} are a subsequence of the coefficients of s ( x ) {\displaystyle s(x)} . To get a code that is overall systematic, we construct

Reed–Solomon error correction - Misplaced Pages Continue

3424-505: Is cyclic , so all non-zero elements can be expressed as powers of a single element called a primitive element of the field. (In general there will be several primitive elements for a given field.) The simplest examples of finite fields are the fields of prime order: for each prime number p , the prime field of order p may be constructed as the integers modulo p , Z / p Z {\displaystyle \mathbb {Z} /p\mathbb {Z} } . The elements of

3531-507: Is a Vandermonde matrix over F {\displaystyle F} . In other words, the Reed–Solomon code is a linear code , and in the classical encoding procedure, its generator matrix is A {\displaystyle A} . There are alternative encoding procedures that produce a systematic Reed–Solomon code. One method uses Lagrange interpolation to compute polynomial p m {\displaystyle p_{m}} such that p m (

3638-399: Is a primitive element of F . Formally, the set C {\displaystyle \mathbf {C} } of codewords of the Reed–Solomon code is defined as follows: C = { ( p ( a 1 ) , p ( a 2 ) , … , p ( a n ) ) | p  is

3745-399: Is a finite set that is a field ; this means that multiplication, addition, subtraction and division (excluding division by zero) are defined and satisfy the rules of arithmetic known as the field axioms . The number of elements of a finite field is called its order or, sometimes, its size . A finite field of order q exists if and only if q is a prime power p (where p is

3852-1358: Is a linear mapping. To generate the corresponding systematic encoding matrix G, set G's left square submatrix to the identity matrix and then encode each row: G = [ 1 0 0 … 0 g 1 , k + 1 … g 1 , n 0 1 0 … 0 g 2 , k + 1 … g 2 , n 0 0 1 … 0 g 3 , k + 1 … g 3 , n ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 … 0 … 1 g k , k + 1 … g k , n ] {\displaystyle G={\begin{bmatrix}1&0&0&\dots &0&g_{1,k+1}&\dots &g_{1,n}\\0&1&0&\dots &0&g_{2,k+1}&\dots &g_{2,n}\\0&0&1&\dots &0&g_{3,k+1}&\dots &g_{3,n}\\\vdots &\vdots &\vdots &&\vdots &\vdots &&\vdots \\0&\dots &0&\dots &1&g_{k,k+1}&\dots &g_{k,n}\end{bmatrix}}} Ignoring leading zeroes,

3959-539: Is a polynomial that has at least the roots }}\alpha ^{1},\alpha ^{2},\dots ,\alpha ^{n-k}\right\}.} The encoding procedure for the BCH view of Reed–Solomon codes can be modified to yield a systematic encoding procedure , in which each codeword contains the message as a prefix, and simply appends error correcting symbols as a suffix. Here, instead of sending s ( x ) = p ( x ) g ( x ) {\displaystyle s(x)=p(x)g(x)} ,

4066-407: Is a quadratic non-residue for p = 3, 5, 11, 13, ... , and 3 is a quadratic non-residue for p = 5, 7, 17, ... . If p ≡ 3 mod 4 , that is p = 3, 7, 11, 19, ... , one may choose −1 ≡ p − 1 as a quadratic non-residue, which allows us to have a very simple irreducible polynomial X + 1 . Having chosen a quadratic non-residue r , let α be a symbolic square root of r , that is,

4173-493: Is a symbol such that α 3 = α + 1. {\displaystyle \alpha ^{3}=\alpha +1.} The addition, additive inverse and multiplication on GF(8) and GF(27) may thus be defined as follows; in following formulas, the operations between elements of GF(2) or GF(3) , represented by Latin letters, are the operations in GF(2) or GF(3) , respectively: − (

4280-526: Is a symbol such that α 4 = α + 1 {\displaystyle \alpha ^{4}=\alpha +1} (that is, α is defined as a root of the given irreducible polynomial). As the characteristic of GF(2) is 2 , each element is its additive inverse in GF(16) . The addition and multiplication on GF(16) may be defined as follows; in following formulas, the operations between elements of GF(2) , represented by Latin letters are

4387-404: Is an odd prime, there are always irreducible polynomials of the form X − r , with r in GF( p ) . More precisely, the polynomial X − r is irreducible over GF( p ) if and only if r is a quadratic non-residue modulo p (this is almost the definition of a quadratic non-residue). There are ⁠ p − 1 / 2 ⁠ quadratic non-residues modulo p . For example, 2

Reed–Solomon error correction - Misplaced Pages Continue

4494-576: Is called the discrete logarithm of x to the base a . While a can be computed very quickly, for example using exponentiation by squaring , there is no known efficient algorithm for computing the inverse operation, the discrete logarithm. This has been used in various cryptographic protocols , see Discrete logarithm for details. When the nonzero elements of GF( q ) are represented by their discrete logarithms, multiplication and division are easy, as they reduce to addition and subtraction modulo q – 1 . However, addition amounts to computing

4601-419: Is essentially the same as the encoding procedure; it uses the generator polynomial p m {\displaystyle p_{m}} to map a set of evaluation points into the message values as shown above: C ( m ) = [ p m ( a 0 ) p m ( a 1 ) ⋯ p m (

4708-452: Is interpreted as the finite field F {\displaystyle F} of order q {\displaystyle q} , and thus, q {\displaystyle q} must be a prime power . In the most useful parameterizations of the Reed–Solomon code, the block length is usually some constant multiple of the message length, that is, the rate R = k n {\displaystyle R={\frac {k}{n}}}

4815-521: Is irreducible over GF(2) and GF(3) , that is, it is irreducible modulo 2 and 3 (to show this, it suffices to show that it has no root in GF(2) nor in GF(3) ). It follows that the elements of GF(8) and GF(27) may be represented by expressions a + b α + c α 2 , {\displaystyle a+b\alpha +c\alpha ^{2},} where a , b , c are elements of GF(2) or GF(3) (respectively), and α

4922-405: Is irreducible over GF(2) , that is, it is irreducible modulo 2 . It follows that the elements of GF(16) may be represented by expressions a + b α + c α 2 + d α 3 , {\displaystyle a+b\alpha +c\alpha ^{2}+d\alpha ^{3},} where a , b , c , d are either 0 or 1 (elements of GF(2) ), and α

5029-1035: Is known to both the sender and the receiver. The generator polynomial g ( x ) {\displaystyle g(x)} is defined as the polynomial whose roots are sequential powers of the Galois field primitive α {\displaystyle \alpha } g ( x ) = ( x − α i ) ( x − α i + 1 ) ⋯ ( x − α i + n − k − 1 ) = g 0 + g 1 x + ⋯ + g n − k − 1 x n − k − 1 + x n − k {\displaystyle g(x)=\left(x-\alpha ^{i}\right)\left(x-\alpha ^{i+1}\right)\cdots \left(x-\alpha ^{i+n-k-1}\right)=g_{0}+g_{1}x+\cdots +g_{n-k-1}x^{n-k-1}+x^{n-k}} For

5136-434: Is not unique. The number of primitive elements is φ ( q − 1) where φ is Euler's totient function . The result above implies that x = x for every x in GF( q ) . The particular case where q is prime is Fermat's little theorem . If a is a primitive element in GF( q ) , then for any non-zero element x in F , there is a unique integer n with 0 ≤ n ≤ q − 2 such that This integer n

5243-403: Is reducible, it is recommended to choose X + X + 1 with the lowest possible k that makes the polynomial irreducible. If all these trinomials are reducible, one chooses "pentanomials" X + X + X + X + 1 , as polynomials of degree greater than 1 , with an even number of terms, are never irreducible in characteristic 2 , having 1 as a root. A possible choice for such

5350-699: Is so strong that most CD playback errors are almost certainly caused by tracking errors that cause the laser to jump track, not by uncorrectable error bursts. DVDs use a similar scheme, but with much larger blocks, a (208,192) inner code, and a (182,172) outer code. Reed–Solomon error correction is also used in parchive files which are commonly posted accompanying multimedia files on USENET . The distributed online storage service Wuala (discontinued in 2015) also used Reed–Solomon when breaking up files. Almost all two-dimensional bar codes such as PDF-417 , MaxiCode , Datamatrix , QR Code , and Aztec Code use Reed–Solomon error correction to allow correct reading even if

5457-461: Is some constant, and furthermore, the block length is equal to or one less than the alphabet size, that is, n = q {\displaystyle n=q} or n = q − 1 {\displaystyle n=q-1} . There are different encoding procedures for the Reed–Solomon code, and thus, there are different ways to describe the set of all codewords. In the original view of Reed & Solomon (1960) , every codeword of

SECTION 50

#1732802017947

5564-458: Is the non-trivial field automorphism, called the Frobenius automorphism , which sends α into the second root 1 + α of the above-mentioned irreducible polynomial X + X + 1 . For applying the above general construction of finite fields in the case of GF( p ) , one has to find an irreducible polynomial of degree 2. For p = 2 , this has been done in the preceding section. If p

5671-554: Is usually 2 K , meaning that at least half of all the codewords sent must be received in order to reconstruct all of the codewords sent. Reed–Solomon codes are also used in xDSL systems and CCSDS 's Space Communications Protocol Specifications as a form of forward error correction . One significant application of Reed–Solomon coding was to encode the digital pictures sent back by the Voyager program . Voyager introduced Reed–Solomon coding concatenated with convolutional codes ,

5778-669: The Digital Video Broadcasting (DVB) standard DVB-S , in conjunction with a convolutional inner code , but BCH codes are used with LDPC in its successor, DVB-S2 . In 1986, an original scheme decoder known as the Berlekamp–Welch algorithm was developed. In 1996, variations of original scheme decoders called list decoders or soft decoders were developed by Madhu Sudan and others, and work continues on these types of decoders (see Guruswami–Sudan list decoding algorithm ). In 2002, another original scheme decoder

5885-545: The BCH scheme of using a fixed generator polynomial, making such codes a special class of BCH codes, but Reed–Solomon codes based on the original encoding scheme are not a class of BCH codes, and depending on the set of evaluation points, they are not even cyclic codes . In 1969, an improved BCH scheme decoder was developed by Elwyn Berlekamp and James Massey and has since been known as the Berlekamp–Massey decoding algorithm . In 1975, another improved BCH scheme decoder

5992-596: The CD, two layers of Reed–Solomon coding separated by a 28-way convolutional interleaver yields a scheme called Cross-Interleaved Reed–Solomon Coding ( CIRC ). The first element of a CIRC decoder is a relatively weak inner (32,28) Reed–Solomon code, shortened from a (255,251) code with 8-bit symbols. This code can correct up to 2 byte errors per 32-byte block. More importantly, it flags as erasures any uncorrectable blocks, i.e., blocks with more than 2 byte errors. The decoded 28-byte blocks, with erasure indications, are then spread by

6099-480: The Euclidean division, one commonly chooses for P a polynomial of the form X n + a X + b , {\displaystyle X^{n}+aX+b,} which make the needed Euclidean divisions very efficient. However, for some fields, typically in characteristic 2 , irreducible polynomials of the form X + aX + b may not exist. In characteristic 2 , if the polynomial X + X + 1

6206-464: The Reed and Solomon article used a variable polynomial based on the message to be encoded where only a fixed set of values (evaluation points) to be encoded are known to encoder and decoder. The original theoretical decoder generated potential polynomials based on subsets of k (unencoded message length) out of n (encoded message length) values of a received message, choosing the most popular polynomial as

6313-500: The Reed–Solomon code disagree in at least n − ( k − 1 ) = n − k + 1 {\displaystyle n-(k-1)=n-k+1} positions. Furthermore, there are two polynomials that do agree in k − 1 {\displaystyle k-1} points but are not equal, and thus, the distance of the Reed–Solomon code is exactly d = n − k + 1 {\displaystyle d=n-k+1} . Then

6420-505: The Reed–Solomon code is a sequence of function values of a polynomial of degree less than k {\displaystyle k} . In order to obtain a codeword of the Reed–Solomon code, the message symbols (each within the q-sized alphabet) are treated as the coefficients of a polynomial p {\displaystyle p} of degree less than k , over the finite field F {\displaystyle F} with q {\displaystyle q} elements. In turn,

6527-1536: The Vandermonde matrix A by the inverse of A's left square submatrix. G = ( A 's left square submatrix ) − 1 ⋅ A = [ 1 0 0 … 0 g 1 , k + 1 … g 1 , n 0 1 0 … 0 g 2 , k + 1 … g 2 , n 0 0 1 … 0 g 3 , k + 1 … g 3 , n ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 … 0 … 1 g k , k + 1 … g k , n ] {\displaystyle G=(A{\text{'s left square submatrix}})^{-1}\cdot A={\begin{bmatrix}1&0&0&\dots &0&g_{1,k+1}&\dots &g_{1,n}\\0&1&0&\dots &0&g_{2,k+1}&\dots &g_{2,n}\\0&0&1&\dots &0&g_{3,k+1}&\dots &g_{3,n}\\\vdots &\vdots &\vdots &&\vdots &\vdots &&\vdots \\0&\dots &0&\dots &1&g_{k,k+1}&\dots &g_{k,n}\end{bmatrix}}} C ( m ) = G m {\displaystyle C(m)=Gm} for

SECTION 60

#1732802017947

6634-499: The algorithm, or it can detect and correct combinations of errors and erasures. Reed–Solomon codes are also suitable as multiple- burst bit-error correcting codes, since a sequence of b  + 1 consecutive bit errors can affect at most two symbols of size b . The choice of t is up to the designer of the code and may be selected within wide limits. There are two basic types of Reed–Solomon codes – original view and BCH view – with BCH view being

6741-474: The codeword s ( x ) {\displaystyle s(x)} has the property that the first k {\displaystyle k} coefficients are identical to the coefficients of p ( x ) {\displaystyle p(x)} : s ( x ) = p ( x ) ⋅ x t − s r ( x ) . {\displaystyle s(x)=p(x)\cdot x^{t}-s_{r}(x)\,.} As

6848-407: The coefficients of x t − 1 , x t − 2 , … , x 1 , x 0 {\displaystyle x^{t-1},x^{t-2},\dots ,x^{1},x^{0}} in the polynomial p ( x ) ⋅ x t {\displaystyle p(x)\cdot x^{t}} are zero. Therefore, the following definition of

6955-463: The construction of the preceding section must involve this polynomial, and G F ( 4 ) = G F ( 2 ) [ X ] / ( X 2 + X + 1 ) . {\displaystyle \mathrm {GF} (4)=\mathrm {GF} (2)[X]/(X^{2}+X+1).} Let α denote a root of this polynomial in GF(4) . This implies that and that α and 1 + α are

7062-426: The correct one, which was impractical for all but the simplest of cases. This was initially resolved by changing the original scheme to a BCH-code -like scheme based on a fixed polynomial known to both encoder and decoder, but later, practical decoders based on the original scheme were developed, although slower than the BCH schemes. The result of this is that there are two main types of Reed–Solomon codes: ones that use

7169-423: The deinterleaver to different blocks of the (28,24) outer code. Thanks to the deinterleaving, an erased 28-byte block from the inner code becomes a single erased byte in each of 28 outer code blocks. The outer code easily corrects this, since it can handle up to 4 such erasures per block. The result is a CIRC that can completely correct error bursts up to 4000 bits, or about 2.5 mm on the disc surface. This code

7276-526: The discrete logarithm of a + a . The identity allows one to solve this problem by constructing the table of the discrete logarithms of a + 1 , called Zech's logarithms , for n = 0, ..., q − 2 (it is convenient to define the discrete logarithm of zero as being −∞ ). Zech's logarithms are useful for large computations, such as linear algebra over medium-sized fields, that is, fields that are sufficiently large for making natural algorithms inefficient, but not too large, as one has to pre-compute

7383-451: The elements of GF( q ) become polynomials in α , where P ( α ) = 0 , and, when one encounters a polynomial in α of degree greater or equal to n (for example after a multiplication), one knows that one has to use the relation P ( α ) = 0 to reduce its degree (it is what Euclidean division is doing). Except in the construction of GF(4) , there are several possible choices for P , which produce isomorphic results. To simplify

7490-400: The elements of GF(4) that are not in GF(2) . The tables of the operations in GF(4) result from this, and are as follows: A table for subtraction is not given, because subtraction is identical to addition, as is the case for every field of characteristic 2. In the third table, for the division of x by y , the values of x must be read in the left column, and the values of y in

7597-450: The encoder constructs the transmitted polynomial s ( x ) {\displaystyle s(x)} such that the coefficients of the k {\displaystyle k} largest monomials are equal to the corresponding coefficients of p ( x ) {\displaystyle p(x)} , and the lower-order coefficients of s ( x ) {\displaystyle s(x)} are chosen exactly in such

7704-404: The equation x = 1 has at most k solutions in any field, q – 1 is the lowest possible value for k . The structure theorem of finite abelian groups implies that this multiplicative group is cyclic , that is, all non-zero elements are powers of a single element. In summary: Such an element a is called a primitive element of GF( q ) . Unless q = 2, 3 , the primitive element

7811-539: The expansion of ( x + y ) , except the first and the last, is a multiple of p . By Fermat's little theorem , if p is a prime number and x is in the field GF( p ) then x = x . This implies the equality X p − X = ∏ a ∈ G F ( p ) ( X − a ) {\displaystyle X^{p}-X=\prod _{a\in \mathrm {GF} (p)}(X-a)} for polynomials over GF( p ) . More generally, every element in GF( p ) satisfies

7918-415: The field GF( q ) may be explicitly constructed in the following way. One first chooses an irreducible polynomial P in GF( p )[ X ] of degree n (such an irreducible polynomial always exists). Then the quotient ring G F ( q ) = G F ( p ) [ X ] / ( P ) {\displaystyle \mathrm {GF} (q)=\mathrm {GF} (p)[X]/(P)} of

8025-403: The following n × k {\displaystyle n\times k} -matrix A {\displaystyle A} with elements from F {\displaystyle F} : C ( m ) = A m = [ 1 a 0 a 0 2 … a 0 k − 1 1

8132-1642: The following n × k {\displaystyle n\times k} -matrix G {\displaystyle G} with elements from F {\displaystyle F} : C ( m ) = G m = [ 1 0 0 … 0 g 1 , k + 1 … g 1 , n 0 1 0 … 0 g 2 , k + 1 … g 2 , n 0 0 1 … 0 g 3 , k + 1 … g 3 , n ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 … 0 … 1 g k , k + 1 … g k , n ] [ m 0 m 1 ⋮ m k − 1 ] {\displaystyle C(m)=Gm={\begin{bmatrix}1&0&0&\dots &0&g_{1,k+1}&\dots &g_{1,n}\\0&1&0&\dots &0&g_{2,k+1}&\dots &g_{2,n}\\0&0&1&\dots &0&g_{3,k+1}&\dots &g_{3,n}\\\vdots &\vdots &\vdots &&\vdots &\vdots &&\vdots \\0&\dots &0&\dots &1&g_{k,k+1}&\dots &g_{k,n}\end{bmatrix}}{\begin{bmatrix}m_{0}\\m_{1}\\\vdots \\m_{k-1}\end{bmatrix}}} A discrete Fourier transform

8239-457: The following classification theorem first proved in 1893 by E. H. Moore : The order of a finite field is a prime power. For every prime power q there are fields of order q , and they are all isomorphic. In these fields, every element satisfies x q = x , {\displaystyle x^{q}=x,} and the polynomial X − X factors as X q − X = ∏

8346-545: The four elements 0, 1, α , 1 + α such that α = 1 + α , 1 ⋅ α = α ⋅ 1 = α , x + x = 0 , and x ⋅ 0 = 0 ⋅ x = 0 , for every x ∈ GF(4) , the other operation results being easily deduced from the distributive law . See below for the complete operation tables. This may be deduced as follows from the results of the preceding section. Over GF(2) , there is only one irreducible polynomial of degree 2 : X 2 + X + 1 {\displaystyle X^{2}+X+1} Therefore, for GF(4)

8453-477: The four roots of X + X + 1 and their multiplicative inverses . In particular, α is a primitive element, and the primitive elements are α with m less than and coprime with 15 (that is, 1, 2, 4, 7, 8, 11, 13, 14). The set of non-zero elements in GF( q ) is an abelian group under the multiplication, of order q – 1 . By Lagrange's theorem , there exists a divisor k of q – 1 such that x = 1 for every non-zero x in GF( q ) . As

8560-1821: The last row = g ( x ) {\displaystyle g(x)} . C ( m ) = G m {\displaystyle C(m)=Gm} for the following n × k {\displaystyle n\times k} -matrix G {\displaystyle G} with elements from F {\displaystyle F} : C ( m ) = G m = [ 1 0 0 … 0 g 1 , k + 1 … g 1 , n 0 1 0 … 0 g 2 , k + 1 … g 2 , n 0 0 1 … 0 g 3 , k + 1 … g 3 , n ⋮ ⋮ ⋮ ⋮ ⋮ ⋮ 0 … 0 … 1 g k , k + 1 … g k , n ] [ m 0 m 1 ⋮ m k − 1 ] {\displaystyle C(m)=Gm={\begin{bmatrix}1&0&0&\dots &0&g_{1,k+1}&\dots &g_{1,n}\\0&1&0&\dots &0&g_{2,k+1}&\dots &g_{2,n}\\0&0&1&\dots &0&g_{3,k+1}&\dots &g_{3,n}\\\vdots &\vdots &\vdots &&\vdots &\vdots &&\vdots \\0&\dots &0&\dots &1&g_{k,k+1}&\dots &g_{k,n}\end{bmatrix}}{\begin{bmatrix}m_{0}\\m_{1}\\\vdots \\m_{k-1}\end{bmatrix}}} Finite field In mathematics ,

8667-427: The message as the values of the polynomial at the first k points a 1 , … , a k {\displaystyle a_{1},\dots ,a_{k}} and obtain the polynomial p by interpolating these values with a polynomial of degree less than k . The latter encoding procedure, while being slightly less efficient, has the advantage that it gives rise to a systematic code , that is,

8774-521: The message must be a set of increasing powers of α : a i = α i {\displaystyle a_{i}=\alpha ^{i}} a 0 , … , a n − 1 = { 1 , α , α 2 , … , α n − 1 } {\displaystyle a_{0},\dots ,a_{n-1}=\{1,\alpha ,\alpha ^{2},\dots ,\alpha ^{n-1}\}} However, Lagrange interpolation performs

8881-544: The message polynomial p ( x ) {\displaystyle p(x)} by interpreting the message as the sequence of its coefficients. Formally, the construction is done by multiplying p ( x ) {\displaystyle p(x)} by x t {\displaystyle x^{t}} to make room for the t = n − k {\displaystyle t=n-k} check symbols, dividing that product by g ( x ) {\displaystyle g(x)} to find

8988-467: The most common, as BCH view decoders are faster and require less working storage than original view decoders. Reed–Solomon codes were developed in 1960 by Irving S. Reed and Gustave Solomon , who were then staff members of MIT Lincoln Laboratory . Their seminal article was titled "Polynomial Codes over Certain Finite Fields" ( Reed & Solomon 1960 ). The original encoding scheme described in

9095-493: The multiplicative inverse of a root of P . In other words, the roots of P form a field of order q , which is equal to F by the minimality of the splitting field. The uniqueness up to isomorphism of splitting fields implies thus that all fields of order q are isomorphic. Also, if a field F has a field of order q = p as a subfield, its elements are the q roots of X − X , and F cannot contain another subfield of order q . In summary, we have

9202-403: The number of different messages are both equal to q k {\displaystyle q^{k}} , and thus every message can be uniquely mapped to such a polynomial, there are different ways of doing this encoding. The original construction of Reed & Solomon (1960) interprets the message x as the coefficients of the polynomial p , whereas subsequent constructions interpret

9309-444: The operations in GF( p ) ): − ( a + b α ) = − a + ( − b ) α ( a + b α ) + ( c + d α ) = ( a + c ) + ( b + d ) α ( a + b α ) ( c + d α ) = (

9416-472: The operations in GF(2) . ( a + b α + c α 2 + d α 3 ) + ( e + f α + g α 2 + h α 3 ) = ( a + e ) + ( b + f ) α + ( c + g ) α 2 + ( d + h ) α 3 (

9523-675: The original encoding scheme and ones that use the BCH encoding scheme. Also in 1960, a practical fixed polynomial decoder for BCH codes developed by Daniel Gorenstein and Neal Zierler was described in an MIT Lincoln Laboratory report by Zierler in January 1960 and later in an article in June 1961. The Gorenstein–Zierler decoder and the related work on BCH codes are described in a book "Error-Correcting Codes" by W. Wesley Peterson (1961). By 1963 (or possibly earlier), J. J. Stone (and others) recognized that Reed–Solomon codes could use

9630-527: The original message is always contained as a subsequence of the codeword. In the original construction of Reed & Solomon (1960) , the message m = ( m 0 , … , m k − 1 ) ∈ F k {\displaystyle m=(m_{0},\dots ,m_{k-1})\in F^{k}} is mapped to the polynomial p m {\displaystyle p_{m}} with p m (

9737-441: The other axioms of a field, but whose multiplication is not required to be commutative, is called a division ring (or sometimes skew field ). By Wedderburn's little theorem , any finite division ring is commutative, and hence is a finite field. Let q = p be a prime power , and F be the splitting field of the polynomial P = X q − X {\displaystyle P=X^{q}-X} over

9844-535: The polynomial s ( x ) {\displaystyle s(x)} . The polynomial s ( x ) {\displaystyle s(x)} is constructed by multiplying the message polynomial p ( x ) {\displaystyle p(x)} , which has degree k − 1 {\displaystyle k-1} , with a generator polynomial g ( x ) {\displaystyle g(x)} of degree n − k {\displaystyle n-k} that

9951-421: The polynomial p is evaluated at n ≤ q distinct points a 1 , … , a n {\displaystyle a_{1},\dots ,a_{n}} of the field F , and the sequence of values is the corresponding codeword. Common choices for a set of evaluation points include {0, 1, 2, ..., n − 1}, {0, 1, α , α , ..., α }, or for n < q , {1, α , α , ..., α }, ... , where α

10058-407: The polynomial equation x − x = 0 . Any finite field extension of a finite field is separable and simple. That is, if E is a finite field and F is a subfield of E , then E is obtained from F by adjoining a single element whose minimal polynomial is separable . To use a piece of jargon, finite fields are perfect . A more general algebraic structure that satisfies all

10165-491: The polynomial ring GF( p )[ X ] by the ideal generated by P is a field of order q . More explicitly, the elements of GF( q ) are the polynomials over GF( p ) whose degree is strictly less than n . The addition and the subtraction are those of polynomials over GF( p ) . The product of two elements is the remainder of the Euclidean division by P of the product in GF( p )[ X ] . The multiplicative inverse of

10272-417: The prime field GF( p ) . This means that F is a finite field of lowest order, in which P has q distinct roots (the formal derivative of P is P ′ = −1 , implying that gcd( P , P ′ ) = 1 , which in general implies that the splitting field is a separable extension of the original). The above identity shows that the sum and the product of two roots of P are roots of P , as well as

10379-410: The prime field of order p may be represented by integers in the range 0, ..., p − 1 . The sum, the difference and the product are the remainder of the division by p of the result of the corresponding integer operation. The multiplicative inverse of an element may be computed by using the extended Euclidean algorithm (see Extended Euclidean algorithm § Modular integers ). Let F be

10486-561: The public. According to ETSI, DVB-S was the first DVB standard for satellite, defining the framing structure, channel coding and modulation for 11/12 GHz satellite services. It is used via satellites serving every continent of the world. DVB-S is used in both multiple channel per carrier (MCPC) and single channel per carrier modes for broadcast network feeds as well as for direct-broadcast satellite services like Sky UK and Ireland via Astra in Europe, Dish Network and Globecast in

10593-502: The relative distance and the rate is asymptotically optimal since, by the Singleton bound , every code satisfies δ + R ≤ 1 + 1 / n {\displaystyle \delta +R\leq 1+1/n} . Being a code that achieves this optimal trade-off, the Reed–Solomon code belongs to the class of maximum distance separable codes . While the number of different polynomials of degree less than k and

10700-409: The relative distance is δ = d / n = 1 − k / n + 1 / n = 1 − R + 1 / n ∼ 1 − R {\displaystyle \delta =d/n=1-k/n+1/n=1-R+1/n\sim 1-R} , where R = k / n {\displaystyle R=k/n} is the rate. This trade-off between

10807-600: The remainder, and then compensating for that remainder by subtracting it. The t {\displaystyle t} check symbols are created by computing the remainder s r ( x ) {\displaystyle s_{r}(x)} : s r ( x ) = p ( x ) ⋅ x t   mod   g ( x ) . {\displaystyle s_{r}(x)=p(x)\cdot x^{t}\ {\bmod {\ }}g(x).} The remainder has degree at most t − 1 {\displaystyle t-1} , whereas

10914-694: The same conversion without the constraint on the set of evaluation points or the requirement of an error free set of message values and is used for systematic encoding, and in one of the steps of the Gao decoder . In this view, the message is interpreted as the coefficients of a polynomial p ( x ) {\displaystyle p(x)} . The sender computes a related polynomial s ( x ) {\displaystyle s(x)} of degree n − 1 {\displaystyle n-1} where n ≤ q − 1 {\displaystyle n\leq q-1} and sends

11021-407: The same order, and they are unambiguously denoted F q {\displaystyle \mathbb {F} _{q}} , F q or GF( q ) , where the letters GF stand for "Galois field". In a finite field of order q , the polynomial X − X has all q elements of the finite field as roots . The non-zero elements of a finite field form a multiplicative group . This group

11128-471: The top row. (Because 0 ⋅ z = 0 for every z in every ring the division by 0 has to remain undefined.) From the tables, it can be seen that the additive structure of GF(4) is isomorphic to the Klein four-group , while the non-zero multiplicative structure is isomorphic to the group Z 3 . The map φ : x ↦ x 2 {\displaystyle \varphi :x\mapsto x^{2}}

11235-613: The ultimate limit, the Shannon capacity . These concatenated codes are now being replaced by more powerful turbo codes : The Reed–Solomon code is actually a family of codes, where every code is characterised by three parameters: an alphabet size q {\displaystyle q} , a block length n {\displaystyle n} , and a message length k {\displaystyle k} , with k < n ≤ q {\displaystyle k<n\leq q} . The set of alphabet symbols

11342-399: Was developed by Shuhong Gao, based on the extended Euclidean algorithm . Reed–Solomon coding is very widely used in mass storage systems to correct the burst errors associated with media defects. Reed–Solomon coding is a key component of the compact disc . It was the first use of strong error correction coding in a mass-produced consumer product, and DAT and DVD use similar schemes. In

11449-610: Was developed by Yasuo Sugiyama, based on the extended Euclidean algorithm . In 1977, Reed–Solomon codes were implemented in the Voyager program in the form of concatenated error correction codes . The first commercial application in mass-produced consumer products appeared in 1982 with the compact disc , where two interleaved Reed–Solomon codes are used. Today, Reed–Solomon codes are widely implemented in digital storage devices and digital communication standards, though they are being slowly replaced by Bose–Chaudhuri–Hocquenghem (BCH) codes . For example, Reed–Solomon codes are used in

#946053