Abstract:
A method and apparatus for transmitting information while correcting bursts of errors is described. The technique uses a calculation of coefficients of code words by obtaining polynomials from the factorization over a field of elements. On transmitting, a product of a plurality of polynomials is obtained and this product is divided by another polynomial to obtain coefficients. On reception, a reciprocal of the polynomial is used and coefficients are also calculated. By summing the most significant coefficients of the polynomials, corrected bits of the message are obtained.

Description:
BACKGROUND OF THE INVENTION 
     This invention relates to a method of transmission, with the possibility of correcting error bursts, of information messages with k bits by means of code words with n bits forming s blocks of size d i , where i varies from 1 to s, s being the number of polynomials P i  (X) resulting from the factorization of X n  +1 over the field GF(2) with two elements and d i  the degree of the polynomial P i  (X). 
     The invention also relates to an encoding device and a decoding device for applying this method. 
     In transmission of information or data, there is often an increasing need for processes at least enabling transmission errors to be detected and , in most cases, attempts are made to correct these errors. 
     As regards the correction of one or several errors in the transmission, there are a great number of correction methods and a description of many types of code is given in the literature. However, attempts are being increasingly made to detect and also to correct bursts of errors, in order to improve the reliability of information transmission systems. Amongst the families of codes enabling satisfactory performances to be obtained, one of the most effective is that of the Bose-Chaudhuri-Hocquenghem (BCH) codes and, in particular, amongst these, the Reed-Solomon codes are amongst the most powerful and much research and application work has been carried out on them. The code words obtained can be considered as combinations of the elements of a Galois field GF(2 m ) and in order to process them, it is necessary to use specialized circuits consisting of complex arrangements of logic gates. In general, these circuits have an irregular diagram lay-out and call for a considerable number of special connections. Consequently, they are difficult to build in integrated circuit form. In addition, if it is intended to perform the necessary operations of multiplication of polynomials by means of read-only memories, these operations quickly become highly complicated and impracticable in integrated form as soon as the very lowest orders are exceeded. 
     Furthermore, correction of bursts of errors, even for BCH codes, requires a fairly considerable number of redundant bits. 
     SUMMARY OF THE INVENTION 
     One of the objects of the present invention is hence an improved transmission method correcting these disadvantages, thanks to the definition of a family of special and more efficient codes which is, in particular, no more costly in terms of redundant bits than are the Reed-Solomon codes. 
     A further object of the invention is a transmission method resulting in encoding and decoding devices with entirely repetitive structures that can hence readily be integrated. 
     Before giving a more precise definition of the invention, certain conventions of expression to be used in stating the characteristics of the invention and throughout the description which follows will be indicated. We shall write: 
     
         A(X).tbd.B(X)[C(X)] 
    
     to express that the polynomials A(X) and B(X) are congruent modulo C(X), namely: 
     
         A(X)=C(X)+B(X). 
    
     Likewise, we shall write M(X) for the reciprocal polynomial of the polynomial M(X), in other words: 
     
         M(X)=X.sup.k-1 M(X.sup.-1) 
    
     where k-1 is the maximum degree of polynomial M(X), i.e. its degree when the most significant cofficient of M(X) is non-nil. 
     The derivative of the polynomial ##EQU1## will be termed the polynomial ##EQU2## 
     Lastly, the signs + and ε used relate to the binary addition or modulo 2 addition. In particular, the sign ⊕ will be used for this addition when this corresponds to a hardware circuit carrying out this operation and fulfilling the exclusive OR function. 
     In accordance with one characteristic of the invention, it is provided a method of transmission, with the possibility of correcting bursts of errors, of information messages with k bits by means of code words with n bits forming s blocks of size d i , where i varies from 1 to s, s being the number of polynomials P i  (X) resulting from the factorization of X n  +1 over the field GF(2) with two elements and d i  the degree of the polynomial P i  (X), said method being characterized in that, during transmission: 
     for each block consisting of the coefficients of a polynomial m i  (X), one calculates the product of the polynomial M(X), reciprocal of the polynomial M(X) of degree k-1 associated to the message to be transmitted, by the polynomial A i  (X), reciprocal of the polynomial P i  &#39;(X) which is the derivative of the polynomial P i  (X); 
     said product is divided by the polynomial P i  (X), taking as coefficients of the polynomial m i  (X) the coefficients of the remainder of this division, in accordance with the relation m i (X).tbd.m(X)A i  (X)[P i  (X)], these coefficients forming the bits of the corresponding block transmitted; 
     and in that, on reception: 
     for each block received, a polynomial S i  (X) with n coefficients is calculated, which is the product of the polynomial m i  &#39;(X), reciprocal of the polynomial m i  &#39;(X) associated to the block received, multiplied by a reconstitution polynomial ##EQU3##  the sum of the said polynomials S i  (X) representing the superimposition of the transmitted message M(X) and an error syndrome; 
     by means of the first n-k coefficients of the sum of the polynomials S i  (X), the coefficients of the polynomial σ(X) are determined, the latter polynomial being the product of the polynomials P i  (X) corresponding to the erroneous blocks i; 
     one calculates the k most significant coefficients of a correction polynomial ##EQU4##  such that: ##EQU5## σ m  representing the coefficients of the polynomial σ(X) of maximum degree t x  authorized for a valid correction, and 
     one performs the sum of each of said k most significant coefficients of the polynomial K(X) with the coefficients of the same significance of the sum of the polynomials S i  (X) in order to derive the k corrected bits of the received message. 
     With such a method and thanks to adequate design characteristics of the encoding and decoding circuits, one can arrive at identical structures for encoding and calculating the polynomials S i  (X), together with a fully repetitive and simple structure for the error detection and correction circuits. This offers the major advantage of considerably facilitating execution in integrated form. 
     Furthermore, decoding circuits are obtained allowing pipeline operation, hence used in the best possible way. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The invention will be better understood and other characteristics and advantages will be brought out by means of the following description and appended drawings, in which: 
     FIG. 1 represents a functional diagram of the encoding circuits and the circuits for calculating the sum of the message and of the syndrome on reception, in an embodiment according to the invention; 
     FIG. 2 is a diagram of the error detection and correction circuits in accordance with the invention; 
     FIGS. 3 and 4 represent diagrams of cells used in the circuits of FIG. 2; 
     FIG. 5 is a diagram of a cell modified for processing erasures; 
     FIG. 6 is a diagram for error detection and correction circuits in accordance with FIG. 2, adapted for processing also erasures; 
     FIG. 7 represents the diagram of error detection and correction circuits in accordance with the invention, operating according to a modified algorithm, and 
     FIG. 8 is the diagram of a cell used in the circuits of FIG. 7. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The choice of the sub-family of codes made in the transmission method in accordance with the invention is based on the breakdown into s factors P i  (X) of the polynomial X n  +1,where n is odd, in the two-element Galois field GF(2) and also based on the following properties of this breakdown. 
     If the polynomial, derivative of polynomial P i  (X), is designated by P i  &#39;(X), with i varying from 1 to s, it can be shown that: ##EQU6## for which the development in series form equals X n  +X 2n  + . . . . 
     Accordingly, if we consider a series of s filters of transfer function ##EQU7## to which are applied in succession the coefficients of an information polynomial and if the outputs from these s filters be summed, we normally arrive at the n bits applied to the input with a delay of n clock pulses and a period n. 
     From these properties, a transmission process has hence been conceived, in which the encoding consists in associating to an information polynomial M(X) the remainders m i  (X) of dividing XP i  &#39;(X) M(X) by P i  (X). 
     In fact, for reasons we shall see later related to the structures of the circuits to be applied, a slightly modified version of this encoding principle is used. 
     More precisely, given an information message with k bits, the associated polynomial of which is expressed as: 
     
         M(X)=m.sub.0 +m.sub.1 X+m.sub.2 X.sup.2 + . . . +m.sub.k-1 X.sup.k-1 
    
     Considering the factorization of X n  +1 into polynomials P i  (X) of degree d i  in the two-element field GF(2) 
     
         P.sub.i (X)=p.sub.0.sup.i +p.sub.1.sup.i X+ . . . +p.sub.d.sbsb.i.sup.i X.sup.d.sbsp.i 
    
     To encode message M(X) in accordance with the invention, the message will be placed in the form of a code word with n bits consisting of s blocks m i  (X) of size d i , with i varying from 1 to s, s being the number of factorization polynomials P i  (X). Polynomials m i  (X) are obtained in accordance with the expression: 
     
         m.sub.i (X).tbd.M(X)A.sub.i (X) [P.sub.i (X)]              (1) 
    
     In expression (1), the polynomial A i  (X) is the reciprocal of the polynomial P i  &#39;(X), which is the derivative of polynomial P i  (X): 
     
         A.sub.i (X)=X .sup.d.sbsp.i.sup.-1 P.sub.i &#39;(X.sup.-1) 
    
     The coefficients of the s blocks m i  (X) are hence transmitted, first of all undergoing on reception a decoding operation consisting in calculating a polynomial which is the sum of the information message transmitted X n-k  M(X) and of an error syndrome. The latter is nil when there is no error in the transmission and the first n-k coefficients of the obtained polynomial are nil, the last k coefficients representing the reconstituted message. If, on the other hand, errors did occur during transmission, the syndrome is non-nil and from the first n-k coefficients the k correction coefficients to be added to the k most significant coefficients of the polynomial obtained are calculated, in order to return to the message bits. 
     More precisely, for each block received m i  &#39;(X)[m i  &#39;(X)=m i  (X) if there is no error], the polynomial S i  (X) is calculated such that: 
     
         S.sub.i (X)=m.sub.i &#39;(X)R.sub.i (X)degree n-1 
    
     with the following, depending on the convention of inscription adopted: 
     
         m.sub.i &#39;=X.sup.d.sbsp.i.sup.-1 m.sub.i &#39;(X.sup.-1) 
    
     and this is summed in order to obtain the polynomial: ##EQU8## where R i  (X) is a reconstitution polynomial equal to ##EQU9## 
     It can be considered that for each transmitted block m i  (X), the following is received: 
     
         m.sub.i &#39;(X)=m.sub.i (X)+E.sub.i (X) 
    
     where E i  (S) is the corresponding error polynomial, which is nil when there is no transmission error. 
     It can be proven that the following expression is obtained: ##EQU10## where the second sum ε is relevant only to the index i blocks containing errors and where the polynomial F i  (X) is related to the error polynomial E i  (X) by: 
     
         F.sub.i (X)=X.sup.d.sbsp.i.sup.-1 E.sub.i (X.sup.-1) 
    
     In expression (3), the first term represents the useful information, whilst the second characterizes the errors introduced during transmission. The denominator of the second term ##EQU11## has a true degree t v  lying between 0 and n depending on the erroneous blocks. The first n-k=u coefficients of the useful term are nil and this brings us to make use of the algebraic decoding algorithm of Berlekamp to derive the second term from the first u coefficients of expression (3). This decoding yields a decoded polynomial σ d  (X) of degree t d . It is shown that, provided: ##EQU12## we have σ d  (X)=σ v  (X)=σ(X) and t v  =t d  =t and one can then correctly identify the denominator. In what follows, it is assumed that this condition has been met. 
     It is then possible to reconstitute the coefficients of the powers u to n-1 of the second term of expression (3) for adding them modulo 2 to the corresponding coefficients of S(X) in order to reconstitute the corrected useful bits m 0  to m k-1 . 
     This reconstitution takes place as follows. 
     Given: ##EQU13## where K(X) is termed the correction polynomial and: ##EQU14## with degree H(X)≦t x  -1, t x  being the maximum degree authorized of polynomial σ(X), we have the following expressions: 
     
         σ(X)K(X)=H(X)(X.sup.n +1) 
    
     
         σ(X)S(X).tbd.H(X)[X.sup.u ] 
    
     It can hence be concluded that the coefficients of the product σ(X) S(X) are nil for the terms of degree u, u+1, . . . , n-1, enabling the polynomial K(X) to be fully determined, the first u coefficients of which are defined by: 
     
         K(X).tbd.S(X)[X.sup.u ] 
    
     and the k most significant coefficients of which are given by the following expressions: ##EQU15## where t is the effective degree of the polynomial σ(X) and where σ m  is the coefficient of rank m of polynomial σ(X). 
     It can be noted that if the above hypothesis 2t≦u is true, we have the following for p=n, n+1, . . . , n+u-1: 
     
         k.sub.p =s.sub.p-n 
    
     where k p  is the coefficient calculated in accordance with expression (4) and s p-n  represents the coefficients of polynomial S(X). This is a possible solution for checking that the decoding operation has taken place correctly. 
     The principles of the transmission method in accordance with the invention having thus been explained, FIG. 1 represents a possible embodiment of the encoding device and the part of a decoding device calculating the polynomial S(X), such devices employing the above process. 
     As an example, to represent circuits of reasonable dimension, a value of 21 has been selected for n, which must be an odd number, although this value is not an optimum value and values such as 51 or 63, for instance, are preferable owing to the homogeneity of the factorization. 
     For n=21, breaking down into irreducible factors, we obtain: 
     
         P.sub.1 (X)=1+X 
    
     
         P.sub.2 (X)=1+X+X.sup.2 
    
     
         P.sub.3 (X)=1+X+X.sup.3 
    
     
         P.sub.4 (X)=1+X.sup.2 +X.sup.3 
    
     
         P.sub.5 (X)=1+X+X.sup.2 +X.sup.4 +X.sup.6 
    
     
         P.sub.6 (X)=1+X.sup.2 +X.sup.4 +X.sup.5 +X.sup.6 
    
     The encoding device (FIG. 1) comprises computing circuits CR1 to CR6 formed by linear feedback registers, the principle of which is well known and is, for instance, described in the second edition of the work entitled &#34;Error-correcting codes&#34; by W. W. Peterson and E. J. Weldon, Jr., 1972, MIT Press, chapter 7. These registers comprise stages 101, 102-103, . . . , 116 to 121, which are connected in series within each block, either directly or via modulo-2 adders, 130 to 141, which are exclusive OR gates. 
     In each block, the output from the final stage is looped back to the input of various stages via exclusive OR gates in accordance with a linear combination permitting the division of the polynomial, the coefficients of which are applied in decreasing order to the input of the register, by the polynomial, the coefficients of value 1 of which are associated to the effective feedback links. 
     Accordingly, in computing circuit CR6, the feedback links to the inputs of stages 116, 117, 118 and 120, and the output of stage 121 make it possible to divide by the polynomial P 6  (X) which is the reciprocal of the polynomial P 6  (X). Likewise, computing circuits CR1 to CR5 respectively carry out the division by P 1  (X), P 2  (X), P 3  (X), P 4  (X) and P 5  (X). 
     In addition, we know that in such registers, premultiplication can be carried out by applying the input coefficients to various points of the registers. Circuits CR1 to CR6 are designed to ensure premultiplication by polynomials A 1  (X) to A 6  (X) which are the reciprocals of the derived polynomials P 1  &#39;(X) to P 6  &#39;(X). In this way, the polynomial P 3  &#39;(X) equals 1+X 2  and its reciprocal is X 2  +1. The input coefficients applied to input E1 are hence supplied to exclusive OR gate 132, which is the input of the first stage 104, to multiply by 1, and to exclusive OR gate 133, which is the input of the third stage 106, for multiplication by X 2 . Likewise, the polynomial P 6  &#39;(X) of maximum degree 5 equals X 4  and its reciprocal is X. Input E1 is hence linked to exclusive OR gate 139, which is the input of the second stage 117, for multiplication by X. 
     Lastly, the coefficients of the information message M(X) are applied in succession, in synchronism with a clock pulse controlling the encoding device as a whole, at input E1 in increasing order, i.e. m 0 , then m 1  . . . lastly m k . By complying with this order, it is in fact polynomial M(X) that is applied to input E1. In the end, each computing circuit CRi hence carries out operations of multiplication by A i  (X) and of division by P i  (X) of polynomial M(X). As soon as the final coefficient m k  has been applied, we know that, in the stages of each register, coefficients of the remainder of the division of M(X)A i  (X) by polynomial P i  (X) are available. These coefficients are hence the coefficients of blocks m i  (X) in accordance with expression (1). It is these coefficients which are transferred immediately with the following clock pulse into an output shift register 101&#39; to 121&#39;. This shift register then sends these coefficients of the various blocks m 6  (X) to m 1  (X) to a transmitter assembly 100 in decreasing order m 5   6  , m 4   6 , . . . , m 0   6 , m 5   5 , . . . , m 0   1 . 
     The assembly 100 can transmit by radio or by any other type of link. 
     The transmitted signal is received by a receiver assembly 200 which extracts the coefficients of the blocks of the n-bit code word and sends them to an input shift register 201&#39; to 221&#39;, with an output Sc, receiving coefficient m 5   6  &#39; first. When the n coefficients of the code word have been entered into the input register, they are transferred in parallel into the register stages 201 to 221 forming with exclusive OR gates 230 to 238 computing circuits CR1&#39; to CR6&#39;, respectively similar to circuits CR1 to CR6 of the encoding device, the linear feedback links in particular being identical. The outputs from these computing circuits are the outputs from their final stage. In these computing circuits, advantages are taken of the property that, when a linear feedback register is relooped in accordance with polynomial P i  (X) and a bit 1 is introduced at the input of this register, the successive coefficients of the polynomial R i  (X) defined above are recovered at the output. By introducing into the register the coefficients of polynomial m i  &#39;(X), we hence obtain in succession at the output the coefficients of the polynomial S i  (X)=m i  &#39;(X)R i  (X) in increasing order. Thanks to the transmission process and the type of code selected, the same registers with the same loops are used in the encoding device and the decoding device, which is of advantage in building circuits in integrated form. 
     The outputs of the various circuits Cr1&#39; to CR6&#39; are added by binary adders 240 to 243 to provide the successive coefficients of polynomial S(X) in increasing order, at output SR. 
     FIG. 2 represents a diagram of an embodiment of the associated error detection and correction circuits of the decoding device in accordance with the invention. 
     In the example selected with n=21, we have taken k, the number of information bits or useful bits, as 9, and u, the number of redundancy or test bits, as 12 in consequence. 
     The circuits of FIG. 2 first enable the polynomial σ(X) to be computed in accordance with an algebraic decoding algorithm of Berlekamp-Massey, modified with respect to initialization in order to obtain perfectly repetitive circuit structures. 
     The Berlekamp-Massey algorithm has, for example, been described in an article of J. L. Massey: &#34;Shift-register synthesis and BCH decoding&#34; which appeared in the IEEE Transactions on Information Theory, vol. IT-15, no. 1, January 1969, pages 122 to 127. This algorithm is intended to define the shortest linear feedback register of length L, enabling a finite sequence of N bits s j  to be provided with feedback coefficients c i  (i varying from 1 to L), such that: ##EQU16## 
     Now, computation of the polynomial σ(X) from the first u coefficients s i  of the polynomial S(X) is of the same type. Consequently, the computing algorithm used is as follows. Given: 
     
         F=N-2L 
    
     where N is the rank of the coefficient of S(X) under processing, L having the above mentioned meaning. It is evident that for N&lt;2L, we have F&lt;0 and, for N≧2L, we have F≧0. This being so, substituting σ&#39; for B and σ for C in the known algorithm, we obtain the following algorithm: (1) Initialization: ##EQU17## 
     (2) If N≧u, go to (6). If not, calculate: ##EQU18## where t x  =u/2 and 
     k N  =s N  for 0≦N&lt;u and 
     k N  =0 for N&lt;0 
     (3) If d N  =0 or F&lt;0, then: ##EQU19## 
     (4) If d N  =1 and F≧0, then: ##EQU20## 
     (5) Replace N by N+1 and return to (2). 
     (6) If N=n, stop. If not, calculate: ##EQU21## 
     (7) Replace N by N+1 and return to (6). 
     Steps (1) to (5) correspond to calculation of the polynomial ##EQU22## during provision of the first u coefficients of the polynomial S(X). Steps (6) and (7) then correspond to the error correction phase during provision of the last k coefficients of the polynomial S(X), during which period the coefficients of polynomial σ(X) previously computed must be retained in memory. 
     The diagram in FIG. 2 represents the circuits enabling this algorithm to be implemented and the error corrections to be made. These circuits comprise six identical cells, 261 to 266, which will be said of type T2, connected in series in order to calculate the coefficients of the polynomial σ(X). Each cell T2 comprises two data inputs c, d,  two data outputs e, f, and two control inputs g and h. The data outputs e, f are connected respectively to the inputs c, d of the following cell. The inputs c, d of the first cell respectively receive logic levels 0 and 1. Outputs f of cells 72 are sent respectively to AND gates 280 to 285, the other inputs of which are connected to the outputs of stages 271 to 276 of a shift register K. The products at the output from the AND gates are added by means of exclusive OR gates 286 to 289. The output from exclusive OR gate 289 is connected to an exclusive OR gate 290, also used as a binary adder and receiving, in addition, the coefficients of polynomial S(X) provided at output SR. The output from this gate 290 forms output S 0  of the decoding device. 
     In addition, a controlled counter consisting of five identical cells, 250 to 254, which will be said of type T1, controls the binary computing unit of FIG. 2. Each cell T1 comprises an input p and an output q for serialization, a status output t, a blocking input s and a control input r. In addition to the counter, these control means comprise an inverter 294 connecting the status output t of the last stage of the counter to an input of a NAND gate 295, the output of which is connected to the control inputs r of the cells T1 and to the control inputs h of the cells T2. Input p of the first cell T1 is connected to logic level 0. 
     Lastly, control facilities comprising switches 291 to 293 are provided. Switch 291 connects the blocking inputs s of the cells T1 either to logic level 1 or logic level 0. Switch 292 connects the input of register K either to output SR providing the coefficients of polynomial S(X), or to the output of exclusive OR gate 289. Switch 293 connects the other input of NAND gate 295 and the control inputs g of the cells T2, either to the output of adder 290 or to a logic level 0. 
     Before describing the operation of these circuits, we propose first of all to describe the composition of cells T1 and T2 is greater detail by referring to FIGS. 4 and 3. FIG. 3 shows cell T2 together with its inputs and outputs c to h. This cell comprises a stage 305 of a first shift register σ&#39; and a corresponding stage 308 of a second shift register σ. These stages are interconnected by logic circuits consisting of three NAND gates 301, 302 and 304, together with an inverter 303, forming a switch connecting the input of stage 305 to either of inputs c and d and controlled by control input h, and an AND gate 306, the inputs of which are connected respectively to the output of stage 305 and to control input g and the output of which is connected to the input of stage 308 via an exclusive OR gate 307, the other input of which is connected to the output from this stage 308. Outputs e and f of cell T2 consist of the outputs of stages 305 and 308 respectively. It is clear that, depending on whether input h is at logic level 1 or 0, the input of stage 305 is connected to data input c or data input d. 
     In addition, the output of stage 305 is connected to exclusive OR gate 307 which acts as an adder, or not, depending on whether input g receives logic level 1 or 0. 
     FIG. 4 shows cell T1 with its inputs and outputs p to t. This cell essentially comprises a stage 313 of register F of a binary counter counting in two&#39;s complement, i.e. the final stage contains the sign bit 0 for F≧0 and 1 for F&lt;0. Each cell comprises a NAND gate 310, the inputs of which are connected to inputs p and r of the cell, an AND gate 311, the inputs of which are connected to the output of NAND gate 310 and to the blocking input s, an exclusive OR gate 312, the inputs of which are connected to the output of AND gate 311 and to the output of stage 313 and the output of which is connected to the input of this stage, and a NAND gate 314, the inputs of which are connected to the output of stage 313 and to the output of AND gate 311, and for which the output forms output q of the cell. The status output t of the cell consists of the output of stage 313. Clearly, when the blocking input s is at level 0, AND gate 311 only transmits a 0 level and stage 313 thus maintains its status with each clock pulse controlling this stage. If input s is at logic level 1, depending on whether control input r is at logic level 1 or 0, stage 313 adopts the status of input p (normal counting F+1→F) or the contents of stage 313 is inverted [-(F+1)→F], each stage 313 having one &#34;Clear&#34; input reset for initialization. 
     Following these details concerning cells T1 and T2, we can now indicate the operation of the circuits in FIG. 2. During the time the first u coefficients are provided by output SR, i.e. during the first u clock pulses, switches 291 to 293 are in position a. Cells T1 of the counter are released. 
     Outputs f of cells T2 provide the coefficients present in the second register σ and register K receives in succession the coefficients s N  of polynomial S(X). The AND gates 280 to 285 calculate the products and the exclusive OR gates 286 to 289 carry out the summing operations in order to obtain, at exclusive OR gate 289, ##EQU23## and, at the output from adder 290, since the wiring permanently sets σ 0  at 1, the value ##EQU24## The maximum value of t is t x  =u/2=6 if the number of errors is not greater than the number which can be tolerated for correction and there are hence size stages in register K and six cells T2. In addition, the number e of counter stages, since we are operating in two&#39;s complement, must be such that 2 e  ≧2u. A value of five was hence chosen for e. 
     The value of d N  is sent by switch 293 first to inputs g of cells T2 and, second, to the input of NAND gate 295. If d N  =0 or if F&lt;0, i.e. the sign bit of the final stage 254 of the counter is 1, gate 295 puts out a level 1. If d N  =1 and F≧0, gate 295 puts out a level 0. Accordingly, all the circuits of FIG. 2 then operate in accordance with steps (1) and (5) of the algorithm indicated above. The value d N  is also sent to output S 0  but is ignored. After the first u clock pulses, the sign bit in the counter must be 0 (positive number) if the number of errors to be corrected is not greater than the number which can be tolerated. This test is obtained at output S 1  of stage 254. 
     After provision of the first u coefficients, the phase of correction of the useful bits takes place. To do so, switches 291 to 293 are switched to position b. This blocks the countrol counter F by means of switch 291. Switch 293 applies a logic level 0 to inputs g of cells T2, enabling the coefficients of the polynomial σ(X) obtained to be stored in memory in the second register σ throughout the duration of this second phase. Lastly, switch 292 enables the output of exclusive OR gate 298 to be looped back to the input of the third register K. The product and sum circuits 280 to 289 then enable the most significant coefficients k i  of the correction polynomial K(X) to be obtained in succession, in accordance with expression (4). These coefficients are added to the coefficients of corresponding weight of polynomial S(X) by binary adder 290, thus giving the corrected useful bits at output S 0 . 
     An advantage of the decoding device in accordance with the invention is that input register 201&#39; to 221&#39; can be loaded (FIG. 1) with the blocks of the following code word, whilst the code word just received is being processed. We therefore have pipeline operation making for efficient use of each clock period throughout the decoding device without any loss of time. 
     In what precedes, only the case where the blocks received contained errors has been considered. However, one can also consider the case of erasures, i.e. that where certain blocks are not received through temporary &#34;fading&#34; of the transmission channel, or through a failure, or again as a result of a temporary rise in the noise level, or any other cause resulting in the disappearance of a certain number of blocks. These disappearances are detected at the reception assembly by any adequate known means (measurement of noise on the channel, additional parity bit indicating poor reception, etc . . . ). 
     To allow for these erasures, the simplest solution is instead of initializing registers σ at 1, to initialize it with the polynomial: ##EQU25## which is the product of the polynomials P i  (X) corresponding to the blocks erased. To perform such a product, for each polynomial P i  (X) we must carry out an operation σ(X)←σ(X) P i  (X), i.e. d i  +1 operations of the shift type, and then add the initial σ(X). To do so, one can use the circuits enabling the algebraic decoding algorithm already described to be implemented. These circuits in fact enable operations of the following type to be carried out: ##EQU26## 
     If a polynomial P i  (X) be considered, such that: 
     
         P.sub.i (X)=1+p.sub.1.sup.i X+p.sub.2.sup.i X+ . . . +p.sub.d.sbsb.i.sup.i.sub.-1 X.sup.d.sbsp.i.sup.-1 +X.sup.d.sbsp.i 
    
     since coefficient p 0   i  and p d .sbsb.i i  are always equalling 1, in order to make the multiplication σ(X) P i  (X), d i  -1 operations of the type I must be carried out, with the values of coefficients p 1   i  to p d .sbsb.i i   -1  adopted for the successive values of d and then the following operation: ##EQU27## The first line of operation III corresponds to multiplication with coefficient p d .sbsb.i i , which is always equal to 1, and the second line corresponds to initialization of register σ&#39; for the operation with the following polynomial p i+1  (X) which always has its coefficient p 0   i  equal to 1. 
     Accordingly, multiplication by polynomial p i  (X) takes d i  cycles, which is advantageous, since it equals the number d i  of bits actually considered. 
     All this assumes that at the beginning of processing, σ(X) is initialized to 1, which is already the case in the algorithm used in conjunction with the circuits of FIG. 2, and also that σ&#39;(X) is initialized at X, which can easily be brought about by initializing stage 305 of the first cell T2 at 1 (for example by the &#34;Preset&#34; input). 
     After α cycles, if α is the degree of the polynomial ##EQU28## in the second register we therefore have available polynomial σ eff  to start decoding in accordance with the algorithm already described. The first phase of this decoding will therefore have α cycles cut off, α equalling at the most u, which is the maximum tolerable for the erasures. The first register σ&#39; will be initialized at Xσ eff  for decoding, by the final type III operation, which ensures correct execution of the decoding already described. 
     Naturally, all this assumes that it is possible to provide coefficients of the polynomials P i  (X) erased and that the decoding circuits are capable of carrying out not only type I and II operations, which is the case of the circuits of FIG. 2, but also type III operations. 
     FIG. 5 represents the diagram of a cell T2&#39; which can replace cells T2 of FIG. 2 and is capable of carrying out all three operations I, II and III. This cell T2&#39; still comprises the data inputs c, d, the data outputs e, f, the control input g and elements 305 to 308. However, the switch feeding the input of stage 305 is replaced by a three-position switch comprising two AND gates 315 and 316, each with one input connected respectively to inputs c and d, and another input connected respectively to two control inputs h&#39; and h&#34; of the cell, and one exclusive OR gate 317 providing the modulo-2 sum of the outputs of AND gates 315 and 316 at the input of stage 305 of register σ. Depending on the values of the logic levels at inputs g, h&#39; and h&#34;, cell T2&#39; enables the following operations to be carried out: ##EQU29## 
     FIG. 6 is a diagram of the error detection and correction circuits and the erasure processing circuits in accordance with the invention. It again features the binary computing unit of FIG. 2 with the counter using cells T1, the cells T2&#39;, 341 to 352, replacing the cells T2, register K, 361 to 372, binary multiplying and summing circuits 381 to 390, adder 290, inverter 294 and NAND gate 295 and control switches 291 to 293. u cells T2&#39; are used and u stages of register K instead of u/2 in the case of FIG. 2. Additional control switches 296 to 299, together with an inverter 300, are first added. Switch 296 connects the blocking inputs s of cells T1 to a blocking 0 logic level or to switch 291. Switch 297 connects the inputs g of the cells T2&#39; and an input of NAND gate 295 either to storage circuits R1, R2 of the coefficients of polynomials P i  (X) corresponding to the blocks erased, or to switch 293. Switch 298 connects the control inputs h&#39; of the cells T2&#39; either to a logic level 1 or to the output of NAND gate 295. Switch 299 connects the control inputs h&#34; of the cells T2&#39; either to an input receiving a control signal Z or, via an inverter 300, to the output of NAND gate 295. Lastly, additional control circuits are provided comprising an AND gate Pe, a counter Cmp, a down-counter Decmp, a decoder Dec and a sequencer Sq, supplying the time signals H, Lo, RAZ and u. Counter Cmp has a counting input receiving the clock pulses H via AND gate Pe, the other input of which receives a control signal Ceff and a reset input receiving the signal RAZ. The outputs of the counter are connected to the loading inputs of down-counter Decmp, which possesses a down-counting input receiving the clock pulses H, a load control input &#34;Load&#34; receiving signal Lo, a terminal count output TC for down-counting providing a first control signal Y which changes value when the down-counter reaches zero status and an enable input En connected to output TC. The bit outputs from the down-counter are connected to the inputs of a decoder Dec, the output of which provides a second control signal Z adopting logic level 1 when the down-counter reaches certain values. 
     Overall operation will be described by assuming that, before the beginning of the reception of each code word, the input register 201&#39; to 221&#39; (FIG. 1) is loaded with the coefficients p 1   i  to P d .sbsb.i i  of each of the polynomials P i  (X) for instance by means of adequate hard-wiring of the &#34;Preset&#34; and &#34;Clear&#34; inputs of the input register. In this way, stage 201&#39; will contain the coefficient p 1   1 , . . . , and stages 216&#39; to 221&#39; will contain coefficients p 1   6  to p 6   6 . When the coefficients of the blocks m i  &#39;(X) from the assembly 200 start to be received, at the same time as they are entered into the input register, the latter restores at its output Sc the coefficients of the polynomial P i  (X) corresponding to the block received, in decreasing order. Furthermore, at the same time as reception assembly 200 must send to the input register a block m i  &#39;(X), it provides a signal Ceff indicating whether the block is erased. The input of shift register R1 (FIG. 6) is connected to output Sc. This shift right register, which has a size equal to u, is shifted in synchronism with the main clock pulse H when enabled to do so by applying signal Ceff to the enable input En. Accordingly, this register stores the coefficients of polynomials P i  (X) provided by output Sc only when signal Ceff informs it that an erased block is now being received. On completion of entry into memory in the input register of the s blocks m i  &#39;(X), sequencer Sq first provides a signal Lo, applied to input S/L of shift register R2 and which enables loading of the contents of register R1 into register R2 (as well as, moreover, the transfer from the input register to computing circuits CR1&#39; to CR6&#39;), then a reset signal RAZ in particular for resetting register R1, which is thus ready for reception of the following code word. Shift left register R2, which has a size capacity u, enables the coefficients of the polynomials P i  (X) corresponding to the erased blocks to be restored in succession, in increasing order. 
     As we shall see later, the sizes of the polynomials of the factorization of X n  +1 actually used can always be equalized and thus the control circuits have been described for this simplified case in which all the polynomials P i  (X) are of the same degree. 
     Counter Cmp counts the clock pulses H sent by gate Pe during each erased block under control of signal Ceff. On completion of reception of a code word, its contents equals the number of coefficients recorded in register R1. This contents is loaded into down-counter Decmp, the load control input of which receives signal Lo, after which counter Cmp is reset to zero by signal RAZ for reception of the following word. As the coefficients are restored by register R2, the down-counter counts down the clock pulses H until it reaches zero, corresponding to restoration of the last coefficient contained in register R2. Output TC of the downcounter then provides a signal Y which blocks the down-counter until a new value is loaded. While down-counter Decmp is counting down the pulses, its bit outputs are decoded by decoder Dec which provides a control pulse Z each time the contents of the down-counter equals a multiple of the degree of the polynomials P i  (X). 
     This being so, switches 296 to 299 are set to position a&#34; as long as signal Y indicating the end of down-counting is absent. This blocks counter F during the erasure processing period, enables the coefficients provided by register R2 to be substituted for the values d N  and applies a logic level 1 to the control inputs h&#39; of the cells T2&#39; and signal Z to the inputs h&#34;. As long as signal Z is at 0, the cells T2&#39; carry out type I operations and, with each last coefficient of a polynomial P i  (X) corresponding to a block erased, signal Z controls a type III operation by going to status 1. 
     As soon as signal Y indicating the end of the computation phase of polynomial σ eff  appears, it controls setting of switches 296 to 299 into position a&#34; and we now revert to operation similar to that of the decoding device in FIG. 2, with the control inputs h&#39; and h&#34; of the cells T2&#39; connected to the output of NAND gate 295 directly and via inverter 300, so that only operations of type I or type II are executed. 
     As it has already been stated, one can generally always come down to the case of polynomials P i  (X) of the same size by grouping certain lower degree polynomials to bring the degree of breakdown factors of X n  +1 to the maximum degree of the polynomials P i  (X). For instance, for n=63, the factorization gives nine polynomials (P 5  to P 13 ) of the 6th degree, two (P 3  and P 4 ) of the 3rd degree, one (P 2 ) of the 2nd degree and one (P 1 ) of the 1st degree. One can accordingly group together either product P 3  P 4  or product P 1  P 2  P 3  in order to obtain an additional 6th degree polynomial. At least one polynomial always remains which does not have the same degree as the others. The simplest solution consists in eliminating it by means of a coding ensuring that the corresponding block is invariably nil, thus preventing it from being sent. To do so, it suffices to add to message M(X) additional bits calculated so that the resultant message thus completed is a multiple of the polynomial P j  to be eliminated. To do so, a remainder calculation is made in accordance with the following relationship: ##EQU30## and this remainder is added after M(X). This calculation is made in a conventional way with a looped register, in order to carry out the division by P j  elim. 
     The embodiments described so far, based on a binary decoding algorithm very similar to the Beriekamp-Massey algorithm, require the calculation with each cycle of a quantity ##EQU31## and the results are awaited to continue the calculation. Now, this summing of products is carried out by means of adders connected together to form a &#34;tree&#34;, hence considerably reducing the processing speed since, because the result is used for the remainder of the calculations owing to a feedback link, pipeline type operation cannot be adopted. 
     In accordance with one characteristic of the invention, a new algorithm has hence been developed, derived from the previous one, and distinguished from it in particular by the fact that coefficients s N  of polynomial S(X) are distributed to all the cells. Adopting similar notations and four shift registers σ&#39;, σ, q&#39; and q, the following algorithm is used: 
     (where 1≦i≦u for determination of new values of σ and σ&#39; and 0≦i≦u-1 for determination of new values of q and q&#39;) 
     (1) Initialization ##EQU32## (2) If N≧u, go to (7). If not, calculate: 
     
         d.sub.N =s.sub.N ⊕q.sub.0.sup.(N) 
    
     (3) If d N  =0, then: ##EQU33## (4) If d N  =1 and F&lt;0, then: ##EQU34## (5) If d N  =1 and F≧0, then: ##EQU35## (6) Replace N by N+1 and return to (2) (7) If N=n, stop. If not: 
     
         k.sub.N =q.sub.0.sup.(N) ##EQU36## (8) Replace N by N+1 and return to (7). 
    
     Just as in the algorithm previously used, the first steps (1) to (6) correspond to calculation of the polynomial ##EQU37## during provision of the first u coefficients of the polynomial S(X). Steps (7) to (8) then correspond to the error correction phase during provision of the last k coefficients of polynomial S(X), during which period the coefficients of the polynomial σ(X) previously calculated must be held in memory. 
     The diagram of FIG. 7 represents the circuits for applying this new algorithm and making error and erasure corrections. These circuits comprise u=12 identical cells, 400.0 to 400.11, that will be said of type T3, in cascade configuration. One cell of this type, 400.i, is shown in FIG. 8. It comprises four stages, 420 to 423, respectively belonging to four registers, σ&#39;, π, q&#39; and q. The four stages do not have the same rank. Stages 422 and 423 have rank i and stages 420 and 421 rank i+1. i varies from 0 to u-1. Cell T3 comprises a first group of two data inputs c&#39;, d&#39; and two data outputs e&#39;, f&#39;, a second group of two data inputs m&#39;, n&#39; and two data outputs p&#39;, q&#39;, two control inputs h&#39;, h&#34; and two coefficient inputs j, k. The inputs of stages 420 and 422 are each connected to the output of a three-position switch of the same type as that used in cell T2&#39; of FIG. 5. The switch connected to stage 420 comprises two AND gates 424, 425 and one exclusive OR gate 426, providing stage 20 either with the data present at input c&#39;, or the data present at input d&#39;, or the modulo-2 sum of the data at the two inputs, depending on the logic levels present at control inputs h&#39; and h&#34;. The switch connected to stage 422 comprises two AND gates 427, 428 and one exclusive OR gate 429, and provides stage 422 either with the data present at the output of an exclusive OR gate 433, or the data present at output q&#39; of the cell, or the modulo-2 sum of the data at both inputs of the switch, depending on the logic levels present at control inputs h&#39; and h&#34;. The output of exclusive OR gate 433 is also connected to output p&#39; of the cell, whereas its inputs are connected to the output of stage 422 and to the output of an AND gate 432, the inputs of which are connected respectively to inputs c&#39; and j of the cell. The output of stage 423 is connected to the output q&#39;  via an exclusive OR gate 435, the other input of which is connected to an AND gate 434. This AND gate has its inputs connected respectively to inputs d&#39; and j of the cell. The input of stage 421 receives the output of an exclusive OR gate 431, the inputs of which are connected respectively to the output of stage 421 and to the output of an AND gate 430, the inputs of which are connected to input k and to output e&#39; of the cell, this output e&#39; itself being connected to the output of stage 420. Input n&#39; of the cell is connected to the input of stage 423 via an exclusive OR gate 437, the other input of which receives the output of an AND gate 436. This AND gate has its inputs connected to inputs m&#39; and k of the cell. Lastly, output f&#39; of the cell consists of the output of stage 421. 
     Returning to FIG. 7, it can be seen that the cells T3 are connected together so that the outputs e&#39;, f&#39; of the first group of a cell are connected to inputs c&#39;, d&#39; of the first group of the following cell, whilst outputs p&#39;, q&#39; of the second group of this following cell are connected to inputs m&#39;, n&#39; of the second group of the cell concerned. 
     In addition, input c&#39; of the first cell T3, 400.0, is at logic level 0, input d&#39; of this cell is linked by a control switch 405 either to level 1 during supply of the first u coefficient of S(X), or to level 0 during the remainder of the time, whereas output q&#39; of this initial cell is linked to the input of a binary adder 406 (exclusive OR gate), the output of which forms the output S 0  of the decoding device and the other input of which receives the coefficients s N  of the polynomial S(X) provided by output SR (FIG. 1). In addition, two distribution lines 401 and 402, connected respectively to all the inputs j and all the inputs k of the cells T3 are provided. During the first phase of calculation of σ(X), i.e. during provision of the first u coefficients of S(X), line 401 receives the coefficients s N  via a switch 404 and line 402 receives the calculated coefficients d N  of output q&#39; of the first cell via switch 403. Outputs e&#39;, f&#39;  of the last cell T3, 400.11, are looped back to inputs m&#39;, n&#39; of this cell via AND gates 408, 409, the other inputs of which are connected to the distribution line 401. 
     In addition, the circuits of FIG. 7, just like those of FIG. 2, comprise counter F consisting of cells T1, 250 to 254, the blocking inputs s of which are connected to switch 291 and the status output t of the final stage 254 of which is connected via inverter 294 to NAND gate 295, the other input of this gate being connected to distribution line 402. The output of gate 295 is always connected to the control inputs r of the cells T1 and also directly connected to the inputs h&#39; of the cells T3 and via inverter 410 to the inputs h&#34; of these cells T3. During provision of the first u coefficients of the polynomial S(X), switches 291 and 403 to 405 are in the position a and the circuits operate in accordance with steps (1) to (6) of the new algorithm described. During provision of the following k most significant coefficients, switches 291 and 403 to 405 adopt the position b. Counter F is blocked, the second distribution line 402 receives a logic level 0 and the first distribution line 401 receives the coefficients d N  instead of coefficients s N , whereas output S 0  provides the corrected useful bits of the message M(X), all in accordance with steps (7) and (8) of the new algorithm. 
     It is evident that, just as for the circuits of FIG. 2, those of FIG. 7 can be adapted to processing of erasures by adding additional control circuits identical to those of FIG. 6, all the more readily, when the cells T3 are already equipped with three-position switches. Just as in the case of FIG. 6, σ(X) must be initialized at 1 and σ&#39;(X) must be initialized at X. 
     One of the obvious advantages of the new algorithm is that it replaces the problem of the transit time in the multiplication and sum arborescent binary circuits with u inputs by a distribution problem to u cells of coefficients d N  and s N , which is recognized as a problem that is distinctly simpler to solve, thus making for very considerable increase to the processing speed, even with very long code words. 
     While the invention has been described in connection with what is presently considered to be the most practical and preferred embodiments, it is to be understood that the invention is not to be limited to the disclosed embodiments but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims, which scope is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures.