WO2012123826A1 - Error correction coding with block synchronization - Google Patents

Error correction coding with block synchronization Download PDF

Info

Publication number
WO2012123826A1
WO2012123826A1 PCT/IB2012/050003 IB2012050003W WO2012123826A1 WO 2012123826 A1 WO2012123826 A1 WO 2012123826A1 IB 2012050003 W IB2012050003 W IB 2012050003W WO 2012123826 A1 WO2012123826 A1 WO 2012123826A1
Authority
WO
WIPO (PCT)
Prior art keywords
string
constant string
codeword
data
start point
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.)
Ceased
Application number
PCT/IB2012/050003
Other languages
French (fr)
Inventor
Zeev Geyzel
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.)
Synamedia Ltd
Original Assignee
NDS Ltd
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 NDS Ltd filed Critical NDS Ltd
Publication of WO2012123826A1 publication Critical patent/WO2012123826A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/33Synchronisation based on error coding or decoding
    • H03M13/333Synchronisation on a multi-bit block basis, e.g. frame synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/048Speed or phase control by synchronisation signals using the properties of error detecting or error correcting codes, e.g. parity as synchronisation signal

Definitions

  • the present invention relates generally to processing of data signals, and specifically to detection and correction of data errors.
  • Error detection schemes are widely used in data transmission and storage. In many of these schemes, an error detection codeword is computed, using a predefined algorithm, over each block of data. The codeword contains the data along with additional redundancy bits. The codeword may subsequently be decoded in order to recover the data and verify that no errors have occurred. Some types of error detection codes, referred to as error correction codes, enable the receiver of a codeword not only to detect errors, but also to correct them.
  • error detection code includes both error correction codes and other code types, such as cyclic redundancy check [CRC] codes, which detect but may not be able to correct errors.
  • CRC cyclic redundancy check
  • the type of error correction code and its level of redundancy determine the number of errors that can be detected and the number of errors that can be corrected in any give data block.
  • Reed-Solomon (RS) codes are error-correcting codes that can be used to detect and correct multiple random symbol errors. By adding d check symbols to the data, a RS code can detect any combination of up to d symbol errors, and correct up to# d/2 errors.
  • a message comprising m data symbols is encoded by viewing the symbols as coefficients of a polynomial p (x) of maximum degree m-1 over a finite field F of order n .
  • the coefficients of the output polynomial are the codeword.
  • the receiver can divide the received polynomial by f (x) (using polynomial division) to determine whether the message is in error: A non-zero remainder means that an error has occurred.
  • Embodiments of the present invention that are described hereinbelo provide methods, systems and software for improving the performance of error detection codes .
  • a method for data protection which includes computing a codeword over an input string of data in accordance with a predefined error detection code.
  • a predetermined constant string is added to the codeword so as to generate an output string.
  • a signal is modulated with a sequence of symbols representing the output string.
  • the constant string is selected so as to resolve an ambiguity with respect to a start point of the sequence in decoding the signal.
  • the constant string is selected so that within a range of possible start points extending over a predetermined number of the symbols in the series, only one of the start points will give a codeword satisfying the error correcting code following subtraction of the constant string from the data.
  • the error detection code uses a base polynomial of a given degree, and the constant string is chosen so as to resolve the ambiguity up to a maximal shift of the start point that is determined by the degree of the base polynomial .
  • adding the predetermined constant string includes selecting a given constant string after verifying that the given constant string is not a member of a predetermined set of one or more linear subspaces .
  • the constant string may be a balanced string of ones and zeros, and adding the predetermined constant string may include computing an exclusive disjunction between the codeword and the constant string.
  • a method for data protection which includes receiving and demodulating a signal to recover a sequence of symbols. A start point in the recovered sequence is selected, and a predetermined constant string is subtracted from the data beginning at the selected start point. An error detection code is checked over the data remaining after subtracting the constant string.
  • a new start point may be selected in the recovered sequence from which to subtract the constant string and to check the error detection code until an acceptable codeword is found.
  • apparatus for data protection including an encoder, which is configured to compute a codeword over an input string of data in accordance with a predefined error detection code, and to add a predetermined constant string to the codeword so as to generate an output string.
  • a modulator is configured to modulate a signal with a sequence of symbols representing the output string.
  • apparatus for data protection including a demodulator, which is configured to receive and demodulate a signal to recover a sequence of symbols.
  • a decoder is configured to select a start point in the recovered sequence, to subtract a predetermined constant string from the data beginning at the selected start point, and to check an error detection code over the data remaining after subtracting the constant string.
  • a computer software product including a tangible computer-readable medium in which program instructions are stored, which instructions, when read by a processor, cause the processor to compute a codeword over an input string of data in accordance with a predefined error detection code, and to add a predetermined constant string to the codeword so as to generate an output string, for application in modulating a signal with a sequence of symbols representing the output string.
  • Fig. 1 is a block diagram that schematically illustrates a data communication system, in accordance with an embodiment of the present invention
  • Fig. 2 is a plot that schematically shows received signals over time, in accordance with an embodiment of the present invention.
  • Fig. 3 is a flow chart that schematically illustrates a method for error detection coding and decoding, in accordance with an embodiment of the present invention .
  • the receiver In order to decode a given error detection codeword within a stream of symbols, the receiver must generally be able to identify the symbol at which the codeword begins. Some communication protocols require the transmission of a particular preamble in order to signal the beginning of a data packet, and thus indicate the beginning of the next codeword unambiguously. In other systems, however, it may not be practical or desirable to use such a preamble, or the preamble may be blurred due to poor signal quality. In such situations, the start point of a codeword within a symbol stream may be uncertain .
  • this shifted sequence of symbols may, by coincidence, also be a valid codeword.
  • the shifted symbol sequence may be divisible by the base polynomial f(x) . In consequence, the receiver may decode and output an erroneous data result.
  • a predetermined constant string is added to the codeword.
  • “addition,” as well as “subtraction,” is performed by exclusive disjunction (XOR) of the codeword with the constant string (although these arithmetic operations will be expressed differently in non-binary fields, as is known in the art) .
  • the resulting output string is transmitted by modulating a signal with a sequence of symbols representing the output string.
  • a receiver of the signal chooses the apparent start point of the codeword and subtracts out the constant string.
  • the constant string By appropriate choice of the constant string, as explained below, ambiguity with respect to the start point of the output string in the received symbol sequence can be resolved. In other words, decoding of the error detection code after subtraction of the constant string will give a correct result only if the correct start point has been chosen. Any shift of the start point - up to a certain maximum shift, which is a function of the degree of the error detection code - will yield an error upon decoding.
  • a String is a sequence of blocks.
  • L c is the length of the string c (in blocks) .
  • a Full string is sequence of L blocks (for the given codeword length L) .
  • a Base polynomial f is a fixed polynomial on the field F, which is used in generating and decoding RS codewords .
  • F G(2,n)
  • the addition is carried out by exclusive disjunction (XOR) .
  • Fig. 1 is a block diagram that schematically illustrates a communication system 20, in accordance with an embodiment of the present invention.
  • a transmitter 22 transmits data in the form of modulated signals over a communication link 24 to a receiver 26.
  • Link 24 may comprise a wired or wireless link of any suitable type that is known in the art. Although only a single link is shown in the figure, the techniques of error correction coding and decoding that are described herein are equally effective over multiple successive links, and can be applied, as well, to data that are stored and later recalled.
  • Transmitter 22 comprises an error correction code (ECC) encoder 28, which encodes blocks of input data into codewords using an appropriate encoding algorithm. Encoder 28 applies any suitable ECC algorithm known in the art, such as RS encoding, as described above.
  • ECC error correction code
  • the constant string may be selected in advance and pre-stored in memory 30, or it may alternatively be computed and/or selected by encoder 28 as needed at the time of data encoding.
  • a modulator 32 converts the data bits of the codeword into symbols of an appropriate alphabet and modulates the signals transmitted over link 24 with the symbols.
  • modulation may comprise time- and/or frequency-domain modulation of an electrical or optical carrier, as is known in the art.
  • the modulation may be applied to an image or sequence of images, as described, for example, in the above-mentioned provisional patent application.
  • a demodulator 34 in receiver 26 extracts the symbols from the modulated signals on link 24 and passes the results to an ECC decoder 36.
  • the decoder aligns the received string, i.e., it finds the presumed start point of the codeword in the incoming symbol sequence. It then reads from a memory 38 the same constant string that was added by encoder 28 and subtracts the constant string (by XOR) from the received string, starting from the presumed start point. Decoder 36 applies error detection decoding to the result of the subtraction. If the decoder has chosen a shifted start point, decoding at this stage will give an error, and the decoder may try again with a different start point. When the correct start point has been found, decoder 36 will be able to successfully decode the codeword and output the recovered data.
  • Encoder 28 and decoder 36 typically comprise suitable hardware logic circuits, which may be implemented, for example, in application-specific integrated circuits (ASIC) or in programmable gate arrays. Alternatively, some or all of the functions of the encoder and/or decoder may be implemented in software, for execution by a suitable processor.
  • the software may be downloaded to the processor in electronic form, over a network, for example, or it may, alternatively or additionally, be stored in tangible, computer-readable media, such as optical, magnetic, or electronic memory media.
  • Fig. 2 is a plot that schematically shows signals 40 received by receiver 26 over time, in accordance with an embodiment of the present invention.
  • signals 40 are shown as comprising in-phase (I) and quadrature (Q) components, as are known in the art.
  • the signals may comprise U and V chrominance components, as described in the above- mentioned provisional patent application, or any other number (one or more) and/or type of signal components.
  • Signals 40 comprise peaks 42 corresponding to symbols that were transmitted by modulator 32, with a symbol period indicated by the ticks on the horizontal (time) axis in the figure.
  • Peaks 42 in signals 40 are masked by noise, and the peaks cannot be clearly distinguished in at least some of the symbol periods.
  • demodulator 34 may output ambiguous results, and decoder 36 may be unable to determine with certainty where to place the start point of a given codeword.
  • Fig. 2 for example, two possible codewords Ci and C 2 start at two different symbols, which are offset by a single symbol period. This ambiguity is overcome using the addition and subtraction of an appropriate constant string, as noted above.
  • Fig. 3 is a flow chart that schematically illustrates a method for error detection coding and decoding, in accordance with an embodiment of the present invention. The method is described, for the sake of clarity, with reference to the components of system 20 (Fig. 1) and signals 40 (Fig. 2), but it may similarly be implemented in substantially any system that uses error detection coding and any type of signals.
  • the initial steps of the method (through step 56) are performed by transmitter 22, while the remaining steps are performed by receiver 26.
  • encoder 28 reads the constant string r from memory 30, at a constant selection step 50.
  • the string r is chosen such that its polynomial P r is not a member of any of the linear subspaces Vi, as defined above.
  • P r polynomial polynomial polynomial polynomial polynomial polynomial
  • r be "balanced, " containing approximately equal numbers of ones and zeros.
  • Encoder 28 computes an error correction code (ECC) , or other error detection code, over the string of input data, at an encoding step 52.
  • ECC error correction code
  • the encoder adds the resulting codeword (by XOR) to the constant string, at an addition step 54.
  • the encoder passes the resulting output stream to modulator 32, which modulates a signal with a sequence of symbols representing the output stream, and transmits the signal over link 24, at a modulation step 56.
  • Demodulator 34 receives and demodulates the signal, at a demodulation step 60.
  • the demodulator recovers and outputs a sequence of symbols to decoder 36, which attempts to locate the start point of the codeword in the sequence, at a start point identification step 62. If the start point is uncertain (because of noise in the signal, for example) , the decoder may initially take the most likely start point, such as the beginning of the sequence C2 in Fig. 2. (Typically, the decoder will choose the start point at which the ECC, when checked, gives the smallest number of flipped bits.) Decoder 36 reads the constant string r from memory 38 and subtracts it (by XOR) from the data beginning at the chosen start point, at a constant string removal step 64.
  • the decoder then checks the ECC of the presumed codeword remaining after subtraction of the constant string, at an error checking step 66. If the codeword is acceptable (i.e., its remainder mod f is zero) , decoder 36 outputs the recovered data, at a data output step 68. Otherwise, the decoder returns to step 62 in order to try a different start point, and steps 62-66 are repeated until an acceptable codeword is found.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

