GB2149156A - A method of encoding and decoding - Google Patents

A method of encoding and decoding Download PDF

Info

Publication number
GB2149156A
GB2149156A GB08329474A GB8329474A GB2149156A GB 2149156 A GB2149156 A GB 2149156A GB 08329474 A GB08329474 A GB 08329474A GB 8329474 A GB8329474 A GB 8329474A GB 2149156 A GB2149156 A GB 2149156A
Authority
GB
United Kingdom
Prior art keywords
digits
syndrome
diagonal
column
parity
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.)
Granted
Application number
GB08329474A
Other versions
GB2149156B (en
Inventor
Charles Richard Telfer
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.)
General Electric Co PLC
Original Assignee
General Electric Co PLC
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 General Electric Co PLC filed Critical General Electric Co PLC
Priority to GB08329474A priority Critical patent/GB2149156B/en
Publication of GB2149156A publication Critical patent/GB2149156A/en
Application granted granted Critical
Publication of GB2149156B publication Critical patent/GB2149156B/en
Expired legal-status Critical Current

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)

Abstract

Data and parity digits together defining A rows of B digits are encoded according to a cross-parity code by summing digit selections along diagonals and columns to obtain respective numerals which form a first series of A numerals and a second series of B numerals. The parity digits (A + B - 1 in number) are such that each numeral has a predetermined value (e.g. zero). A method of decoding a codeword comprising thus-encoded digits and detecting an error includes storing the codeword in a shift register 13 whilst simultaneously summing the diagonal and column selections in two summing shift registers 14 and 15 respectively. The selections are compared at a comparator 18. If there is an error that can be corrected, the same sequence occurs in both series of selections and by determining the cyclic shift of one with respect to the other the row on which an error occurs may be found. The column syndrome, which gives the error in the row, is added to the codeword at 24 and a multiplexer 20 controlled by a signal from the comparator 18 substitutes the corrected row for the originally received row. <IMAGE>

Description

