US20080115041A1 - Error correction method and apparatus for predetermined error patterns - Google Patents

Error correction method and apparatus for predetermined error patterns Download PDF

Info

Publication number
US20080115041A1
US20080115041A1 US11/598,771 US59877106A US2008115041A1 US 20080115041 A1 US20080115041 A1 US 20080115041A1 US 59877106 A US59877106 A US 59877106A US 2008115041 A1 US2008115041 A1 US 2008115041A1
Authority
US
United States
Prior art keywords
error
terms
codeword
represent
syndrome
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
US11/598,771
Other versions
US7949927B2 (en
Inventor
Jihoon Park
Jaekyun Moon
Jun Lee
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.)
Samsung Electronics Co Ltd
University of Minnesota
Original Assignee
Samsung Electronics Co Ltd
University of Minnesota
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 Samsung Electronics Co Ltd, University of Minnesota filed Critical Samsung Electronics Co Ltd
Priority to US11/598,771 priority Critical patent/US7949927B2/en
Assigned to SAMSUNG ELECTRONICS CO., LTD., REGENTS OF THE UNIVERSITY OF MINNESOTA reassignment SAMSUNG ELECTRONICS CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LEE, JUN, MOON, JAEKYUN, PARK, JIHOON
Priority to KR1020070040925A priority patent/KR100881192B1/en
Priority to EP07120467A priority patent/EP1931034A3/en
Priority to CNA2007103003783A priority patent/CN101257310A/en
Publication of US20080115041A1 publication Critical patent/US20080115041A1/en
Application granted granted Critical
Publication of US7949927B2 publication Critical patent/US7949927B2/en
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/17Burst error correction, e.g. error trapping, Fire codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6331Error control coding in combination with equalisation