A method for data protection includes computing a codeword over an input string of data in accordance with a predefined error detection code. A predetermined constant string is added to the codeword so as to generate an output string. A signal is modulated with a sequence of symbols representing the output string. Related systems and methods are also included.

Description

ERROR CORRECTION CODING WITH BLOCK SYNCHRONIZATION
FIELD OF THE INVENTION
The present invention relates generally to processing of data signals, and specifically to detection and correction of data errors.
BACKGROUND OF THE INVENTION
Error detection schemes are widely used in data transmission and storage. In many of these schemes, an error detection codeword is computed, using a predefined algorithm, over each block of data. The codeword contains the data along with additional redundancy bits. The codeword may subsequently be decoded in order to recover the data and verify that no errors have occurred. Some types of error detection codes, referred to as error correction codes, enable the receiver of a codeword not only to detect errors, but also to correct them. (In the context of the present patent application and in the claims, the term "error detection code" includes both error correction codes and other code types, such as cyclic redundancy check [CRC] codes, which detect but may not be able to correct errors.) Typically, the type of error correction code and its level of redundancy determine the number of errors that can be detected and the number of errors that can be corrected in any give data block.
Reed-Solomon (RS) codes are error-correcting codes that can be used to detect and correct multiple random symbol errors. By adding d check symbols to the data, a RS code can detect any combination of up to d symbol errors, and correct up to# d/2 errors. A message comprising m data symbols is encoded by viewing the symbols as coefficients of a polynomial p (x) of maximum degree m-1 over a finite field F of order n . The message polynomial p (x) is multiplied by a generator polynomial (or base polynomial) f (x) of degree d to give an output polynomial c (x) of degree L = m + d. The coefficients of the output polynomial are the codeword. The receiver can divide the received polynomial by f (x) (using polynomial division) to determine whether the message is in error: A non-zero remainder means that an error has occurred.
SUMMARY
Embodiments of the present invention that are described hereinbelo provide methods, systems and software for improving the performance of error detection codes .
There is therefore provided, in accordance with an embodiment of the invention, a method for data protection, which includes computing a codeword over an input string of data in accordance with a predefined error detection code. A predetermined constant string is added to the codeword so as to generate an output string. A signal is modulated with a sequence of symbols representing the output string.
In some embodiments, the constant string is selected so as to resolve an ambiguity with respect to a start point of the sequence in decoding the signal. Typically, the constant string is selected so that within a range of possible start points extending over a predetermined number of the symbols in the series, only one of the start points will give a codeword satisfying the error correcting code following subtraction of the constant string from the data. Additionally or alternatively, the error detection code uses a base polynomial of a given degree, and the constant string is chosen so as to resolve the ambiguity up to a maximal shift of the start point that is determined by the degree of the base polynomial .
In a disclosed embodiment, adding the predetermined constant string includes selecting a given constant string after verifying that the given constant string is not a member of a predetermined set of one or more linear subspaces . The constant string may be a balanced string of ones and zeros, and adding the predetermined constant string may include computing an exclusive disjunction between the codeword and the constant string.
There is also provided, in accordance with an embodiment of the invention, a method for data protection, which includes receiving and demodulating a signal to recover a sequence of symbols. A start point in the recovered sequence is selected, and a predetermined constant string is subtracted from the data beginning at the selected start point. An error detection code is checked over the data remaining after subtracting the constant string.
When an error is detected in decoding the error detection code, a new start point may be selected in the recovered sequence from which to subtract the constant string and to check the error detection code until an acceptable codeword is found.
There is additionally provided, in accordance with an embodiment of the invention, apparatus for data protection, including an encoder, which is configured to compute a codeword over an input string of data in accordance with a predefined error detection code, and to add a predetermined constant string to the codeword so as to generate an output string. A modulator is configured to modulate a signal with a sequence of symbols representing the output string.
There is further provided, in accordance with an embodiment of the invention, apparatus for data protection, including a demodulator, which is configured to receive and demodulate a signal to recover a sequence of symbols. A decoder is configured to select a start point in the recovered sequence, to subtract a predetermined constant string from the data beginning at the selected start point, and to check an error detection code over the data remaining after subtracting the constant string.
There is moreover provided, in accordance with an embodiment of the present invention, a computer software product, including a tangible computer-readable medium in which program instructions are stored, which instructions, when read by a processor, cause the processor to compute a codeword over an input string of data in accordance with a predefined error detection code, and to add a predetermined constant string to the codeword so as to generate an output string, for application in modulating a signal with a sequence of symbols representing the output string. The present invention will be more fully understood from the following detailed description of the embodiments thereof, taken together with the drawings in which:
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a block diagram that schematically illustrates a data communication system, in accordance with an embodiment of the present invention;
Fig. 2 is a plot that schematically shows received signals over time, in accordance with an embodiment of the present invention; and
Fig. 3 is a flow chart that schematically illustrates a method for error detection coding and decoding, in accordance with an embodiment of the present invention .
DETAILED DESCRIPTION OF EMBODIMENTS
OVERVIEW
In order to decode a given error detection codeword within a stream of symbols, the receiver must generally be able to identify the symbol at which the codeword begins. Some communication protocols require the transmission of a particular preamble in order to signal the beginning of a data packet, and thus indicate the beginning of the next codeword unambiguously. In other systems, however, it may not be practical or desirable to use such a preamble, or the preamble may be blurred due to poor signal quality. In such situations, the start point of a codeword within a symbol stream may be uncertain .
If the receiver chooses the wrong starting point for a given codeword, it would normally be expected that decoding the resulting shifted sequence of symbols will lead to detection of an error. The inventor has found, however, that in certain cases this shifted sequence of symbols may, by coincidence, also be a valid codeword. For example, in the case of RS coding, as described above, the shifted symbol sequence may be divisible by the base polynomial f(x) . In consequence, the receiver may decode and output an erroneous data result.
In order to resolve this potential problem, in embodiments of the present invention, after computing a codeword over an input string of data in accordance with a certain error detection code, a predetermined constant string is added to the codeword. In the context of binary data, "addition," as well as "subtraction," is performed by exclusive disjunction (XOR) of the codeword with the constant string (although these arithmetic operations will be expressed differently in non-binary fields, as is known in the art) . The resulting output string is transmitted by modulating a signal with a sequence of symbols representing the output string.
A receiver of the signal chooses the apparent start point of the codeword and subtracts out the constant string. By appropriate choice of the constant string, as explained below, ambiguity with respect to the start point of the output string in the received symbol sequence can be resolved. In other words, decoding of the error detection code after subtraction of the constant string will give a correct result only if the correct start point has been chosen. Any shift of the start point - up to a certain maximum shift, which is a function of the degree of the error detection code - will yield an error upon decoding.
MATHEMATICAL FOUNDATIONS
To explain how the constant string is chosen, we first define the following terms:
• F is a fixed Galois field.
• A Block is an element of F. If F=G(2,n) , wherein n is a constant, each block is identified with a corresponding sequence of n bits.
• A String is a sequence of blocks.
• Lc is the length of the string c (in blocks) .
• A Full string is sequence of L blocks (for the given codeword length L) .
• a| |ib is the concatenation of the strings a and b. • A Base polynomial f is a fixed polynomial on the field F, which is used in generating and decoding RS codewords .
• d is the degree of f, also referred to as the "redundancy" of the code.
For each string c = { c0 Ci ... cL-i} in a received signal, an error correction decoder computes the corresponding polynomial Pc(x) = Co +C X +... cL-i . A string c = { c0 Ci ... cL-i} is acceptable if its polynomial Pc = 0 mod f. In cyclic Reed-Solomon coding (and CRC for the field Z2) , the base polynomial is chosen so that xL-l = 0 mod f.
As noted earlier, uncertainties in the received signal, particularly at the beginning and end of the codeword, may lead to situations in which the start point of the string is uncertain, and therefore the error correction code itself gives uncertain results. To illustrate this situation, we use the following terms:
• k is small natural number (in many practical cases k=l, although it may have any value satisfying k < d/2 and in the best case may have any value up to k = d-1) .
• a and b are short strings, La = L = k.
• m is an "almost full" string, Lm=L-k.
An ambiguous situation arises when a | | m and m\ \b both are acceptable results of error detection decoding. This sort of situation can occur, for example, when Pa = Pb = 0.
To avoid such situations, in embodiments of the present invention, the polynomial codeword c is modified before transmission by adding it (as an element of the field F) to a constant string r = { r0 ri ...
Figure imgf000010_0001
. As noted earlier, for the case of F = G(2,n), the addition is carried out by exclusive disjunction (XOR) . It can be shown that ambiguity of the start point of the codeword will be eliminated if the string r is chosen such that its polynomial Pr, of degree d, is not a member of any of the linear subspaces V± = {G±Pa+HiPb | for all a,b such that deg(Pa)<_/, deg ( P^) <_¾} for 1=1...k, wherein G± and H± are polynomials meeting the respective requirements that (x1- 1) G± = 1 mod f and (x-l) H± = xL mod f. (For the existence of G± and H±, it is sufficient to require that f is co- prime with (x-l) for all i = l...k.) It can be shown that in general, for a code of redundancy d, Pr satisfying the above criterion exists for any k = Ld/2j; and in the case of cyclic coding (in which xL-l = 0 mod f, as noted above), such Pr exists even for k = d-1.
Performing the above-mentioned XOR operation with r will prevent the occurrence of ambiguity in determining the starting point of the codeword upon decoding.
SYSTEM OPERATION
Fig. 1 is a block diagram that schematically illustrates a communication system 20, in accordance with an embodiment of the present invention. A transmitter 22 transmits data in the form of modulated signals over a communication link 24 to a receiver 26. Link 24 may comprise a wired or wireless link of any suitable type that is known in the art. Although only a single link is shown in the figure, the techniques of error correction coding and decoding that are described herein are equally effective over multiple successive links, and can be applied, as well, to data that are stored and later recalled. Transmitter 22 comprises an error correction code (ECC) encoder 28, which encodes blocks of input data into codewords using an appropriate encoding algorithm. Encoder 28 applies any suitable ECC algorithm known in the art, such as RS encoding, as described above. It then reads a constant string from a memory 30 and adds the string to the codeword in order to generate an output string for transmission. Criteria for selection of the constant string were presented in detail hereinabove. Typically, the codeword and constant string are binary strings of equal length, and the addition is performed by a XOR operation, as explained above. The constant string may be selected in advance and pre-stored in memory 30, or it may alternatively be computed and/or selected by encoder 28 as needed at the time of data encoding.
A modulator 32 converts the data bits of the codeword into symbols of an appropriate alphabet and modulates the signals transmitted over link 24 with the symbols. Such modulation may comprise time- and/or frequency-domain modulation of an electrical or optical carrier, as is known in the art. Alternatively, the modulation may be applied to an image or sequence of images, as described, for example, in the above-mentioned provisional patent application.
A demodulator 34 in receiver 26 extracts the symbols from the modulated signals on link 24 and passes the results to an ECC decoder 36. Before decoding each incoming codeword, the decoder aligns the received string, i.e., it finds the presumed start point of the codeword in the incoming symbol sequence. It then reads from a memory 38 the same constant string that was added by encoder 28 and subtracts the constant string (by XOR) from the received string, starting from the presumed start point. Decoder 36 applies error detection decoding to the result of the subtraction. If the decoder has chosen a shifted start point, decoding at this stage will give an error, and the decoder may try again with a different start point. When the correct start point has been found, decoder 36 will be able to successfully decode the codeword and output the recovered data.
Encoder 28 and decoder 36 typically comprise suitable hardware logic circuits, which may be implemented, for example, in application-specific integrated circuits (ASIC) or in programmable gate arrays. Alternatively, some or all of the functions of the encoder and/or decoder may be implemented in software, for execution by a suitable processor. The software may be downloaded to the processor in electronic form, over a network, for example, or it may, alternatively or additionally, be stored in tangible, computer-readable media, such as optical, magnetic, or electronic memory media.
Fig. 2 is a plot that schematically shows signals 40 received by receiver 26 over time, in accordance with an embodiment of the present invention. In this example, signals 40 are shown as comprising in-phase (I) and quadrature (Q) components, as are known in the art. Alternatively, the signals may comprise U and V chrominance components, as described in the above- mentioned provisional patent application, or any other number (one or more) and/or type of signal components. Signals 40 comprise peaks 42 corresponding to symbols that were transmitted by modulator 32, with a symbol period indicated by the ticks on the horizontal (time) axis in the figure.
Peaks 42 in signals 40, however, are masked by noise, and the peaks cannot be clearly distinguished in at least some of the symbol periods. As a result, demodulator 34 may output ambiguous results, and decoder 36 may be unable to determine with certainty where to place the start point of a given codeword. In Fig. 2, for example, two possible codewords Ci and C2 start at two different symbols, which are offset by a single symbol period. This ambiguity is overcome using the addition and subtraction of an appropriate constant string, as noted above.
Fig. 3 is a flow chart that schematically illustrates a method for error detection coding and decoding, in accordance with an embodiment of the present invention. The method is described, for the sake of clarity, with reference to the components of system 20 (Fig. 1) and signals 40 (Fig. 2), but it may similarly be implemented in substantially any system that uses error detection coding and any type of signals. The initial steps of the method (through step 56) are performed by transmitter 22, while the remaining steps are performed by receiver 26.
To begin the process, encoder 28 reads the constant string r from memory 30, at a constant selection step 50. The string r is chosen such that its polynomial Pr is not a member of any of the linear subspaces Vi, as defined above. For reliable reception of the signal in some symbol constellations, it is desirable that r be "balanced, " containing approximately equal numbers of ones and zeros. To choose the appropriate value of r, balanced strings can be tested at random until a string is found satisfying Pr £ V± for all I = l...k. For instance, for codewords of length L = 30 over the field F = GF(2,2), with redundancy d = 8 and cyclic coding, there are several polynomials that satisfy these criteria, and their use makes it possible to identify the start of the strings up to k = 7. As one example, the polynomial
P(x)= x8 + x7 + x6 + x5 + 3x4 + 2x3 + x2 + 2 may be used, with r = 011010101001011101110001101101110000000011000101 0011001010110011.
Encoder 28 computes an error correction code (ECC) , or other error detection code, over the string of input data, at an encoding step 52. The encoder adds the resulting codeword (by XOR) to the constant string, at an addition step 54. The encoder passes the resulting output stream to modulator 32, which modulates a signal with a sequence of symbols representing the output stream, and transmits the signal over link 24, at a modulation step 56.
Demodulator 34 receives and demodulates the signal, at a demodulation step 60. The demodulator recovers and outputs a sequence of symbols to decoder 36, which attempts to locate the start point of the codeword in the sequence, at a start point identification step 62. If the start point is uncertain (because of noise in the signal, for example) , the decoder may initially take the most likely start point, such as the beginning of the sequence C2 in Fig. 2. (Typically, the decoder will choose the start point at which the ECC, when checked, gives the smallest number of flipped bits.) Decoder 36 reads the constant string r from memory 38 and subtracts it (by XOR) from the data beginning at the chosen start point, at a constant string removal step 64. The decoder then checks the ECC of the presumed codeword remaining after subtraction of the constant string, at an error checking step 66. If the codeword is acceptable (i.e., its remainder mod f is zero) , decoder 36 outputs the recovered data, at a data output step 68. Otherwise, the decoder returns to step 62 in order to try a different start point, and steps 62-66 are repeated until an acceptable codeword is found.
It will be appreciated that the embodiments described above are cited by way of example, and that the present invention is not limited to what has been particularly shown and described hereinabove. Rather, the scope of the present invention includes both combinations and subcombinations of the various features described hereinabove, as well as variations and modifications thereof which would occur to persons skilled in the art upon reading the foregoing description and which are not disclosed in the prior art.

Claims

1. A method for data protection, comprising:
computing a codeword over an input string of data in accordance with a predefined error detection code;
adding a predetermined constant string to the codeword so as to generate an output string; and
modulating a signal with a sequence of symbols representing the output string.
2. The method according to claim 1, wherein the constant string is selected so as to resolve an ambiguity with respect to a start point of the sequence in decoding the signal.
3. The method according to claim 2, wherein the constant string is selected so that within a range of possible start points extending over a predetermined number of the symbols in the series, only one of the start points will give a codeword satisfying the error correcting code following subtraction of the constant string from the data.
4. The method according to claim 2 or claim 3, wherein the error detection code uses a base polynomial of a given degree, and wherein the constant string is chosen so as to resolve the ambiguity up to a maximal shift of the start point that is determined by the degree of the base polynomial.
5. The method according to any of claims 1-4, wherein adding the predetermined constant string comprises selecting a given constant string after verifying that the given constant string is not a member of a predetermined set of one or more linear subspaces .
6. The method according to any of claims 1-5, wherein the constant string is a balanced string of ones and zeros .
7. The method according to any of claims 1-6, wherein adding the predetermined constant string comprises computing an exclusive disjunction between the codeword and the constant string.
8. The method according to claim 1, and comprising:
receiving and demodulating the signal to recover the sequence of the symbols;
selecting a start point in the recovered sequence; subtracting the constant string from the data beginning at the selected start point; and
checking the error detection code over the data remaining after subtracting the constant string.
9. A method for data protection, comprising:
receiving and demodulating a signal to recover a sequence of symbols;
selecting a start point in the recovered sequence; subtracting a predetermined constant string from the data beginning at the selected start point; and
checking an error detection code over the data remaining after subtracting the constant string.
10. The method according to claim 9, wherein checking the error correction code comprises:
detecting an error in decoding the error detection code; and
responsively to the error, selecting a new start point in the recovered sequence from which to subtract the constant string and to check the error detection code until an acceptable codeword is found.
11. Apparatus for data protection, comprising:
an encoder, which is configured to compute a codeword over an input string of data in accordance with a predefined error detection code, and to add a predetermined constant string to the codeword so as to generate an output string; and
a modulator, which is configured to modulate a signal with a sequence of symbols representing the output string .
12. The apparatus according to claim 11, wherein the constant string is selected so as to resolve an ambiguity with respect to a start point of the sequence in decoding the signal.
13. The apparatus according to claim 12, wherein the constant string is selected so that within a range of possible start points extending over a predetermined number of the symbols in the series, only one of the start points will give a codeword satisfying the error correcting code following subtraction of the constant string from the data.
14. The apparatus according to claim 12 or claim 13, wherein the error detection code uses a base polynomial of a given degree, and wherein the constant string is chosen so as to resolve the ambiguity up to a maximal shift of the start point that is determined by the degree of the base polynomial.
15. The apparatus according to any of claims 11-14, wherein the constant string is selected after verifying that the constant string is not a member of a predetermined set of one or more linear subspaces .
16. The apparatus according to any of claims 11-15, wherein the constant string is a balanced string of ones and zeros .
17. The apparatus according to any of claims 11-16, wherein the encoder is configured to add the predetermined constant string to the codeword by computing an exclusive disjunction between the codeword and the constant string.
18. The apparatus according to claim 11, and comprising a receiver, which is configured to receive and demodulate the signal to recover the sequence of the symbols, to select a start point in the recovered sequence, to subtract the constant string from the data beginning at the selected start point, and to check the error detection code over the data remaining after subtracting the constant string.
19. Apparatus for data protection, comprising:
a demodulator, which is configured to receive and demodulate a signal to recover a sequence of symbols; and a decoder, which is configured to select a start point in the recovered sequence, to subtract a predetermined constant string from the data beginning at the selected start point, and to check an error detection code over the data remaining after subtracting the constant string.
20. The apparatus according to claim 19, wherein the decoder is configured, upon detecting an error in decoding the error detection code, to select a new start point in the recovered sequence from which to subtract the constant string and to check the error detection code until an acceptable codeword is found.
21. A computer software product, comprising a tangible computer-readable medium in which program instructions are stored, which instructions, when read by a processor, cause the processor to compute a codeword over an input string of data in accordance with a predefined error detection code, and to add a predetermined constant string to the codeword so as to generate an output string, for application in modulating a signal with a sequence of symbols representing the output string.
PCT/IB2012/050003 2011-03-16 2012-01-02 Error correction coding with block synchronization Ceased WO2012123826A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161465270P 2011-03-16 2011-03-16
US61/465,270 2011-03-16
US201161518423P 2011-05-05 2011-05-05
US61/518,423 2011-05-05

Publications (1)

Publication Number Publication Date
WO2012123826A1 true WO2012123826A1 (en) 2012-09-20

Family

ID=45509585

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2012/050003 Ceased WO2012123826A1 (en) 2011-03-16 2012-01-02 Error correction coding with block synchronization

Country Status (1)

Country Link
WO (1) WO2012123826A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3550082A (en) * 1966-03-17 1970-12-22 Bell Telephone Labor Inc Automatic synchronization recovery techniques for nonbinary cyclic codes
US6463564B1 (en) * 1999-09-14 2002-10-08 Maxtor Corporation Mis-synchronization detection system
US20070157060A1 (en) * 2006-01-04 2007-07-05 Ganga Ilango S Techniques to perform forward error correction for an electrical backplane

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3550082A (en) * 1966-03-17 1970-12-22 Bell Telephone Labor Inc Automatic synchronization recovery techniques for nonbinary cyclic codes
US6463564B1 (en) * 1999-09-14 2002-10-08 Maxtor Corporation Mis-synchronization detection system
US20070157060A1 (en) * 2006-01-04 2007-07-05 Ganga Ilango S Techniques to perform forward error correction for an electrical backplane

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CHANG L F ET AL: "Performance of a TDMA portable radio system using a block code for burst synchronization and error detection", PROC. IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE, 27 November 1989 (1989-11-27), pages 1371 - 1376, XP010083678 *
HAMMONS A R JR: "CRC-based techniques for combined burst synchronization and error detection in TDMA PCS systems", PROC. IEEE 46TH VEHICULAR TECHNOLOGY CONFERENCE 1996 (VTC 1996), ATLANTA, GA, USA, 28 APRIL-1 MAY 1996, NEW YORK, NY, USA,IEEE, US, vol. 1, 28 April 1996 (1996-04-28), pages 472 - 476, XP010162432, ISBN: 978-0-7803-3157-0, DOI: 10.1109/VETEC.1996.503492 *
PETERSON W W ET AL: "12 SYNCHRONIZATION OF BLOCK CODES", 1 January 1978, ERROR CORRECTING CODES, LONDON, MIT PRESS, GB, PAGE(S) 374 - 391, XP000808350 *

Similar Documents

Publication Publication Date Title
US7206992B2 (en) Decoding a received BCH encoded signal
US8020070B2 (en) Trapping set decoding for transmission frames
US6654926B1 (en) Soft decision maximum likelihood encoder and decoder
US5968198A (en) Decoder utilizing soft information output to minimize error rates
CA3193950C (en) Forward error correction with compression coding
KR100526222B1 (en) Decoder and decoding method
CN106506011B (en) Power-frequency communication of electric encoding error correction scheme
US10355818B1 (en) Method and apparatus for codeword boundary detection for a scrambled reed solomon code bitstream
US10826533B2 (en) Methods, systems, and computer-readable media for decoding a cyclic code
US20080082896A1 (en) Burst error correction with offset for correction vector based on fire code
WO2012123826A1 (en) Error correction coding with block synchronization
CN114070463B (en) Communication device and communication system for transmitting data by using multi-layer coding
JP3269035B2 (en) Decryption device
JP5895238B2 (en) COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM
JP4854686B2 (en) Decoding device and communication system
US7313748B2 (en) FEC decoder and method
JP4708291B2 (en) Communications system
RU2834891C1 (en) Decoding device with hard and soft solutions for two-step concatenated code and modulation by type of junction c1-pl
KR100192801B1 (en) A circuit for measuring bit error rate of a reed-solomon decoder
JP2717987B2 (en) Phase uncertainty elimination method using shortened BCH code
JPH07183874A (en) Error correction decoding circuit and selective calling receiver
JPS625733A (en) Method and circuit for decoding
Chi et al. A fast Reed-solomon decoder using step-by-step algorithm
JPH0685693A (en) Error control method
HK1122416A (en) Apparatus and method for correcting errors using cyclic redundancy check

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12700732

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12700732

Country of ref document: EP

Kind code of ref document: A1