The present invention relates to communication and data-storage equipment and, more specifically but not exclusively, to joint use of modulation and error-correction coding.
In a magnetic recording channel, an error-correction code, such as a low-density parity-check (LDPC) code, is sometimes used together with a modulation code to improve the channel's performance characteristics. Two modulation codes often used in magnetic recording channels are a run-length-limited (RLL) code and a maximum-transition-run (MTR) code. An RLL code limits the number of consecutive zeros stored in a magnetic track to a specified maximum number, which can help the magnetic recording channel to reliably generate a clock signal using a phase-lock loop. An MTR code limits the number of consecutive ones in a magnetic track to a specified maximum number, which can help to alleviate the adverse effects of inter-symbol interference. However, one problem with a conventional magnetic recording channel is that parity bits of the error-correction code are not subjected to MTR or RLL coding, which causes the recorded data to sometimes have undesirable bit sequences despite the use of MTR or RLL coding on other parts of the codeword(s). The fact that a practical modulation codec for parity bits of a block error-correction code has not been sufficiently developed yet is at least partially responsible for this problem.
Disclosed herein are various embodiments of a communication system, such as a magnetic recording channel, configured to apply modulation coding to parity bits of an error-correction code. An embodiment of the communication system may have a transmitter having two different modulation encoders, one configured to apply a first modulation code to information bits and the other configured to apply a second modulation code to the parity bits that have been generated from the information bits using an error-correction code.
Alternatively or in addition, an embodiment of the communication system may have a receiver that incorporates a soft modulation codec configured to use the second modulation code in the log-likelihood-ratio space to enable decoding iterations between a sequence detector and a parity-check decoder.
Other embodiments of the disclosure will become more fully apparent from the following detailed description and the accompanying drawings, in which:
The following acronyms/abbreviations are used in the description of various embodiments and/or in the accompanying drawings:
Input data stream 102 comprises a sequence of bits, often referred to as original information bits. A first modulation encoder 110, to which input data stream 102 is directed in transmitter 100, is configured to apply a first (outer) modulation code to the sequence of original information bits. The result of this application is a data stream 112, copies of which are applied to an interleaver 120 and a multiplexer (MUX) 160. Data stream 112 satisfies the constraints of the first modulation code and typically carries more bits than input data stream 102. For example, an original information word in input data stream 102 might be 8-bit long, while a corresponding modulation-encoded word in data stream 112 might be 9-bit long. In this example, the first modulation code has a rate of 8/9. In various embodiments, the first modulation code can be an RLL code or an MTR code.
Interleaver 120 is configured to apply a first interleaving operation (πi) to data stream 112, thereby generating a data stream 122. More specifically, the first interleaving operation changes the order of bits in a modulation-encoded word without changing the number of bits in it. Interleaver 120 then applies data stream 122 to a parity encoder 130.
Based on data stream 122, parity encoder 130 generates a parity-bit stream 132. More specifically, based on a word from data stream 132, parity encoder 130 generates a corresponding set of parity bits. For example, in one possible embodiment, parity encoder 130 can be configured to use a systematic LDPC code, wherein a generator matrix (G) consists of an identity sub-matrix (I) and a non-systematic parity-bit generator sub-matrix (P) concatenated together in the form of G=[I P]. In this embodiment, for each interleaved modulation-encoded word ci from data stream 132, parity encoder 130 generates set pi of parity bits by applying non-systematic parity-bit generator sub-matrix P to ci. Different sets pi corresponding to different interleaved modulation-encoded words ci are then concatenated at the output of parity encoder 130 to form data stream 132. Note that interleaved modulation-encoded words ci of data stream 122 are not included into data stream 132.
A de-interleaver 140 is configured to apply a de-interleaving operation (πp−1) to each parity-bit set pi of data stream 132. The resulting de-interleaved parity-bit sets are concatenated to generate a data stream 142. Data stream 142 is then applied to a second modulation encoder 150. Note that de-interleaving operation πp−1 is an inverse of a second interleaving operation (πp) used at a corresponding receiver, e.g., receiver 200 of
One of ordinary skill in the art will appreciate that each of the terms “interleaving” and “de-interleaving” refers to an operation that changes the order of bits in a bit sequence in a accordance with a specified algorithm. Each interleaving operation it has a corresponding de-interleaving operation π−1 that undoes the change of the bit order such that π−1=π−1 π=1 (where “1” denotes an identity permutation, which maps each element of the sequence to itself in the original order), and the designations of these two operations as an “interleaving operation” and a “de-interleaving operation” are relative. For example, let us assume that two interleaving operations π1 and π2 satisfy the following condition: it π2=π2π1=1. Then, the relative nature of the designations means that each of operations π1 and π2 can be referred to as “interleaving” or “de-interleaving.” More specifically, when operation π1 is referred to as “interleaving,” operation π2 is referred to as “de-interleaving.” Alternatively, when operation π2 is referred to as “interleaving,” operation π1 is referred to as “de-interleaving.”
In an alternative embodiment, interleaver 120 and de-interleaver 140 are optional and can both be omitted in transmitter 100.
Encoder 150 is configured to apply a second (inner) modulation code to each of the de-interleaved parity-bit sets of data stream 142 to generate a data stream 152 having modulation-encoded, de-interleaved parity-bit sets. Each modulation-encoded, de-interleaved parity-bit set in data stream 152 satisfies the constraints of the second modulation code and is typically longer than the corresponding (unconstrained) de-interleaved parity-bit set in data stream 142. In one embodiment, the second modulation code can be an MTR code.
Multiplexer 160 is configured to multiplex data stream 112 and data stream 152 to generate a data stream 162 having codewords intended for transmission over channel 190 to a corresponding receiver, e.g., receiver 200 of
Signal generator 170 is configured to convert data stream 162 into output communication signal 188, which has a physical form suitable for application to channel 190. For example, in a non-return-to-zero-inverse (NRZI) magnetic-storage system, every digital “one” is represented by a magnetic-flux transition in a bit cell, and every digital “zero” is represented by a lack of a magnetic-flux transition in a bit cell. Accordingly, in this embodiment, signal generator 170 is configured to generate output communication signal 188 in a manner that induces, in the storage medium of channel 190, a magnetization reversal for every digital “one” in data stream 162 and a lack of magnetization reversal for every digital “zero” in the data stream. For alternative embodiments of channel 190, signal generator 170 can be similarly appropriately configured to generate other suitable physical forms of output communication signal 188.
Receiver 200 has a front-end circuit 210 configured to receive communication signal 202 and convert this communication signal into an electrical digital signal 212 that is amenable to the subsequent digital-signal processing in the receiver. In one embodiment, front-end circuit 210 may include an analog-to-digital converter and a series of configurable filters, such as a continuous-time filter, a digital phase-lock loop, a waveform equalizer, and a noise-predictive finite-impulse-response equalizer (not explicitly shown in
Digital signal 212 generated by front-end circuit 210 is applied to a detector/codec module 220 configured to convert this signal into sets 222 and 224 of log-likelihood-ratio (LLR) values. More specifically, module 220 has a sequence detector (not explicitly shown in
An important feature of the modulation codec used in module 220 is that it is configured to operate on LLR values rather than on hard bit values, as is the case with conventional modulation codecs. As a result, LLR sets 222 and 224 generated by module 220 contain LLR values that represent the detector's confidence in the correctness of the estimated parity-encoded codewords after the modulation coding of parity bits has been taken into account. For each estimated parity-encoded codeword, LLR set 222 has LLR values representing the parity bits of the corresponding codeword, and LLR set 224 has LLR values representing the information bits of the codeword.
In a possible embodiment, an LLR value may comprise (i) a sign bit that represents the detector's best guess (hard decision) regarding the bit value encoded in signal 212 and (ii) one or more magnitude bits that represent the detector's confidence in the hard decision. For example, module 220 may be configured to output each LLR value as a five-bit value, where the most-significant bit is the sign bit and the four least-significant bits are the confidence bits. By way of example and without limitation, a five-bit LLR value of 00000 indicates a hard decision of 0 with minimum confidence, while a five-bit LLR value of 01111 indicates a hard decision of 0 with maximum confidence. Intermediate values (e.g., between 0000 and 1111) of confidence bits represent intermediate confidence levels. Similarly, a five-bit LLR value of 10001 indicates a hard decision of 1 with minimum confidence, while a five-bit LLR value of 11111 indicates a hard decision of 1 with maximum confidence, wherein the binary value of 10000 is unused. Other numbers of bits and other representations of confidence levels may alternatively be used as well.
Module 220 is coupled to a parity-check (e.g., LDPC) decoder 260 (i) via interleavers 232 and 234 and multiplexer 250 and (ii) via de-multiplexer 270, and de-interleavers 236 and 238. Interleavers 232 and 234 and multiplexer 250 are located in the feed-forward path from module 220 to decoder 260. De-multiplexer 270 and de-interleavers 236 and 238 are located in the feedback path from decoder 260 to module 220. Each of interleavers 232 and 234, multiplexer 250, de-multiplexer 270, and de-interleavers 236 and 238 is configured to operate on sequences of LLR values. This characteristic is different from the corresponding characteristic of interleaver 120, de-interleaver 140, and multiplexer 160 in transmitter 100 (
Decoder 260 is configured to decode a sequence 252 of LLR values received from multiplexer 250 in a conventional manner, e.g., using one or more local iterations indicated in
If decoder 260 fails to converge on a valid parity-encoded codeword after a specified maximum number of local iterations 266, then the decoding processing in the decoder is temporarily halted, and a corresponding global iteration is initiated by directing the signal processing back to detector 220. More specifically, for an LLR word from sequence 252 to which decoder 260 has applied the decoding processing, the decoder generates a modified LLR word 262. Modified LLR word 262 differs from the corresponding initial LLR word from sequence 252, e.g., because some of the sign-bit values and/or some of the confidence values may have been changed in the course of local iterations 266.
After being de-multiplexed in de-multiplexer 270 and de-interleaved in de-interleavers 236 and 238, modified LLR word 262 is converted into the corresponding LLR sets 226 and 228, which are directed back to detector 220. More specifically, LLR set 226 has LLR values corresponding to the parity bits of the parity-encoded codeword; and LLR set 228 has LLR values corresponding to the information bits of the parity-encoded codeword. Based on LLR sets 226 and 228, detector 220 regenerates LLR sets 222 and 224 and feeds them forward to decoder 260 for a next decoding attempt using local iterations 266.
If decoder 260 converges on a valid parity-encoded codeword, then LLR word 262 contains LLR values, wherein the sign-bit values express that parity-encoded codeword. De-multiplexer 270 de-multiplexes LLR word 262 into the corresponding LLR sets 276 and 278. De-interleaver 238 then applies de-interleaving operation πi−1 to LLR set 278 to convert it into the corresponding LLR set 228. A hard-decision filter 280 then removes the magnitude bits from LLR set 228, thereby transforming said LLR set into the corresponding modulation-encoded codeword 282. Finally, a modulation decoder 290 decodes modulation-encoded word 282 to recover the corresponding original information word and outputs the recovered original information word as part of output data stream 298. Note that the modulation decoding performed in modulation decoder 290 uses the first modulation code and is an inverse of the modulation encoding applied to the information bits at the corresponding transmitter, such as the modulation encoding performed in modulation encoder 110 of transmitter 100 (
Module 300 has a sequence detector 310 configured to receive digital signal 212 and convert it into a corresponding sequence of LLR words 312. In one embodiment, sequence detector 310 operates to (i) emulate signal distortions in the communication channel, such as communication channel 190; (ii) compare digital signal 212 with an anticipated distorted signal; and (iii) estimate the most likely transmitted bit sequence based on said comparison. Each LLR word 312 generated by sequence detector 310 contains LLR values that represent the detector's confidence in the correctness of the estimated bit sequence carried by the corresponding portion of digital signal 212.
Module 300 further has a de-multiplexer 320 configured to de-multiplex LLR word 312 into the corresponding LLR sets 322 and 224. LLR set 322 has LLR values representing the parity bits of the corresponding codeword. As already indicated above, LLR set 224 has LLR values representing the information bits of the codeword.
A soft modulation decoder 330 is configured to receive LLR set 322 from de-multiplexer 320 and apply to it soft modulation decoding using the second modulation code, e.g., as described below in reference to
A soft modulation encoder 340 and a multiplexer 350 are parts of the feedback path from decoder 260 to detector 310. Soft modulation encoder 340 is configured to receive LLR set 226 and apply to it soft modulation encoding using the second modulation code, e.g., as described below in reference to
Multiplexer 350 is configured to multiplex LLR sets 346 and 228 to generate a corresponding LLR word 352. As already indicated above, LLR set 228 has LLR values representing the information bits of the corresponding codeword. Based on LLR word 352, sequence detector 310 regenerates the corresponding LLR word 312 and sends the regenerated LLR word down the feed-forward path toward decoder 260 for a next decoding attempt.
In an NRZ magnetic-storage system, “zeros” and “ones” are represented by opposite directions of the magnetization. Flux reversals occur only at mid-cells or, in some embodiments, at cell boundaries. An absence of a flux reversal means that the next cell stores the same bit value as the preceding cell.
In one embodiment, an MTR(r) code operates as follows. To encode a bit set of length p, the bit set is first partitioned into subsets of length r, where r<p. Then, each r-bit subset is replaced by a corresponding (r+1)-bit subset. For an NRZ magnetic-storage system, the (r+1)-bit subset differs from the source r-bit subset only in the extra (r+1)-th bit, which is appended to the r-bit subset and is a duplicate of the r-th bit from the r-bit subset. In mathematical terms, if the initial p-bit set is (a1, a2, . . . , ap), then the corresponding MTR(r)-encoded bit set is (a1, a2, . . . , ar, ar, ar+1, ar+2, . . . , a2r, a2r, a2r+1, . . . , ap).
At step 402 of method 400, sequence detector 310 is configured to generate an LLR word 312 based on the corresponding segment of digital signal 212 (also see
At step 404, decoder 330 is configured to apply soft MTR decoding, using the MTR(r) code, to the parity portion of the LLR word 312 generated at step 402. In the description of
For binary codewords, the soft MTR decoding of step 404 can be performed, for example, as follows. Let LLR set 322 have the following p1 LLR values: (L1, L2, . . . , Lr, Lr+1, Lr+2, . . . , L2r+1, L2r+2, L2r+3, . . . , Lp1), where p1/(r+1)=p/r. Then, after the soft MTR decoding, the corresponding LLR set 222 has the following p LLR values: (L1, L2, . . . , Lr, Lr+2, . . . , L2r+1, L2r+3, . . . , Lp1).
For non-binary codewords, the soft MTR decoding of step 404 can be performed, for example, as follows.
Let us assume that the constellation of available symbols consists of 2m symbols u, where m is a positive integer greater than one. This means that each symbol u can be represented by a bit block consisting of m bits. A sequence of N symbols u is therefore represented by a corresponding sequence having N×m bits. When an MTR(r) code is applied to this sequence, it inserts into it one MTR bit per r original bits. Depending on the concrete values of m and r, a situation is possible in which different bit blocks representing different respective symbols u receive different numbers of MTR bits (if any).
An LLR set (such as LLR set 322,
In one embodiment, for an LLR block in LLR set 322 not having an LLR value corresponding to an MTR bit, decoder 330 is configured to calculate LLR values for LLR set 222 using a subroutine that implements Eq. (1):
with the various symbols in this equation denoting the following quantities:
where γl+i(si, si+1) is the branch metric of the transition in path P from encoder state si to encoder state si+1.
For an LLR block in LLR set 322 having an LLR value corresponding to an MTR bit, decoder 330 is configured to calculate LLR values for LLR set 222 using a subroutine that implements Eq. (2):
Most of the symbols used in Eq. (2) are already explained above in reference to Eq. (1). An index change in the β terms of Eq. (2) compared to the β terms of Eq. (1) is self-explanatory. The finite field in the underscript of the Jacobi logarithms has the following new quantity:
Referring again to
At step 408, encoder 330 is configured to apply soft MTR encoding, using the MTR(r) code, to LLR set 226 corresponding to the LLR word 262 of step 406. In the description of
For binary codewords, the soft MTR encoding of step 408 can be performed, for example, as follows. Let LLR set 226 have the following LLR values: (L1, L2, . . . , Lr, Lr+1, Lr+2, . . . , L2r, L2r+1, L2r+2, . . . , Lp). Then, after the soft MTR encoding, the corresponding LLR set 346 has the following LLR values: (L1, L2, . . . , Lr, Lr, Lr+1, Lr+2, . . . , L2r, L2r, L2r+1, L2r+2, . . . , Lp).
For non-binary codewords, the soft MTR encoding of step 408 can be performed, for example, as follows.
If, for each m-bit symbol u, LLR set 226 has M=2m−1 LLR values (L1, L2, . . . , LM), then the corresponding LLR set 346 has the following LLR values (L′1, L′2, . . . , L′r, L′r, L′r+1, L′r+2, . . . , L′2r, L′2r, L′2r+1, L′2r+2, . . . , L′p), where the various L′ values are the LLR values corresponding to the individual bits of symbol u.
In one embodiment, encoder 340 is configured to calculate LLR values L′i using a subroutine that implements Eq. (3):
with the various symbols in this equation denoting the following quantities:
At step 410, sequence detector 310 is configured to generate LLR word 312 based on LLR word 352 instead of digital signal 212 (as in step 402). LLR word 352 used in step 410 is generated by multiplexer 350 using LLR set 346 generated at step 408 and LLR set 228 received at step 406. After the completion of step 410, the processing of method 400 is directed back to step 402.
While this invention has been described with reference to embodiments, this description is not intended to be construed in a limiting sense.
Unless explicitly stated otherwise, each numerical value and range should be interpreted as being approximate as if the word “about” or “approximately” preceded the value of the value or range.
Although the elements in the following method claims, if any, are recited in a particular sequence with corresponding labeling, unless the claim recitations otherwise imply a particular sequence for implementing some or all of those elements, those elements are not necessarily intended to be limited to being implemented in that particular sequence.
The use of figure numbers and/or figure reference labels in the claims is intended to identify one or more possible embodiments of the claimed subject matter in order to facilitate the interpretation of the claims during the examination. Such use is not to be construed as necessarily limiting the scope of those claims to the embodiments indicated by the used figure numbers and/or figure reference labels.
Reference herein to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the invention. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments necessarily mutually exclusive of other embodiments.
Also for purposes of this description, the terms “couple,” “coupling,” “coupled,” “connect,” “connecting,” or “connected” refer to any manner known in the art or later developed in which energy is allowed to be transferred between two or more elements, and the interposition of one or more additional elements is contemplated, although not required. Conversely, the terms “directly coupled,” “directly connected,” etc., imply the absence of such additional elements.
Embodiments of the invention can be manifest in other specific apparatus and/or methods. The described embodiments are to be considered in all respects as only illustrative and not restrictive. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.
A person of ordinary skill in the art would readily recognize that steps of various above-described methods can be performed by programmed computers. Herein, some embodiments are intended to cover program storage devices, e.g., digital data storage media, which are machine or computer readable and encode machine-executable or computer-executable programs of instructions where said instructions perform some or all of the steps of the methods described herein. The program storage devices may be, e.g., digital memories, magnetic storage media, such as magnetic disks or tapes, hard drives, or optically readable digital data storage media. The embodiments are also intended to cover computers programmed to perform said steps of methods described herein.
The description and drawings merely illustrate embodiments of the invention. Furthermore, all examples recited herein are principally intended expressly to be only for pedagogical purposes to aid the reader in understanding an embodiment of the invention and the concepts contributed by the inventor(s) to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting embodiments of the invention, as well as specific examples thereof, are intended to encompass equivalents thereof.
The functions of the various elements shown in the figures, including any functional blocks labeled as “processors,” may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term “computer,” “processor,” or “controller” should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), and non volatile storage. Other hardware, conventional and/or custom, may also be included.
It should be appreciated by those of ordinary skill in the art that any block diagrams herein represent conceptual views of circuitry representing one of more embodiments of the invention. Similarly, it will be appreciated that any flowcharts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
Although embodiments of the invention have been described herein with reference to the accompanying drawings, it is to be understood that embodiments of the invention are not limited to the described embodiments, and one of ordinary skill in the art will be able to contemplate various other embodiments of the invention within the scope of the following claims.
Although some portions of the detailed description have been presented in terms of algorithms and symbolic representations of operations on data bits, these algorithmic descriptions and representations are the means used by those of ordinary skill in the arts of data processing to most effectively convey the substance of their work to others. It has proven convenient at times, principally for reasons of common usage, to refer to some signals as bits, words, values, elements, symbols, characters, numbers, or the like. It should be born in mind, however, that all of these and similar terms are associated with tangible physical quantities and are merely convenient labels intended to refer to those physical quantities. Unless specifically stated otherwise, as apparent from the detailed description, it should be appreciated that the terms such as processing, computing, calculating, determining, displaying, and the like refer to actions and processes of a machine, computer system, or electronic circuit configured to manipulate and transform a first set of data represented as physical quantities within registers and/or memory elements into a second (possibly different) set of data similarly represented as physical quantities within registers and/or memory elements.
Number | Date | Country | Kind |
---|---|---|---|
2012152710 | Dec 2012 | RU | national |