Detector error suppresion circuit and method

Abstract: Device and method of EEPR4 post processing in an EPR4 detection system to remove single bit errors by applying 1+D to the samples and comparing this to (1-D)(1+D) 3 to the detected EPR4 bits.

Description: The invention relates to electronic devices, and, more particularly, but not exclusively, to digital communications and storage with partial response sequential detectors. Figure 1a schematically illustrates a magnetic storage and retrieval system. In particular, writing data bits to storage on magnetic disk 111 proceeds as follows. Error correction coder 101 encodes data bits into error corrected bits by an error correction encoding method such as Reed-Solomon. Further, the error correction coding may include interleaving of blocks of bits. Next, modulation coder (channel coder) 103 codes blocks of bits output by error corrected coder 101 into blocks of bits using a runlength-limited code or other channel code which may include a parity bit for post processing removal of dominant errors. This modulation coding helps read timing recovery. These blocks may then be precoded. Then the (precoded) modulation coded bits drive the read/write head to set the magnetization orientation of domains on spinning magnetic disk 111; this stores the data bits. The reading of the stored data bits first amplifies (and filters) with amplifier 121 voltages induced in the read/write head 113 due to the transitions of magnetization orientation of domains on spinning disk 111. These voltages have the ideal form of a sequence of overlapping pulses, such as illustrated (after shape filtering) in Figures 2a-2c, with positive, negative, or zero amplitudes. The pulse overlaps imply intersymbol interference if the subsequent digital sampling includes contributions from more than one pulse; indeed, Figures 2a-2c indicate the ideal sampling times. Clocked analog-to-digital converter 123 samples and quantizes the sequence of pulses to form a digital output stream; there may be 64 or 128 quantization levels (a 6-bit or 7-bit converter with one sign bit and 5 or 6 magnitude bits). The Viterbi detector 125 performs a maximum likelihood data detection on the digital output stream. For partial response signaling various classes of frequency response for the signal channel prior to detection have been defined; and the class IV response appears particularly suitable for magnetic recording due to pulse shapes requiring minimal equalization. The partial response class IV channel is defined by a channel transfer function polynomial of the form (1-D)(1+D) N where N is a positive integer and D is a one period delay. Figures 2a-2c shows the pulse shapes for N = 1, 2, and 3; the corresponding pulses are termed PR4, EPR4, and E 2 PR4 (or EEPR4), respectively. Thus an (E)PR4 sensed voltage consists of a sequence of overlapping (E)PR4 pulses spaced one period apart and with positive, negative, or zero amplitudes depending upon the corresponding transitions of magnetization domain orientations. The sampling of the (E)PR4 sensed voltage yields the digital stream input to the detector, typically a sequence detector such as a maximum likelihood Viterbi decoder. Higher storage densities on a magnetic disk require more samples per induced pulse and consequent more overlap, and thus the higher order polynomial transfer functions are used. For example, storage densities of about 3 bits per PW50 (pulse width at half maximum amplitude) would use EEPR4 which has four nonzero samples per pulse; see Figure 2c. The demand for high density originates with small, portable devices such as notebook computers. Modulation decoder 127 is the inverse of modulation coder 103. Lastly, error correction decoder 129 deinterleaves and further corrects errors and recovers the data bits, hopefully with only minimal errors. Maximum likelihood detection of a digital stream with intersymbol interference can be described in terms of maximizing probabilities of paths through a trellis of state transitions (branches); each state corresponds to a possible pattern of recently received data bits and each stage of the trellis corresponds to a receipt of the next (noisy) input. For example, Figure 3 illustrates one stage (one step in time) in the trellis for an EPR4 detector; the states are labeled with three previous data bits (reflecting the three non-zero sampled values in the isolated pulse) and the branches are labeled 'with the bit for the branch transition plus the corresponding noiseless input sample target values: 2, 1, 0, -1, or -2. Figure 4 shows a prior art Viterbi detector which includes one add-compare-select (ACS) unit for each trellis state and a branch metric unit for each of the target levels t ij ; the survival register for each state is in the path memories block. Each branch metric unit computes the square of the difference between its target value and the noisy input sample value. Each ACS stores a metric for its state and has inputs for the appropriate branch metric computations and the related state metrics from other ACS units. At receipt of an input signal to the detector, each ACS adds its (two) input branch metric computations to the corresponding state metrics of the states emitting the branches; and then it compares these (two) sums and selects the smaller as the updated state metric for its state. Each state's survival register updates its contents to maintain a survival path for the state; that is, the sequence of selected bits (transitions) that have led to the updated state metric. The detected bits will correspond to the path with the smallest metric. At any time the maximum likelihood path through the trellis up to that time is the path traced backwards through the trellis starting from the state with the smallest state metric at that time and recursively using the branch previously selected as the branch into the traced-to state. That is, the survival register contents for the state with the smallest state metric. The length of the survival registers depends on the modulation code used. As the decision goes deeper into the survival registers, more of the contesting survival paths (versus the correct path) will be eliminated, the detected data will become more accurate. To further improve the performance of (E)PR4 channels, modulation codes have been proposed which add code constraints to eliminate the most common error events. An error event metric may be defined as the difference between the path metric for the correct path and path metric for the contender error path through the trellis that diverges from the correct path and later remerges. In EPR4 channels the minimum squared Euclidean distance (metric) between paths equals 4. The following pairs of bit sequences have trellis paths with this minimum error event metric: 00100 and 01010 (two consecutive transitions confused with four) 11011 and 10101 (complement of preceding) 01011 and 00101 (three consecutive transitions shifted) 10100 and 11010 (complement of preceding) xx0xx and xx1xx (single bit error) The first four errors have a common characteristic in that the error occurs when three or more consecutive transitions exist. Thus a modulation code which prevents three consecutive transitions (NRZI tribits) will preclude the foregoing errors except for the single bit error. However, removing all tribits yields a low code rate. Consequently, various codes such as W.Bliss, An 8/9 Rate Time-Varying Trellis code for High Density Magnetic Recording, Proc. 1997 IEEE Int. Mag. Conf. (April 1997) remove quadbits and limit tribits to certain positions within the codeword to regain code rate. But the problem of suppression of single bit errors persists. One approach adds a parity bit to codewords, but this lowers the code rate. The document "PERD: Partial Error Response Detection", IEEE TRANSACTIONS ON MAGNETICS, vol. 31, no. 6, November 1995, pages 3042-3044, by T. NISHIYA AND H. YAMAKAWA discloses a PRML detector, wherein a PRML error waveform, defined as the difference between the actual sampled waveform ((1+D) filtered) and the waveform estimated from the PRML outputs, is compared with dominant error patterns. If the distance is small, the PRML bit stream is assumed to be in error and is corrected in accordance with the error pattern for which the distance is smallest. Aspects of the present invention provide a device and method of single bit error suppression by post processing after Viterbi detection using a filtering of the difference of the ideal samples from the detected bit stream and the detector input sample stream. This has the advantages of increased accuracy with limited additional post processing. Preferred embodiments of the invention will now be described, by way of example only, and with reference to the accompanying drawings, in which: The drawings are heuristic for clarity; and Figures 1a-1d schematically illustrates first preferred embodiment system. Figures 2a-2c shows partial response class IV pulses. Figure 3 illustrates a stage of an EPR4 trellis. Figure 4 shows a Viterbi detector. Figure 5 has EPR4 pulses. Figures 6a-6b illustrate post processing. Figure 7 is experimental results. System overview As illustrated in Figures 1b-1d, the first preferred embodiments suppress single bit errors in an EPR4 channel by post processing after the initial EPR4 Viterbi detection. Post processor 151 (details in Figures 1c-1d) filters the detected bit sequence, filters the sample sequence prior to detection, and then filters the difference of the two filtered sequences to assess the likelihood of a single bit error. The particular filterings provide single bit error detection with low-complexity by using EEPR4-type filters. If the comparison indicates a likely single bit error, then the output is corrected. First preferred embodiment Figure 1b is an overall preferred embodiment detector system block diagram showing an EEPR4-type filtering post processor 151 added onto an EPR4 system. Blocks before the post processor consist of a complete EPR4 system, post processor 151 works as an independent block: the only two inputs to post processor 151 are the 5-target-level (-2, -1, 0, 1, and 2) EPR4 sampled data and the detected bit stream output from the EPR4 Viterbi detector. This architecture allows post processor 151 to be added to a standard EPR4 system to improve the bit error rate (BER) performance without altering the EPR4 system. Figure 1c is a block diagram of the first preferred embodiment post processor 151. The data path of the post processor can be broken down into two parts: the ideal data path and the sample data path. The ideal data path consists of four flip-flops, two multipliers (multiply by 2), and a four-input adder. The ideal data path filters the output bit stream X[k] of the EPR4 Viterbi detector (which is the maximum likelihood estimate of the bit stream initially recorded) with a filter that generates the ideal EEPR4 samples for such output bit stream: Y[k] = X[k] + 2*X[k-1] - 2*X[k-3] - X[k-4] Ideal EEPR4 samples have seven possible levels as compared to the five of ideal EPR4 samples. The EEPR4 transfer polynomial is (1-D)(1+D) 3 which can be expressed as (1-D)(1+D) 2 (1+D). And this is just the EPR4 transfer polynomial multiplied by (1+D). Therefore, the samples input to the EPR4 Viterbi detector 125 can be converted into corresponding EEPR4 samples by filtering them with a 1+D filter. Thus if the samples input to the EPR4 Viterbi detector 125 are denoted as z[k], the sample data path outputs (1+D)z[k] = z[k] + z[k-1]. Figure 1c illustrates the ideal data path in the upper center and the sample data path in the lower left. The sample data path includes delay 153 to compensate for the delay through Viterbi detector 125 and thus synchronize with the ideal data path. The error signal at time k, e[k], is defined as the difference of the sample data path output and the ideal data path output; that is, e[k] = (1+D)z[k] - Y[k] = z[k] + z[k-1] - Y[k]. Compute an error event metric E[k] by passing the error signal e[k] through a (1-D)(1+D) 3 filter; that is, E[k] = (1-D)(1+D) 3 e[k] illustrated as block 155 in Figure 1d. The error event metric is then passed through error validation block 157 to identify the position of possible single bit errors. If the error event metric E[k] satisfies the following conditions, a flag will be sent to the error correction block 161 to invert the polarity of the k-5 output bit: (1) The error event metric E[k] has the same sign as the e[k] input to the error sequence filter. (2) The magnitude of error event metric E[k] is larger than a preset threshold. (3) The magnitude of error event metric E[k] is a local maximum (|E[k]| is larger than both |E[k-1]| and |E[k+1]|). Figure 1d illustrates circuitry for testing these conditions within error validation block 157. Jitter analysis A heuristic analysis will help clarify the operation of the foregoing preferred embodiment post processing. A common single bit error arises from pulse jitter in which the pulse induced in a read head is offset in time; this offset may be due to raggedness of the boundary of the magnetic domains of opposite polarities. The pulse offset combined with state metric variation within the Viterbi detector can lead to the single bit detection error. In particular, presume a correct bit sequence ...011..., an erroneous bit sequence of ...001..., and the samples z[k] as shown in Figure 5; Figure 5 also shows the corresponding ideal correct samples and the ideal erroneous samples. That is, Figure 5 shows two ideal pulses and a delayed-by-jitter pulse in between the two ideal pulses. As illustrated in Figure 5, if an ideal pulse with samples 0, 1, 2, 1, 0 is delayed by δT where T is the sampling interval and δ is between 0 and 0.5, then the samples change to very roughly 0, 1-1.2δ, 2-δ 2 , 1+1.2δ, 1.2δ, where the 1.2 factor is an estimate of the slope of the sides of the pulse away from the top and bottom, and δ 2 is an estimate of the curvature at the top of the pulse. Thus the difference between the delayed samples and the ideal correct samples is 0, -1.2δ, -δ 2 , 1.2δ, 1.2δ. To emphasize the two successive 1.2δs (which correspond to the delay side of the correct pulse), filter with 1+D. This yields a filtered difference of 0, -1.28, -1.2δ-δ 2 , 1.2δ-δ 2 , 2.4δ, 1.2δ, 0 and corresponds to e[k]. Then locate this pattern in e[k] by filtering with a filter having a transfer function of shape roughly equal to that of the pattern to be detected. The EEPR4 transfer function of -1, -2, 0, 2, 1 has such a shape and is convenient to use because EEPR4 hardware and software already exist. Thus apply the -1, -2, 0, 2, 1 filter to generate the E[k] sequence as 0, -1.2δ, -3.6δ-δ 2 , -1.2δ-3δ 2 , 7.2δ-2δ 2 , 9.6δ+2δ 2 , 1.2δ+3δ 2 , -6δ+δ 2 , -4.8δ, -1.2δ. Now as δ increases towards 0.5 (which implies the pulse is approaching an offset of one half sampling period and a high error probability), the 9.6δ+δ 2 term will dominate and increase from 0 to about 5 as δ increases from 0 to 0.5. This suggests a threshold about 5 for use as condition (2) in the preferred embodiment error decision. A similar analysis for the difference between the jittered pulse samples and the ideal erroneous samples (which equals 0, 1-1.2δ, 1-δ 2 , -1+1.2δ, -1+1.2δ) yields E[k] as 0, 1-1.2δ, 4-3.6δ-δ 2 , 4-1.2δ-3δ 2 , -4+7.2δ-2δ 2 , -10+9.6δ+2δ 2 , -4+1.2δ+3δ 2 , 4-6δ+δ 2 , 4-4.8δ, 1-1.2δ. Of course, this difference equals the correct bit samples difference plus the error bit samples. The term -10+9.6δ+2δ 2 dominates and its magnitude decreases from 10 to about 5 as δ increases from 0 to 0.5. This agrees with the threshold of condition (2) being set equal to 5, and an error would be properly flagged by this E[k]. Note that the other terms of E[k] never exceed 4 in magnitude. Also, the overall filtering from error bit to E[k] is (1-D)(1+D) 3 (1-D)(1+D) 3 which has coefficients 1,4,4,-4,-10,-4,4,4,1. The -10 coefficient has magnitude just twice the threshold, aligns with the dominate 9.6δ+2δ 2 +ε term, and locates the error bit. Indeed, the magnitude of the -10 coefficient is more than twice that of the next largest magnitude coefficient. Figures 6a-6b numerically illustrate the foregoing with z[k] taken as roughly equal to 0, 0.5, 1.8, 1.5, 0.5, 0, as in Figure 5. Indeed, with the correct bit sequence detected by Viterbi detector 125, the post processing would be as follows. Using a subscript C for correct, the X C [k] sequence would be 0, 1, 1, 1, ...; the EEPR4 Y C [k] sequence 0, 1, 3, 3, 1, 0, 0; the error e C [k] sequence 0, -0.5, -0.7, 0.3, 1.0, 0.5, 0; and the error metric E C [k] sequence 0, -0.5, -1.7, -1.1, 0.6, 4.4, 1.1, 2.3, -2.0, -0.5 where (1+D)z[k] equal to 0, 0.5, 2.3, 3.3, 2.0, 0.5, 0, ... was used. Figure 6a illustrates these sequences and includes the ideal 0, 1, 2, 1, 0 EPR4 pulse for comparison. Conversely, if the erroneous bit sequence is detected by Viterbi detector 125 (due to, for example, differences in previously accumulated fluctuations in state metrics), then the post processing would be as follows. Using an E subscript for error, the X E [k] sequence would be 0, 0, 1, 1, 1, ...; the Y E [k] sequence 0, 0, 1, 3, 3, 1, 0; the e E [k] sequence 0, 0.5, 1.3, 0.3, -1.0, -0.5, 0; and the E E [k] sequence 0, 0.5, 2.3, 2.9, -0.4, -5.6, -2.9, 1.7, 2.0, 0.5. Figure 6b shows these sequences. Consider the criteria for setting the error flag and inverting the output bit: (1) e[k] and E[k] have the same sign. (2) E[k] exceeds a threshold. (3) |E[k]| is a local maximum. Criteria (1) and (3) are met for E C [k] values -1.7, 4.4, and -2.3, and for E E [k] values 2.9, -5.6, and 2.0 (allowing 0 to be either sign). Thus setting the threshold at about 5 would correct the single bit error in that the error metric E C [k] for the correctly detected bit sequence does not set the error flag, but the error metric E E [k] for the incorrectly detected bit sequence does set the error flag. Further preferred embodiments Other filterings of e[k] could be used in place of the EEPR4 filter of -1, -2, 0, 2, 1 to detect the basic pattern of e[k] which has the dominate positive term (i.e., 2.4δ) two samples after the dominate negative term (i.e., -1.2δ-δ 2 ). Thus a filter such as -1, 0, 1 would still fit the pattern: in this case E[k] sequence would become 0, -1.2δ, -1.2δ-δ 2 , 2.4δ-δ 2 , 3.6δ+δ 2 , δ 2 , -2.4δ, -1.2δ. Thus as δ increases from 0 to 0.5, the dominate term (3.6δ+δ 2 ) will approach about 2, so a threshold about 2 should be used. This agrees with the overall filtering of the error bit as (1-D)(1+D) 3 (1-D 2 ) which has coefficients 1, 2, -1, -4, -1, 2, 1. Thus one-half of the largest magnitude coefficient is 2, so the threshold should be 2. Note that for this -1, 0, 1 filter the ratio of the dominate term to the next largest term is (3.6δ+δ 2 )/(-2.4δ) = -1.7 as δ increases to 0.5. This matches the ratio for the -1,-2,0,2,1 filter of (9.6δ+2δ 2 )/(7.2δ-2δ 2 ) = 1.7 as δ increases to 0.5. Alternatively, the samples z[k] could be compared to the ideal EPR4 samples and filtered by EPR4 to generate E[k]. In this case the overall error bit filtering is (1-D)(1+D) 2 (1-D)(1+D) 2 which is just a rearrangement of the preceding: (1-D)(1+D) 2 (1-D)(1+D) 2 = (1-D)(1+D) 3 (1-D 2 ). Experimental results Figure 7 shows experimental results for the first preferred embodiment. By removing the single bit errors from the output using post processing and removing the consecutive transition errors with trellis coding, at user density of 3.0 the preferred embodiment post processor system shows a 1 dBN gain over a 16/17 code EPR4 system. Modifications The preferred embodiments can be modified in various ways while retaining the feature of a single bit error detection by comparison of the filtered difference between actual samples and ideal samples from the detected bit stream. For example, the user bit density could be varied, the filtering to detect changed with corresponding changes in thresholds, and so forth. Insofar as embodiments of the invention described above are implementable, at least in part, using a software-controlled programmable processing device such as a Digital Signal Processor, microprocessor or other processing device, it will be appreciated that a computer program for configuring the programmable device to implement the foregoing described methods is envisaged as an aspect of the present invention. Suitably, the computer program is stored on a carrier medium in machine or device readable form, for example in solid-state memory or magnetic memory such as disc or tape and the processing device utilises the program or a part thereof to configure it for operation. The computer program may be supplied from a remote source embodied in a communications medium such as an electronic signal, radio frequency carrier wave or optical carrier wave. Such carrier media are also envisaged as aspects of the present invention.