Definitions

  • Embodiments of the invention relate generally to an error correction method. More particularly, embodiments of the invention relate to an error correction method capable of correcting single occurrences of predetermined error patterns.
  • Error detection and correction techniques play an important role in a variety of communication systems where data is transmitted across noisy communication channels. As the data is transmitted across the noisy channels, it may become corrupted. However, the error detection and correction techniques allow the data to be restored to its original uncorrupted state.
  • redundant data such as a parity bit or a checksum may be combined with data to be transmitted, and then subsequently used to detect and correct errors in the data.
  • cyclic redundancy check CRC
  • data to be transmitted is modified by a generator polynomial to form a codeword.
  • codeword should be interpreted broadly to refer to data that has been modified to form a code.
  • the length of a codeword can vary, and a codeword may include multiple cycles of a cyclic code.
  • transmitted codeword will be used to refer to a codeword before it is decoded by a receiving device, and the term “detected codeword” will be used to refer to a codeword after it has decoded by a receiving device. Since errors can be introduced into the transmitted codeword during transmission, the transmitted codeword before transmission may be different from the detected codeword.
  • a given communication channel often tends to produce errors in specific patterns. Such patterns can often be discovered, for example, through observation, or from a priori knowledge of the channel's characteristics. Because the errors tend to occur in specific patterns, error correction techniques can take advantage of the known error patterns for a particular channel to determine how to best detect and correct the error patterns.
  • One example of how known error patterns can be used in error correction is to compute an estimated error signal for a detected codeword and then correlate the estimated error with the known error patterns. When this technique is successful, it produces an error pattern and a start position of the error pattern within the detected codeword.
  • the estimated error signal used in the above technique is typically computed as a difference between an equalized sequence and a convolution of the detected codeword and an equalizer target response.
  • the detected codeword is typically generated by performing a Viterbi-decoding operation on the equalized sequence, and the equalizer target response is a partial response of an equalizer used to produce the equalized sequence.
  • the above technique has a tendency to mis-correct errors, either by predicting a wrong type of error pattern among the known error patterns, or by predicting a wrong position of an error pattern within the detected codeword. Due to these mis-corrections, the above error-correction technique can have a negative impact on the performance of a communication system.
  • a method of detecting an error pattern in a codeword transmitted across a noisy communication channel comprises detecting the codeword, and generating a syndrome by applying a generator polynomial to the codeword.
  • the generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel.
  • the method further comprises determining a type of an error pattern in the codeword based on the syndrome or a shifted version of the syndrome, and determining a start position of the error pattern within the codeword.
  • an error correction apparatus comprises a Viterbi decoder adapted to receive a transmitted codeword and produce a detected codeword, and a syndrome computation unit adapted to receive the detected codeword and produce a syndrome by applying a generator polynomial to the detected codeword.
  • the generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel.
  • the apparatus further comprises an error type decision and list of possible positions (ETDLPP) unit adapted to determine a type of an error pattern in the detected codeword based on the syndrome produced by the syndrome computation unit, and further adapted to determine potential start positions of the error pattern within the detected codeword.
  • EDLPP error type decision and list of possible positions
  • the apparatus still further comprises a soft metric computation unit adapted to receive the transmitted codeword, the detected codeword, and the potential start positions produced by the ETDLLP unit and compute a start position of the error pattern within the detected codeword, and an error correction unit adapted to correct the error pattern in the detected codeword based on the type and start position of the error pattern.
  • a method of encoding data for transmission across a noisy communication channel comprises applying a generator polynomial to the data to produce a codeword.
  • the generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel.
  • FIG. 1 is a block diagram illustrating a technique for correcting error-patterns according to an embodiment of the present invention
  • FIG. 2 is a graph illustrating Bit Error Rates (BERs) of various error correction techniques for comparison purposes.
  • FIG. 3 is a graph illustrating Sector Error Rates (SERs) of various error correction techniques for comparison purposes.
  • SERs Sector Error Rates
  • ECCs block error correction codes
  • BCH codes are designed to have a minimum distance property that guarantees correction of up to “f” errors within a received data word.
  • interference-dominant channels such as a readback channel in a high-density magnetic recording apparatus, errors tend to occur in specific patterns.
  • Embodiments of the invention provide a new approach to designing error correction codes.
  • selected embodiments of the invention relating to cyclic codes allow the correction of the occurrence of any one of “L” known error patterns rather than “f” bit errors.
  • a list of “L” error patterns known to make up a large percentage of all observed errors related to a particular communication channel are detected by designing a generator polynomial adapted to produce a distinct syndrome set for each of the “L” error patterns.
  • the list of most common error patterns for a channel can be obtained from empirical data, computer simulation, or effective distance analysis of the channel, for example.
  • “syndrome set” here refers to a collection of syndromes, and the term “syndrome” denotes a remainder of a detected codeword or a message block when divided by a generator polynomial.
  • the process of determining a syndrome from a codeword will be referred to as “capturing” the syndrome.
  • each syndrome uniquely corresponds to a single error pattern among the list of known error patterns.
  • each syndrome also corresponds to either a precise position of the single error pattern within the detected codeword, or to a few possible positions.
  • the rate of the above-described code can be extended by applying the same generator polynomial to a considerably larger message block.
  • the larger message block is a block code that contains a finite number of information (message) bits and corresponding check bits.
  • a large message block can be encoded to achieve a high code rate under a certain constraint for the message block length.
  • the overall code length is constrained to be an integer multiple of a base code length.
  • the base code can be thought of as a cyclic block code for a message block, e.g., 6 message bits, multiplied by a generator polynomial.
  • a captured syndrome uniquely identifies an error pattern from the list of known error patterns. However, it usually corresponds to more than one possible error pattern position.
  • a final decision regarding the position of an error pattern can be made by computing the maximum likelihood position based on the error pattern and a number of possible positions.
  • a biased form of soft metric can be used to reduce the probability of mis-correction, i.e., correction of the wrong error pattern or correction of an error pattern at a wrong position.
  • the base code is designed by applying a generator polynomial for a cyclic code to a set of information (message) bits.
  • the generator polynomial is designed to produce distinct syndrome sets for a given list of known error patterns.
  • a set (cycle) of syndromes corresponds to all possible cyclic shifts of a given error polynomial.
  • the syndrome sets corresponding to the targeted error patterns must all be different (which implies that the sets are also non-overlapping).
  • the generator polynomial may be beneficially designed in such a way that the syndrome sets for the known dominant error patterns are all distinct.
  • the generator polynomial is designed to generate distinct syndrome sets for the known set of dominant error patterns, rather than for low-weight error events, as is done in traditional ECC design.
  • One starting point for designing a base code according to selected embodiments of the invention is to establish conditions that will allow targeted error polynomials to correspond to distinct sets of syndromes.
  • One such condition is as follows. Let c i (x) be a greatest common divisor (GCD) between a generator polynomial g(x) and an error polynomial e i (x). It can be shown that if each c i (x) is different, then the respective syndrome sets corresponding to error polynomials e i (x) are all different.
  • GCD greatest common divisor
  • a lower degree generator polynomial g(x) that can yield distinct syndrome sets for all targeted error polynomials.
  • Such a generator polynomial can be searched by starting from a general form (e.g., a least common multiple (LCM) of all error polynomials e i (x)) given by equation (1) but with each power d j increased from zero.
  • a general form e.g., a least common multiple (LCM) of all error polynomials e i (x)
  • LCM least common multiple
  • a hyperbolic tangent transition response is assumed, with equalizer target response of 5+6D ⁇ D 3 at user density 1.4.
  • the user density is defined as ‘pw50/T’, where pw50 is a width over ⁇ 50% to 50% of the transition response saturation level, and T is a user bit period.
  • the parameter “D” here is a delay variable in a digital sequence.
  • the noise mixture is assumed to be 10% additive white Gaussian noise (AWGN) and 90% jitter noise.
  • AWGN additive white Gaussian noise
  • a Viterbi decoder with a branch metric modified to incorporate a pattern-dependent noise predictor (PDNP), with 4 prediction taps for each branch, is used.
  • the predictor taps operate on previous bits implied in a survivor path.
  • a Viterbi decoder based on a conventional Euclidean metric is also considered for comparison.
  • generator polynomial g(x) With generator polynomial g(x), the GCDs for the 5 dominant error patterns are (1+x), (1+x+x 2 ), (1+x) 3 , 1, and (1+x)(1+x+x 2 ), respectively. It turns out that as a bonus, this particular generator polynomial g(x) can also produce different syndrome sets for 5 extra error patterns outside the target set. This generator polynomial g(x) has period 12 and gives rise to a (12, 6) cyclic code.
  • Table II below shows syndrome sets in decimal numbers for 5 dominant error patterns as well as 5 non-dominant (but not completely negligible) error patterns in polynomial form.
  • the respective syndromes corresponding to the dominant error patterns in the list eventually repeat themselves as feedback shift register content reflecting the syndrome of each captured error pattern keeps shifting. Accordingly, only one syndrome in each syndrome set needs to be stored to recognize an error pattern. This assumes that a relatively small latency can be tolerated, for example, a maximum of 12 clock periods here, corresponding to the size of the largest syndrome set.
  • the base code can be extended with any positive integer “s” into a (ps, ps ⁇ r) cyclic code.
  • each syndrome while still corresponding to a particular error pattern in the list of known error patterns, also corresponds to a number of possible positions for that error pattern within the extended cyclic code. Because of the cyclic property of the code, the syndrome cycles now repeat over the entire length of the code.
  • the error pattern is identified as ⁇ [2, ⁇ 2], from Table II.
  • possible starting positions for this error pattern are ⁇ 1, 13, 25, . . . , 289 ⁇ . While certain positions can be ruled out by a bit polarity check based on the already determined error pattern, the most likely position of the error pattern can be found using a soft metric, with a modification to incorporate PDNP.
  • Using the soft metric is similar to running a correlator-based post-Viterbi correction processor.
  • One difference, however, is that here only one correlator matched to the identified error pattern is turned on for each received block.
  • only known possible positions are scanned to find a likely error start position.
  • introducing a bias term in the soft metric can generate additional information which can provide additional error correction capability and reduce the probability of mis-correction, as discussed below.
  • the soft metric can therefore be defined by the following equation (2):
  • ⁇ k p m p m ( i ) + l i + l n - 2 ⁇ [ ( r k - s ⁇ k ′ ) 2 - ( r k - s ⁇ k ) 2 + 2 ⁇ ( r k - s ⁇ k ′ ) ⁇ e i , k h ] . ( 2 )
  • r k represents an input sequence for a Viterbi decoder
  • ⁇ k represents a convolution of a length l h target response h k and an output sequence of the Viterbi decoder.
  • the term ⁇ ′ k represents a convolution of the target response h k and the corrected Viterbi output sequence according to the known error pattern e i (x), and e i,k h represents a convolution of e i (x) and h k .
  • n′ k and n k represent predicted noise sequences, based on the previous bits in survivor paths corresponding to the terms ⁇ ′ k and ⁇ k respectively.
  • an error pattern outside a known set of error patterns may map to the same syndrome as a known error pattern. These error patterns outside the set of known error patterns do not occur frequently, but they do occur with non-zero probabilities. However, based on the biased metric, these error patterns outside the set of known error patterns can be distinguished from dominant error patterns and corrected since their output energy is different in each case.
  • FIG. 1 A block diagram illustrating the first and second error correction techniques is shown in FIG. 1 .
  • stored data is encoded by an encoder to form a codeword to be transmitted through a readback channel.
  • the codeword is transmitted through the readback channel and then reshaped by an adaptive equalizer. After the codeword is reshaped by the adaptive equalizer, it is input to a Viterbi decoder 106 and a soft metric computation unit 116 .
  • Viterbi decoder 106 performs a Viterbi decoding operation on the codeword to produce a detected codeword.
  • Syndrome computation unit 108 then computes a syndrome based on the detected codeword.
  • Syndrome computation unit 108 outputs the computed syndrome to an error type decision and list of possible positions (ETDLPP) unit 110 .
  • ETDLPP unit 110 computes a predicted error pattern type in the detected codeword based on the computed syndrome or a shifted version of the syndrome.
  • ETDLPP unit 110 also computes potential starting positions of an error pattern within the detected codeword based on a syndrome set corresponding to the syndrome, and a pattern polarity check of the predicted error pattern type.
  • Soft metric computation unit 116 computes a biased soft metric over the potential error starting positions to discriminate between error patterns outside a set of predetermined error patterns and error patterns inside the set of predetermined error patterns. As a result, soft metric computation unit 116 outputs an actual error starting position based on a conditional maximum likelihood metric.
  • a correction unit 120 corrects an error within the detected codeword based on the predicted error pattern type and the actual error starting position.
  • FIG. 2 shows a graph illustrating Bit Error Rates (BERs) of various error correction techniques.
  • the data illustrated in FIG. 2 is based on a readback channel having a target response of 5+6D ⁇ D 3 for 10% AWGN and 90% jitter noise.
  • CRC cyclic redundancy check
  • the signal-to-noise ratio (SNR) has been defined as a ratio of the energy of the first derivative of the transition response E dt to the noise spectral density N90, which signifies 90% jitter noise.
  • FIG. 3 shows sector error rate for these techniques in a system with a readback channel having a target response of 5+6D ⁇ D 3 for 10% AWGN and 90% jitter noise.
  • An (n, k, f) Reed-Solomon (RS) code can correct up to “f” symbol errors in an “n” symbol code block that includes “k” information symbols.
  • the sector error rate of an error correction process using an outer RS code will be described below.
  • One popular way of computing the sector error rate of an error correction process using an outer RS code is based on a multinomial distribution for the probabilities of symbol errors associated with lengths.
  • the probabilities p i are estimated from the captured symbol error statistics.
  • a shortened RS code based on GF(2 10 ) is used. Since an (n, k, t) shortened RS code can correct up to “f” symbol errors in a sector and does not require an interleaving, the SER is simply given by the following equation (5):
  • FIG. 3 compares the SERs of a technique according to selected embodiments of the invention with a (300, 296) CRC-based post-Viterbi processor.
  • an error pattern-control cyclic code is developed that targets a set of known dominant error patterns.
  • a generator polynomial is tailored to a specific set of dominant error patterns to produce distinct sets of syndromes for the known dominant error patterns.
  • the type and number of possible positions for error patterns that occur can be determined based on its syndrome.
  • a soft metric is used to find a most-likely error position.
  • a biased soft metric is also proposed that can improve the performance, by a small margin, by correcting additional error patterns as well as reducing mis-correction probability.

Abstract

In a method of detecting an error pattern in a codeword transmitted across a noisy communication channel, a codeword is detected. A syndrome is then generated by applying a generator polynomial to the codeword. The generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel. A type of an error pattern within the codeword is detected based on the syndrome or a shifted version of the syndrome, and then a start position of the error pattern within the codeword.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • Embodiments of the invention relate generally to an error correction method. More particularly, embodiments of the invention relate to an error correction method capable of correcting single occurrences of predetermined error patterns.
  • 2. Description of Related Art
  • Error detection and correction techniques play an important role in a variety of communication systems where data is transmitted across noisy communication channels. As the data is transmitted across the noisy channels, it may become corrupted. However, the error detection and correction techniques allow the data to be restored to its original uncorrupted state.
  • Most error detection and correction techniques involve transmitting some form of redundant data across a communication channel together with a data payload. For example, redundant data such as a parity bit or a checksum may be combined with data to be transmitted, and then subsequently used to detect and correct errors in the data.
  • One common technique used for error detection and correction is cyclic redundancy check (CRC). In this technique, data to be transmitted is modified by a generator polynomial to form a codeword. Here, the term codeword should be interpreted broadly to refer to data that has been modified to form a code. The length of a codeword can vary, and a codeword may include multiple cycles of a cyclic code. The term “transmitted codeword” will be used to refer to a codeword before it is decoded by a receiving device, and the term “detected codeword” will be used to refer to a codeword after it has decoded by a receiving device. Since errors can be introduced into the transmitted codeword during transmission, the transmitted codeword before transmission may be different from the detected codeword.
  • A given communication channel often tends to produce errors in specific patterns. Such patterns can often be discovered, for example, through observation, or from a priori knowledge of the channel's characteristics. Because the errors tend to occur in specific patterns, error correction techniques can take advantage of the known error patterns for a particular channel to determine how to best detect and correct the error patterns.
  • One example of how known error patterns can be used in error correction is to compute an estimated error signal for a detected codeword and then correlate the estimated error with the known error patterns. When this technique is successful, it produces an error pattern and a start position of the error pattern within the detected codeword.
  • The estimated error signal used in the above technique is typically computed as a difference between an equalized sequence and a convolution of the detected codeword and an equalizer target response. The detected codeword is typically generated by performing a Viterbi-decoding operation on the equalized sequence, and the equalizer target response is a partial response of an equalizer used to produce the equalized sequence.
  • Unfortunately, the above technique has a tendency to mis-correct errors, either by predicting a wrong type of error pattern among the known error patterns, or by predicting a wrong position of an error pattern within the detected codeword. Due to these mis-corrections, the above error-correction technique can have a negative impact on the performance of a communication system.
  • SUMMARY OF THE INVENTION
  • According to one embodiment of the invention, a method of detecting an error pattern in a codeword transmitted across a noisy communication channel comprises detecting the codeword, and generating a syndrome by applying a generator polynomial to the codeword. The generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel. The method further comprises determining a type of an error pattern in the codeword based on the syndrome or a shifted version of the syndrome, and determining a start position of the error pattern within the codeword.
  • According to another embodiment of the invention, an error correction apparatus comprises a Viterbi decoder adapted to receive a transmitted codeword and produce a detected codeword, and a syndrome computation unit adapted to receive the detected codeword and produce a syndrome by applying a generator polynomial to the detected codeword. The generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel. The apparatus further comprises an error type decision and list of possible positions (ETDLPP) unit adapted to determine a type of an error pattern in the detected codeword based on the syndrome produced by the syndrome computation unit, and further adapted to determine potential start positions of the error pattern within the detected codeword. The apparatus still further comprises a soft metric computation unit adapted to receive the transmitted codeword, the detected codeword, and the potential start positions produced by the ETDLLP unit and compute a start position of the error pattern within the detected codeword, and an error correction unit adapted to correct the error pattern in the detected codeword based on the type and start position of the error pattern.
  • According to yet another embodiment of the invention, a method of encoding data for transmission across a noisy communication channel comprises applying a generator polynomial to the data to produce a codeword. The generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The invention is described below in relation to several embodiments illustrated in the accompanying drawings. Throughout the drawings like reference numbers indicate like exemplary elements, components, or steps. In the drawings:
  • FIG. 1 is a block diagram illustrating a technique for correcting error-patterns according to an embodiment of the present invention;
  • FIG. 2 is a graph illustrating Bit Error Rates (BERs) of various error correction techniques for comparison purposes; and,
  • FIG. 3 is a graph illustrating Sector Error Rates (SERs) of various error correction techniques for comparison purposes.
  • DESCRIPTION OF EXEMPLARY EMBODIMENTS
  • Exemplary embodiments of the invention are described below with reference to the corresponding drawings. These embodiments are presented as teaching examples. The actual scope of the invention is defined by the claims that follow.
  • Conventional block error correction codes (ECCs), such as BCH codes, are designed to have a minimum distance property that guarantees correction of up to “f” errors within a received data word. However, in interference-dominant channels, such as a readback channel in a high-density magnetic recording apparatus, errors tend to occur in specific patterns.
  • Although conventional error correction codes can correct some of these frequently observed error patterns, they are not very effective in correcting against all types of error patterns. For example, conventional techniques often fail to correct error patterns with a large number of non-zero bits, i.e., error patterns with high weights.
  • Embodiments of the invention provide a new approach to designing error correction codes. For example, selected embodiments of the invention relating to cyclic codes allow the correction of the occurrence of any one of “L” known error patterns rather than “f” bit errors.
  • In one embodiment of the invention, a list of “L” error patterns known to make up a large percentage of all observed errors related to a particular communication channel are detected by designing a generator polynomial adapted to produce a distinct syndrome set for each of the “L” error patterns. In general, the list of most common error patterns for a channel can be obtained from empirical data, computer simulation, or effective distance analysis of the channel, for example.
  • The term “syndrome set” here refers to a collection of syndromes, and the term “syndrome” denotes a remainder of a detected codeword or a message block when divided by a generator polynomial. The process of determining a syndrome from a codeword will be referred to as “capturing” the syndrome.
  • One property of the list of “L” error patterns is that no two error patterns within the list map to the same syndrome set, and a single occurrence of any one of the error patterns can be successfully detected. Within each syndrome set, each syndrome uniquely corresponds to a single error pattern among the list of known error patterns. In addition, each syndrome also corresponds to either a precise position of the single error pattern within the detected codeword, or to a few possible positions. By tailoring the generator polynomial specifically to the known set of error polynomials, the code becomes highly effective in handling the frequently observed error patterns.
  • The rate of the above-described code can be extended by applying the same generator polynomial to a considerably larger message block. The larger message block is a block code that contains a finite number of information (message) bits and corresponding check bits. A large message block can be encoded to achieve a high code rate under a certain constraint for the message block length. For example, to make the extended code cyclic, the overall code length is constrained to be an integer multiple of a base code length.
  • The base code can be thought of as a cyclic block code for a message block, e.g., 6 message bits, multiplied by a generator polynomial. The extended code is an extended version for a larger message block, e.g., 294 (=6×49) message bits, multiplied by the same generator polynomial. Although the extended code and the base code typically have the same number of check bits, the extended code has a much higher code rate, e.g., 0.5 (=6/12) for a (12,6) base code and 0.98 (=294/300) for a (300,294) extended code.
  • A captured syndrome uniquely identifies an error pattern from the list of known error patterns. However, it usually corresponds to more than one possible error pattern position. A final decision regarding the position of an error pattern can be made by computing the maximum likelihood position based on the error pattern and a number of possible positions. A biased form of soft metric can be used to reduce the probability of mis-correction, i.e., correction of the wrong error pattern or correction of an error pattern at a wrong position.
  • The design of a base code for encoding transmitted data is described in further detail below.
  • The base code is designed by applying a generator polynomial for a cyclic code to a set of information (message) bits. The generator polynomial is designed to produce distinct syndrome sets for a given list of known error patterns.
  • Let ei(x), i=1 . . . , L, represent a set of dominant error patterns in the form of polynomials with binary coefficients. In a cyclic code, a set (cycle) of syndromes corresponds to all possible cyclic shifts of a given error polynomial. To detect and correct a single occurrence of any error pattern from a list of dominant patterns, the syndrome sets corresponding to the targeted error patterns must all be different (which implies that the sets are also non-overlapping). Thus, the generator polynomial may be beneficially designed in such a way that the syndrome sets for the known dominant error patterns are all distinct.
  • Given a (p, p-r) cyclic code with a generator polynomial of degree “r”, the total number of distinct syndromes is 2r, and there are 2p possible error events (including the all-zero error event). Accordingly, where p>r, as in most efficient codes, there are more possible error events than distinct syndromes. As a result, it would be impossible to generate distinct syndrome sets for all possible error events. Therefore, the generator polynomial is designed to generate distinct syndrome sets for the known set of dominant error patterns, rather than for low-weight error events, as is done in traditional ECC design.
  • One starting point for designing a base code according to selected embodiments of the invention is to establish conditions that will allow targeted error polynomials to correspond to distinct sets of syndromes. One such condition is as follows. Let ci(x) be a greatest common divisor (GCD) between a generator polynomial g(x) and an error polynomial ei(x). It can be shown that if each ci(x) is different, then the respective syndrome sets corresponding to error polynomials ei(x) are all different.
  • Let pj(x), j=1, 2, . . . , K, be irreducible factors making up all error polynomials ei(x), and let dj be a maximum power in which pj(x) appears in any one error polynomial ei(x), i=1, 2, . . . , L. In this case, a generator polynomial of the form

  • g(x)=p 1 d 1 (x)p 2 d 1 (x)p 3 d 3 (x) . . . p K d K (x)  (1)
  • gives rise to distinct GCDs for all error polynomials ei(x).
  • There may exist a lower degree generator polynomial g(x) that can yield distinct syndrome sets for all targeted error polynomials. Such a generator polynomial can be searched by starting from a general form (e.g., a least common multiple (LCM) of all error polynomials ei(x)) given by equation (1) but with each power dj increased from zero. The search then finds a lowest degree generator polynomial g(x) in the form of equation (1) that gives either distinct ci(x) or else does not divide ei(x)+xρej(x), for any non-negative integer 92 , for which ci(x)=cj(x). This last condition ensures that the syndromes of ei(x) and xρej(x), are different.
  • As an example of a base code design for perpendicular recording, a hyperbolic tangent transition response is assumed, with equalizer target response of 5+6D−D3 at user density 1.4. The user density is defined as ‘pw50/T’, where pw50 is a width over −50% to 50% of the transition response saturation level, and T is a user bit period. The parameter “D” here is a delay variable in a digital sequence. The noise mixture is assumed to be 10% additive white Gaussian noise (AWGN) and 90% jitter noise.
  • For a decoder, a Viterbi decoder with a branch metric modified to incorporate a pattern-dependent noise predictor (PDNP), with 4 prediction taps for each branch, is used. The predictor taps operate on previous bits implied in a survivor path. A Viterbi decoder based on a conventional Euclidean metric is also considered for comparison.
  • TABLE I
    Dominant error patterns for Viterbi/PDNP decoders
    Viterbi Viterbi + PDNP Irreducible factors
    ±[2] 1
    ±[2, −2] ±[2, −2] (1 + x)
    ±[2, −2, 2] ±[2, −2, 2] (1 + x + x2)
    ±[2, −2, 2, −2] ±[2, −2, 2, −2] (1 + x)3
    ±[2, −2, 2, −2, 2] ±[2, −2, 2, −2, 2] (1 + x + x2 + x3 + x4)
    ±[2, −2, 2, −2, 2, −2] ±[2, −2, 2, −2, 2, −2] (1 + x)(1 + x + x2)2
    ±[2, −2, 2, −2, 2, −2, 2] (1 + x + x3)(1 + x2 +
    x3)
  • Table I lists dominant error patterns that make up 98.78% and 98.13% of the observed error patterns at BER=5×10−5 for the conventional Viterbi decoder and the Viterbi+PDNP decoder, respectively. While the error patterns ±[2] and ±[2, −2, 2, −2, 2, −2, 2] are among the dominant patterns with the conventional Viterbi decoder, they occur much less frequently at the output of the Viterbi+PDNP decoder. As the equalizer target response changes, the error pattern characteristics also change. The base code construction methodology according to embodiments of the present invention, however, remains the same.
  • As discussed earlier, if the GCDs between all dominant error polynomials and generator polynomial g(x) are different, then corresponding syndrome sets are also different. For the set of dominant error patterns for the Viterbi+PDNP decoder, there are three irreducible polynomial factors: (1+x), (1+x+x2) and (1+x+x2+x3+x4). A good choice for generator polynomial g(x) that can yield different GCDs for the dominant error patterns is generator polynomial g(x)=(1+x)4(1+x+x2)1 (1+x+x2+x3+x4)0=1+x+x2+x4+x5+x6. With generator polynomial g(x), the GCDs for the 5 dominant error patterns are (1+x), (1+x+x2), (1+x)3, 1, and (1+x)(1+x+x2), respectively. It turns out that as a bonus, this particular generator polynomial g(x) can also produce different syndrome sets for 5 extra error patterns outside the target set. This generator polynomial g(x) has period 12 and gives rise to a (12, 6) cyclic code.
  • Table II below shows syndrome sets in decimal numbers for 5 dominant error patterns as well as 5 non-dominant (but not completely negligible) error patterns in polynomial form. The respective syndromes corresponding to the dominant error patterns in the list eventually repeat themselves as feedback shift register content reflecting the syndrome of each captured error pattern keeps shifting. Accordingly, only one syndrome in each syndrome set needs to be stored to recognize an error pattern. This assumes that a relatively small latency can be tolerated, for example, a maximum of 12 clock periods here, corresponding to the size of the largest syndrome set.
  • Note that the generator polynomial g(x)=(1+x)3(1+x+x2) also meets the design criterion that each known error pattern corresponds to a single syndrome set. However, generator polynomial g(x)=(1+x)3(1+x+x2) may be less effective than some other generator polynomials in terms of overall error pattern correction capability.
  • TABLE II
    Syndrome set computed by generator polynomial g(x) = 1 + x +
    x2 + x4 + x5 + x6
    Targeted error patterns Syndrome set in decimal number
    ±[2, −2]/±[2, −2, 2, −2, 2, [48, 24, 12, 6, 3, 58, 29,
    −2, 2, −2, 2, 2] 53, 33, 43, 46, 23]
    ±[2, −2, 2] [56, 28, 14, 7]
    ±[2, −2, 2, −2] [60, 30, 15]
    ±[2, −2, 2, −2, 2]/±[2, −2, 2, [62, 31, 52, 26, 13, 61, 37,
    −2, 2, −2, 2, −2, 2, 2, −2] 41, 47, 44, 22, 11]
    ±[2, −2, 2, −2, 2, −2] [63, 36, 18, 9]
    ±[2, −2, 0, 2, −2] [54, 27]
    ±[2, −2, 2, −2, 2, −2, 2]/±[2] [4, 2, 1, 59, 38, 19, 50, 25, 55, 32, 16, 8]
    ±[2, −2, 2, −2, 2, −2, 2, −2] [34, 17, 51]
    ±[2, −2, 2, −2, 2, −2, 2, −2, 2] [49, 35, 42, 21]
    ±[2, −2, 2, −2, 2, −2, 2, [45]
    −2, 2, −2, 2, −2]
  • A method of extending the base code will now be described below.
  • Once a degree-r generator polynomial g(x) of period “p” is designed, and a (p, p-r) base cyclic code is provided, the base code can be extended with any positive integer “s” into a (ps, ps−r) cyclic code. For example, with a generator polynomial g(x)=1+x+x2+x4+x5+x6 having a period 12, a (300, 294) extended cyclic code having a code rate of 0.98 can be formed.
  • In the extended cyclic code, each syndrome, while still corresponding to a particular error pattern in the list of known error patterns, also corresponds to a number of possible positions for that error pattern within the extended cyclic code. Because of the cyclic property of the code, the syndrome cycles now repeat over the entire length of the code.
  • For example, for the (300, 294) cyclic code, if the captured syndrome is 48 (in decimal notation), then the error pattern is identified as ±[2, −2], from Table II. However, since the syndrome repeats every 12 bits, possible starting positions for this error pattern are {1, 13, 25, . . . , 289}. While certain positions can be ruled out by a bit polarity check based on the already determined error pattern, the most likely position of the error pattern can be found using a soft metric, with a modification to incorporate PDNP.
  • Using the soft metric is similar to running a correlator-based post-Viterbi correction processor. One difference, however, is that here only one correlator matched to the identified error pattern is turned on for each received block. In addition, only known possible positions are scanned to find a likely error start position. Moreover, introducing a bias term in the soft metric can generate additional information which can provide additional error correction capability and reduce the probability of mis-correction, as discussed below.
  • For purposes of computing the soft metric, let ei(x)=(1+e1x+ . . . +xli−1) and pm, m=1, . . . j, . . . M, represent identified error patterns and M possible error pattern positions, respectively. The soft metric can therefore be defined by the following equation (2):
  • k = p m p m ( i ) + l i + l n - 2 [ ( r k - s ^ k ) 2 - ( r k - s ^ k ) 2 + 2 ( r k - s ^ k ) · e i , k h ] . ( 2 )
  • In equation (2), rk represents an input sequence for a Viterbi decoder, and ŝk represents a convolution of a length lh target response hk and an output sequence of the Viterbi decoder. The term ŝ′k represents a convolution of the target response hk and the corrected Viterbi output sequence according to the known error pattern ei(x), and ei,k h represents a convolution of ei(x) and hk.
  • Based on the foregoing, it can be shown that at each of the M positions, the above biased soft metric can be computed according to the following equation (3):
  • k = p m p m + l i + l n - 2 [ ( r k - s ^ k ) 2 - ( r k - s ^ k ) 2 + 2 ( r k - s ^ k ) · e i , k h ] = k = p m p m + l i + l n - 2 [ ( n k ) 2 - ( e i , k h + n k ) 2 + 2 n k · e i , k h ] - k = p m p m + l i + l n - 2 [ e i , k h ] 2 ( 3 )
  • In equation (3), the terms n′k and nk represent predicted noise sequences, based on the previous bits in survivor paths corresponding to the terms ŝ′k and ŝk respectively.
  • The noise-dependent terms are eliminated by the added term 2(rk−ŝ′k)·ei,k h in equation (3). Note that the soft metric gives a noise-free value of energy of a known output error sequence only when the position of a predicted error pattern matches an actual position of an error pattern (in the modulo fashion).
  • As illustrated by Table II, an error pattern outside a known set of error patterns may map to the same syndrome as a known error pattern. These error patterns outside the set of known error patterns do not occur frequently, but they do occur with non-zero probabilities. However, based on the biased metric, these error patterns outside the set of known error patterns can be distinguished from dominant error patterns and corrected since their output energy is different in each case.
  • Exemplary implementations of error correction techniques according to selected embodiments of the invention are described below. The performance of these implementations is evaluated by their overall bit error rate.
  • Simulations were performed for two different error correction techniques according to different embodiments of the present invention. In a first technique, denoted ‘proposed ECC I’, putative positions of known error patterns are identified using the conditional maximum likelihood (ML) metric, with PDNP incorporated. In a second technique, denoted ‘proposed ECC II’, the same procedure is performed as in the first technique, except that the second technique further incorporates the computation of the biased soft metric of equation (3). The biased metric of equation (3) enables correction of a few additional error patterns as well as reduction of a mis-correction probability. A block diagram illustrating the first and second error correction techniques is shown in FIG. 1.
  • Referring to FIG. 1, stored data is encoded by an encoder to form a codeword to be transmitted through a readback channel. The codeword is transmitted through the readback channel and then reshaped by an adaptive equalizer. After the codeword is reshaped by the adaptive equalizer, it is input to a Viterbi decoder 106 and a soft metric computation unit 116.
  • Viterbi decoder 106 performs a Viterbi decoding operation on the codeword to produce a detected codeword. Syndrome computation unit 108 then computes a syndrome based on the detected codeword. Syndrome computation unit 108 outputs the computed syndrome to an error type decision and list of possible positions (ETDLPP) unit 110. ETDLPP unit 110 computes a predicted error pattern type in the detected codeword based on the computed syndrome or a shifted version of the syndrome. In addition, ETDLPP unit 110 also computes potential starting positions of an error pattern within the detected codeword based on a syndrome set corresponding to the syndrome, and a pattern polarity check of the predicted error pattern type.
  • Soft metric computation unit 116 computes a biased soft metric over the potential error starting positions to discriminate between error patterns outside a set of predetermined error patterns and error patterns inside the set of predetermined error patterns. As a result, soft metric computation unit 116 outputs an actual error starting position based on a conditional maximum likelihood metric. A correction unit 120 corrects an error within the detected codeword based on the predicted error pattern type and the actual error starting position.
  • FIG. 2 shows a graph illustrating Bit Error Rates (BERs) of various error correction techniques. The data illustrated in FIG. 2 is based on a readback channel having a target response of 5+6D−D3 for 10% AWGN and 90% jitter noise.
  • For comparison purposes, the BERs of an uncoded Viterbi decoder, uncoded PDNP, and a post-Viterbi processor in conjunction with error detection coding are also shown, where a (300, 296) cyclic redundancy check (CRC) code generated by a generator polynomial g(x)=1+x3+x4 is used to encode the data. The signal-to-noise ratio (SNR) has been defined as a ratio of the energy of the first derivative of the transition response Edt to the noise spectral density N90, which signifies 90% jitter noise.
  • Techniques provided by various embodiments of the invention outperform the post-Viterbi processor. For example, at a BER of 10−5 in FIG. 2, ‘ECC I’ shows SNR gains of 0.67 dB and ‘ECC II’ shows SNR gains of 0.81 dB relative to other techniques.
  • The sector error rate performance of various error correction techniques according to selected embodiments of the invention is described below with reference to FIG. 3. In particular, FIG. 3 shows sector error rate for these techniques in a system with a readback channel having a target response of 5+6D−D3 for 10% AWGN and 90% jitter noise.
  • An (n, k, f) Reed-Solomon (RS) code can correct up to “f” symbol errors in an “n” symbol code block that includes “k” information symbols. The sector error rate of an error correction process using an outer RS code will be described below. One popular way of computing the sector error rate of an error correction process using an outer RS code is based on a multinomial distribution for the probabilities of symbol errors associated with lengths.
  • For example, for each length “i” symbol error, where i=1, . . . , k, we let xi and pi be a number and a probability of an error, respectively. The probability density function based on the multinomial distribution is then described by the following equation (4):
  • f X 1 , , X k ( x 1 , , x k ) = n ! n 1 ! x 2 ! x k + 1 ! · p 1 x 1 p 2 x 2 p k + 1 x k + 1 . ( 4 )
  • In equation (4), the terms xk+1 and pk+1 denote the number and probability of no erroneous symbols in a sector. Accordingly, Σi=1 k+1pi=1 and Σi=1 k+1xi=n. The probabilities pi are estimated from the captured symbol error statistics.
  • To compute the SER for a 512-information-byte sector, a shortened RS code based on GF(210) is used. Since an (n, k, t) shortened RS code can correct up to “f” symbol errors in a sector and does not require an interleaving, the SER is simply given by the following equation (5):

  • P sector=1−Σx 1 . . . Σx k f X 1 , . . . , X k (x 1 , . . . , x k)  (5)
  • In equation (5), the sum is computed over all combinations of x1, . . . , xk such that Σi=1 ki·xi≦t.
  • Assuming a (440, 410, 15) outer RS code, FIG. 3 compares the SERs of a technique according to selected embodiments of the invention with a (300, 296) CRC-based post-Viterbi processor. The technique according to selected embodiments of the invention shows a SNR gain of 0.71 dB at SER=10−12 relative to other techniques.
  • As described above, an error pattern-control cyclic code is developed that targets a set of known dominant error patterns. A generator polynomial is tailored to a specific set of dominant error patterns to produce distinct sets of syndromes for the known dominant error patterns. The type and number of possible positions for error patterns that occur can be determined based on its syndrome. A soft metric is used to find a most-likely error position. A biased soft metric is also proposed that can improve the performance, by a small margin, by correcting additional error patterns as well as reducing mis-correction probability.
  • The foregoing preferred embodiments are teaching examples. Those of ordinary skill in the art will understand that various changes in form and details may be made to the exemplary embodiments without departing from the scope of the present invention as defined by the following claims.

Claims (18)

1. A method of detecting an error pattern in a codeword transmitted across a noisy communication channel, the method comprising:
detecting the codeword;
generating a syndrome by applying a generator polynomial to the codeword, wherein the generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel;
determining a type of an error pattern in the codeword based on the syndrome or a shifted version of the syndrome; and,
determining a start position of the error pattern within the codeword.
2. The method of claim 1, further comprising correcting the error pattern based on the type of the error pattern and the start position of the error pattern.
3. The method of claim 1, wherein the start position of the error pattern is determined using maximum likelihood estimation and a biased soft metric.
4. The method of claim 1, wherein the codeword comprises an extended cyclic code.
5. The method of claim 1, wherein the generator polynomial is computed by the equation g(x)=p1 d 1 (x)p2 d 2 (x)p3 d 3 (x) . . . pK d K (x) wherein the terms pj(x): j ε {1, 2, . . . , K} represent irreducible factors making up error polynomials ei(x): i ε {1, 2, . . . , L} corresponding to the L error patterns, and the terms dj: j ε {1, 2, . . . , K} represent maximum powers in which each respective pj(x) appears in any one of error polynomials ei(x).
6. The method of claim 1, wherein the generator polynomial has the property that the greatest common divisors between the generator polynomial and a plurality of error polynomials corresponding to the “L” error patterns, respectively, are all distinct.
7. The method of claim 3, wherein the biased soft metric is computed by the equation
k = p m ( i ) p m ( i ) + l ( i ) + l h - 2 [ ( r k - s ^ k ) 2 - ( r k - s ^ k ) 2 + 2 ( r k - s ^ k ) · e i , k h ] ,
wherein the terms pj(x): j ε {1, 2, . . . , K} represent irreducible factors making up error polynomials ei(x): i ε {1, 2, . . . , L} corresponding to the L error patterns, the terms rk represent inputs to a Viterbi decoding process, the terms ŝk represent a convolution of a length lh target response hk of the communication channel with an output of the Viterbi decoding process, the terms ŝ′k represent a convolution of the target response with the output of the Viterbi decoding process, and the terms ei,k h represent a convolution of error polynomials ei(x) with the target response.
8. The method of claim 1, wherein determining the start position of the error pattern within the codeword comprises evaluating a period of the syndrome within the codeword and a bit polarity of the error pattern.
9. The method of claim 1, wherein determining the start position of the error pattern comprises computing a conditional maximum likelihood metric defined by the equation
k = p m ( i ) p m ( i ) + l ( i ) + l h - 2 [ ( r k - s ^ k - n k ) 2 - ( r k - s ^ k - n k ) 2 ] ,
wherein the terms pj(x): j ε {1, 2, . . . , K} represent irreducible factors making up error polynomials ei(x): i ε{1, 2, . . . , L} corresponding to the L error patterns, the terms rk represent inputs to a Viterbi decoding process, the terms ŝk represent a convolution of a length lh target response hk of the communication channel with an output of the Viterbi decoding process, the terms ŝ′k represent a convolution of the target response with the output of the Viterbi decoding process, and the terms n′k and nk represent a predicted noise sequence, based on the previous bits in survivor paths of the Viterbi decoding process and corresponding to the terms ŝ′k and ŝk.
10. An error correction apparatus, comprising:
a Viterbi decoder adapted to receive a transmitted codeword and produce a detected codeword;
a syndrome computation unit adapted to receive the detected codeword and produce a syndrome by applying a generator polynomial to the detected codeword, wherein the generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel;
an error type decision and list of possible positions (ETDLPP) unit adapted to determine a type of an error pattern in the detected codeword based on the syndrome produced by the syndrome computation unit, and further adapted to determine potential start positions of the error pattern within the detected codeword;
a soft metric computation unit adapted to receive the transmitted codeword, the detected codeword, and the potential start positions produced by the ETDLLP unit and compute a start position of the error pattern within the detected codeword; and,
an error correction unit adapted to correct the error pattern in the detected codeword based on the type and start position of the error pattern.
11. The apparatus of claim 10, wherein the transmitted codeword comprises an extended cyclic code.
12. The apparatus of claim 10, wherein the generator polynomial is computed by the equation g(x)=p1 d 1 (x)p2 d 2 (x)p3 d 3 (x) . . . pK d K (x), wherein the terms pj(x): j ε {1, 2, . . . , K} represent irreducible factors making up error polynomials ei(x): i ε{1, 2, . . . , L} corresponding to the L error patterns, and the terms dj: j ε{1, 2, . . . , K} represent maximum powers in which each respective pj(x) appears in any one of error polynomials ei(x).
13. The apparatus of claim 10, wherein the generator polynomial has the property that the greatest common divisors between the generator polynomial and a plurality of error polynomials corresponding to the “L” error patterns, respectively, are all distinct.
14. The apparatus of claim 10, wherein the soft metric computation unit computes the start position of the error pattern using the equation
k = p m ( i ) p m ( i ) + l ( i ) + l h - 2 [ ( r k - s ^ k ) 2 - ( r k - s ^ k ) 2 + 2 ( r k - s ^ k ) · e i , k h ] ,
wherein the terms pj(x): j ε {1, 2, . . . , K} represent irreducible factors making up error polynomials ei(x): i ε{1, 2, . . . . L} corresponding to the L error patterns, the terms rk represent inputs to a Viterbi decoding process, the terms ŝk represent a convolution of a length lh target response hk of the communication channel with an output of the Viterbi decoding process, the terms ŝ′k represent a convolution of the target response with the output of the Viterbi decoding process, and the terms ei,k h represent a convolution of error polynomials ei(x) with the target response.
15. The apparatus of claim 10, wherein the soft metric computation unit computes the start position of the error pattern using a conditional maximum likelihood metric defined by the equation
k = p m ( i ) p m ( i ) + l ( i ) + l h - 2 [ ( r k - s ^ k - n k ) 2 - ( r k - s ^ k - n k ) 2 ] ,
wherein the terms pj(x): j ε {1, 2, . . . , K} represent irreducible factors making up error polynomials ei(x): i ε{1, 2, . . . , L} corresponding to the L error patterns, the terms rk represent inputs to a Viterbi decoding process, the terms ŝk represent a convolution of a length lh target response hk of the communication channel with an output of the Viterbi decoding process, the terms ŝ′k represent a convolution of the target response with the output of the Viterbi decoding process, and the terms n′k and nk represent a predicted noise sequence, based on the previous bits in survivor paths of the Viterbi decoding process and corresponding to the terms ŝ′k and ŝk.
16. A method of encoding data for transmission across a noisy communication channel, the method comprising:
applying a generator polynomial to the data to produce a codeword, wherein the generator polynomial is adapted to produce a distinct syndrome set for each of “L” (L>1) different error patterns potentially introduced in the codeword during transmission across the communication channel.
17. The method of claim 16, wherein the generator polynomial has the property that the greatest common divisors between the generator polynomial and a plurality of error polynomials corresponding to the “L” error patterns, respectively, are all distinct.
18. The method of claim 16, wherein the generator polynomial is computed by the equation g(x)=p1 d 1 (x)p2 d 2 (x)p3 d 3 (x) . . . pK d K (x), wherein the terms pj(x): j ε {1, 2, K} represent irreducible factors making up error polynomials ei(x): i ε{1, 2, . . . , L} corresponding to the L error patterns, and the terms dj: j ε{1, 2, . . . , K} represent maximum powers in which each respective pj(x) appears in any one of error polynomials ei(x).
US11/598,771 2006-11-14 2006-11-14 Error correction method and apparatus for predetermined error patterns Expired - Fee Related US7949927B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US11/598,771 US7949927B2 (en) 2006-11-14 2006-11-14 Error correction method and apparatus for predetermined error patterns
KR1020070040925A KR100881192B1 (en) 2006-11-14 2007-04-26 A method of detecting an error pattern, an error correction apparatus, and a method of encoding data
EP07120467A EP1931034A3 (en) 2006-11-14 2007-11-12 Error correction method and apparatus for predetermined error patterns
CNA2007103003783A CN101257310A (en) 2006-11-14 2007-11-14 Method and device for correcting error of predetermining error type

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/598,771 US7949927B2 (en) 2006-11-14 2006-11-14 Error correction method and apparatus for predetermined error patterns

Publications (2)

Publication Number Publication Date
US20080115041A1 true US20080115041A1 (en) 2008-05-15
US7949927B2 US7949927B2 (en) 2011-05-24

Family

ID=39315178

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/598,771 Expired - Fee Related US7949927B2 (en) 2006-11-14 2006-11-14 Error correction method and apparatus for predetermined error patterns

Country Status (4)

Country Link
US (1) US7949927B2 (en)
EP (1) EP1931034A3 (en)
KR (1) KR100881192B1 (en)
CN (1) CN101257310A (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148129A1 (en) * 2006-12-14 2008-06-19 Regents Of The University Of Minnesota Error detection and correction using error pattern correcting codes
US20110110468A1 (en) * 2009-11-08 2011-05-12 Chih-Ching Yu Decoding circuit operating in response to decoded result and/or a plurality of viterbi target levels with pattern dependency
US20120011419A1 (en) * 2007-08-06 2012-01-12 Toshinori Araki Transmission system, method and program
US20130198583A1 (en) * 2012-01-30 2013-08-01 Broadcom Corporation Systematic Rate-Independent Reed-Solomon Erasure Codes
US20140136931A1 (en) * 2011-08-24 2014-05-15 Mitsubishi Electric Corporation Error-correcting decoder
US9009576B1 (en) * 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US10922210B2 (en) * 2019-02-25 2021-02-16 Microsoft Technology Licensing, Llc Automatic software behavior identification using execution record

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677221B2 (en) * 2008-01-02 2014-03-18 Apple Inc. Partial voltage read of memory
EP2181504A4 (en) * 2008-08-15 2010-07-28 Lsi Corp Rom list-decoding of near codewords
US8205144B1 (en) 2008-10-13 2012-06-19 Marvell International Ltd. Error event processing methods and systems
US8407563B2 (en) * 2008-12-31 2013-03-26 Stmicroelectronics, Inc. Low-complexity soft-decision decoding of error-correction codes
CN102077173B (en) 2009-04-21 2015-06-24 艾格瑞系统有限责任公司 Error-floor mitigation of codes using write verification
US8468432B2 (en) 2009-07-01 2013-06-18 Silicon Motion, Inc. Coder-decoder and method for encoding and decoding an error correction code
KR101314232B1 (en) * 2009-07-01 2013-10-02 실리콘 모션 인코포레이티드 Coding and decoding method and codec of error correction code
US8464142B2 (en) 2010-04-23 2013-06-11 Lsi Corporation Error-correction decoder employing extrinsic message averaging
US8499226B2 (en) 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8458555B2 (en) 2010-06-30 2013-06-04 Lsi Corporation Breaking trapping sets using targeted bit adjustment
US8504900B2 (en) 2010-07-02 2013-08-06 Lsi Corporation On-line discovery and filtering of trapping sets
US8768990B2 (en) 2011-11-11 2014-07-01 Lsi Corporation Reconfigurable cyclic shifter arrangement
KR101837099B1 (en) * 2012-07-05 2018-03-09 에스케이하이닉스 주식회사 Reconfigurable error correction code device
RU2012146685A (en) 2012-11-01 2014-05-10 ЭлЭсАй Корпорейшн DATABASE DETAILS DATABASE FOR DECODER BASED ON SPARED PARITY CONTROL
US9379739B2 (en) * 2014-08-11 2016-06-28 Qualcomm Incorporated Devices and methods for data recovery of control channels in wireless communications
US10379972B1 (en) 2016-11-02 2019-08-13 Seagate Technology Llc Minimizing reads for reallocated sectors
US10140180B1 (en) 2016-11-04 2018-11-27 Seagate Technology Llc Segment-based outer code recovery
US10243587B2 (en) 2017-02-08 2019-03-26 Hewlett Packard Enterprise Developmetn LP Managing results from list decode methods
KR102105428B1 (en) * 2018-08-29 2020-04-28 남서울대학교 산학협력단 Decoder for multi-error-correction of sec-code and the decoding method thereof
KR102205630B1 (en) * 2019-10-07 2021-01-21 고려대학교 산학협력단 Early termination apparatus for enhancing efficiency of code decoder and method thereof
KR20210138241A (en) 2020-05-12 2021-11-19 삼성전자주식회사 Memory controller, memory system and memory module

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5712861A (en) * 1994-07-12 1998-01-27 Mitsubishi Denki Kabushiki Kaisha Error correcting method and decoder with improved reliability
US6009552A (en) * 1997-06-18 1999-12-28 Motorola, Inc. Soft-decision syndrome-based decoder for convolutional codes
US6415112B1 (en) * 1998-11-13 2002-07-02 Canon Kabushiki Kaisha Toner remaining amount detecting device, toner remaining amount detecting method, process cartridge and electrophotographic image forming apparatus
US20020133778A1 (en) * 2001-02-05 2002-09-19 Anthony Bessios Parity-check coding for efficient processing of decoder error events in data storage, communication and other systems
US20030066021A1 (en) * 2001-10-03 2003-04-03 Luca Reggiani Process for decoding signals and system and computer program product therefore
US20030140303A1 (en) * 2002-01-23 2003-07-24 Litwin Louis Robert Dual chien search blocks in an error-correcting decoder
US6691278B1 (en) * 1999-10-13 2004-02-10 Maxtor Corporation Detecting errors in coded bit strings
US6823487B1 (en) * 2001-11-15 2004-11-23 Lsi Logic Corporation Method and apparatus for enhancing correction power of reverse order error correction codes
US7089483B2 (en) * 1999-07-12 2006-08-08 Maxtor Corporation Two stage detector having viterbi detector matched to a channel and post processor matched to a channel code
US7260766B2 (en) * 1999-08-10 2007-08-21 Intel Corporation Iterative decoding process
US7328395B1 (en) * 2004-04-13 2008-02-05 Marvell International Ltd. Iterative Reed-Solomon error-correction decoding
US7571372B1 (en) * 2005-06-23 2009-08-04 Marvell International Ltd. Methods and algorithms for joint channel-code decoding of linear block codes
US7644338B2 (en) * 2005-09-13 2010-01-05 Samsung Electronics Co., Ltd. Method of detecting and correcting a prescribed set of error events based on error detecting code

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3305966B2 (en) 1995-12-25 2002-07-24 ソニー株式会社 Data decoding apparatus and method, and data reproducing apparatus
JP2001251196A (en) 2000-03-08 2001-09-14 Hitachi Kokusai Electric Inc Reed-solomon decoding method and reed-solomon decoding device
KR100979366B1 (en) 2003-02-14 2010-08-31 주식회사 케이티 Decoder of Reed-Solomon code with variable error correcting capability
JP2005086683A (en) 2003-09-10 2005-03-31 Fanuc Ltd Error decoding circuit, data bus control method, and data bus system
KR100780958B1 (en) 2005-09-13 2007-12-03 삼성전자주식회사 Method for correcting and detecting based on error detection code and apparatus thereof

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5712861A (en) * 1994-07-12 1998-01-27 Mitsubishi Denki Kabushiki Kaisha Error correcting method and decoder with improved reliability
US6009552A (en) * 1997-06-18 1999-12-28 Motorola, Inc. Soft-decision syndrome-based decoder for convolutional codes
US6415112B1 (en) * 1998-11-13 2002-07-02 Canon Kabushiki Kaisha Toner remaining amount detecting device, toner remaining amount detecting method, process cartridge and electrophotographic image forming apparatus
US7089483B2 (en) * 1999-07-12 2006-08-08 Maxtor Corporation Two stage detector having viterbi detector matched to a channel and post processor matched to a channel code
US7260766B2 (en) * 1999-08-10 2007-08-21 Intel Corporation Iterative decoding process
US6691278B1 (en) * 1999-10-13 2004-02-10 Maxtor Corporation Detecting errors in coded bit strings
US20020133778A1 (en) * 2001-02-05 2002-09-19 Anthony Bessios Parity-check coding for efficient processing of decoder error events in data storage, communication and other systems
US20030066021A1 (en) * 2001-10-03 2003-04-03 Luca Reggiani Process for decoding signals and system and computer program product therefore
US6823487B1 (en) * 2001-11-15 2004-11-23 Lsi Logic Corporation Method and apparatus for enhancing correction power of reverse order error correction codes
US20030140303A1 (en) * 2002-01-23 2003-07-24 Litwin Louis Robert Dual chien search blocks in an error-correcting decoder
US7328395B1 (en) * 2004-04-13 2008-02-05 Marvell International Ltd. Iterative Reed-Solomon error-correction decoding
US7571372B1 (en) * 2005-06-23 2009-08-04 Marvell International Ltd. Methods and algorithms for joint channel-code decoding of linear block codes
US7644338B2 (en) * 2005-09-13 2010-01-05 Samsung Electronics Co., Ltd. Method of detecting and correcting a prescribed set of error events based on error detecting code

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080148129A1 (en) * 2006-12-14 2008-06-19 Regents Of The University Of Minnesota Error detection and correction using error pattern correcting codes
US8108759B2 (en) 2006-12-14 2012-01-31 Regents Of The University Of Minnesota Error detection and correction using error pattern correcting codes
US20120011419A1 (en) * 2007-08-06 2012-01-12 Toshinori Araki Transmission system, method and program
US8381048B2 (en) * 2007-08-06 2013-02-19 Nec Corporation Transmission system, method and program
US20110110468A1 (en) * 2009-11-08 2011-05-12 Chih-Ching Yu Decoding circuit operating in response to decoded result and/or a plurality of viterbi target levels with pattern dependency
US8276053B2 (en) * 2009-11-08 2012-09-25 Mediatek Inc. Decoding circuit operating in response to decoded result and/or a plurality of viterbi target levels with pattern dependency
US20140136931A1 (en) * 2011-08-24 2014-05-15 Mitsubishi Electric Corporation Error-correcting decoder
US20130198583A1 (en) * 2012-01-30 2013-08-01 Broadcom Corporation Systematic Rate-Independent Reed-Solomon Erasure Codes
US9287897B2 (en) * 2012-01-30 2016-03-15 Broadcom Corporation Systematic rate-independent Reed-Solomon erasure codes
US9009576B1 (en) * 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US10922210B2 (en) * 2019-02-25 2021-02-16 Microsoft Technology Licensing, Llc Automatic software behavior identification using execution record

Also Published As

Publication number Publication date
EP1931034A3 (en) 2009-03-18
US7949927B2 (en) 2011-05-24
KR100881192B1 (en) 2009-02-05
CN101257310A (en) 2008-09-03
KR20080043679A (en) 2008-05-19
EP1931034A2 (en) 2008-06-11
EP1931034A9 (en) 2009-04-22

Similar Documents

Publication Publication Date Title
US7949927B2 (en) Error correction method and apparatus for predetermined error patterns
US7644338B2 (en) Method of detecting and correcting a prescribed set of error events based on error detecting code
US8037394B2 (en) Techniques for generating bit reliability information in a post-processor using an error correction constraint
US9166623B1 (en) Reed-solomon decoder
US6848069B1 (en) Iterative decoding process
US9124298B2 (en) Low complexity error correction using cyclic redundancy check (CRC)
US8423873B2 (en) Decoding techniques for correcting errors using soft information
US7721185B1 (en) Optimized reed-solomon decoder
US7689893B1 (en) Iterative reed-solomon error-correction decoding
US8127216B2 (en) Reduced state soft output processing
US20090132894A1 (en) Soft Output Bit Threshold Error Correction
US20100146372A1 (en) Decoding of serial concatenated codes using erasure patterns
US7814394B2 (en) Post viterbi error correction apparatus and related methods
US7620879B2 (en) Method of detecting occurrence of error event in data and apparatus for the same
JP4379329B2 (en) CRC generator polynomial selection method, CRC encoding method, and CRC encoding circuit
US8156412B2 (en) Tree decoding method for decoding linear block codes
KR100780958B1 (en) Method for correcting and detecting based on error detection code and apparatus thereof
Guo et al. High-performance soft decision decoding for compound channel using RS-SPC concatenated codes
Park et al. GEN03-4: Cyclic Codes Tailored to a Known Set of Error Patterns
Park et al. High-rate error-correction codes targeting dominant error patterns
Xing et al. Shift-Sum Decoding of Non-Binary Cyclic Codes
Kaur Comparative Analysis of Error Correcting Codes for Noisy Channel
KR101257776B1 (en) Method and apparatus for encoing using state-check code
CHOUDHARY et al. Implementation of High-Rate Error-Detection Code Techniques for Perpendicular Recording using Cyclic Redundancy Check Code

Legal Events

Date Code Title Description
AS Assignment

Owner name: SAMSUNG ELECTRONICS CO., LTD., KOREA, REPUBLIC OF

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PARK, JIHOON;MOON, JAEKYUN;LEE, JUN;REEL/FRAME:021098/0786

Effective date: 20061102

Owner name: REGENTS OF THE UNIVERSITY OF MINNESOTA, MINNESOTA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PARK, JIHOON;MOON, JAEKYUN;LEE, JUN;REEL/FRAME:021098/0786

Effective date: 20061102

XAS Not any more in us assignment database

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:PARK, JIHOON;MOON, JAEKYUN;LEE, JUN;REEL/FRAME:018609/0246

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20150524