EP0034036A2 - Encoders and decoders for cyclic block codes - Google Patents

Encoders and decoders for cyclic block codes Download PDF

Info

Publication number
EP0034036A2
EP0034036A2 EP81300439A EP81300439A EP0034036A2 EP 0034036 A2 EP0034036 A2 EP 0034036A2 EP 81300439 A EP81300439 A EP 81300439A EP 81300439 A EP81300439 A EP 81300439A EP 0034036 A2 EP0034036 A2 EP 0034036A2
Authority
EP
European Patent Office
Prior art keywords
register
word
encoder
bits
bit
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
EP81300439A
Other languages
German (de)
French (fr)
Other versions
EP0034036A3 (en
Inventor
Syed Vickar Ahamed
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
Western Electric Co Inc
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 Western Electric Co Inc filed Critical Western Electric Co Inc
Publication of EP0034036A2 publication Critical patent/EP0034036A2/en
Publication of EP0034036A3 publication Critical patent/EP0034036A3/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/033Theoretical methods to calculate these checking codes
    • 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

  • This invention relates generally to encoders and decoders for cyclic block codes of the Bose-Chaudhuri-Hocquenghem (BCH) type and particularly to an encoder for generating a cyclically encoded n-bit channel word from an incoming k-bit data word, the encoder comprising serial shift and divide means for generating p parity bits and shift register means for storing bits p+1 through k of said data word and to a decoder for error correcting a received word representative of a channel word generated by such an encoder.
  • BCH Bose-Chaudhuri-Hocquenghem
  • the encoder topology presented in the paper is for the special case wherein the number of parity bits is sufficiently large compared to the number of data bits. To efficiently utilize channel capacity, it is desirable that the number of parity bits be small relative to the number of data bits. Neither the paper referred to above nor other known prior art teaches or suggests a serial encoding arrangement for efficient channel utilization.
  • an encoder as aforesaid is characterised in that the shift register means is partitioned into a parallel arrangement of shift registers of predetermined lengths for storing the bits p+1 through k of the data word in accordance with the predetermined lengths.
  • a decoder as aforesaid comprising means for serially shifting and dividing the received word to generate iteratively shifted versions of the syndrome of said received word, means, alternating with said means for serially shifting and dividing, for comparing the characteristic polynomial of the code with said iteratively shifted versions of said syndrome, and means for correcting, in response to a predetermined output from said means for comparing, the received word in accordance with the number of iterations performed in generating said iteratively shifted versions of said syndrome.
  • an encoder comprises generator word and data word shift registers, input and buffer shift registers; an exclusive OR circuit; and gating and clocking means. Shift-in to the registers occurs at the data word rate and a submultiple thereof; shift-out occurs at the code word rate.
  • one of the buffer registers is partitioned into segments. These segmented registers have lengths that satisfy the data synchronism requirement as well as the shift register requirement that each of the storage means be shifting in or shifting out during predefined intervals within an encoding cycle.
  • a decoder comprises two substantially identical sections, each having two modes of operation.
  • the first mode an incoming block of data is processed via serial division to obtain the syndrome. While one section is operating in the first mode, the other section operates in the second mode and processes the syndrome of the last received block to obtain shifted versions of the syndrome. Before evaluating each successively shifted version, a comparison with the fixed pattern of the characteristic is effected to determine if an error has occurred.
  • the first mode operates at the data word rate and submultiples thereof whereas the second mode operates at the code word rate and submultiples thereof.
  • Each decoder section comprises: generator word, characteristic word and syndrome shift registers as well as received word buffer registers; two exclusive OR circuits; and gating and clocking means. The sections alternate modes of operation so that two contiguous received blocks are being processed during any particular interval.
  • One major advantage is the ability of the system to utilize efficient block codes when the number of parity bits is small.
  • Another advantage is that the number of exclusive OR gates is considerably reduced, especially for code generator words that are densely distributed.
  • Yet another advantage is that the synchronization between (i) the bits in the data and code words at the encoder, and (ii) the bits in the received word and the corrected data word at the decoder, is easily achieved.
  • One feature is the ability to change the generator word from block-to-block to increase secrecy of transmission.
  • the k-bit block is called the data word
  • the n-bit block the channel word
  • the p-bit block the parity check word.
  • word does not imply a fixed bit length. The length is variable depending on the context used; thus, for example, a data word has k bits whereas a channel word has n bits.
  • g(X) For each cyclic code there exists a polynomial g(X) which divides every channel word. This polynomial is called the generator of the code; it is of length (p+1) bits.
  • the polynomial g(X) is both irreducible and primitive in the field over which it is defined.
  • an augmented data polynomial, designated e(X) is formed from each d(X) by appending p zeros.
  • c(X) d(X) and e(X) are represented by the bit strings 1010 and 1010000, respectively; division of e(X) by g(X) yields 011 as a remainder, as anticipated.
  • an encoder receives information d(X) in contiguous blocks from a data source and generate the channel word c(X) in blocks.
  • Two subfunctions are:
  • the decoder recovers the original information (bits) of d(X).
  • the received channel word is designated r(X).
  • the decoder To detect and correct an error, the decoder first divides r(X) by g(X). The remainder, of length p bits, is called the syndrome, designated s(X). This syndrome is compared to the characteristic polynomial of the code, designated r(X), which is obtained as the remainder upon division of X n-1 by g( X ). If the syndrome matches r(X), an error has occurred in the first bit position, that is, the one corresponding to X n-1 .
  • the syndrome is shifted, that is, multiplied by X to yield XS(X).
  • This shifted version is divided by g(X) and the remainder is compared to r(X).
  • a match indicates an error in the position corresponding to X n-2 .
  • No match causes another iteration of shift and divide. The shift, divide and match iterations proceed until a match is found, or in the case of no error, until a new received word r(X) is ready for processing.
  • FIG. 1 representing an encoder 10/for the (7,4) Hamming code.
  • This topology represents a modified version of one set forth in the above-mentioned paper.
  • register position 101 stores the highest order bit (0)
  • register position 102 stores the next highest order bit (1)
  • register position 103 stores the remaining bit (1).
  • Shift register 200 serves two purposes: (i) initially, register positions 201 through 204 receive and store the data word represented by d(X), with the highest order bit residing in position 201; and (ii) as the division process proceeds, register positions 201 through 204 store partial remainders, with the remainder after k (4) circulations representing the parity check word p(X).
  • Switch S4 is designed to respond to the contents of register 201, closing only if the contents of register 201 are a logic one.
  • the contents of shift registers 100 and 200, once initialized with g l (X) and d(X), respectively, are circulated in synchronism and compared in exclusive OR circuit 150.
  • Register 100 is circulated clockwise whereas register 200 circulates counterclockwise.
  • the circulation time is chosen so that computation of the parity check bits and transmission of the results to output buffer 300 are completed before the arrival of the first bit from the next data word.
  • the operation of encoder 10, after emptying its contents from the last full cycle, is as follows:
  • the first 3 bits (101) are shifted into register 200 and output buffer 300.
  • Shift register 200 is shifted once more so that the highest order data bit enters position 201 and the 4 th hit of data (0) enters position 204 and output bufter 300 simultaneously.
  • Shift registers 100 and 200 are completely circulated once.
  • Shift register 200 is shifted once so that the bit in position 202 shifts to position 201 and a "0" bit enters position 204.
  • Steps 3 and 4 are repeated 3 more times, each time using the contents of register position 201 to determine the setting of switch S4.
  • the division is now complete.
  • the parity check bits are emptied into buffer 300. The process is repeated for the next data word by returning to step 1.
  • FIG. 2 A prior art serial encoder 11 for a generalized (n,k) block code with p>0.414k is depicted in FIG. 2; this encoder embodies division circuitry similar to that of FIG. 1.
  • incoming bits of data arrive uniformly on lead 2011 every nt seconds and coded information is transmitted every kt seconds on lead 2012.
  • Code information is partitioned and stored in shift registers 2400, 2500 and 2600. These registers are emptied every kt seconds through corresponding switches S6, S7 and S8, respectively; only one of these switches is closed at any given instant of time.
  • Shift register 2400 (Rl) is of length p and stores the parity check bits.
  • Shift register 2500 (R2) is also of length p and stores the first p bits of the present data word, designated d'(X) or d' (the i th bit is di).
  • Shift register 2600 (R3) is of length (k-p) and stores the bits of d' (X) starting with the (p+1) bit and ending with the bit in position k.
  • Shift register 2300 (RI) is an interim store of length p and it collects the first p bits of each data word.
  • register 2300 In operation, when register 2300 is full, its contents are moved, via switch S2 in position 1, to shift register 2200 (SR) and shift register 2500 within the nt interval preceding the arrival of the (p+1) data bit.
  • the shift is synchronized with movement of the parity check bits of the last data word to register 2400 via switch 3 in position 2.
  • shift-in bits propagate between register positions every nt seconds in register 2300 and every nt/p seconds in registers 2200 and 2500
  • shift-out bits propagate between register positions every nt/p seconds in register 2300.
  • the binary division process is synchronized with the arrival of bits (p+l) through k of data word d'(X). These (k-p) bits are stored in register 2600 via switch Sl and, as each bit arrives every nt seconds, it is entered into register position 2207. Moreover, during the division process, the data stored in register 2500, after a delay of (2n-k)kt seconds, is emptied, followed by a shifting-out of the contents of register 2600. The p parity bits residing in register 2200 are shifted to register 2400 during the nt interval preceding the last shift-out operation of register 2600. Also, shift register 2300 is accumulating the p bits of the next data word d' ' (X) during this same nt interval.
  • the above cycle can be repeated indefinitely provided registers 2400, 2500 and 2600 can be emptied at the appropriate times.
  • Line (i) depicts the arrival intervals of data word d'(X) and d' ' (X) .
  • Line (ii) indicates the interval that bits are shifted from register 2300 to registers 2200 and 2500.
  • Line (iii) shows the interval for which the binary division process is activated.
  • Line (iv) indicates when the parity bits are shifted.
  • line (v) indicates the shifting-out order of segmented code information from shift registers 2400, 2500 and 2600.
  • FIG. 2 and 3 A close examination of FIG. 2 and 3 reveals that the arrangement of registers 2400, 2500 and 2600 is inadequate when p becomes a sufficiently small fraction of k; in particular, whenever p ⁇ ( ⁇ 2-1)k, the prior art encoder of FIG. 2 does not function. This situation arises because the p bits from register 2500 have all shifted out before the (p+l) bit propagates along register 2600 to register position 2601. Because register 2600 is still shifting in, it does not contain the proper bit pattern to begin its shift-out operation. Since most practical codes, in order to efficiently utilize channel capacity, require a small p, the condition of p ⁇ ( ⁇ 2-1)k is generally a system design constraint.
  • FIG. 4 An illustrative embodiment of an encoder/in accordance with the present invention that circumvents the deficiency of the prior art is shown in FIG. 4.
  • the register that stores bits (p+l) through k (register 2600 in FIG. 2) has been partitioned into segment registers 4600, 4700 and 4800.
  • This new configuration satisfies the data synchronism requirement as well as the shift register stipulation that each of these stores be shifting in or shifting out during a predefined period within an encoding cycle.
  • the first arrangement sets all segment lengths to p except the last, the length of which is the difference between (k-p) bits and the bits allocated to the previous segments of length p.
  • a second way is to arrange the segment lengths in proportion to a geometric progression.
  • Registers 4600, 4700 and 4800 are segmented to partition the 7 (k-p) bits required to be stored during the interval (p+l)(nt) through k (nt) in the following fashion: with the first arrangement, register 4600 is of length 4, register 4700 is of length 3 and register 4800 is not required; with the geometrical arrangement, register 4600 is of length 4, register 4700 is of length 2 and the last arriving bit is stored in register 4800.
  • the first arrangement requires four segment registers of length 5 and one of length 1; the geometrical arrangement requires registers of length 1, 2, 4, 8 and 6, the last register accounting for bits unallocated to the geometric progression.
  • register segments 4600, 4700 and 4800 have been described with reference to FIG. 2. (Indicia of FIG. 2 have been incremented by 2000 when referred to in FIG. 4.) Regarding the operation of registers 4600, 4700 and 4800, shift-in occurs during the interval (p+l)(nt) through k(nt), and shift-out occurs during the interval (p+l)(kt) through k(kt).
  • register 4600 shifts in from (p+l)(nt) through m(nt)
  • register 4700 is activated from (m+l)(nt) through l(nt), and so forth, until register 4800 shifts in from (1+1) (nt) through k(nt).
  • the values, m, 1, ..., are determined according to the equal distribution or geometric progression techniques.
  • Switches S9 and S10 serve to synchronize the propagation of bits to channel 4012.
  • Shift register 5100 (g ' (X)), of length p, and register 5200, together with exclusive OR circuit 5030 and switches SA1 and SB1, comprise the basic serial divide circuitry.
  • the serial divide circuitry circulates once every kt seconds, corresponding to a register position-to-register position propagate time of kt/p seconds.
  • Shift register 5400 (r " (X)) stores the first k bits of r' ' (X) arriving on lead 5011 during the same interval the syndrome of r' ' (X) is being computed.
  • Shift register 5300, of length p stores the characteristic polynomial r(X).
  • register 5300 When the decoder section associated with register 5300 operates in the shift and divide mode, the contents of register 5300 are compared bit-by-bit with the contents of register 5200 via exclusive OR circuit 5031.
  • a circulation in the comparison mode occupies one nt period, corresponding to a register position-to-position propagate time of nt/p seconds.
  • Operating in synchronism with the comparison circulation is the shifting-out operation of register 5400. If all p bits contained in register 5200 after the 1 th shift and divide operation match all p bits of r(X), then the l th bit in r'(X) is complemented for error correction in exclusive OR gate 5022. The correction is accomplished with the aid of inverter 5020 and toggle circuit 5021.
  • Each bit of the comparison is inverted by circuit 5020 and toggle 5021 provides a logic one output only if all p bits received in the nt interval corresponding to the 1 th data bit are logic one.
  • Switch SC Data synchronization is achieved by switches SC, SD, SE and SF. These switches alternate between positions 1 and 2 for consecutive received words.
  • the corrected data word appears on lead 5012, which is the output of exclusive OR gate 5022.
  • Line (i) indicates that the received words r' (X) and r" (X) arrive in blocks of n with kt seconds between each bit.
  • Line (ii) shows that for the first p(kt) interval, received word bits r' i are loaded into register 6200.
  • k steps of division are initiated and occur for the next k(kt) seconds.
  • r" is being received and processed to determine its syndrome in register 5200 (line (iv)), comparison of the shifted and divided syndrome of r' is occurring.
  • Line (iii) indicates that only the first k bits of r' are stored in register 6400, and this occurs at the input rate of kt seconds. Register 6400 is deactivated for the interval (n-k)kt through nkt seconds. Then register 6400 shifts out at the rate of one bit per nt seconds. Lines (iv) and (v) demonstrate that the same timing with respect to the complementary decoder section alternates with that depicted in lines (ii) and (iii). Line (vi) shows the settings of switches SC, SD, SE and 5F to achieve proper synchronization. Finally, line (vii) indicates when the serial divide switches SA1,SB1 and SA2,SB2, associated with the first and second decoder sections, respectively, are activated.

Landscapes

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

Abstract

An encoder (12) is disclosed for generating a cyclically encoded n-bit channel word from an incoming k-bit data word, the encoder comprising generator word and data word shift registers (4100 and 4200), input and buffer shift registers (4300 and 4400 to 4800) and gating and clocking means. For the encoder to function properly when the number of parity bits is small, one of the buffer registers is partitioned into segments (4600, 4700, 4800) which have predetermined lengths (FIG. 4). A complementary decoder (20) is also described.

Description

  • This invention relates generally to encoders and decoders for cyclic block codes of the Bose-Chaudhuri-Hocquenghem (BCH) type and particularly to an encoder for generating a cyclically encoded n-bit channel word from an incoming k-bit data word, the encoder comprising serial shift and divide means for generating p parity bits and shift register means for storing bits p+1 through k of said data word and to a decoder for error correcting a received word representative of a channel word generated by such an encoder.
  • Most of the prior art relating to BCH-type encoders and decoders concentrate on binary division techniques for generating the parity check bits at the encoder, and the syndrome, as well as shifted versions thereof, at the decoder. Largely ignored in the prior art are the necessary logical functions needed to maintain synchronism between bits of the code word generated at the encoder and the corresponding synchronizing functions required at the decoder to process the sequentially received data blocks.
  • Prior to 1972, binary division was typically accomplished by distributing a series of exclusive OR gates along a shift register cascade. With this arrangement, division at the encoder utilizes an augmented version of the input data as the dividend and the code generator word as the divisor. During each step of the divison, the leading bit of the partial remainder is fed back to the numerous exclusive OR gates embedded within the shift register string. This conventional arrangement requires a significant number of exclusive OR circuits, particularly for code generator words that are densely distributed.
  • With the advent of high-speed magnetic bubble devices, it became inefficient to use a large number of exclusive OR gates and unduly complicated logic. Instead, a single exclusive OR gate was utilized in a serial encoding arrangement that was first described in a paper entitled "The Design and Embodiment of Magnetic Domain Encoders for Single-Error Correcting Decoders for Cyclic Block Codes," published in the February, 1972 issue of the Bell System Technical Journal and which represents the most pertinent prior art reference. The paper presents an encoder topology utilizing a single exclusive OR gate; however, the topology is specifically arranged for use with magnetic domain technology. The topology is dictated by a constraint imposed by the technology which requires all bits of information to be propagated by one period in one clock cycle. Thus, although magnetic domain technology offers inexpensive storage, this technology requires significant time intervals for every operation (generation, propagation, sensing, annihilation, and so forth) in contrast to the essentially instantaneous operation of semiconductor circuitry. Moreover, the ability of semiconductor shift registers to shift in at one rate and shift out at another rate is not utilized with such a topology.
  • In addition, the encoder topology presented in the paper is for the special case wherein the number of parity bits is sufficiently large compared to the number of data bits. To efficiently utilize channel capacity, it is desirable that the number of parity bits be small relative to the number of data bits. Neither the paper referred to above nor other known prior art teaches or suggests a serial encoding arrangement for efficient channel utilization.
  • In accordance with the present invention an encoder as aforesaid is characterised in that the shift register means is partitioned into a parallel arrangement of shift registers of predetermined lengths for storing the bits p+1 through k of the data word in accordance with the predetermined lengths.
  • The aforesaid paper also discusses the binary division process utilized in a decoder. Besides elucidating a conventional decoder of the type wherein a series of exclusive OR gates is embodied in a shift register string, a specifically designed serial decoder adapted for use with the constraints of magnetic domain technology is presented. The aforementioned restrictions discussed with respect to magnetic domain encoders also apply with respect to decoders.
  • In accordance with the present invention there is provided a decoder as aforesaid comprising means for serially shifting and dividing the received word to generate iteratively shifted versions of the syndrome of said received word, means, alternating with said means for serially shifting and dividing, for comparing the characteristic polynomial of the code with said iteratively shifted versions of said syndrome, and means for correcting, in response to a predetermined output from said means for comparing, the received word in accordance with the number of iterations performed in generating said iteratively shifted versions of said syndrome.
  • In accordance with one embodiment of the invention, an encoder comprises generator word and data word shift registers, input and buffer shift registers; an exclusive OR circuit; and gating and clocking means. Shift-in to the registers occurs at the data word rate and a submultiple thereof; shift-out occurs at the code word rate. For the encoder to function properly whenever the number of parity bits is small, one of the buffer registers is partitioned into segments. These segmented registers have lengths that satisfy the data synchronism requirement as well as the shift register requirement that each of the storage means be shifting in or shifting out during predefined intervals within an encoding cycle.
  • In accordance with one embodiment of the invention a decoder comprises two substantially identical sections, each having two modes of operation. In the first mode, an incoming block of data is processed via serial division to obtain the syndrome. While one section is operating in the first mode, the other section operates in the second mode and processes the syndrome of the last received block to obtain shifted versions of the syndrome. Before evaluating each successively shifted version, a comparison with the fixed pattern of the characteristic is effected to determine if an error has occurred. The first mode operates at the data word rate and submultiples thereof whereas the second mode operates at the code word rate and submultiples thereof. Each decoder section comprises: generator word, characteristic word and syndrome shift registers as well as received word buffer registers; two exclusive OR circuits; and gating and clocking means. The sections alternate modes of operation so that two contiguous received blocks are being processed during any particular interval.
  • A number of distinct advantages and features accrue from a transmission system incorporating such encoders and decoders. One major advantage is the ability of the system to utilize efficient block codes when the number of parity bits is small. Another advantage is that the number of exclusive OR gates is considerably reduced, especially for code generator words that are densely distributed. Yet another advantage is that the synchronization between (i) the bits in the data and code words at the encoder, and (ii) the bits in the received word and the corrected data word at the decoder, is easily achieved. One feature is the ability to change the generator word from block-to-block to increase secrecy of transmission.
  • The foregoing and other features of the invention will now be described, reference being made to the accompanying drawings, in which:
    • FIG. 1 is a circuit diagram of a prior art serial division processor exemplifying the process for a (7,4) Hamming code;
    • FIG. 2 is a circuit diagram of a prior art serial encoder for a general (n,k) block code having P?0.414k;
    • FIG. 3 is a timing diagram indicating the various processing intervals for the encoder shown in FIG. 2;
    • FIG. 4 is a circuit diagram depicting an illustrative embodiment in accordance with the present invention of a serial encoder for a general (n,k) block code having p<0.414k;
    • FIG. 5 is a circuit diagram depicting an illustrative embodiment in accordance with the present invention of a serial decoder for a general (n,k) block code; and
    • FIG. 6 is a timing diagram indicating the various processing intervals for the decoder of FIG. 5.
    Detailed Description
  • For clarity of exposition, it is helpful to provide a function theoretic basis to facilitate presentation of the illustrative embodiments. A (7,4) Hamming code, representing one particular code from the set of possible BCH codes, exemplifies function theoretic concepts. Also as an aid to illustrate the foundational concepts, the special encoder described in the aforementioned paper is discussed. Descriptions of generalized illustrative embodiments of the present invention of an encoder, decoder and combination thereof follow the functional basis discussion.
  • 1. Function Theoretic Basis
  • The primary purpose of this overview is to establish the terminology accompanying cyclic block codes and to define the mathematical manipulations associated with such codes. A more complete development of these concepts is presented in the text Error-Correcting Codes by W. W. Peterson, John Wiley and Sons, 1961.
  • Block codes constitute a set of codes in which a binary block of k-information bits has a binary block of p=n-k parity bits appended to it, thereby constituting a (n,k) block code. The k-bit block is called the data word, the n-bit block the channel word and the p-bit block the parity check word. (It is worthwhile to note that the term "word" does not imply a fixed bit length. The length is variable depending on the context used; thus, for example, a data word has k bits whereas a channel word has n bits.)
  • It is convenient for manipulation purposes (as well as more esoteric mathematical purposes), to associate a polynomial with various code words. For instance, if a n-bit channel word has a bit stream given by 1010011, then the polynomial representation is
    Figure imgb0001
    corresponding to unity in the first, third, sixth and seventh binary positions.
  • For each cyclic code there exists a polynomial g(X) which divides every channel word. This polynomial is called the generator of the code; it is of length (p+1) bits. The polynomial g(X) is both irreducible and primitive in the field over which it is defined.
  • To understand how the division of code words by the generator polynomial proceeds, the c(X) above is divided by its generator g(X) = X 3+X+1 (1011):
    Figure imgb0002
    the remainder is three binary zeros, as postulated. In the division process, the "plus" symbol denotes the exclusive OR operation. With this convention defined, a short form polynomial division process may be accomplished using only bit manipulations; the above division has the form:
    Figure imgb0003
  • In general, the first k bits of c(X) represent the data polynomial, designated d(X), and the last p=n-k bits of c(X) represent the parity check polynomial, designated p(X). To obtain p(X) for each d(X), an augmented data polynomial, designated e(X), is formed from each d(X) by appending p zeros. For the above c(X), d(X) and e(X) are represented by the bit strings 1010 and 1010000, respectively; division of e(X) by g(X) yields 011 as a remainder, as anticipated.
  • Based on the above discussion, the general function of an encoder is to receive information d(X) in contiguous blocks from a data source and generate the channel word c(X) in blocks. Two subfunctions are:
    • (i) forming the augmented data word e(X) and dividing it by the generator function g(X); and (ii) appending the remainder, p(X), to d(X), thereby forming c(X).
  • As the channel word c(X) is transmitted through the system, errors may randomly occur and change the received bit pattern. For a single error correcting system, the decoder recovers the original information (bits) of d(X). The received channel word is designated r(X). To detect and correct an error, the decoder first divides r(X) by g(X). The remainder, of length p bits, is called the syndrome, designated s(X). This syndrome is compared to the characteristic polynomial of the code, designated r(X), which is obtained as the remainder upon division of Xn-1 by g(X). If the syndrome matches r(X), an error has occurred in the first bit position, that is, the one corresponding to Xn-1. If no match is achieved, the syndrome is shifted, that is, multiplied by X to yield XS(X). This shifted version is divided by g(X) and the remainder is compared to r(X). A match indicates an error in the position corresponding to Xn-2. No match causes another iteration of shift and divide. The shift, divide and match iterations proceed until a match is found, or in the case of no error, until a new received word r(X) is ready for processing.
  • To exemplify this discussion regarding decoder functions, the channel word c(X) above is assumed to be in error in the third binary position; thus, r(X) = X6+X+1 (1000011). The characteristic word r(X) for the generator word 1011 is found from:
    Figure imgb0004
    or Γ (X) = X2+1. Division of r(X) by g(X) yields:
    Figure imgb0005
    or s(X) = x2+X.
  • Since s(X) does not match Γ (X), the syndrome must be snifted and divided. A shorthand notation for this operation, as well as iterated versions thereof, is as follows:
    Figure imgb0006
    Since there is a match between the remainder of X2s(X) and r(X), the third bit position is corrected (inverted) and the first k bits, representing d(X), are extracted for postdetection processing by the decoder.
  • To demonstrate the divison process in terms of a circuit arrangement, the topology of FIG. 1, representing an encoder 10/for the (7,4) Hamming code, is considered. This topology represents a modified version of one set forth in the above-mentioned paper.
  • The p least significant bits of g(X) (1011), denoted g'(X) (011), are stored in circulating shift register 100. Both before and after a circulation, register position 101 stores the highest order bit (0), register position 102 stores the next highest order bit (1) and register position 103 stores the remaining bit (1). Shift register 200 serves two purposes: (i) initially, register positions 201 through 204 receive and store the data word represented by d(X), with the highest order bit residing in position 201; and (ii) as the division process proceeds, register positions 201 through 204 store partial remainders, with the remainder after k (4) circulations representing the parity check word p(X). Switch S4 is designed to respond to the contents of register 201, closing only if the contents of register 201 are a logic one. The contents of shift registers 100 and 200, once initialized with gl(X) and d(X), respectively, are circulated in synchronism and compared in exclusive OR circuit 150. Register 100 is circulated clockwise whereas register 200 circulates counterclockwise. The circulation time is chosen so that computation of the parity check bits and transmission of the results to output buffer 300 are completed before the arrival of the first bit from the next data word.
  • The operation of encoder 10, after emptying its contents from the last full cycle, is as follows:
    Figure imgb0007
    The first 3 bits (101) are shifted into register 200 and output buffer 300.
    Figure imgb0008
    Shift register 200 is shifted once more so that the highest order data bit enters position 201 and the 4th hit of data (0) enters position 204 and output bufter 300 simultaneously.
    Figure imgb0009
    Shift registers 100 and 200 are completely circulated once.
    Figure imgb0010
    Shift register 200 is shifted once so that the bit in position 202 shifts to position 201 and a "0" bit enters position 204. Steps 3 and 4 are repeated 3 more times, each time using the contents of register position 201 to determine the setting of switch S4. The division is now complete.
    Figure imgb0011
    The parity check bits are emptied into buffer 300. The process is repeated for the next data word by returning to step 1.
  • A prior art serial encoder 11 for a generalized (n,k) block code with p>0.414k is depicted in FIG. 2; this encoder embodies division circuitry similar to that of FIG. 1. In the circuit arrangement of FIG. 2, incoming bits of data arrive uniformly on lead 2011 every nt seconds and coded information is transmitted every kt seconds on lead 2012. Code information is partitioned and stored in shift registers 2400, 2500 and 2600. These registers are emptied every kt seconds through corresponding switches S6, S7 and S8, respectively; only one of these switches is closed at any given instant of time. Shift register 2400 (Rl) is of length p and stores the parity check bits. Shift register 2500 (R2) is also of length p and stores the first p bits of the present data word, designated d'(X) or d' (the ith bit is di). Shift register 2600 (R3) is of length (k-p) and stores the bits of d' (X) starting with the (p+1) bit and ending with the bit in position k. Shift register 2300 (RI) is an interim store of length p and it collects the first p bits of each data word.
  • In operation, when register 2300 is full, its contents are moved, via switch S2 in position 1, to shift register 2200 (SR) and shift register 2500 within the nt interval preceding the arrival of the (p+1) data bit. The shift is synchronized with movement of the parity check bits of the last data word to register 2400 via switch 3 in position 2. Thus, shift-in bits propagate between register positions every nt seconds in register 2300 and every nt/p seconds in registers 2200 and 2500, whereas shift-out bits propagate between register positions every nt/p seconds in register 2300.
  • The arrival of the (p+1) bit of d'(X) is synchronized with the movement of the first bit of d'(X) from register position 2202 to position 2201 via switch S5 in position 2, of the second bit from position 2203 to position 2202, and so forth, until the (p+1) bit is entered into register position 2207 via switch Sl in position 1. The circulation of register 2200 for division by the contents of register 2100 (g'(X)) occurs for the next k number of nt intervals; the circulate propagation interval between register positions in both register 2100 and 2200 is nt/p seconds. The operation of switches SA, S4 and S5 is essentially identical to the operation of switches S4, S3 and S5 in FIG. 1.
  • The binary division process is synchronized with the arrival of bits (p+l) through k of data word d'(X). These (k-p) bits are stored in register 2600 via switch Sl and, as each bit arrives every nt seconds, it is entered into register position 2207. Moreover, during the division process, the data stored in register 2500, after a delay of (2n-k)kt seconds, is emptied, followed by a shifting-out of the contents of register 2600. The p parity bits residing in register 2200 are shifted to register 2400 during the nt interval preceding the last shift-out operation of register 2600. Also, shift register 2300 is accumulating the p bits of the next data word d' ' (X) during this same nt interval.
  • The above cycle can be repeated indefinitely provided registers 2400, 2500 and 2600 can be emptied at the appropriate times.
  • The operation of encoder 11 of FIG. 2 is summarized in the timing diagram of FIG. 3. Line (i) depicts the arrival intervals of data word d'(X) and d' ' (X) . Line (ii) indicates the interval that bits are shifted from register 2300 to registers 2200 and 2500. Line (iii) shows the interval for which the binary division process is activated. Line (iv) indicates when the parity bits are shifted. Finally, line (v) indicates the shifting-out order of segmented code information from shift registers 2400, 2500 and 2600.
  • 2. Encoder Illustrative Embodiments
  • A close examination of FIG. 2 and 3 reveals that the arrangement of registers 2400, 2500 and 2600 is inadequate when p becomes a sufficiently small fraction of k; in particular, whenever p<(√2-1)k, the prior art encoder of FIG. 2 does not function. This situation arises because the p bits from register 2500 have all shifted out before the (p+l) bit propagates along register 2600 to register position 2601. Because register 2600 is still shifting in, it does not contain the proper bit pattern to begin its shift-out operation. Since most practical codes, in order to efficiently utilize channel capacity, require a small p, the condition of p<(√2-1)k is generally a system design constraint.
  • An illustrative embodiment of an encoder/in accordance with the present invention that circumvents the deficiency of the prior art is shown in FIG. 4. In this configuration, the register that stores bits (p+l) through k (register 2600 in FIG. 2) has been partitioned into segment registers 4600, 4700 and 4800. This new configuration satisfies the data synchronism requirement as well as the shift register stipulation that each of these stores be shifting in or shifting out during a predefined period within an encoding cycle.
  • In the embodiment of encoder 12, there are generally two ways to partition the segments. The first arrangement sets all segment lengths to p except the last, the length of which is the difference between (k-p) bits and the bits allocated to the previous segments of length p. A second way is to arrange the segment lengths in proportion to a geometric progression.
  • To exemplify these principles, a (15,11) block code is considered. With this code, p=4 so that p<(√2-1)k≡4.5. Registers 4600, 4700 and 4800 are segmented to partition the 7 (k-p) bits required to be stored during the interval (p+l)(nt) through k (nt) in the following fashion: with the first arrangement, register 4600 is of length 4, register 4700 is of length 3 and register 4800 is not required; with the geometrical arrangement, register 4600 is of length 4, register 4700 is of length 2 and the last arriving bit is stored in register 4800.
  • With a (31,26) code, the first arrangement requires four segment registers of length 5 and one of length 1; the geometrical arrangement requires registers of length 1, 2, 4, 8 and 6, the last register accounting for bits unallocated to the geometric progression.
  • The operation of all elements of FIG. 4, except register segments 4600, 4700 and 4800, has been described with reference to FIG. 2. (Indicia of FIG. 2 have been incremented by 2000 when referred to in FIG. 4.) Regarding the operation of registers 4600, 4700 and 4800, shift-in occurs during the interval (p+l)(nt) through k(nt), and shift-out occurs during the interval (p+l)(kt) through k(kt). Specifically, register 4600 shifts in from (p+l)(nt) through m(nt), register 4700 is activated from (m+l)(nt) through l(nt), and so forth, until register 4800 shifts in from (1+1) (nt) through k(nt). The values, m, 1, ..., are determined according to the equal distribution or geometric progression techniques. Switches S9 and S10 serve to synchronize the propagation of bits to channel 4012.
  • It is to be further understood that the encoder, and associated methodology, described herein is not limited to specific forms disclosed by way of example and illustration, but may assume other embodiments limited only by the scope of the appended claims.
  • 3. Decoder Illustrative Embodiment
  • The circuit diagram depicted in FIG. 5 is an illustrative embodiment of a decoder 20 implemented in accordance with the present invention. In general, decoding comprises three distinct steps: (i) the calculation of the syndrome s(X) of received word r(X); (ii) shift and divide procedure on the syndrome s(X), that is, multiplication of s(X) by X1, 1=0, 1, ..., k-1, followed by the division Xls(X)/g(X); and (iii) after each shift and divide, comparison of the partial remainder with the characteristic polynomial r(X)=Xn-1/g(X).
  • Decoder 20 in FIG. 5 has two syndrome shift registers 5200 (SR1) and 6200 (SR2), both of length p. While register 5200 is processing one received word, designated r" (X) or r" (bits are designated r"i, i=l, 2, ..., n) to determine its corresponding syndrome, register 6200 is shifting and dividing the syndrome of the previous received word r'(X).
  • Shift register 5100 (g'(X)), of length p, and register 5200, together with exclusive OR circuit 5030 and switches SA1 and SB1, comprise the basic serial divide circuitry. During syndrome computation, the serial divide circuitry circulates once every kt seconds, corresponding to a register position-to-register position propagate time of kt/p seconds. Shift register 5400 (r " (X)) stores the first k bits of r' ' (X) arriving on lead 5011 during the same interval the syndrome of r' ' (X) is being computed. Shift register 5300, of length p, stores the characteristic polynomial r(X). When the decoder section associated with register 5300 operates in the shift and divide mode, the contents of register 5300 are compared bit-by-bit with the contents of register 5200 via exclusive OR circuit 5031. A circulation in the comparison mode occupies one nt period, corresponding to a register position-to-position propagate time of nt/p seconds. Operating in synchronism with the comparison circulation is the shifting-out operation of register 5400. If all p bits contained in register 5200 after the 1th shift and divide operation match all p bits of r(X), then the lth bit in r'(X) is complemented for error correction in exclusive OR gate 5022. The correction is accomplished with the aid of inverter 5020 and toggle circuit 5021. Each bit of the comparison is inverted by circuit 5020 and toggle 5021 provides a logic one output only if all p bits received in the nt interval corresponding to the 1th data bit are logic one.
  • A structural and operational description similar to the one presented for the section corresponding to shift register 5200 applies for the other decoder section associated with register 6200. All indicia of the latter section are increased by 1000 over the indicia of the former section.
  • Data synchronization is achieved by switches SC, SD, SE and SF. These switches alternate between positions 1 and 2 for consecutive received words. The corrected data word appears on lead 5012, which is the output of exclusive OR gate 5022.
  • The timing diagram for decoder 20 of FIG. 5 is shown in FIG. 6. Line (i) indicates that the received words r' (X) and r" (X) arrive in blocks of n with kt seconds between each bit. Line (ii) shows that for the first p(kt) interval, received word bits r'i are loaded into register 6200. Upon arrival of the (p+l) bit, k steps of division are initiated and occur for the next k(kt) seconds. While r" is being received and processed to determine its syndrome in register 5200 (line (iv)), comparison of the shifted and divided syndrome of r' is occurring. Line (iii) indicates that only the first k bits of r' are stored in register 6400, and this occurs at the input rate of kt seconds. Register 6400 is deactivated for the interval (n-k)kt through nkt seconds. Then register 6400 shifts out at the rate of one bit per nt seconds. Lines (iv) and (v) demonstrate that the same timing with respect to the complementary decoder section alternates with that depicted in lines (ii) and (iii). Line (vi) shows the settings of switches SC, SD, SE and 5F to achieve proper synchronization. Finally, line (vii) indicates when the serial divide switches SA1,SB1 and SA2,SB2, associated with the first and second decoder sections, respectively, are activated.
  • It is to be further understood that the decoder, and associated methodology, described herein is not limited to specific forms disclosed by way of example and illustration, but may assume other embodiments limited only by the scope of the appended claims.

Claims (5)

1. An encoder (11,12) for generating a cyclically encoded n-bit channel word (c(X)) from an incoming k-bit data word (d(X)), said encoder (11,12) comprising serial shift and divide means (2100, 2150, 2200, SA, S3-S5) for generating p parity bits and shift register means (2600) for storing bits p+1 through k of said data word (d(X)), CHARACTERISED IN THAT the shift register means is partitioned into a parallel arrangement of register segments (4600, 4700, 4800) of predetermined lengths for storing the bits p+1 through k of said data word (d(X)) in accordance with said predetermined lengths.
2. An encoder as claimed in claim 1, in which p<(√2-1)k and in which a plurality of said predetermined lengths are substantially equal.
3. An encoder as claimed in claim 1, in which p<(√2-1)k and in which a plurality of said predetermined lengths are proportional to a geometric progression.
4. A decoder (20) for error correcting a received word (r(X)) representative of a channel word (c(X)) generated by an encoder (12) as claimed in any preceding claim, said decoder (20) comprising means (5100, 5030, 5200, SA1, SB1) for serially shifting and dividing said received word (r(X)) to generate iteratively shifted versions of the syndrome of said received word (r(X)), means (6100, 6030, 6200, SA2, SB2), alternating with said means for serially shifting and dividing, for comparing the characteristic polynomial of the code with said iteratively shifted versions of said syndrome and means (5020, 5021, 5022, 6031, 630C, SF) for correcting, in response to a predetermined output from said means for comparing, the received word in accordance with the number of iterations performed in generating said iteratively shifted versions of said syndrome.
5. In combination an encoder (12) as claimed in any of claims 1 to 3 and a decoder (20) as claimed in claim 4, the combination affording a data transmission system.
EP81300439A 1980-02-07 1981-02-03 Encoders and decoders for cyclic block codes Withdrawn EP0034036A3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US119420 1980-02-07
US06/119,420 US4312069A (en) 1980-02-07 1980-02-07 Serial encoding-decoding for cyclic block codes

Publications (2)

Publication Number Publication Date
EP0034036A2 true EP0034036A2 (en) 1981-08-19
EP0034036A3 EP0034036A3 (en) 1982-03-17

Family

ID=22384320

Family Applications (1)

Application Number Title Priority Date Filing Date
EP81300439A Withdrawn EP0034036A3 (en) 1980-02-07 1981-02-03 Encoders and decoders for cyclic block codes

Country Status (6)

Country Link
US (1) US4312069A (en)
EP (1) EP0034036A3 (en)
JP (1) JPS5949618B2 (en)
CA (1) CA1155229A (en)
GB (1) GB2069732B (en)
WO (1) WO1981002352A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0073979A1 (en) * 1981-09-03 1983-03-16 TELEFUNKEN Fernseh und Rundfunk GmbH System for the transmission of digital information signals

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4723246A (en) * 1982-05-11 1988-02-02 Tandem Computers Incorporated Integrated scrambler-encoder using PN sequence generator
US4488302A (en) * 1983-02-11 1984-12-11 At&T Bell Laboratories Burst error correction using cyclic block codes
US4597090A (en) * 1983-04-14 1986-06-24 Codex Corporation Block coded modulation system
JPS59229709A (en) * 1983-06-10 1984-12-24 Toshiba Corp Picture information recorder
JPH0335689Y2 (en) * 1985-01-11 1991-07-29
US4773540A (en) * 1987-08-31 1988-09-27 Manville Corporation Carton panel locking arrangement
GB2214759B (en) * 1988-01-18 1992-01-02 Plessey Co Plc High speed digital data link
US5040179A (en) * 1989-08-18 1991-08-13 Loral Aerospace Corp. High data rate BCH encoder
US5048056A (en) * 1990-06-08 1991-09-10 General Datacomm, Inc. Method and apparatus for mapping an eight dimensional constellation of a convolutionally coded communication system
US5978831A (en) * 1991-03-07 1999-11-02 Lucent Technologies Inc. Synchronous multiprocessor using tasks directly proportional in size to the individual processors rates
JP3170920B2 (en) * 1992-12-25 2001-05-28 ソニー株式会社 Error correction method and correction circuit
US5481566A (en) * 1993-12-29 1996-01-02 At&T Corp. Method and apparatus to increase efficiency of systematic codes
US5938773A (en) * 1996-03-14 1999-08-17 Intel Corporation Sideband signaling with parity bit schemes
IL122393A0 (en) * 1997-12-01 1998-06-15 Ttr Technologies Ltd A code word for use in digital optical media and a method of generation thereof
CN1111961C (en) * 2000-10-13 2003-06-18 太原理工大学 The coder-decoder of fast correcting multiposition error
WO2002080373A1 (en) * 2001-03-30 2002-10-10 Koninklijke Philips Electronics N.V. Methods and devices for converting as well as decoding a stream of data bits, signal and record carrier
GB2377346B (en) * 2001-07-02 2003-10-08 Matsushita Comm Ind Uk Ltd Error trapping and correction for cyclic codewords
US20040163030A1 (en) * 2003-02-13 2004-08-19 International Business Machines Corporation Iterative error correcting system
EP1460765A1 (en) 2003-03-19 2004-09-22 STMicroelectronics S.r.l. Method for performing error corrections of digital information codified as a symbol sequence
US8347186B1 (en) * 2012-04-19 2013-01-01 Polaran Yazilim Bilisim Danismanlik Ithalat Ihracat Sanayi Ticaret Limited Sirketi Method and system for error correction in transmitting data using low complexity systematic encoder

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1172747A (en) * 1966-12-06 1969-12-03 Ibm Data Transmission System.
DE2250307A1 (en) * 1972-10-13 1974-04-25 Licentia Gmbh METHOD AND ARRANGEMENT FOR ADAPTING THE DATA TRANSFER SPEED OF A CHANNEL TO THE PROCESSING SPEED OF AN ELECTRONIC DATA PROCESSING SYSTEM

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568148A (en) * 1969-04-02 1971-03-02 Radiation Inc Decoder for error correcting codes
US3774153A (en) * 1971-11-09 1973-11-20 Bell Telephone Labor Inc Field-accessed, single-wall domain apparatus utilizing interacting shift register loops
FR2270640B1 (en) * 1974-02-19 1976-10-08 Cii
GB1500232A (en) * 1974-07-04 1978-02-08 Marconi Co Ltd Digital data signal transmission arrangements

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1172747A (en) * 1966-12-06 1969-12-03 Ibm Data Transmission System.
DE2250307A1 (en) * 1972-10-13 1974-04-25 Licentia Gmbh METHOD AND ARRANGEMENT FOR ADAPTING THE DATA TRANSFER SPEED OF A CHANNEL TO THE PROCESSING SPEED OF AN ELECTRONIC DATA PROCESSING SYSTEM

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IEEE TRANSACTIONS ON COMMUNICATIONS, Vol. COM-26, No. 10, October 1978 New York (US) MEDLON: "A 105 Mbit/s Error Correcting Codec", pages 1426-1432 *
THE BELL SYSTEM TECHNICAL JOURNAL, Vol. 51, No. 2, February 1972, New York (US) AHAMED: "The Design and Embodiment of Magnetic Domain Encoders and Single-Error Correcting Decoders for Cyclic Block Codes", pages 461-485 *
THE BELL SYSTEM TECHNICAL JOURNAL, Vol. 59, No. 2, February 1980, New York (US) AHAMED: "Serial Coding for Cyclic Block Codes", pages 269-276 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0073979A1 (en) * 1981-09-03 1983-03-16 TELEFUNKEN Fernseh und Rundfunk GmbH System for the transmission of digital information signals

Also Published As

Publication number Publication date
CA1155229A (en) 1983-10-11
JPS57500174A (en) 1982-01-28
US4312069A (en) 1982-01-19
EP0034036A3 (en) 1982-03-17
GB2069732B (en) 1984-03-14
JPS5949618B2 (en) 1984-12-04
GB2069732A (en) 1981-08-26
WO1981002352A1 (en) 1981-08-20

Similar Documents

Publication Publication Date Title
US4312069A (en) Serial encoding-decoding for cyclic block codes
EP0158510B1 (en) Error detection and correction in digital communication systems
US3542756A (en) Error correcting
US5440570A (en) Real-time binary BCH decoder
US8812940B2 (en) Programmable error correction capability for BCH codes
US3745526A (en) Shift register error correcting system
JP3046988B2 (en) Method and apparatus for detecting frame synchronization of data stream
US5430739A (en) Real-time Reed-Solomon decoder
JPH0831803B2 (en) Method and apparatus for error correction
KR890004677B1 (en) Decoding method and apparatus for cyclic codes
JPH0728227B2 (en) Decoding device for BCH code
US4488302A (en) Burst error correction using cyclic block codes
US8103943B2 (en) Symbol reconstruction in Reed-Solomon codes
EP0393080B1 (en) Hypersystolic reed-solomon encoder
EP0262944B1 (en) Error correction apparatus
US5408476A (en) One bit error correction method having actual data reproduction function
JPH11163741A (en) Reed-solomon decoder and its decoding method
JPH03219725A (en) Error inspection code generator and transmission error detector
US3475725A (en) Encoding transmission system
US3487361A (en) Burst error correction system
US3413599A (en) Handling of information with coset codes
US10623018B2 (en) Method of arrangement of an algorithm in cyclic redundancy check
JP2797569B2 (en) Euclidean circuit
KR100192792B1 (en) Polynomial evaluator of rs decoder
RU2054224C1 (en) Error-correcting decoder

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Designated state(s): BE DE FR IT NL

PUAL Search report despatched

Free format text: ORIGINAL CODE: 0009013

AK Designated contracting states

Designated state(s): BE DE FR IT NL

17P Request for examination filed

Effective date: 19820816

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 19850923

RIN1 Information on inventor provided before grant (corrected)

Inventor name: AHAMED, SYED VICKAR