Claims: A method of correcting errors, comprising: (a) estimating information from a first sample stream which encodes information with a first encoding method; (b) comparing the difference between (i) said sample stream after a first filtering and (ii) an ideal sample stream created from said estimated information with a second encoding method, wherein said second encoding method emulates said first encoding method plus said first filtering; and (c) correcting said estimated information of (a) when said comparison of (b) indicates an error. The method of claim 1, wherein: (a) said first encoding method is EPR4; and (b) said second encoding method is EEPR4. A computer program comprising computer program means for configuring a processing device in accordance with claim 1 or 2. A computer program carrier medium carrying a computer program according to claim 3. A processing device configured in accordance with a computer program according to claim 3. A circuit for correcting errors, comprising: means (125) for estimating information from a first sample stream which encodes information with a first encoding method; means (155, 157) for comparing the difference between (i) said sample stream after a first filtering and (ii) an ideal sample stream created from said estimated information with a second encoding method, said second encoding method emulating said first encoding method plus said first filtering; and means (161) for correcting said estimated information when said means for comparing indicates an error.

Inventors: FU LEO, LEUNG MICHAEL, FU, LEO, LEUNG, MICHAEL
Applicants: TEXAS INSTRUMENTS INC, TEXAS INSTRUMENTS INCORPORATED
Application year: 2000
Main classification: G11B20
IPC codes: G11B20, G06F11, H03M13