SPECIFICATION A method of encoding and decoding This invention relates to a method of encoding and decoding a received block encoded according to a cross-parity code.
In this specification, the term "cross-parity code" is used to mean a code in which groups of data digits have parity digits added to form a codeword consisting of A sets of B digits, the values of the parity digits being adjusted so that summations of certain "selections" of the digits of the codeword result in a predetermined value, which is conveniently zero. A property of a cross-parity code is that two types of selection can be applied to it; these may be termed "diagonal" selections and "column" selections. This is because if the codeword is considered as a block having A rows and B columns of digits, the diagonal selections include digits along diagonals of the block and the column selections those along the columns, i.e. a diagonal selection is one in which B digits are spaced at intervals of A digits apart in the codeword.Each digit of the codeword is involved in only one diagonal selection and a first series of A numerals is thus obtained when each of the diagonal selections is summed. Also, a column selection is one in which A digits are spaced at intervals of B digits apart in the codeword.
Again, each digit in the codeword, in addition to being involved in only one diagonal selection, is also only included in one column selection, giving a second series of B numerals which are the sums of the column selections.
The result of a summation of a selection is taken to be the remainder of the summation when it is divided by the modulo or base of the digits. For example, if the digits are ternary, or base 3, and a summation equals 6, the result is 0, and if it equals 7, the result is 1.
For an encoded block with, for example, A = 5 and B = 4 there are four column selections and five diagonal selections as illustrated below, the numbers indicating to which of the diagonal selections a digit occupying that position belongs, and the digits in each of the columns being a column selection, 1234 5123 4512 3451 2345 The diagonal selections to which digits belong are determined by taking digits in series and applying the diagonal selections in rotation. Therefor, the first row of the diagonal selections is 1, 2, 3, 4 and the second begins with a digit involved in diagonal selection 5.
Then the cycle is repeated so that the remainder of the second row is 1, 2, 3 and so on.
Once the selections to which the digits occupying various positions contribute are determined, the columns may be interchanged, as may the rows. Thus the block shown above could also be written as 2134 1523 5412 4351 3245 in which the first two columns are interchanged, or 1234 5123 3451 4512 2345 where the third and fourth rows have been interchanged. Therefore, a digit occupying the top left-hand corner could belong to the second diagonal selection or the first, depending on which of the above configurations is adopted.
Other variations are possible. For example, where A = 7 and B = 4 the following block would be obtained by applying the diagonal selections in rotation 1234 5671 2345 6712 3456 7123 4567 It can be seen that if a particular digit is part of diagonal selection n then the following digit in the same column is included in the diagonal selection (n + B) mod A. For example, the digit positioned in the top righthand corner belongs to diagonal selection 4.
The following digit in the same column is part of the diagonal selection (4 + 4) mod 7, which is 1, as shown.
The selections may be adjusted so that instead of there being a shift of B some other shift S is chosen. For example, if S is 1, the diagonal selection in which the following digit in the same column is included being given by (n + S) mod A, the configuration is then, 1234 2345 3456 4567 5671 6712 7123 This variation may be used in some cases to simply implementation of the code and its decoding.
According to a first aspect of this invention, a method of encoding data digits according to a cross-parity code to produce a codeword consisting of A sets of B digits includes the steps of; allocating A + B - 1 of the digits of the codeword as parity digits; summing the diagonal selections to obtain a first series of A numerals; summing the column selections to obtain a second series of B numerals; and adjusting the values of the parity digits such that each of the numerals in the first and second series is a desired value.
A + B - 1 parity digits are included in a block encoded using a cross-parity code. They may occupy a row and a column, or a number of rows of the block, providing that each selection includes at least one parity digit so that the summations of the selections each have a predetermined value, and must be such that they may be independently chosen without violating any of the conditions de scribed later.
The digits included in a block could be complemented, i.e. the original digits to be included in the block could be subtracted from their modulo or base and the resulting digits included instead.
According to a second aspect of the inven tion, a method of decoding a received block consisting of A sets of B digits, encoded according to a cross-parity code, includes the steps of: determining the diagonal syndrome; determining the column syndrome; and utilising the diagonal and column syn dromes to detect an error in the received block.
The "diagonal syndrome" is herein defined as the series of numerals obtained by summ ing the digits included in the diagonal selec tions, each summation of a diagonal selection resulting in one of the numerals included in the series, thus giving a series of A numerals.
The "column syndrome" is similarly herein defined as the series of numerals resulting from the summations of the column selec tions, each summation giving one numeral and therefore giving a series of B numerals.
The block can be decoded without the loca tion of the parity digits being known.
If no error is present, the diagonal and column syndromes will each consist of the predetermined values initially set by adjusting the parity digits when encoding. If this is not the case than an error is present.
Preferably, a method of decoding as de scribed above includes the steps of determin ing whether a similar sequence of numerals is included in the diagonal and column syndromes and, if so, determining the position of the sequence in one syndrome with respect to the position of the sequence in the other, such that the position of the error within the received block may be determined.
If a similar sequence of numerals is included in both syndrome. it is possible to find the position of the error if it is a single digit. If the error consists of more than just a single digit. the positions of the erroneous digits can be determined if they are all contained within one of the said A sets or rows. Where similar sequences are found, the cyclic shift of one with respect to the other indicates that row.
By cyclic shift, it is meant that the sequences contain the same digits following each other, but that the initial digit is different, e.g. in the two series a b c d and b c d a, the second is cyclically shifted one position to the left with respect to the first. The amount of cyclic shift for an error in a particular row depends on the values used for A and B.
What may be termed a 'complete' crossparity code is one in which various conditions are imposed such that when it is decoded ambiguities do not arise in the cyclic shifts, i.e. each degree of cyclic shift indicates an error in only one particular row. These conditions are that A is greater than B, they have no common factor and A has no factor, other than itself, greater than A-B.
If, as mentioned above, a shift S other than B is introduced, then the condition that A and B have no common factor is replaced by one that A and S have no common factor.
An 'incomplete' cross-parity code is one in which no restrictions are imposed and consequently ambiguities may occur. These are dealt with by using only some of the rows available. For example, where A = 6, B = 4, the block, with diagonal selections illustrated and S= 1, is 1234 2345 3456 4561 5612 6123 In this case, errors in the first row included in diagonal selections 1 and 4 will result in the same degree of cyclic shift of one syndrome with respect to the other as the same errors occurring in the fourth row in the digits included in those selections. Similarly, the second and fifth rows may produce ambiguities, as might the third and sixth. Therefore this cross-parity code is an incomplete one in which only three rows may be used, i.e. only one of each pair the first and the fourth, the second and the fifth and the third and the sixth rows) is encoded and transmitted Thus for example, the following rows only could be encoded and transmitted: 1234 2345 3456 Since each selection must include parity digits, the digits included in diagonal selections 1 and 6 must be parity digits. This modified block includes A + B - 1 parity digits, where A and B are 3 and 4 respectively, i.e. it includes 6 parity digits.
Also, it is preferred that a method of decoding as described above, where the position of the error is determined, includes combining one syndrome with the received block to correct the error. The syndrome generally used is the column syndrome. If some base other than 2 is used, each digit of the syndrome may be subtracted from the number of the base and the result added to the corresponding digit in the row containing the error, the subtraction and addition being modulo the base. If the digits in the codeword are binary digits this combination may be by adding the syndrome to the appropriate row containing the error, since addition and subtraction are equivalent in binary arithmetic.
According to a third aspect of this invention, a method of decoding a receiving block consisting of A sets of B digits encoded according to a cross-parity code, where each digit is either unknown or correctly known, and the unknown digits could be together chosen as parity digits, includes the steps of: determining the diagonal syndrome; determining the column syndrome; determining numerals, each being determined by summing a selection, included in the diagonal and column syndromes in such an order that each selection summed to obtain a numeral includes only one unknown digit, apart from any unknown digits which have been included in a previously summed selection; and utilising the syndromes to determine the said unknown digits.
A number of variations in order are possible which comply with the condition that only one unknown digit in a summation, apart from any which have previously summed, is included. However, where the unknown digits are included in two known sets, it is preferred that the numerals included in the digonal syndrome are produced alternately with numerals included in the column syndrome.
According to a fourth aspect of the invention, a method of decoding a received block consisting of A sets of B digits encoded according to a cross-parity code, where each digit is either unknown or correctly known, and the unknown digits could be together chosen as parity digits, includes the steps of: determining the diagonal syndrome; subtracting each diagonal syndrome digit from each unkown digit which contributed to it; determining the column syndrome; and subtracting each column syndrome digit from each unknown digit which contributed to it.
Therefore by employing the method of decoding described above, it is possible to detect errors and correct them if they occur within one of the said A sets of rows, or detect errors occurring in, for example, two rows.
Preferably, in a method of ecoding or decoding as described above, the cross-parity code is an outer code concatenated with an inner code, such as a Hamming code.
It is preferred that in a method of encoding as described above where a plurality of codewords are produced and where the sets of the codewords are transmitted in series, the step is included of interleaving the sets of the codewords such that sets transmitted adjacent in series form part of different codewords.
Thus, if the transmission is subject to bursty interference so that adjacent sets or rows contain errors by 'interleaving' (i.e. taking alternate rows to be part of alternate codewords), any error may be confined to one of the A sets of any of the blocks. More than two interleavings may be arranged, and by interleaving C times, a burst of up to B X C - B + 1 digits may be corrected if an error occurs.
Alternatively, it is preferred that in a method of encoding according to a first aspect of the invention described above, the step is included of transmitting digits of each of the A sets in parallel. This is useful, for example, in a telex system, such that errors due to impulsive interference may be corrected.
In any of the aspects of the invention described above, and where the last two rows comprise parity digits, it is preferred that A = B + 1 and is a prime number, e.g. A = 5, B = 4.
According to one feature of the invention there is provided an encoder arranged to implement a method of encoding as described above, and according to another, there is provided a decoder arranged to implement a method of decoding as described above.
According to yet another feature of the invention, there is provided communication apparatus comprising: means for encoding according to a cross-parity code; and means for decoding including means for determining the 'diagonal syndrome'; means for determining the 'column syndrome', and means for utilising the diagonal and column syndromes to detect an error in the received block.
The invention is further described by way of example with reference to the accompanying drawings, in which: Figure 1 is a block diagram of an encoder using a cross-parity code in accordance with the invention; Figure 2 is a block diagram of a decoder using a method in accordance with the invention; Figure 3 is a block diagram of a decoder using another method in accordance with the invention; and Figure 4 is a block diagram of apparatus arranged to operate in conjunction with the decoder of Fig. 2.
With reference to Fig. 1, (A-1) (B-1) data digits are required to be encoded using a complete cross-parity code in which the parity digits occupy the last column and row of the codeword block of A x B digits notionally arranged in an array of A rows and B columns.
In this case, A = 5, B = 4 and the digits are binary digits, and the diagonal selections are as illustrated below: 1234 5123 4512 3451 2345 By way of example, let the data digits be: 011 001 110 001 or in block form arranged in (A-1) rows and (B-1) columns: 011 001 110 001 The data digits are entered into a buffer store 1 and are supplied serially on demand to a first multiplexer 2. The first multiplexer 2 accepts the first B-1, or 3, data digits from the buffer store 1 on line 3. It is then inhibited from receiving digits from line 3 and instead accepts a zero from a line 4, followed by the next B-1 data digits from the buffer store 1 and so on until the last of the data digits, followed by a zero from line 4, has been accepted by the first multiplexer 2.
A first summing shift register 5 of length B, or 4 accepts the data digits and zeroes from the first multiplexer 2, i.e. it receives: 0110 0010 1100 0010 The first summing shift register 5 is initially set to the predetermined values, in this case zero, of the sums of the column selections. It receives the first row of four digits and adds each subsequently received digit to the digits entered previously at intervals of B digits apart and stores the result. It thus produces B values, the sum of the column selections, which are the parity digits which occupy the last row. As previously explained, the result of a summation is taken to be the remainder of the summation when it is divided by the modulo or base of the digits. Thus, where the digits are binary digits an even result is taken to be zero and an odd result is taken to be one.
The series of sums of the column selections is: 1 (+ 0 + 0 + 1 + 0) 0 (= 1 + 0 + 1 + 0) 1 (=1+1+0+1) 0 (=0+0+0+0) The series is applied via a line 6 to the first multiplexer 2 which accepts it as the last row of the block. The block now consists of A x B digits and is: 0110 0010 1100 0010 1010 The contents of the first multiplexer 2 are applied to a first shift register 7, which acts as a delay, and to a second summing shift register 8. The second summing shift register 8 operates in a similar fashion to the first summing shift register 5 and sums every Ath digit to produce the series of sums of each diagonal selection which are the parity digits for the last column, even results of the sums again being zero and the odd ones being one. The sums of the diagonal selections are 0 1 1 0 O. This series is applied to a first cyclic shift register 9 and then to a second multiplexer 10, which accepts the A X B digits from the first shift register 7 and substitutes the sums of the diagonal selections for the last column containing zeroes, whilst the next block to be encoded, held in the buffer store 1, enters the first multiplexer 2.
Thus the encoded block is 0110 0011 1101 0010 1010 and this is passed out at 11 to be transmitted.
With reference to Fig. 2, the encoded block, as received after transmission, in this case includes an error which is introduced during transmision. Let the error be on the fourth row and result in a received block of 0110 0011 1101 1110 1010 The received block is applied via a line 12 to a second shift register 13, a third summing shift register 14 and a further summing shift register 15. The second shift register 13 acts only as a delay. The third summing shift register 14 sums every Bth digit similarly to the first summing shift register 5, in the encoder described with reference to Fig. 1, and forms the column syndrome, which is 1 1 0 0. If there is no error the column should equal the predetermied values wet when encoding by adjusting the parity digits i.e. all the digits of the syndrome should be zero.
Simultaneously the fourth summing shift register forms the diagonal syndrome, again in a similar manner to the second summing shift register 8 in the encoder, which is best seen by rewriting the received block as one having B rows of A columns.
01100 01111 01111 01010 Thus the diagonal syndrome is now simply the summations of the columns of this block and is 0 0 1 1 0.
The column and diagonal syndromes are applied to second and third cyclic shift registers 16 and 17 respectively and then the two summing shift registers 14 and 15 are reset to the predetermined values, i.e. to zero values, for the next transmitted block.
The contents of the two cyclic shift registers 16 and 17 are passed to a comparator 18 which determines whether the same sequence is included in both syndromes. If not there is an error present which it is beyond the scope of the code to correct, and an alarm 19 is actuated allowing an operator to reject the block if he so desires. If the same sequence is found in both syndromes the comparator 18 determines the cyclic shift of the diagonal syndrome with respect to the column one. It should be noted that the diagonal syndrome also include A-B zeroes located between those digits which are the first and last digits of the column syndrome. The comparator 18.
when making the comparison between the column syndrome plus A-B zeroes (in this case one zero) and the diagonal syndrome, seeks an exact match between the two. All possible relative shifts between them may be easily produced because the second and third cyclic shift registers 16 # and 17 are of different lengths and, as their contents are circulated, cause relative shifts between them to be cancelled or produced.
In this case there is a cyclic shift of two to the right of the diagonal syndrome. For these particular values of A and B this shift is characteristic of an error in the fourth row and the column syndrome is the error in that row.
A third multiplexer 20 has two input lines 21 and 22. Line 21 carries the received block from the second shift register 13. Line 22 also carries the block from the second shift register but at 24 the column syndrome from the second cyclic shift register is added to each one of the A rows.
A control signal from the comparator 18 is applied to the third multiplexer 20 via line 23 and controls from which line the multiplexer 20 accepts the rows of the block. Thus the first three and last rows are accepted from line 21 and the forth row, now corrected by the addition of the column syndrome, from line 22.
The corrected block is applied to a second buffer store 25 which removes the parity digits, and the correct data digits are applied to an output line 26.
Where a received block of A X B digits has two incorrect rows, and it is known which they are, it is possible to correct them.
For example if the block is as follows abcd e f g h jk I m n o p q rs t and it is known that the second and fourth rows contain errors then firstly a diagonal selection which includes only one digit from either of the two rows is summed. In this case the sum is b+ g+ I+ q. Only g is unknown, and because the summation must result in a predetermined value, as arranged by chosing the parity digits when encoding, the correct value for g can be found. Alternatively the first diagonal selection could be d, i, n and s.
Next the summation of the column selection containing g is determined and again it includes only one digit 0 which is unknown and which can be found.
The sum of another diagonal selection e + j + o + t gives the correct value of e and then the sum of the column selection a, e, i, m, q is formed. By continuing in this way the two incorrect rows may be corrected.
In fact given a block in which each digit is either unknown or correctly known, and the unknown digits could together be chosen as parity digits, it is possible to find the unknown digits.
The apparatus shown in Fig. 3 may be used to determine the unknown digits for any choice (which need not be known) of which digits are parity digits.
Let a codeword block to be transmitted, and encoded according to a complete cross-parity code, be: 0110 0011 1101 0010 1010 The received block has two rows in error, the second and the fifth is: 0110 0001 1101 0010 1100 the errors being underlined.
In this case the cross-parity code is an outer code concatenated with some other inner code.
The inner decoder 27 detects any rows of the received block which may be incorrect and has an erasure indicator 28 which passes the information to a cyclic shift register 29 of length A, which in this example is five. However, means other than an inner code may be used to indicate the likelihood of errors. The cyclic shift register 29 has an output line 30 which carries a 1 for each incorrect row, as indicated by indicator 28, and applies it to a multiplexer 32 which in turn transmits it to the third multiplexer 20. Multiplexer 32 accepts only those signals on line 30 when the decoder is in an erasure correction mode, i.e.
when it is correcting rows known to be wrong, and when not in this mode those on line 23 from the comparator 18.
Firstly the diagonal syndrome is determined by summing shift register 15 and passed to cyclic shift register 17.
Re-writing the received block as one having B rows and A columns, the unknown digits being underlined, 01100 00111 01001 01100 it may be seen that the diagonal syndrome is 01110.
At 24 each syndrome digit is substracted from, or in this binary case added to, each unknown digit which contributed to it, thus producing a block (with errors underlined).
01100 01011 01001 O O O l O The third multiplexer 20 is controlled by multiplexer 32 and accepts the incorrect rows to which appropriate diagonal syndrome digits have been added from line 22.
A multiplexer 33 then causes this block to be returned to line 12 instead of passing from the system at 26.
The column syndrome is formed by summing shift register 14 and passed to cyclic shift register 16 and then by multiplexer 31 to 24 where each unknown digit has the column syndrome digit to which it contributed added to it.
The block before this addition, having A rows and B columns is: 0110 0010 1101 0010 0010 with unknown digits underlined.
The column syndrome of this block is 1 0 0 1 and when this is added to the appropriate rows, the block accepted by multiplexer 20 is, with errors underlined, 0110 1011 1101 0010 1011 Again this block is passed back to line 12 by multiplexer 33 and the diagonal syndrome determined, 01101 01111 01001 01011 The syndrone is found to be O 0 0 0 0.
However, the column syndrone is still not correct.
The process is repeated until both syndromes consist of zeroes, or until the stage is reached by which this must be so. For A = 5 and B = 4 and where one column and one row are unknown, this stage is reached when the column syndrome has been found and added to the corresponding unknown digits four times. The condition must occur when the diagonal syndrome has been added to the block B times.
It is possible to arrange an extra cycle after this stage has been reached as a check so that if both the column and diagonal syndromes are not all zeroes an alarm is raised by the comparator 18.
A buffer store 34 holds the next incoming block until the erasure correction process is complete.
With some modifications to the apparatus shown in Fig. 3, it can function as an encoder for the case where the parity digits occupy two rows and A = B + 1. The inner decoder 27, erasure indicator 28, shift register 29, multiplexer 32, alarm 19 and buffer store 25 are omitted from the apparatus shown in Fig.
3. The parity digits are then treated in a similar manner to the incorrect rows in the unmodified apparatus.
An alternative apparatus to that of Fig. 3, shown in Fig. 4, operates in parallel with the apparatus illustrated in Fig. 2. It comprises three summing shift registers 35, 36 and 37 of lengths A, A X B and B respectively and a cyclic shift register 38 of length A.
Initially, the received block is applied to summing shift registers 35 and 36 in parallel.
Summing shift register 35 forms the diagonal syndrome and passes it along line 39 to 40 where digits of the syndrome are subtracted from the appropriate unknown digits of the block on output line 41 of the summing shift register 36. This operation is controlled by the cyclic shift register 38, which is similar to cyclic shift register 29 of Fig. 3, and which applies a 1 to its output line 42 whenever the digits being processed are unreliable. The cyclic shift register 38 is in turn controlled by an erasure indicator of an inner decoder (not shown).
The block is then transmitted along line 43 and returned to summing shift register 36 and also summing shift register 37 which forms the column syndrome. The column syndrome is then subtracted from the appropriate digits of the block at 40.
The resultant block is then returned to summing shift registers 35 and 36 to repeat the process until the block is corrected, when it is passed along line 45 to the third multiplexer 20 of Fig. 2.

