WO2004107587A1 - Parallel encoding of cyclic codes - Google Patents

Parallel encoding of cyclic codes Download PDF

Info

Publication number
WO2004107587A1
WO2004107587A1 PCT/EP2003/005638 EP0305638W WO2004107587A1 WO 2004107587 A1 WO2004107587 A1 WO 2004107587A1 EP 0305638 W EP0305638 W EP 0305638W WO 2004107587 A1 WO2004107587 A1 WO 2004107587A1
Authority
WO
WIPO (PCT)
Prior art keywords
tuple
coefficients
symbols
generator polynomial
code
Prior art date
Application number
PCT/EP2003/005638
Other languages
French (fr)
Inventor
Jürgen LERZER
Original Assignee
Telefonaktiebolaget L M Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget L M Ericsson (Publ) filed Critical Telefonaktiebolaget L M Ericsson (Publ)
Priority to PCT/EP2003/005638 priority Critical patent/WO2004107587A1/en
Priority to AU2003245898A priority patent/AU2003245898A1/en
Publication of WO2004107587A1 publication Critical patent/WO2004107587A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes

Definitions

  • the present invention relates to a method of generating code symbols in an encoder, and to a logic circuit for generating code symbols in an encoder.
  • the k-tuple of information symbols can be represented as a (k-1) -degree polynomial
  • the n-tuple of code symbols can be represented by the (n-1) -degree polynomial
  • c(x) C 0 +C 1 x 1 +C 2 x 2 +...+C n _ 1 x n - 1 .
  • the function of the encoder can be represented in terms of a so-called generator polynomial g (x) of degree (n-k) :
  • g( ⁇ ) g u x°+_J ⁇ x-'-+... +g n _k_ ⁇ x n ⁇ -' - 1 -+ n ⁇ k.
  • the coefficients gj_ of the generator polynomial are also elements of GF(2 m ), like the information symbols I and the code symbols C.
  • the code word therefore has a form:
  • t (x) rem (x n "- ⁇ i (x) , g (x) ) .
  • the function t (x) is the remainder or residue of n ⁇ ki (x) divided by g(x) . This is basically well known in the art and does not need to be described in further detail here .
  • the object of the present invention is to provide a method of generating an n-tuple of code symbols on the basis of a k- tuple of information symbols, which method is on the one hand fast in terms of operation speed and on the other hand simple in terms of hardware implementation.
  • the information symbols are grouped into p-tuples, and the processing is also achieved in terms of p-tuples, where p is a factor of (n-k) and k, and p is greater than 1.
  • p is a factor of (n-k) and k
  • p is greater than 1.
  • (n-k) /p is an integer
  • k/p is an integer.
  • p is smaller than k.
  • the present invention proposes processing p-tuples in parallel, but not all k information symbols at once.
  • the present method can be applied to any coding operation, regardless of the length of the information word and the length of the code word involved. If a factor p for the given lengths can be found, then the application is straightforward. However, even if the given lengths do not provide immediate factorisation, this can readily and simply be achieved by appropriately expanding the information symbols by dummy symbols (zeros) and/or expanding the generator polynomial by dummy coefficients (zeros) .
  • zeros dummy symbols
  • zeros generator polynomial by dummy coefficients
  • Fig. 1 shows one example of a logic circuit employing the method of the present invention
  • p 2
  • Fig. 3 shows a single symbol processing logic circuit for the purpose of comparison with the present invention.
  • a logic circuit shown in Fig. 3 which does not implement the present invention, and which operates according to the principle of single symbol processing, in order to generate the code symbols in systematic form.
  • the figure shows an input for inputting the information symbols I, starting with I ⁇ -i in the first shift, T-k- 2 i n the second shift, and so on.
  • the logic circuit comprises single symbol or scalar multiplication units 30_, 30 2 , 3O 3 and 3O 4 , which serve to multiply an input symbol by an indicated coefficient g-j_ of the generator polynomial.
  • single symbol storage units 31]_, 31 2 , 3I 3 and 3I 4 are shown, which serve to store intermediate coefficients that result from the processing operation of the logdc circuit.
  • Various adders are provided including an adder 32 for adding the output of the final storage element 3I4 to an input information symbol.
  • a switch 34 is provided, which is operable to connect the output for outputting the code symbols either to the input or to the output of the adder 32.
  • a switch 33 is provided which is opened for the last n-k shifts, in order to correctly output the final n-k code symbols, which correspond to the above-described remainder function t (x) .
  • the upper part of the logic circuit in Fig. 3 is based on a known circuit for dividing by g (x) , see Fig. 6.11 in chapter 6.2 of "Theory and Practice of Error Control Codes" by Richard E. Blahut, Addison- esley Publishing Company, 1983, ISBN 0-201- 10102-5.
  • h(x,i) h 0 (i)+h x (i)x 1 +h 2 (i)x 2 +...+h n _k_ 1 (i) ⁇ n-k-1.
  • i represents the shift count.
  • the coefficient hg (i) is to be found after the i-th shift in the lowest storage element 31]_, h]_ (i) is to be found in the next-to-left most storage element 312 after the i-th shift, etc.
  • k shifts h(x,k) equals t (x) .
  • the logic circuit of Fig. 3 requires overall n shifts in order to generate the n-tuple of code symbols.
  • the concept of the present invention comprises on the one hand setting the higher k code symbols
  • h 1 ⁇ (i') D ⁇ •(F (pxp) • (h ii '-1) +/ ⁇ (i ')))+h j ' O'-l)
  • S j 'P gj'p-1 gj'p-p+3 gj'p-p+2 gj'p-p+1 is a (pxp) matrix representation comprising the coefficients g of the generator polynomial, associated with the j ' -th p- tuple of intermediate coefficients, v ⁇ ,2 F l,p-2 tl,p-l F l,
  • Pp,p-1 L P>P is a (pxp) matrix representation comprising coefficients g of the generator polynomial,
  • the above-mentioned intermediate coefficients h are grouped into p-tuples, just as the information symbols i are equally grouped into p-tuples. Therefore, it is possible to perform the coding operation in overall n/p steps.
  • n and k are divisible by p is not a ⁇ limitation with respect to the types of codes that may be used in connection with the concept of the present invention. Namely, it is very easily possible to expand the given number of information symbols to an appropriate k-tuple by adding dummy symbols (zeros) for the higher or more significant symbols in the k-tuple, and/or adding dummy coefficients
  • the above mentioned generator polynomial of degree (n-k) is then an expanded generator polynomial, and the (n-k) coefficients go > g ⁇ , / • • ⁇ gn-k-1 °f said expanded generator polynomial g (x) are derived from the (n'-k) coefficients of the actual generator polynomial associated with the (n',k) code in the following way: the higher (n'-k) coefficients gd ⁇ gd+l • • • • / gn-k-1 °f said first generator polynomial are identical to the coefficients of said second polynomial, and the lower d coefficients grjj i / • • • • gd-l OI said first generator polynomial are all equal to zero.
  • the actual given code is referred to as (n", k') .
  • the k-tuple of information symbols IQ-II , ... , Ik-l to be used is derived from the k' -tuple of actual information symbols IQ I # ...
  • the higher (n"-k') coefficients g e ,g e+ ⁇ , ... , g n - k -i of the first generator polynomial are identical to the coefficients of said second polynomial, and the lower e coefficients g ⁇ ,g l , ... , g e _ ⁇ of said first generator polynomial are all set to zero.
  • CQ are dropped, and of the higher k code symbols C n _ ⁇ ,C n _ 2 • • • C n _ k the highest e code symbols C n . ⁇ ,C n _ 2 , ... , C n _ ⁇ _ e are dropped, in order to provide an n" -tuple of code symbols associated with the actual (n",k') code.
  • the present invention can be employed in connection with any type of linear block coding, but is preferably applied in the context of BCH encoders.
  • An output of the first matrix multiplication unit ll x is connected to an input of the first storage element 10 ! , an output of said first storage element ll x is connected to the first p-tuple adder 16 1 , an output of each of the second to q/p-th matrix multiplication units 11 2 , 11 3 is connected to an input of one of the first to (q/p-1) -th p-tuple adders l ⁇ ⁇ r 16 2 , and an output of each of said first to (q/p-1) -th p-tuple adders 16 17 16 2 is connected to an input of one of the second to q/p-th storage elements 10 2 , 10 3 .
  • a further p-tuple adder 13 is connected to the output of the q/p-th storage element (10 3 ) and the circuit input.
  • a further matrix multiplication unit 12 for conducting a multiplication of a received p-tuple by the (pxp) matrix F ⁇ xp is provided, the input of the further matrix multiplication unit 12 being connected to the output of the further p-tuple adder 13.
  • a switch 15 is provided for selectively connecting the output of the further matrix multiplication unit 12 with each input of the first to q/p-th matrix multiplication units ll x , 11 2 , 11 3 , controlled to be open on the last (n-k) /p shifts of operation.
  • a switch 14 is provided for selectively connecting said circuit output with said circuit input or with the output of said further p-tuple adder 13, controlled to be connected to the input for the first k/p shifts and to the output of the adder 13 on the last (n-k) /p shifts .
  • the general embodiment of Fig. 1 relates to arbitrary values of p. Consequently, the matrix multiplication units must be appropriately arranged, which is well known to the skilled person.
  • Fig. 2 shows the case for a logic circuit in which p is equal to 2.
  • the matrix multiplication units perform (2 x 2) multiplications, and the storage units are arranged to store 2 intermediate coefficients in parallel.
  • the details are expressed in terms of scalar elements, i.e. elements that only carry one symbol. In other words, in this example, the shown matrix
  • multiplication units all comprise scalar multipliers referred to by the factor g with which they multiply.
  • Each storage unit j ' is shown as consisting of two scalar storage elements, each for storing a corresponding intermediate factor h., .

Landscapes

  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

A method and logic circuit for systemtic encoding of cyclic (n, k) block codes are described. The K information symbols are processed in tuples of p symbols, i.e.p information symbols are processed in parallel by the method and the circuit. This allows the logic circuit to merge p shift operations within a single clock cycle and to generate (n-k) parity symbols in K/p clock cycles.

Description

PARALLEL ENCODING OF CYCLIC CODES
[Field of the invention]
The present invention relates to a method of generating code symbols in an encoder, and to a logic circuit for generating code symbols in an encoder.
[Background of the invention]
In the field of error correction coding, it is known to input a k-tuple of information symbols (IQ Ii, •••, T- -l) into an encoder and to output an n-tuple of code symbols ( CQ , C _ , . . . i Cn_]_) , where k and n are natural numbers (positive integers) and k is smaller than n. The information symbols I and the code symbols C are elements of a Galois field GF(2m), m being a positive integer. For example, for m = 1, the symbols are bits, representable as 0 or 1.
In a polynomial representation, the k-tuple of information symbols can be represented as a (k-1) -degree polynomial
Figure imgf000003_0001
Equally, the n-tuple of code symbols can be represented by the (n-1) -degree polynomial
c(x) = C0+C1x1+C2x2+...+Cn_1xn-1.
The function of the encoder can be represented in terms of a so-called generator polynomial g (x) of degree (n-k) :
g(χ) = gux°+_Jιx-'-+... +gn_k_ιxn~-' -1-+ n~k. The coefficients gj_ of the generator polynomial are also elements of GF(2m), like the information symbols I and the code symbols C.
A simple coding rule can be represented as c (x) = i (x) g (x) . However, it is generally preferable to provide a so-called systematic encoding rule, in which the higher k code symbols (cn-l' cn-2' •••/ cn-k) are equal to the k-tuple of information symbols (Ijζ-i, Ik-2' ■••/ Iθ) • In polynomial representation, the code word therefore has a form:
c (x) = xn_k i (x) -Ft (x) ,
where
t (x) = rem (xn"-^i (x) , g (x) ) .
In other words, the function t (x) is the remainder or residue of n~ki (x) divided by g(x) . This is basically well known in the art and does not need to be described in further detail here .
[Object of the present invention]
The object of the present invention is to provide a method of generating an n-tuple of code symbols on the basis of a k- tuple of information symbols, which method is on the one hand fast in terms of operation speed and on the other hand simple in terms of hardware implementation.
[Summary of the present invention]
This object is achieved by the method of claim 1 and the logic circuit of claim 7. Advantageous embodiments are described in the dependent claims. In accordance with the present invention, the information symbols are grouped into p-tuples, and the processing is also achieved in terms of p-tuples, where p is a factor of (n-k) and k, and p is greater than 1. In other words (n-k) /p is an integer and k/p is an integer. Furthermore, p is smaller than k. In other words, instead of processing the information symbols in single symbol fashion, i.e. one symbol at the time, the present invention proposes processing p-tuples in parallel, but not all k information symbols at once. In this way, a significant increase in speed with respect to processing one symbol at the time is achieved, but without at the same time having the increased hardware requirements of a fully parallel processing of all k information symbols at once. For example, the processing speed can already be doubled by selecting p = 2, but the hardware requirements for implementing the corresponding methods are only slightly greater than when processing one symbol at the time.
The present method can be applied to any coding operation, regardless of the length of the information word and the length of the code word involved. If a factor p for the given lengths can be found, then the application is straightforward. However, even if the given lengths do not provide immediate factorisation, this can readily and simply be achieved by appropriately expanding the information symbols by dummy symbols (zeros) and/or expanding the generator polynomial by dummy coefficients (zeros) .
[Brief description of Figures]
The present invention will now be described in more detail with reference to the accompanying figures in which
Fig. 1 shows one example of a logic circuit employing the method of the present invention, Fig. 2 shows an example of the logic circuit of Fig. 1 for p = 2 , and
Fig. 3 shows a single symbol processing logic circuit for the purpose of comparison with the present invention.
[Detailed description of embodiments]
In order to better understand the concept of the present invention, reference is first made to a logic circuit shown in Fig. 3, which does not implement the present invention, and which operates according to the principle of single symbol processing, in order to generate the code symbols in systematic form. The figure shows an input for inputting the information symbols I, starting with I^-i in the first shift, T-k-2 in the second shift, and so on. The logic circuit comprises single symbol or scalar multiplication units 30_, 302, 3O3 and 3O4, which serve to multiply an input symbol by an indicated coefficient g-j_ of the generator polynomial.
Furthermore, single symbol storage units 31]_, 312, 3I3 and 3I4 are shown, which serve to store intermediate coefficients that result from the processing operation of the logdc circuit. Various adders are provided including an adder 32 for adding the output of the final storage element 3I4 to an input information symbol. Furthermore, a switch 34 is provided, which is operable to connect the output for outputting the code symbols either to the input or to the output of the adder 32. By holding circuit 34 in connection with the circuit input for the first k shifts of the logic circuit, the higher k code symbols Cn_ι, ... , Cn_k are set equal to the k-tuple of information symbols (Ik-1 • • • To) ' which are input individually. Furthermore, a switch 33 is provided which is opened for the last n-k shifts, in order to correctly output the final n-k code symbols, which correspond to the above-described remainder function t (x) . The upper part of the logic circuit in Fig. 3 is based on a known circuit for dividing by g (x) , see Fig. 6.11 in chapter 6.2 of "Theory and Practice of Error Control Codes" by Richard E. Blahut, Addison- esley Publishing Company, 1983, ISBN 0-201- 10102-5.
The storage elements 3I1-3I4, of which there generally are (n-k) store intermediate values h, which can be represented as :
h(x,i) = h0 (i)+hx (i)x1+h2 (i)x2+...+hn_k_1 (i) χn-k-1.
i represents the shift count. In other words, the coefficient hg (i) is to be found after the i-th shift in the lowest storage element 31]_, h]_ (i) is to be found in the next-to-left most storage element 312 after the i-th shift, etc. After k shifts h(x,k) equals t (x) . The logic circuit of Fig. 3 requires overall n shifts in order to generate the n-tuple of code symbols.
In contrast thereto, the concept of the present invention comprises on the one hand setting the higher k code symbols
Cn-l>Cn_2 • • • Cjj.jj. equal to the k-tuple of information symbols
Ik-l>Ik-2' ■■■/!()' i-n o der to provide the code words in systematic form, but recursively calculating (n-k) /p p-tuples of intermediate coefficients hj in k/p consecutive steps i', such that the following relationship is fulfilled:
h 1}(i') = D^ •(F(pxp) • (h ii '-1) +/ ^(i ')))+hj' O'-l)
where q = n-k ,
Figure imgf000008_0001
represents a j ' -th p-tuple of intermediate coefficients after the i'-th step in (pxl) vector form,
Figure imgf000008_0002
represents a p-tuple of information symbols associated with the i'-th step in (pxl) vector form,
gj'p+p-1 gj'p+p-2 gj'p+2 gj'p+1 Sj'p gj'p+p-2 gj'p+p-3 gj'p+1 gj'p gj'p-1
D(PXP) _ • • j' gj'p+2 gj'p+1 gj'p-p+5 gj'p-p+4 gj'p-p+3 gj'p+1 . gj'p gj'p-p+4 gj'p-p+3 gj'p-p+2
1 Sj'P gj'p-1 gj'p-p+3 gj'p-p+2 gj'p-p+1 is a (pxp) matrix representation comprising the coefficients g of the generator polynomial, associated with the j ' -th p- tuple of intermediate coefficients, v\,2 Fl,p-2 tl,p-l Fl,
F2,l ^2,2 F2,p-2 ?2,p-l -2,P p(PxP) _ fp-2,1 ^p-2,2 Fp-2,p-2 Fp-2,p-l Fp-2,p Fp-1,1 Fp-1,2 Fp-l,p-2 Fp-l,p-l Fρ-l,p
^1 PP,2 LP,P" Pp,p-1 LP>P is a (pxp) matrix representation comprising coefficients g of the generator polynomial, where
p-a-l
a,l / iOα-D+a+b P-b,l for a=l,2 ,p-l
6=0
^a,c -^a+l,c-l for a=l,2,...,p and c=2,3, -P
R =0 Vx>l
FP,1 =1 and setting the lower (n-k) code symbols Cn.jc.ι,Cn.]c.2, • • ■ , Co equal to the (n-k) intermediate coefficients ( hj ) provided after k/p steps.
As can be seen, in accordance with the present invention, the above-mentioned intermediate coefficients h are grouped into p-tuples, just as the information symbols i are equally grouped into p-tuples. Therefore, it is possible to perform the coding operation in overall n/p steps.
The restriction that both n and k are divisible by p is not a ^ limitation with respect to the types of codes that may be used in connection with the concept of the present invention. Namely, it is very easily possible to expand the given number of information symbols to an appropriate k-tuple by adding dummy symbols (zeros) for the higher or more significant symbols in the k-tuple, and/or adding dummy coefficients
(zeros) at the lower or less significant end of the generator polynomial . In this way, appropriate numbers n and k can be provided, even when departing from an arbitrary initial code that has a number of information symbols and a number of code symbols that do not allow immediate factorisation. This shall be explained more closely in the following.
As an example, if a (n',k) code is given, and no desired factor is available for n' and k, one can expand the generator polynomial in the following way. One chooses n=n'+d, where d is a positive integer such that p is a factor of n and k. The above mentioned generator polynomial of degree (n-k) is then an expanded generator polynomial, and the (n-k) coefficients go>gι, / • • ■ gn-k-1 °f said expanded generator polynomial g (x) are derived from the (n'-k) coefficients of the actual generator polynomial associated with the (n',k) code in the following way: the higher (n'-k) coefficients gd^gd+l • • • / gn-k-1 °f said first generator polynomial are identical to the coefficients of said second polynomial, and the lower d coefficients grjj i / • • • gd-l OI said first generator polynomial are all equal to zero. After applying the method with the expanded generator polynomial , of the lower (n-k) code symbols Cn.]£.ι,C.]!-.2, • • ■ CQ equal to the (n-k) intermediate coefficients (hj) provided after k/p steps, the lowest most d code symbols C^-i , ... , CQ are dropped, in order to thereby provide the n' -tuple of code symbols associated with the actual (n',k) code.
Additionally or alternatively, one can also expand the number of information symbols with dummy symbols. The actual given code is referred to as (n", k') . The k-tuple of information symbols IQ-II , ... , Ik-l to be used is derived from the k' -tuple of actual information symbols IQ I # ... , Ik'-l where k=k'+e and e is a positive integer such that p is a factor of k, and the lower k' information symbols of the k-tuple of expanded information symbols are identical to the k' -tuple of actual information symbols, and the higher e information symbols Ik' k'+l i • • ■ i I -1 °f the k-tuple of expanded information symbols are all equal to zero. The (n-k) coefficients g0,gι /■••/gn-k-1 °f an expanded generator polynomial g (x) are derived from the (n"-k') coefficients of the actual generator polynomial associated with the (n",k') code, where n=n"+2e.
The higher (n"-k') coefficients ge,ge+ι , ... , gn-k-i of the first generator polynomial are identical to the coefficients of said second polynomial, and the lower e coefficients gø,gl , ... , ge_ι of said first generator polynomial are all set to zero. After processing, of the lower (n-k) code symbols Cn-k-l'Cn-k-2' ■ • • Co equal to the (n-k) intermediate coefficients hj provided after k/p steps, the lowest most e code symbols Ce_ι , ... , CQ are dropped, and of the higher k code symbols Cn_ι,Cn_2 • • • Cn_k the highest e code symbols Cn.ι,Cn_2, ... , Cn_ι_e are dropped, in order to provide an n" -tuple of code symbols associated with the actual (n",k') code.
It is noted that the present invention can be employed in connection with any type of linear block coding, but is preferably applied in the context of BCH encoders.
Now an example of a logic circuit for implementing the above- described methods will be described with reference to Fig. 1.
A logic circuit for generating the n-tuple of code symbols
C0,Cj , ... , Cn_! in an encoder is shown, comprising: a circuit input for receiving the information symbols
Iθ,Iι , ... , -\ in p-tuples and a circuit output for outputting the code symbols Cn_ι,Cn_2 / • • • , CQ.JJ. in p-tuples. q/p first to q/p-th storage elements, of which only three are shown and referred to as 10^ 102, 103, for each storing a p-tuple of intermediate coefficients (h) are provided. In other words, p symbols are stored in parallel, q/p first to q/p-th matrix multiplication units, of which only three are shown and referred to as 11-^ 112, 113, for each conducting a multiplication of a received p-tuple by a (pxp) matrix Oγ ^ are provided. Furthermore, (q/p-1) first to (q/p-1) -th p- tuple adders are provided, of which only two are shown and referred to as 161 and 162. The lines connecting the elements are all understood to be p symbols wide, i.e. p symbols are carried in parallel.
An output of the first matrix multiplication unit llx is connected to an input of the first storage element 10!, an output of said first storage element llx is connected to the first p-tuple adder 161 , an output of each of the second to q/p-th matrix multiplication units 112, 113 is connected to an input of one of the first to (q/p-1) -th p-tuple adders lβι r 162, and an output of each of said first to (q/p-1) -th p-tuple adders 1617 162 is connected to an input of one of the second to q/p-th storage elements 102, 103.
A further p-tuple adder 13 is connected to the output of the q/p-th storage element (103) and the circuit input. A further matrix multiplication unit 12 for conducting a multiplication of a received p-tuple by the (pxp) matrix F^xp is provided, the input of the further matrix multiplication unit 12 being connected to the output of the further p-tuple adder 13. A switch 15 is provided for selectively connecting the output of the further matrix multiplication unit 12 with each input of the first to q/p-th matrix multiplication units llx, 112, 113, controlled to be open on the last (n-k) /p shifts of operation. A switch 14 is provided for selectively connecting said circuit output with said circuit input or with the output of said further p-tuple adder 13, controlled to be connected to the input for the first k/p shifts and to the output of the adder 13 on the last (n-k) /p shifts . The general embodiment of Fig. 1 relates to arbitrary values of p. Consequently, the matrix multiplication units must be appropriately arranged, which is well known to the skilled person. As an example, Fig. 2 shows the case for a logic circuit in which p is equal to 2. As a consequence, the matrix multiplication units perform (2 x 2) multiplications, and the storage units are arranged to store 2 intermediate coefficients in parallel. The details are expressed in terms of scalar elements, i.e. elements that only carry one symbol. In other words, in this example, the shown matrix
multiplication units all comprise scalar
Figure imgf000013_0001
multipliers referred to by the factor g with which they multiply. Each storage unit j ' is shown as consisting of two scalar storage elements, each for storing a corresponding intermediate factor h., .
Although the present invention has been described in the context of specific embodiments, these are only for the purpose of illustration and are not intended to be limiting, the scope of protection being determined by the appended claims. Reference numerals in the claims are not to be seen as limiting, but only intend to make the claims easier to read.

Claims

Claims
A method for generating an n-tuple of code symbols ( C0,Cl , . . . , Cn_x ) in an encoder, n being a natural number, on the basis of a k-tuple of information symbols do,Iι / • • • / Ik-i ) / k being a natural number smaller than n, and an (n-k) -tuple of coefficients (go, ι /••■/ gn-k-1 ) °f a generator polynomial (g (x) ) , comprising:
- setting the higher k code symbols (Cn_ι,Cn_2/ 'n-k equal to the k-tuple of information symbols dk-l'1^' ... In) /
- recursively calculating (n-k) /p p-tuples of intermediate coefficients (hj) in k/p consecutive steps
(i1), p being a factor of (n-k) and k, and p>l, such that the following relationship is fulfilled:
h 1}(i')
Figure imgf000014_0001
»(FW •fe.1 1)(z *-!)+/ ipxl)(i ,)))+hJ (p_)(i'-l)
where q = n- ,
Figure imgf000014_0002
represents a ' -th p-tuple of intermediate coefficients after the i'-th step in (pxl) vector form,
Figure imgf000015_0001
represents a p-tuple of information symbols associated with the i'-th step in (pxl) vector form,
gj'p+p-1 gj'p+p-2 gj'p+2 gj'p+1 SJ'P gj'p+p-2 gj'p+p-3 gj'p+1 gj'p gj'p-1
(pxp) ) gj'p+2 gj'p+1 gj'p-p+5 gj'p-p+4 gj'p-p+3 gj'p+1 gj'p gj'p-p+4 gj'p-p+3 gj'p-p+2
Sj'P gj'p-1 gj'p-p+3 gj'p-p+2 gj'p-p+1 is a (pxp) matrix representation comprising coefficients g of the generator polynomial, associated with the j ' -th p-tuple of intermediate coefficients,
Figure imgf000015_0002
is a (pxp) matrix representation comprising coefficients g of the generator polynomial , where p-a-l
Fa,ι = ∑Sq-p+a+b -F P-b,ι for a=l , 2 , ... , p-1 b=0
Fa,c =Fa+l,c-l for a=l,2,...,p and c=2,3,...,p
F P,X=0 V >l
FP,1 =1 and
- setting the lower (n-k) code symbols
( Cn_k-i,Cn.k-25 • • • / Co) equal to the (n-k) intermediate coefficients ( hj ) provided after k/p steps.
2. The method of claim 1, wherein the (n-k) coefficients (gO'Sl, / • • • / gn-k-1 ) of aid generator polynomial (g (x) ) are associated with a (n,k) code.
3. The method of claim 1, wherein said generator polynomial is a first generator polynomial, and the (n-k) coefficients (go> ι /•••/ gn-k-1 ) °f said first generator polynomial (g(x)) are derived from (n'-k) coefficients of a second generator polynomial associated with a (n',k) code, where n=n'+d and d is a positive integer such that p is a factor of n and k, where the higher
(n'-k) coefficients ( gd>gd+l • • • / gn-k-1 ) °f said first generator polynomial are identical to the coefficients of said second polynomial, and the lower d coefficients ( O'Sl / • • • / §d-l ) °f said first generator polynomial are all equal to zero, and wherein of the lower (n-k) code symbols ( Cn_k_ι,Cn_ -2> • • • / CQ) equal to the (n-k) intermediate coefficients (hi) provided after k/p steps, the lowest most d code symbols ( C<} , ... , Co ) are dropped, in order to provide an n' -tuple of code symbols associated with said (n',k) code.
4. The method of claim 1, wherein
- said k-tuple of information symbols ( IQ.II , ... , I -1 ) is derived from a k' -tuple of information symbols (IQ,II , ... , I'-i) where k=k'+e and e is a positive integer such that p is a factor of k, and the lower k' information symbols of said k-tuple of information symbols are identical to said k' -tuple of information symbols, and the higher e information symbols dk'>Ik+l ' ■ • • ' Ik-1 ) °f said k-tuple of information symbols are all equal to zero,
- said generator polynomial is a first generator polynomial, and the (n-k) coefficients
( O'Sl / • ■ ■ / gn-k-1 ) °f said first generator polynomial (g(x)) are derived from (n"-k') coefficients of a second generator polynomial associated with a (n",k') code, where n"=n-2e, where the higher
(n"-k') coefficients ( ge,ge+ι , ... , gn-k-l ) °f said first generator polynomial are identical to the coefficients of said second polynomial, and the lower e coefficients
( gO'Sl ' ■ • • / Se-1 ) °f said first generator polynomial are all equal to zero, and
- wherein of the lower (n-k) code symbols
( Cn_k-i5Cn_ _2> • • • / CQ) equal to the (n-k) intermediate coefficients (hj) provided after k/p steps, the lowest most e code symbols ( Ce_ι , ... , CQ ) are dropped, and wherein of the higher k code symbols ( Cn_ι,Cn_2 / • - . , Cn_k ) the highest e code symbols ( Cn_ι,Cn_2, ■ .. , Cn_ι_e ) are dropped, in order to provide an n" -tuple of code symbols associated with said (n",k') code.
5. The method of one of claims 1 to 4, wherein said symbols and coefficients are elements of GF(2) .
6. The method of one of claims 1 to 5, wherein said encoder is a BCH encoder.
7. A logic circuit for generating an n-tuple of code symbols ( C0,Cj , ... , Cn_ι ) in an encoder according to a method of one of claims 1 to 6, comprising:
- a circuit input for receiving said information symbols
(I0,Il , ... , I _ι) in p-tuples, - a circuit output for outputting said code symbols (Cn_ι,Cn_2 , .. - , Cn_ ) in p-tuples,
- q/p first to q/p-th storage elements (1017 102, 103) for each storing a p-tuple of intermediate coefficients (h), - q/p first to q/p-th matrix multiplication units (ll^., 112, 113) for each conducting a multiplication of a received p-tuple by a (pxp) matrix D(jpxp-' ,
- (q/p-1) first to (q/p-1) -th p-tuple adders (16^ 162) ,
- where an output of the first matrix multiplication unit (llx) is connected to an input of the first storage element (lO , an output of said first storage element (llx) is connected to the first p-tuple adder (16. , an output of each of the second to q/p-th matrix multiplication units (112, 113) is connected to an input of one of the first to (q/p-1) -th p-tuple adders ( lβ1 , 162) , and an output of each of said first to (q/p-1) -th p-tuple adders (16x, 162) is connected to an input of one of the second to q/p-th storage elements (102, 103) ,
- a further p-tuple adder (13) connected to the output of the q/p-th storage element (103) and the circuit input ,
- a further matrix multiplication unit (12) for conducting a multiplication of a received p-tuple by the
(pxp) matrix F^xp , the input of said further matrix multiplication unit (12) being connected to the output of said further p-tuple adder (13) ,
- a first switch (15) for selectively connecting the output of said further matrix multiplication unit (12) with each input of the first to q/p-th matrix multiplication units (llx, 112, 113) , and
- a second switch (14) for selectively connecting said circuit output with said circuit input or with the output of said further p-tuple adder (13) .
PCT/EP2003/005638 2003-05-28 2003-05-28 Parallel encoding of cyclic codes WO2004107587A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/EP2003/005638 WO2004107587A1 (en) 2003-05-28 2003-05-28 Parallel encoding of cyclic codes
AU2003245898A AU2003245898A1 (en) 2003-05-28 2003-05-28 Parallel encoding of cyclic codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2003/005638 WO2004107587A1 (en) 2003-05-28 2003-05-28 Parallel encoding of cyclic codes

Publications (1)

Publication Number Publication Date
WO2004107587A1 true WO2004107587A1 (en) 2004-12-09

Family

ID=33483759

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2003/005638 WO2004107587A1 (en) 2003-05-28 2003-05-28 Parallel encoding of cyclic codes

Country Status (2)

Country Link
AU (1) AU2003245898A1 (en)
WO (1) WO2004107587A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539918B2 (en) * 2002-01-28 2009-05-26 Broadcom Corporation System and method for generating cyclic codes for error control in digital communications
CN102820892A (en) * 2012-06-20 2012-12-12 记忆科技(深圳)有限公司 Circuit for parallel BCH (broadcast channel) coding, encoder and method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3703705A (en) * 1970-12-31 1972-11-21 Ibm Multi-channel shift register

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3703705A (en) * 1970-12-31 1972-11-21 Ibm Multi-channel shift register

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MATSUSHIMA T K ET AL: "PARALLEL ENCODER AND DECODER ARCHITECTURE FOR CYCLIC CODES", IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES, INSTITUTE OF ELECTRONICS INFORMATION AND COMM. ENG. TOKYO, JP, vol. 79, no. 9, September 1996 (1996-09-01), pages 1313 - 1323, XP000679621, ISSN: 0916-8508 *
TONG-BI PEI ET AL: "HIGH-SPEED PARALLEL CRC CIRCUITS IN VLSI", IEEE TRANSACTIONS ON COMMUNICATIONS, IEEE INC. NEW YORK, US, vol. 40, no. 4, 1 April 1992 (1992-04-01), pages 653 - 657, XP000297743, ISSN: 0090-6778 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539918B2 (en) * 2002-01-28 2009-05-26 Broadcom Corporation System and method for generating cyclic codes for error control in digital communications
CN102820892A (en) * 2012-06-20 2012-12-12 记忆科技(深圳)有限公司 Circuit for parallel BCH (broadcast channel) coding, encoder and method
WO2013189274A1 (en) * 2012-06-20 2013-12-27 记忆科技(深圳)有限公司 Circuit, encoder and method for parallel bch coding
US9614550B2 (en) 2012-06-20 2017-04-04 Ramaxel Technology (Shenzhen) Limited Parallel BCH coding circuit, encoder and method

Also Published As

Publication number Publication date
AU2003245898A1 (en) 2005-01-21

Similar Documents

Publication Publication Date Title
JP4643957B2 (en) Method for calculating the CRC of a message
US6928602B2 (en) Encoding method and encoder
US7827471B2 (en) Determining message residue using a set of polynomials
JP5300170B2 (en) Reed-Solomon decoder circuit with forward Chien search method
US7502989B2 (en) Even-load software Reed-Solomon decoder
JP3238128B2 (en) Reed-Solomon encoding apparatus and method
KR20020047134A (en) Method and apparatus for coding and decoding data
JP2008521144A (en) Compressed Galois Area Calculation System
US7162679B2 (en) Methods and apparatus for coding and decoding data using Reed-Solomon codes
GB2388683A (en) Cyclic Redundancy Checks
US7366969B2 (en) System and method for implementing a Reed Solomon multiplication section from exclusive-OR logic
EP1064728A1 (en) Technique for finding a starting state for a convolutional feedback encoder
KR20040085545A (en) Apparatus for decoding error correction doe in communication system and method thereof
US6263471B1 (en) Method and apparatus for decoding an error correction code
US6415413B1 (en) Configurable Reed-Solomon controller and method
WO2004107587A1 (en) Parallel encoding of cyclic codes
KR100336234B1 (en) Data error correction apparatus
US7281196B2 (en) Single error Reed-Solomon decoder
JPH06230991A (en) Method and apparatus for computation of inverse number of arbitrary element in finite field
US6412090B1 (en) Galois field computation system and method
EP1159787A1 (en) A high speed pre-computing circuit and method for finding the error-locator polynomial roots in a reed-solomon decoder
JPS6355815B2 (en)
WO2004059851A1 (en) An encoder for high rate parallel encoding
JP2591611B2 (en) Encoding / decoding circuit for t-error correction code
US7287207B2 (en) Method and apparatus for computing parity characters for a codeword of a cyclic code

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP