GB2149156A - A method of encoding and decoding - Google Patents
A method of encoding and decoding Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding 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.
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)
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)
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 |
-
1983
- 1983-11-04 GB GB08329474A patent/GB2149156B/en not_active Expired
Patent Citations (6)
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)
Title |
---|
NOTE: GB 1318250 AND US 3685016 ARE EQUIVALENT; * |
Cited By (1)
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 |