Claims (20)

1. A method of encoding data digits according to a cross-parity code to produce a codeword consisting of A sets of B digits, including the steps of: allocating A + B - 1 of the digits of the codeword as parity digits; summing the diagonal selections to obtain a first series of A numerals; summing the column selections to obtain a second series of B numerals; and adjusting the values of the parity digits such that each of the numerals in the first and second series is a desired value.
2. A method of decoding a received block consisting of A set of B digits encoded according to a cross-parity code, including the steps of: determining the "diagonal syndrome"; determining the "column syndrome"; and utilising the diagonal and column syndromes to detect an error in the received block.
3. A method as claimed in claim 2 and including the steps of determining whether a similar sequence of numerals is included in the diagonal and column syndromes and, if so, determining the position of the sequence in one syndrome with respect to the position of the sequence in the other such that the position of the error within the received block may be determined.
4. A method as claimed in claim 3 where the position of the error is determined, including combining one syndrome with the received block to correct the error.
5. A method of decoding a received block consisting of A sets of B digits encoded according to a cross-parity code, where each digit is either unknown or correctly known, and the unknown digits could be together chosen as parity digits, including the steps of: determining the diagonal syndrome; determining the column syndrome; determining numerals, each being determined by summing a selection, included in the diagonal and column syndromes in such an order that each selection summed to obtain a numeral includes only one unknown digit apart from any unknown digits which have been included in a previously summed selection; and utilising the syndromes to determine the said unknown digits.
6. A method as claimed in claim 5 where the unknown digits are included in two known sets and wherein numerals included in the diagonal syndrome are produced alternately with numerals included in the column syndrome.
7. A method of decoding a received block consisting of A sets of B digits encoded according to a cross-parity code, where each digit is either unknown or correctly known, and the unknown digits could be together chosen as parity digits, including the steps of: determining the diagonal syndrome; subtracting each diagonal syndrome digit from each unknown digit which contributed to it; determining the column syndrome; and subtracting each column syndrome digit from each unknown digit which contributed to it.
8. A method of encoding or decoding as claimed in any preceding claim and wherein the cross-parity code is an outer code concatenated with an inner code.
9. A method of encoding as claimed in claim 1 where a plurality of codewords are produced and where the sets of the codewords are transmitted in series, including the step of interleaving the sets of the codewords such that sets transmitted adjacent in series form part of different codewords.
10. A method of encoding as claimed in claim 1 and including the steps of transmitting digits of each of the A sets in parallel.
11. A method as claimed in any preceding claim where the last two sets comprise parity digits and wherein A equals B + 1 and is a prime number.
12. An encoder arranged to implement a method as claimed in claim 1, 7, 8 or 9.
13. A decoder arranged to implement a method as claimed in any of claims 2 to 8 or 11.
14. Communication apparatus comprising: means for encoding according to a crossparity code; and means for decoding including means for determining the 'diagonal syndrome', means for determining the 'column syndrome', and means for utilising the diagonal and column syndromes to detect an error in the received block.
15. A method substantially as illustrated in and described with reference to Fig. 1 of the accompanying drawings.
16. A method substantially as illustrated in and described with reference to Fig. 2 of the accompanying drawings.
17. A method substantially as illustrated in and described with reference to Figs. 3 and 4 of the accompanying drawings.
18. Apparatus substantially as illustrated in and described with reference to Fig. 1 of the accompanying drawings.
19. Apparatus substantially as illustrated in and described with reference to Fig. 2 of the accompanying drawing.
20. Apparatus substantially as illustrated in and described with reference to Figs. 3 and 4 of the accompanying drawings.
GB08329474A 1983-11-04 1983-11-04 A method of encoding and decoding Expired GB2149156B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB08329474A GB2149156B (en) 1983-11-04 1983-11-04 A method of encoding and decoding

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB08329474A GB2149156B (en) 1983-11-04 1983-11-04 A method of encoding and decoding

