Combining spectral shaping with turbo coding in a channel coding system
A method of combining spectral shaping with turbo coding in a channel coding system. The method comprises encoding user data with spectrally shaped encoding to provide a suppressed DC user data sector output. The method also comprises generating turbo coded redundant bits for the suppressed DC user data sector. The turbo coded redundant bits are interleaved with additive coding to provide a suppressed DC parity sector.
Latest Seagate Technology LLC Patents:
- Dual layer graded curie temperature HAMR media
- Planarization strategy in nano-sized fabrication
- Heat-assisted magnetic recording head with a resonance enhancing feature
- Single-grain near-field transducer and process for forming same
- Heat-assisted magnetic recording head with an integrated photodiode
The present invention relates generally to data communication and storage systems. More particularly, but not by limitation, the present invention relates to encoding and decoding data transmitted through a read/write channel in a data storage device.
BACKGROUND OF THE INVENTIONCombining different types of encoding/decoding operations, such as spectral shaping coding and turbo product coding for directly decreasing bit error rates, is a technical problem facing design engineers of data communication and storage systems. Although there are simple solutions that have been proposed, these simple solutions do not satisfy technical specifications since the combining leads to degradation of either spectral properties or bit error rates. Selecting and combining the two types of algorithms so that they are compatible with one another is a difficult design task. Known iterative solutions are complex and provide users with sub-optimal performance tradeoffs in bit error rate (BER) and complexity/latency in encoders and decoders. A low complexity combination of encoding/decoding is needed to provide an improved combination of BER and latency.
Embodiments of the present invention provide solutions to these and other problems, and offer other advantages over the prior art.
SUMMARY OF THE INVENTIONDisclosed is a method of combining spectral shaping with turbo coding in a channel coding system. The method comprises encoding user data with spectrally shaped encoding to provide a suppressed DC user data sector output. The method also comprises generating turbo coded redundant bits for the suppressed DC user data sector. These redundant bits are again encoded using additive coding to provide a suppressed DC parity subsector.
In one preferred embodiment, a channel encoder receives user data, and the channel encoder comprises a first encoder that encodes the user data with spectrally shaped encoding to provide a suppressed DC user data sector output. The channel encoder also comprises a turbo product encoder that generates redundant parity bits for the suppressed DC user data sector. The channel encoder also comprises an interleaver coupled to the turbo product encoder that interleaves the parity bits prior to additive coding providing a suppressed DC parity sector.
In another preferred embodiment, a detection scheme receives suppressed DC data that includes a user data sector and a parity sector that comprises redundant coded bits. The detection scheme comprises a channel detector that receives the input signal, and a decoder for a channel code such as a turbo code. The channel detector provides a first detector output that includes log likelihood ratios of user data sector. The channel detector also provides a second detector output that includes log likelihood ratios of the parity sector. The channel decoder also comprises a turbo product decoder that produces turbo-decoded user data. The channel decoder also comprises a first reverse interleaver that receives the first detector output and that provides the user data sector to the turbo product decoder. The channel decoder also comprises a second reverse interleaver that receives the second detector output and that provides a second reverse interleaver output. The channel decoder also comprises a log likelihood ratio converter that receives the second interleaver output and that provides the parity sector to the turbo product decoder.
Other features and benefits that characterize embodiments of the present invention will be apparent upon reading the following detailed description and review of the associated drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
Iterative soft and hard decoding of turbo-product codes (TPC) used in partial-response (PR) channels uses spectral shaping of signals, for example, by the suppression of an imbalance of zeros and ones in a coded binary stream.
Various types of iterative detection schemes operating with soft decisions regarding transmitted data are known for communication channels and storage systems. These schemes can use a convolutional code, a Low Density Parity Check (LDPC) code or a Turbo-Product Codes (TPC) to add redundant parity bits to the original data and employ them at the receiver side. Combined with a soft channel detector, for example, using the BCJR (Bahl, Cocke, Jelinek and Raviv) algorithm or the Soft-Output Viterbi Algorithm (SOVA), those codes provide flexible tradeoffs in complexity and Bit Error Rate (BER). Despite the increased latency of the decoding process, such iterative detection schemes are the attractive solutions for designing advanced communication systems and high-density magnetic recording applications.
In optical and magnetic storage systems, as well as in some communication systems, first the data are usually encoded by an outer Error Correcting Code (ECC), then sent to a modulation encoder, and finally go to a channel encoder of one of the types mentioned above. The modulation encoder could be of the Run Length Limiting (RLL) type, the Running Digital Sum limiting (RDS) type or the Direct Current Free (DCF) type. The primary task of the modulation code is to facilitate the operation of the front-end stages of the channel, such as a preamplifier, a timing circuit, an equalizer and others. In this application, these types of codes are called Spectral Shaping Codes (SSC). An SSC modifies the distance properties of the output code words of the channel, and therefore can also improve the Bit Error Rate (BER) and Sector Failure Rate (SFR) characteristics of the system, but the primary task of an SSC is to create the necessary structure of an encoded bit stream, for example, by preventing imbalance of zeros and ones that results in a DC content of an analog signal. At the same time, the primary task of a channel code, such as an LDPC code or a TPC, is to guarantee the required BER and SFR characteristics of the channel. Combining these two different types of codes in one system is a non-trivial problem requiring consideration of multiple factors.
An iterative detection scheme based on a TPC requires the use of an interleaver (permuter) at the output of the TPC decoder to produce the BER and SFR characteristics which are comparable with the BER an SFR characteristics of turbo codes and random LDPC codes. But an interleaver changes the order of the already SSC-coded bits and, as a result, nullifies the operation of the SSC-encoder. Since an SSC-encoder based on a finite state machine transforms the data bits using mapping tables without a special structure, the use of such codes in channels with interleaving of coded bits is impossible or severely restricted, especially, when they are applied for encoding of parity bits generated earlier by a TPC or an LDPC encoder. The iterative read/write channel describe below suppresses DC-content in the coded signal by using an arbitrary SSC in the data sector and a subclass of SSC codes known as additive codes in the parity sector. Using an arbitrary SSC in the parity sector is possible, but requires a conversion of soft decisions regarding the parity bits.
When an additive SSC is used in the data subsector, a sequence of matching patterns is chosen from the predefined set and added component wise modulo q to the original data. To identify the matching patterns at the receiver side, a sequence of flags is sent to the receiver. Each flag uniquely defines the pattern, and allows the decoder to perform the reverse operation. During the iterative decoding process the flags are treated by the channel and TPC decoders exactly as all other coded bits, and only at the final step when all decoding iterations are completed, then an SSC decoder uses them to convert SSC coded data bits to the original data.
At the same time, when an additive SSC is used in the parity subsector, again a sequence of matching patterns is chosen from the predefined set and added component wise modulo q to the parity bits of the TPC encoder. But now the flags are involved in the iterative decoding process, and are to be estimated at the intermediate decoding steps. Although the flags are sent to the receiver, and the soft decisions regarding flags are supplied to a TPC decoder by a channel detector, additional more reliable decisions are required to achieve the best BER. For this purpose a method of flag estimation is disclosed called automatic flag detection based on syndromes.
A single error in the received sequence can trigger generation of wrong states in the SSC decoder, and in result can produce a long sequence of output errors. This phenomenon is called error propagation, and often related to an SSC constructed from finite-state machines. For the purpose of limiting error propagation, decoding can be implemented via a sliding-block decoder. But when an additive SSC code is used in both data and parity sectors, a local simple error correcting code can be used to protect flags, and by this way the error propagation in the SSC decoder is reduced drastically. For example, in almost all practical cases a short Hamming code will suffice. The use of a local ECC for the suppression of error propagation is also disclosed. An example described below in connection with
The various circuits shown in the blocks of
Turbo product code is defined by a multidimensional array of codewords from linear block codes, such as parity check codes, Hamming codes, BCH codes, etc.
In
The data LLR ratios 506 are de-interleaved (de-permuted) exactly as the corresponding data bits by a reverse interleaver A−1 510, and are coupled along line 512 to an LLR data matrix (not illustrated in
Each parallel TPC decoder 702, 704, 706 has two updated outputs data (D) and parity (P). All updated data LLRs (D) are coupled to a de-interleaver (de-permuter) A−1 708, and the de-interleaver 708 provides the updated data sector 710 of LLRs. All updated parity LLRs (P) are coupled to the interleaver B 712, and the interleaver B 712 provides the updated parity sector 714 of LLRs. The updated data and parity sectors of LLRs are returned to the channel detector (via block A,B 520 in
Implementation of vertical and horizontal updates in the modified TPC decoder are described below in connection with
A simple additive code uses a special matching binary pattern {overscore (c)} and can add it to the uncoded binary word when the circumstances require such addition. The choosing of matching patterns and the additive coding scheme are known to those skilled in the art. It is important, however, that the additive code word is either the word {overscore (u)} consisting of all zeros flag followed by the data bits, or the component-wise sum modulo 2 of the word {overscore (u)} and the matching pattern {overscore (c)}. The structure of the matching pattern used for the SSC-encoding of the parity bits at the output of the TPC decoder is shown in
If an additive SSC code is used in the data sector, i.e., in the SSC encoder A in
In the implementation of the encoding block (
For encoding parity bits in the additive scheme, a nonzero pattern satisfies the following two conditions:
All components corresponding to vertical parities are set to zero.
All components corresponding to horizontal parities are set to one.
Such a choice of the pattern during DCF coding of parity bits does not modify the vertical parities, and therefore the vertical updates of the LLR can be performed exactly as in the conventional TPC decoder.
As described above, in the additive coding scheme, a nonzero pattern with all ONES at positions corresponding to horizontal parities is used. This means that if the corresponding flag is equal to one then all vertical parities are complemented (inverted). This can be seen as a switch from even parity check equations to odd parity check equations.
Before the horizontal updates are performed, the type of horizontal parities: “even” or “odd”, should be determined. The hard decision based on the LLR of the corresponding flag can be used for this purpose, but this single hard decision is unreliable when used at the low and moderate values of the SNR. A different method of the automatic flag detection is used as described below in connection with
Calculation of the intermediate hard decisions using the input LLRs from the buffer containing initial or current values of input soft decisions.
Calculation of the syndrome containing n modulo 2 sums of the row bits of the hard decisions obtained at the previous step.
Calculation of the Hamming weight of syndrome w, and comparing it with a threshold T. If w<T, then the flag of additive code is set to 0, otherwise the flag is set 1.
The TPC decoder performing automatic flag detection and internal LLR conversion is referred to here as the modified TPC decoder.
For comparison to
The BER of the proposed iterative TPC+SSC scheme with a random additive SSC code used in data sectors and a structured additive SSC codes used in parity sectors are evaluated by the simulation of all encoding and decoding operation in a software model of a perpendicular magnetic recording system. In simulations the received signal were equalized using a generalized partial response target of length 4 (GPR4) and the full DC PR2 target [1 2 1]. An AC-coupled preamplifier was modeled by the high pass filter with the cut-off frequency set to 1/200 or 1/1000 of the baud rate. The user-normalized linear density (uND) is equal to 2.3, while the channel bit density (cbd) is adjusted according to the code rate R using the formula cbd=uND/R. The signals were generated using 60% of media noise and 40% of electronic noise.
-
- The conventional uncoded channel with Viterbi detector operating at cbd=uND=2.3.
- The conventional TPC16 scheme with 16 component data matrices of size 16×16 and one parity bit added to each row and column (the coded TPC matrices has the size 17×17, the code rate R≈0.886, cbd=2.596).
- The designed TPC16+DCF scheme with 17 component matrices of size 16×16 and one parity bit added to each row and column (again the coded TPC matrices has the size 17×17, the rate of the TPC code R≈0.886, but number of user bits K=4224).
In the designed TPC16+DCF scheme, a random additive DCF encoder with rate 33/34 is used. In this case, the DCF coded data sector consists of 128 additive code words of length 34, and has the length 4352=128*34=17*256. Therefore, the DCF coded data sector fits exactly 17 data matrices of size 16×16. The TPC encoder produces 561=17*33 parity bits sent to the second additive DCF encoder producing additional 17 flag bits. The total length of data and parity sectors is 4930 bits. Therefore, the final code rate R=4224/4930=0.8568, and the channel bit density cbd=2.3/0.8568 =2.6844 when both code rates of TPC and DCF are taken into consideration. In order to estimate the effect of the code rate, the figures also show the BER of the designed TPC16+DCF scheme when only the rate 0.886 of the TPC is used to adjust the channel bit density.
In
In
In
The functioning of the individual internal blocks of a sample encoder (such as the encoders illustrated in
The functioning of the individual internal blocks of a sample decoder (such as the decoders illustrated in
In a preferred arrangement, encoders (such as illustrated in
It is to be understood that even though numerous characteristics and advantages of various embodiments of the invention have been set forth in the foregoing description, together with details of the structure and function of various embodiments of the invention, this disclosure is illustrative only, and changes may be made in detail, especially in matters of structure and arrangement of parts within the principles of the present invention to the full extent indicated by the broad general meaning of the terms in which the appended claims are expressed. For example, the particular elements may vary depending on the particular application for the iterative coding system while maintaining substantially the same functionality without departing from the scope and spirit of the present invention. It will be appreciated by those skilled in the art that the embodiments described herein can be used with known read heads including magnetoresistive, giant magnetoresistive (GMR), tunneling magnetoresistive (TMR) heads, and can also be used in MRAM systems. In addition, although the preferred embodiment described herein is directed to an iterative coding system for data tracks with concentric round geometries, it will be appreciated by those skilled in the art that the teachings of the present invention can be applied to data tracks or data patterns with other geometries that include spectral shaping and turbo coding, without departing from the scope and spirit of the present invention.
Claims
1. A method of combining spectral shaping with turbo coding in a channel coding system, comprising:
- encoding user data with spectrally shaped encoding to provide a suppressed DC user data sector output;
- generating turbo coded redundant bits for the suppressed DC user data sector; and
- processing the turbo coded redundant bits with added bits to limit an imbalance of ones and zeros.
2. The method of claim 1 wherein the spectral shaped encoding is repetitively combined with the generating of turbo coded redundant bits.
3. The method of claim 1, further comprising:
- generating the spectrally shaped encoding as an outer encoding process; and
- generating the turbo coded redundant bits as an inner encoding process.
4. The method of claim 1, further comprising:
- generating the suppressed DC parity sector with additive coding.
5. The method of claim 1, wherein the user data is encoded for storage on a data storage device.
6. The method of claim 1, further comprising:
- generating log likelihood ratios of a reproduced user data sector and a reproduced parity sector; and
- decoding the log likelihood ratios to provide reproduced user data.
7. The method of claim 6, further comprising:
- generating the reproduced user data using a turbo product decoder.
8. A channel encoder that receives user data, comprising:
- a first encoder that encodes the user data with spectrally shaped encoding to provide a suppressed DC user data sector output;
- a first interleaver coupled to the first encoder that interleaves the suppressed DC user sector output;
- a turbo product encoder that generates redundant bits for the suppressed DC user data sector; and
- a second interleaver coupled to the turbo product encoder that interleaves the redundant bits with additive coding to provide a suppressed DC parity sector.
9. The channel encoder of claim 8 wherein:
- the first interleaver generates a plurality of interleaved data matrices; and
- the turbo product encoder comprises a plurality of turbo encoders that turbo product encode the interleaved data matrices in parallel with one another.
10. The channel encoder of claim 9 wherein:
- a number of the interleaved matrices encoded in parallel is N; and
- a number of the turbo encoders performing the encoding in parallel is N.
11. The channel encoder of claim 9 wherein:
- a number of the interleaved matrices encoded in parallel is N; and
- a number of the turbo encoders performing the encoding in parallel is greater than 1 and less than N.
12. The channel encoder of claim 9, further comprising:
- a switch coupling the interleaved data matrices serially to the turbo product encoder.
13. The channel encoder of claim 8 wherein:
- the channel encoder further comprises a media channel input;
- the first encoder generates a suppressed DC coded data sector that couples to the media channel input; and
- the turbo product encoder generates a suppressed DC coded parity sector that couples to the media channel input.
14. The channel encoder of claim 13 wherein the media channel input comprises a write channel input of a data storage device.
15. A channel decoder receiving suppressed DC data including a user data sector and a parity sector, comprising:
- a channel detector receiving the data and providing a first detector output that includes log likelihood ratios of user data sector and a second detector output that includes log likelihood ratios of the parity sector;
- a turbo product decoder producing turbo-decoded user data;
- a first reverse interleaver receiving the first detector output and providing the user data sector to the turbo product decoder; and
- a second reverse interleaver receiving the second detector output and providing a second reverse interleaver output including the parity sector to the turbo product decoder.
16. The channel decoder of claim 15, further comprising:
- a log likelihood ratio converter receiving the second interleaver output and providing the parity sector to the turbo product decoder.
17. The channel decoder of claim 15 wherein:
- the first reverse interleaver generates a plurality of de-interleaved log likelihood ratios of the data sector; and
- the turbo product decoder comprises a plurality of turbo decoders that turbo product decode the log likelihood ratios of the data sector.
18. The channel decoder of claim 17 wherein:
- a number of the interleaved matrices decoded in parallel is N; and
- a number of the turbo decoders performing the decoding in parallel is N.
19. The channel decoder of claim 17 wherein:
- a number of the interleaved matrices decoded in parallel is N; and
- a number of the turbo decoders performing the decoding in parallel is greater than 1 and less than N.
20. The channel decoder of claim 17, further comprising:
- a switch coupling the log likelihood ratio matrices of the data sector serially to the turbo product decoder.
Type: Application
Filed: Dec 15, 2004
Publication Date: Jul 13, 2006
Applicant: Seagate Technology LLC (Scotts Valley, CA)
Inventors: Alexander Kuznetsov (Pittsburgh, PA), Erozan Kurtas (Pittsburgh, PA)
Application Number: 11/012,820
International Classification: H03M 13/00 (20060101);