Low frequency noise is sometimes present in signals read back from magnetic storage (e.g., hard disk drive systems). For example, low frequency noise may be introduced by the read head of the storage system. One existing technique to remove low frequency noise involves reading the same location of the magnetic storage (e.g., the same sector) multiple times. Performing multiple reads of the same location is time consuming because the magnetic disk must complete multiple rotations in order for the read head to pass over that location multiple times. New and faster techniques for removing low frequency noise would be desirable.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings.
The invention can be implemented in numerous ways, including as a process; an apparatus; a system; a composition of matter; a computer program product embodied on a computer readable storage medium; and/or a processor, such as a processor configured to execute instructions stored on and/or provided by a memory coupled to the processor. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. Unless stated otherwise, a component such as a processor or a memory described as being configured to perform a task may be implemented as a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. As used herein, the term ‘processor’ refers to one or more devices, circuits, and/or processing cores configured to process data, such as computer program instructions.
A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured.
At 100, a corresponding set of decisions is determined for a set of samples in a signal. For example, samples which comprise a sector in hard disk storage may be input to a detector (e.g., a soft output Viterbi detector) and the detector outputs decisions. As used herein, yk is a sample at index or location k and {circumflex over (b)}k is a decision at index k.
At 102, for a given sample in the set of samples, low frequency noise is estimated based at least in part on (1) at least some samples from the set of samples and (2) at least some decisions from the set of decisions. In one example, a sample at index k is represented as:
where Ti is the target coefficient of the ith of N taps (e.g., in an equalizer), bk−i is the written (i.e., actual) bit on magnetic storage, nk is noise consisting of media noise and white noise, and Lk is low frequency noise which is removed using this technique. Using Equation (1), the following estimate for low frequency noise at index k may be obtained:
In Equation (2), T is a window size (expressed in number of samples) used for averaging, {circumflex over (b)} are the decisions used in the estimate, and y are the samples used in the estimate. Because the noise term n in Equation (1) is zero mean, it is attenuated by the averaging in the above {circumflex over (L)}k computation and, since the low frequency noise L is assumed to vary little during the average window, only the low frequency noise remains in the {circumflex over (L)}k estimate.
In some embodiments, T=Topt where the window size is an optimized window size where various values of T are simulated and the value of T which best removes low frequency noise is selected. In some embodiments, T is large enough such that the average of T noise samples has negligible standard deviation but is small enough so that the low frequency noise L has a non-zero average. An example of how the window size is selected is described in further detail below.
At 104, a reduced noise sample is generated by removing the low frequency noise estimate from the given sample. For example,
{tilde over (y)}k=yk−{circumflex over (L)}k (3)
where {tilde over (y)}k is a reduced noise sample at an index or location of k.
In some embodiments, the reduced noise sample is passed to an error correction decoder, such as a low-density parity check (LDPC) decoder. As described above, the process of
Read processor 200 retrieves stored information from hard disk drive storage 250. In this example, a read signal is passed from hard disk drive storage 250 to pre-processor 202. In various embodiments, pre-processor performs a variety of processing, including (but not limited to): analog to digital conversion, equalization, acquisition (e.g., phase and/or frequency adjustment of a sampling clock, etc.). In some embodiments, pre-processor 202 includes an equalizer and/or filter with N taps and each of the N taps has a coefficient Ti for the ith tap.
Samples at various indices (e.g., y) are passed from pre-processor 202 to buffer 204. In one conceptual example, buffer 204 manages samples according to sector and outputs samples for a next sector when so instructed. In some embodiments, buffer 204 is a first in, first out buffer. In some other embodiments, buffer 204 can be accessed out of order. In this example, buffer 204 stores samples for a given sector until that sector is successfully processed by soft output detector 208 and error correction decoder 210, at which point those samples are deleted from buffer 204.
During a first global iteration, the samples (y) for a given sector bypass decision directed low frequency noise remover 206 via multiplexer 205. In some embodiments, in the first global iteration, other decisions are used, such as from a low-latency detector (e.g., in addition to or as an alternative to samples (y) as is described above). Multiplexer 205 passes the samples (y, which have not had noise removal processing performed on them) at this first global iteration to soft output detector 208 which generates decisions ({circumflex over (b)}) using the samples. This is one example of step 100 in
Decisions ({circumflex over (b)}) are passed from soft output detector 208 to error correction decoder 210. In one example, error correction decoder 210 is a low-density parity check (LDPC) decoder. A single global iteration includes processing by both soft output detector 208 and error correction decoder 210, and so when error correction decoder 210 performs error correction decoding on the decisions, it is still the first global iteration.
In this example, if error correction decoder 210 is unable to successfully complete decoding during the first global iteration, decision directed low frequency noise remover 206 is used to remove low frequency noise from the second global iteration onwards. In various embodiments, decision directed low frequency noise removal begins at various points. In some embodiments, a programmable register is used to set the global iteration at which decision directed low frequency noise removal begins.
In the second global iteration, decision directed low frequency noise remover 206 estimates or calculates low frequency noise. In this particular example, Equation (2) is used to calculate {circumflex over (L)}k, which takes as input samples yk−T/2 through yk+T/2 and decisions {circumflex over (b)}k−(T/2)−(N−1) through {circumflex over (b)}k+T/2 where T is the window size and N is the number of taps of the equalization target in an equalizer. This is one example of step 102 in
through
come from buffer 204, and the decisions ({circumflex over (b)}) at indices k−T/2−(N−1) through
come nom son output detector 208 . . . ]
Once the low frequency noise estimate for a given index is determined, decision directed low frequency noise remover 206 removes it from the sample at the same index to produce a reduced noise sample (e.g., {tilde over (y)}k=yk−{circumflex over (L)}k, as described in Equation (3)). This is an example of step 104 in
In this second global iteration, multiplexer 205 selects the reduced noise samples ({tilde over (y)}) from decision directed low frequency noise remover 206. The reduced noise samples are thus input to soft output detector 208. During this second global iteration, not only are the samples which are input to the detector different (e.g., {tilde over (y)} instead of y), but soft information from error correction decoder 210 is available for use by soft output detector 208, which was not available during the first global iteration. After processing by soft output detector 208, error correction decoder 210 begins a second decoding attempt, which comprises part of the second global iteration.
In addition to the performance improvement shown, another benefit to decision directed low frequency noise removal is that it is much faster than some other noise removal techniques. For example, some other techniques rely upon reading the same sector over and over again in order to get multiple reads of the same sector. This is very time consuming because the amount of time for a magnetic disk to complete a full rotation is much longer than the amount of time to perform the decision directed noise removal technique described above.
Although decision directed low frequency noise removal is useful, there may be a situation in which some other low frequency noise removal technique is more attractive. Decision directed low frequency noise removal relies (as its name implies) on decisions and so if the quality of the decisions is poor, performance suffers. Returning to
At 500, a low frequency noise estimate is estimated for a given sample in a set of samples based at least in part on at least some samples from the set of samples. For example:
where T is the window size (as above in Equation (2)). Note that Equation (4) does not use decisions ({circumflex over (b)}) in its calculation for {circumflex over (L)}k, hence its name of non-decision directed low frequency noise removal. Another way of describing Equation (4) is that it is an average of the samples over a window of width T. In some embodiments, the window T for non-decision directed low frequency noise removal is much longer than the window T for decision directed low frequency noise removal.
At 502, a reduced noise sample is generated by removing the low frequency noise estimate from the given sample. For example, {tilde over (y)}k=yk−{circumflex over (L)}k where {circumflex over (L)}k calculated using Equation (4).
At 504, a set of decisions is determined based at last in part on the set of samples, wherein estimation does not take into consideration the set of decisions. Decisions are not, for example, fed back from the output of a soft output detector to the input of a low frequency noise remover (unlike
As in the example of
In this example, non-decision directed low frequency noise remover 606 generates reduced noise samples (i.e., {tilde over (y)}) using samples (i.e., y), without taking into consideration decisions (i.e., {circumflex over (b)}) from soft output detector 608. Note for example, that there is no connection from the output of soft output detector 608 to the input of non-decision directed low frequency noise remover 606. As described above, a programmable register may (if desired) be used to set the global iteration at which non-decision directed low frequency noise removal begins.
For brevity, the benefits of non-decision directed noise removal are not described at length herein since they include benefits described above with respect to decision directed low frequency noise removal (e.g., both are faster than reading the same sector multiple times and both offer better performance than no low frequency noise removal at all).
For the first 10 global iterations, both of plots 710 and 712 do no low frequency noise technique and the bit error rate is the same. At the 11th global iteration, decision directed low frequency noise removal is performed at 704a for plot 710 and non-decision directed low frequency noise removal is performed at 704b for plot 712. Note that even though the bit error rate is the same for the 10th global iteration, the bit error rates diverge at the 11th global iteration with non-decision directed plot 712 having a better bit error rate than decision directed plot 710. This may be because the quality of decisions is poor (e.g., as a result of the number of errors and/or clustering of errors from the baseline instability events) and so non-decision directed low frequency noise removal will perform better in such conditions than decision directed low frequency noise removal.
From the 12th global iteration onwards, decision directed noise removal is performed for both of plots 710 and 712. See, for example, points 706a-706b and 708a-708b in diagram 700 which are marked “DD.” Although the same low frequency noise removal technique is performed for both of plots 710 and 712 for all global iterations other than the 11th global iteration (i.e., no low frequency noise removal for the 1st through 10th global iterations and decision directed low frequency noise removal for the 12th's global iteration onwards), the rate of improvement for plot 712 is better than that of 710. The slope, for example, of plot 712 is steeper than that of plot 710. As diagram 700 shows, for at least some cases, it is desirable to perform non-decision directed low frequency noise removal for a global iteration before performing decision directed low frequency noise removal. This is particularly true for large-magnitude baseline excursions.
At 800, a count of global iterations (cntGI) is initialized to 1. At 802, a global iteration of processing is performed using samples without low frequency noise removal. For example, at the 1st global iteration in
It is determined at 808 if the count of global iterations (cntGI) is less than a first threshold (th1). In this example, the first threshold is used to set the global iteration at which the system switches over from no low frequency noise removal to non-decision directed low frequency noise removal. For example, to match plot 712 in
For illustration, suppose the count of global iterations (cntGI) is at 11 and the first threshold is also set to 11. The result of the decision at 808 would then be “No” and reduced noise samples are generated using non-decision directed noise removal at 810. For example, the process shown in
It is determined at 814 if processing is successful. If so, the process ends. If not, the count of global iterations (cntGI) is incremented at 816. To continue the example above, the count of global iterations is incremented from 11 to 12. At 818, reduced noise samples are generated using decision directed noise removal at 818. For example, the process of
It is determined at 822 processing is successful. If so, the process ends. If not, the count of global iterations (cntGI) is incremented at 824. For example, to continue the example from above, the count of global iterations is incremented from 12 to 13. At 826 it is determined if the count is less than a second threshold. The second threshold is used in this process to decide when to stop. For example, in
Graph 1000 shows bit error rate (e.g., at a soft output detector) as a function of window size (e.g., obtained from simulating a decision directed low frequency noise removal system at a variety of window sizes). In this particular example, global minimum 1002 shows that Topt=250 samples. At first, the bit error rate initially decreases as window size increases. This is because a larger window size causes the noise term (n) (e.g., which contributes to the samples (y) as shown in Equation (1)) to zero out in the low frequency noise estimate shown in Equation (2). Put another way, the low frequency noise estimate ({circumflex over (L)}k) in Equation (2) will have less of the noise term (n) as window size increases and will thus be more accurate.
At around a window size of 250 samples, however, the bit error rate begins to increase. This is because the low frequency noise estimate ({circumflex over (L)}k) in Equation (2) will go towards zero as T increases over this region. As {circumflex over (L)}k goes towards zero, less low frequency noise is removed, thus increasing bit error rate.
In various embodiments, a system may track or otherwise manage information associated with noise reduction in a variety of ways. The following figures show some examples.
In this example, a buffer stores the 4 original samples which comprise the 5th sector throughout global iterations 1100a-1100c. To obtain the first set of reduced noise samples (not shown) in the 1st global iteration (1100a), the low frequency noise estimates 1104a are removed from the (original) samples 1102a. Similarly, to obtain the reduced noise samples in the 2nd and 3rd global iterations (1100b-1100c), the second and third low frequency noise estimates (1104b and 1104c) from the original samples (1102b and 1102c). In some applications, keeping the original samples as shown herein is desirable because (for example) the original samples are available if desired (e.g., to enable re-starting the processing from scratch) and/or because some other component is already committed to keeping the original samples around.
Since the original samples for the 5th sector are not available in the 2nd global iterations (1200b), reduced noise samples 1202b are used to generate low frequency noise estimates 1204b. In
This process continues in the 3rd global iteration (1200c). The reduced noise samples 1202c are obtained by removing the low frequency noise estimates 1204b from reduced noise samples 1202b. Then, the low frequency noise remover uses noise reduced samples 1202c to generate low frequency noise estimates 1204c.
Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.
This application claims priority to U.S. Provisional Patent Application No. 61/618,418 entitled DECISION DIRECTED AND NON-DECISION DIRECTED LOW FREQUENCY NOISE CANCELLATION IN TURBO DETECTION filed Mar. 30, 2012 which is incorporated herein by reference for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
20060107176 | Song | May 2006 | A1 |
20070195912 | Yang et al. | Aug 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
61618418 | Mar 2012 | US |