Publications (2)

Publication Number Publication Date
GB2149156A true GB2149156A (en) 1985-06-05
GB2149156B GB2149156B (en) 1987-10-21

Family

ID=10551231

Family Applications (1)

Application Number Title Priority Date Filing Date
GB08329474A Expired GB2149156B (en) 1983-11-04 1983-11-04 A method of encoding and decoding

Country Status (1)

Country Link
GB (1) GB2149156B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997048097A1 (en) * 1996-06-13 1997-12-18 Philips Electronics N.V. A method and apparatus for trackwise burst error correction in a multitrack storage format

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1039523A (en) * 1962-04-25 1966-08-17 Teletype Corp Apparatus for registering spiral counts
GB1247823A (en) * 1969-01-08 1971-09-29 Ibm Multiple random error correcting system
US3685016A (en) * 1969-10-29 1972-08-15 Honeywell Inc Array method and apparatus for encoding, detecting, and/or correcting data
GB2011138A (en) * 1977-12-23 1979-07-04 Ibm Multi-track tape units
GB2016178A (en) * 1978-03-07 1979-09-19 Ibm Data processing apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1039523A (en) * 1962-04-25 1966-08-17 Teletype Corp Apparatus for registering spiral counts
GB1247823A (en) * 1969-01-08 1971-09-29 Ibm Multiple random error correcting system
US3685016A (en) * 1969-10-29 1972-08-15 Honeywell Inc Array method and apparatus for encoding, detecting, and/or correcting data
GB1318250A (en) * 1969-10-29 1973-05-23 Honeywell Inc Encoding detecting and or correcting of data
GB2011138A (en) * 1977-12-23 1979-07-04 Ibm Multi-track tape units
GB2016178A (en) * 1978-03-07 1979-09-19 Ibm Data processing apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NOTE: GB 1318250 AND US 3685016 ARE EQUIVALENT; *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997048097A1 (en) * 1996-06-13 1997-12-18 Philips Electronics N.V. A method and apparatus for trackwise burst error correction in a multitrack storage format

Also Published As

Publication number Publication date
GB2149156B (en) 1987-10-21

Similar Documents

Publication Publication Date Title
US4486882A (en) System for transmitting binary data via a plurality of channels by means of a convolutional code
KR880000426B1 (en) Decoding method and system for double-encoded reed-solomon codes
EP0072640B1 (en) Methods of data error correction
US4497058A (en) Method of error correction
US4476562A (en) Method of error correction
US3638182A (en) Random and burst error-correcting arrangement with guard space error correction
US4276646A (en) Method and apparatus for detecting errors in a data set
USRE34245E (en) Two stage coding method
US4916702A (en) Elongated burst trapping
JPH06216882A (en) Error correction transmitter and receiver
US4607367A (en) Correcting errors in binary data
JPH0436487B2 (en)
GB2038144A (en) Methods of and apparatus for processing digital information words
GB2079994A (en) Methods of digital data error correction
US3831144A (en) Multi-level error detection code
US3873971A (en) Random error correcting system
US3983536A (en) Data signal handling arrangements
JPS6151814B2 (en)
EP0112676A2 (en) Methods of and apparatus for correcting errors in binary data
US4994993A (en) System for detecting and correcting errors generated by arithmetic logic units
US3571795A (en) Random and burst error-correcting systems utilizing self-orthogonal convolution codes
CA1213673A (en) Burst error correction using cyclic block codes
US3024444A (en) Error detection by shift register parity system
JPH0353818B2 (en)
US4159469A (en) Method and apparatus for the coding and decoding of digital information

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee