US8307267B2 - Programmable soft-output Viterbi algorithm system and method - Google Patents
Programmable soft-output Viterbi algorithm system and method Download PDFInfo
- Publication number
- US8307267B2 US8307267B2 US12/048,830 US4883008A US8307267B2 US 8307267 B2 US8307267 B2 US 8307267B2 US 4883008 A US4883008 A US 4883008A US 8307267 B2 US8307267 B2 US 8307267B2
- Authority
- US
- United States
- Prior art keywords
- bits
- channel
- user
- bit
- postcoder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
- G11B20/10268—Improvement or modification of read or write signals bit detection or demodulation methods
- G11B20/10287—Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
- G11B20/10268—Improvement or modification of read or write signals bit detection or demodulation methods
- G11B20/10287—Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors
- G11B20/10296—Improvement or modification of read or write signals bit detection or demodulation methods using probabilistic methods, e.g. maximum likelihood detectors using the Viterbi algorithm
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
Definitions
- the present disclosure is generally related to a programmable soft-output Viterbi algorithm (SOVA) system and method.
- SOVA programmable soft-output Viterbi algorithm
- Such storage devices include data channel circuitry to facilitate the transfer of data between the storage device and a host system, such as a processor, a computer, other electronic circuitry, or any combination thereof.
- a host system such as a processor, a computer, other electronic circuitry, or any combination thereof.
- Such data channel circuitry typically utilizes data decoding circuitry and error correction circuitry to reliably reproduce data written to and read from a storage medium, such as a rotatable magnetic disc media.
- the channel detector circuitry uses a soft-output Viterbi algorithm (SOVA) detector to estimate hard decisions associated with channel bits of the readback signal.
- SOVA soft-output Viterbi algorithm
- Channel preceding is a technique for improving bit and sector failure rates in the presence of correlated bit errors; however, conventional SOVA detectors are not adapted to work with channel precoding, since the SOVA detector cannot be used to compute reliabilities (soft decisions) related to original unprecoded bits directly from reliabilities of the channel bits determined by the conventional SOVA.
- a channel detector includes a programmable look-up table (LUT) to relate user bits to channel bits.
- the programmable LUT is adapted to be implemented on a state trellis of arbitrary radix.
- the channel detector further includes a sectional precoder coupled to a channel and having access to the programmable LUT.
- the sectional precoder is adapted to map channel bits to user bits and vice versa using a programmable LUT.
- a method in another particular embodiment, includes mapping the user bits to channel bits via a programmable precoder during a write operation using a programmable look-up table (LUT) that is programmed to operating conditions associated with the channel.
- the method further includes receiving readback samples from a channel having inter-symbol interference, decoding the readback samples using a soft-output channel detector, and determining user bit decisions and their reliabilities using an integrated postcoder map specified by the programmable LUT.
- the method also includes outputting the determined user bit decisions.
- a system in still another particular embodiment, includes an input to receive a signal including correlated noise and a channel detector coupled to the input.
- the channel detector includes a memory to store precoder instructions and a precoder having access to the memory and adapted to map channel bits to user bits and vice versa based on the precoder instructions.
- the channel detector further includes an inner decoder adapted to iteratively decode the channel bits into end-user data.
- the channel detector further includes an output terminal to provide an output including the end-user data.
- FIG. 1 is a block diagram of a particular illustrative embodiment of a system including a storage device having a read/write channel with a programmable precoder;
- FIG. 2 is a block diagram of a particular illustrative embodiment of a system including a read channel having a programmable precoder;
- FIG. 3 is a block diagram of a system including a portion of a read/write channel, such as the read/write channel of FIG. 1 , having a channel detector that includes a programmable precoder;
- FIG. 4 is a diagram of a particular illustrative embodiment of a portion of a radix-4 trellis illustrating a mapping of user bits to channel bits;
- FIG. 7 is a flow diagram of a particular illustrative embodiment of a method of decoding a readback signal in a channel having correlated noise using a programmable precoder outside of the SOVA detector;
- FIG. 8 is a flow diagram of another particular embodiment of a method of decoding a readback signal in a channel having correlated noise using a programmable precoder inside of the SOVA detector.
- FIG. 1 is a block diagram of a particular illustrative embodiment of a system 100 including a storage device 102 having a read/write channel 114 with a programmable precoder 116 .
- the storage device 102 is adapted to communicate with a host system 104 .
- the host system 102 can be a computer, a processor, a personal digital assistant (PDA), another electronic device, or any combination thereof.
- PDA personal digital assistant
- the storage device 102 includes recording subsystem circuitry 106 and a head-disc assembly 108 .
- the recording subsystem circuitry 106 includes an interface circuit 110 , which includes a data buffer for temporarily buffering the data and a sequencer for directing the operation of the read/write channel 114 and the preamplifier 130 during data transfer operations.
- the interface circuit 110 is coupled to the host system 104 and to a control processor 112 , which is adapted to control operation of the storage device 102 .
- the control processor 112 is coupled to a servo circuit 118 that is adapted to control the position of one or more read/write heads 134 relative to one or more discs 136 as part of a servo loop established by the one or more read/write heads 134 .
- the one or more read/write heads 134 are mounted to a rotary actuator assembly to which a coil 132 of a voice coil motor (VCM) is attached.
- VCM voice coil motor
- a VCM includes a pair of magnetic flux paths between which the coil 132 is disposed so that the passage of current through the coil causes magnetic interaction between the coil 132 and the magnetic flux paths, resulting in the controlled rotation of the actuator assembly and the movement of the one or more heads 134 relative to the surfaces of the one or more discs 136 .
- the servo circuit 118 is used to control the application of current to the coil 132 , and hence the position of the heads 134 with respect to the tracks.
- the control circuitry 106 further includes a spindle circuit 120 that is coupled to a spindle motor 138 to control the rotation of the one or more discs 136 .
- the control circuitry 106 further includes programming and parameter values stored at a dynamic random access memory (DRAM) 122 , a non-volatile flash memory 124 , other memory 126 , or any combination thereof.
- DRAM dynamic random access memory
- the programmable precoder 116 may execute instructions retrieved from one of the non-volatile flash memory 124 or the other memory 126 .
- the programmable precoder 116 may access a programmable look-up table (LUT) that is stored at one of the non-volatile flash memory 124 or the other memory 126 .
- LUT programmable look-up table
- the read/write channel 114 includes a programmable precoder 116 that is adapted to utilize a look-up table stored at the flash memory 124 , at the other memory 126 , or at a memory within the read/write channel 114 , such as a memory 326 illustrated in FIG. 3 .
- the programmable precoder 116 is adapted to map user bits to channel bits using the look-up table.
- the read/write channel 114 may also include a soft-output detector, such as a soft-output Viterbi algorithm (SOVA) detector that is adapted to calculate reliabilities of user bits and/or channel bits related to each other by the programmable precoder 116 .
- SOVA soft-output Viterbi algorithm
- FIG. 2 is a block diagram of a particular illustrative embodiment of a system 200 including a read channel 204 having a programmable precoder 226 .
- the read channel 204 is coupled to a head-disc assembly 202 , which includes a storage medium, such as a magnetic disc 206 .
- the head-disc assembly 202 further includes a read/write head 208 that is movable relative to the magnetic disc 206 to read and write data from and to the magnetic disc 206 .
- the read/write head 208 is coupled to a preamplifier 210 , which is adapted to amplify a readback signal received from the read/write head 208 and to provide the readback signal to the read channel 204 .
- the readback signal includes correlated noise, such as inter-symbol interference.
- the read channel 204 includes a variable gain amplifier 212 that is coupled to the preamplifier 210 to receive the readback signal.
- the variable gain amplifier 212 provides the readback signal to an analog-to-digital (A/D) converter 214 , which samples (digitizes) the readback signal.
- a timing/gain control circuit 216 is coupled to the variable gain amplifier 212 and to the A/D converter 214 to control the gain of the variable gain amplifier 212 and a sample rate of the A/D converter 214 .
- the output of the A/D converter 214 is provided to an equalizer 218 , which is adapted to perform time-domain equalization to filter the digitized readback signal to a pre-selected partial response, maximum likelihood detection (PRML) target waveform, for example.
- PRML maximum likelihood detection
- the output of the equalizer 218 is provided to a channel detector 220 , which convert the readback signal to user bits and provides the recovered user bits to a run-length limited (RLL) and/or error correction code (ECC) decoder 222 , which provides corrected user bit data at an output 224 .
- the output may be coupled to a host system via an interface, such as the interface 110 illustrated in FIG. 1 .
- the channel detector 220 includes a programmable precoder 226 to map channel bits to user bits and vice versa.
- the programmable precoder 226 may be a look-up table that defines a bi-directional mapping between channel bits and user bits.
- the programmable precoder 226 may be a processor adapted to execute instructions that control the programmable precoder 226 to map user bits to channel bits and vice versa.
- the programmable precoder 226 can be implemented as a logic circuit with one or more selectable gates or switches that can be selectively activated to program the precoder 226 . In this particular instance, the logic circuit can be implemented without a microprocessor or a look-up table.
- the channel detector 220 further includes one or more inner decoders and/or soft-output decoders 228 that receive the permuted coded user bits and their reliabilities from the SOVA detector 322 , which uses the mapping information from the programmable precoder 226 (such as a look-up table).
- the inner decoders/soft-output decoders 228 are adapted to calculate a priori reliabilities of the user bits and to supply the a priori reliabilities back to the SOVA detector 322 .
- the inner decoders/soft-output decoders 228 include a soft-output Viterbi algorithm (SOVA) decoder.
- SOVA Soft-output Viterbi algorithm
- FIG. 3 is a block diagram of a system 300 including a portion of a read/write channel, such as the read/write channel 114 of FIG. 1 , having a channel detector 302 that includes a programmable precoder 324 .
- the channel detector 302 includes an input 314 to receive a signal including correlated noise, such as inter-symbol interference (ISI) from a signal source, such as a receiver circuit, a storage media, another source, or any combination thereof.
- ISI inter-symbol interference
- the received signal at the input 314 is a readback signal.
- the channel detector 302 provides estimates of coded user bits and their reliabilities to a de-interleaver 304 , which provides a de-interleaved version of the coded user bits to a soft-input soft-output (SISO) inner decoder 306 , which is adapted to iteratively decode the signal and return decoded user bits via a feedback loop 312 .
- the SISO inner decoder 306 provides the decoded data to the channel detector 302 via an interleaver 310 .
- the SISO inner decoder 306 is adapted to utilize a message-passing algorithm (MPA) to decode the signal.
- MPA message-passing algorithm
- the SISO inner decoder 306 Upon completion of the decoding iterations, the SISO inner decoder 306 also provides decoded data to an output 316 via a threshold filter 308 .
- the channel detector 302 includes a soft-output Viterbi algorithm (SOVA) detector 322 .
- the channel detector 302 further includes a programmable precoder 324 and a memory 326 that is accessible to the programmable precoder 324 .
- the memory 326 is adapted to store a look-up table (LUT), precoder instructions, or any combination thereof (generally designated as LUT/Instructions 328 ).
- the programmable precoder 324 includes logic adapted to use the look-up table to map channel bits from a received signal to user bits and vice versa.
- the programmable precoder 324 includes a processor and the LUT/Instructions 328 include instructions executable by the processor to receive a signal and to map channel bits of the received signal to user bits and vice versa.
- the SOVA detector 322 is adapted to receive mapped user bits from the programmable precoder 324 and to decode the received signal using the mapped user bits using the LUT/instructions 328 .
- the SOVA detector 322 is adapted to calculate reliabilities related to the user bits based on the received signal and to update reliabilities associated with the mapped user bits based on the calculated reliabilities.
- the channel detector 302 receives a signal including correlated noise at the input 314 .
- the correlated noise is inter-symbol interference (ISI), which is a form of distortion of a signal in which one symbol within a signal interferes with subsequent symbols (i.e., neighboring symbols).
- ISI has a similar effect as noise, making readback data less reliable.
- the channel detector 302 uses the programmable precoder 324 to reduce a raw bit error rate of the channel by reducing the number of errors (frequency of errors) associated with typical error events.
- the programmable precoder 324 is adapted to map user bits from the received signal to channel bits using the LUT/instructions 328 .
- the channel bits and user bits are provided to the SOVA decoder 322 and the SOVA decoder 322 makes hard bit decisions related to the mapped user bits and provides bit-level reliability data (such as log-likelihood ratios, LLRs).
- the SOVA decoder 322 is adapted to compute reliabilities associated with the mapped bits from the programmable precoder 324 .
- the channel detector 302 provides the mapped user bits and the LLRs to the SISO inner decoder 306 via the de-interleaver 304 .
- the SISO inner decoder 306 uses an iterative message-passing algorithm (MPA) to decode the mapped user bits and the LLRs and to calculate hard bit decisions and reliability data.
- MPA iterative message-passing algorithm
- the SISO inner decoder 306 provides the hard bit decisions and the reliability data to the output 316 via the threshold filter 308 and provides the hard bit decisions to the channel detector 302 via the interleaver 310 .
- the LUT/instructions 328 may include multiple look-up tables (LUTs), which may include data related to particular operating conditions associated with an electronic device.
- the LUT/instructions 328 may include selection logic to allow the programmable precoder 324 to select a particular LUT of a plurality of programmable LUTs stored at the memory 326 based on one or more operating conditions of the electronic device.
- the channel characteristics of a magnetic recording system such as a disc drive, can be dependent on the radial distance of the data track from the center of a rotating disc, such as the one or more discs 136 illustrated in FIG. 1 .
- the programmable precoder 324 may include logic that is adapted to select a look-up table (LUT)/instructions 328 from a plurality of LUTs stored at the memory 326 based on a radial distance of the data track from the center of the disc.
- LUT look-up table
- the programmable precoder 324 can use operating conditions to tune its own performance.
- the radial distance could be used to adaptively program the LUT/instructions 328 for use with the programmable precoder 324 and the SOVA detector 322 of the channel detector 302 .
- each read/write head of a multi-platter disc drive may have an associated look-up table, and the programmable precoder 324 may map user bits to channel bits and vice versa using the selected LUT/instructions 328 set from the memory 326 that is particular to the read/write head.
- the SOVA detector 322 uses a technique that is modified to compute reliabilities (soft decisions) associated with user bits directly, avoiding recalculation of the reliabilities of the user bits from the channel bits.
- a SOVA algorithm may be summarized as follows: when two paths merge at any state during the course of the Viterbi decoding, the difference between the cumulative path-metrics between the survivor path and the non-survivor path determines reliabilities of channel bits associated with previous hard decisions.
- the SOVA detector 322 updates the reliabilities of the user bits (rather than the channel bits) based on a path metric difference.
- the channel detector 202 with the programmable precoder 324 and the SOVA decoder 322 using the modified SOVA technique provide an enhanced data detection, which can reduce bit rate errors in channels with correlated noise.
- the programmable precoder 324 is a non-polynomial precoder, which can be represented in terms of a look-up table.
- the programmable precoder 324 can map a group of L user bits to a corresponding group of L channel bits (and vice versa), depending on the previous M bits in the channel state.
- the mapping defined by the LUT/instructions 328 is invertible conditioned on the original state of a branch in the trellis.
- the programmable precoder 324 may be described by a look-up table (LUT) consisting of 2 M+L rows, where L represents a length (i.e., a number of bits to be mapped) and M represents a memory (i.e., a number of recent state bits).
- L represents a length (i.e., a number of bits to be mapped)
- M represents a memory (i.e., a number of recent state bits).
- the programmable precoder 324 that is defined by such a LUT can be referred to as a sectional precoder of memory (M) and length (L).
- mapping illustrated in TABLE 1 describes a non-polynomial, inverse precoder (postcoder) because the mapping defines a mapping from the channel bits to the user bits.
- this particular form facilitates its integration with the SOVA detector 322 .
- the the programmable precoder 324 utilizes a non-polynomial mapping that can outperform polynomial precoders by reducing a bit error rate (BER) for user bits.
- the non-polynomial, programmable precoder 324 can be defined by a small programmable look-up table, such TABLE 1, which may be stored at the memory 326 as illustrated by LUT/instructions 328 .
- the SOVA detector 322 computes the reliabilities of the user bits using the programmable look-up table (i.e., LUT/instructions 328 ) for the precoder mapping. It should be understood that additional columns may be added that relate to operating conditions to allow the programmable precoder 324 to select a particular set of rows within the table based on a correspondence to a particular operating condition.
- a sectional (programmable) non-polynomial precoder is applied to magnetic recording channels.
- the magnetic recording channels include a perpendicular recording channel.
- the channel detector 200 uses a soft-output Viterbi algorithm (SOVA) detector that is optimized for the channel based on data-dependent noise-prediction (DDNP).
- SOVA soft-output Viterbi algorithm
- SNRs signal-to-noise ratios
- Table 2 A precoder mapping table with a memory of 1 and a length of 3 for a magnetic recording channel at 60% jitter is illustrated in Table 2 below.
- a precoder mapping table with a memory of 1 and a length of 3 for a magnetic recording channel at 90% jitter is illustrated in Table 3 below.
- the programmable precoders 222 illustrated by the mappings of TABLES 2 and 3 are not equivalent to any polynomial precoder and provide up to approximately 0.15 dB gain in system performance compared to conventional polynomial precoders for magnetic recording channels.
- the following discussion is restricted to the programmable precoders that are memoryless, which reduces complexity and renders the implementation tractable.
- a mapping from channel bits to user bits for a memoryless, programmable precoder is illustrated in TABLES 4 and 5 below for magnetic recording channels having jitter at 60% and 90%, respectively.
- a typically segment of the trellis consists of 2 ⁇ states at a time (n) where ⁇ represents the channel memory connected to 2 ⁇ states at time n+1, and two branches leaving/entering each state correspond to a value of an incoming channel bit.
- ⁇ represents the channel memory connected to 2 ⁇ states at time n+1
- two branches leaving/entering each state correspond to a value of an incoming channel bit.
- computations for Viterbi and SOVA algorithms take place at the baud rate.
- the trellis can be implemented in terms of its radix-2 ⁇ form, where we combine ⁇ segments of the original trellis into a single segment.
- a radix-2 ⁇ implementation there are 2 ⁇ branches leaving/entering each state (corresponding to ⁇ bits per state transition). As far as hard and soft outputs are concerned, both implementations are equivalent.
- the SOVA decoder 322 can be used in conjunction with an arbitrary programmable precoder 324 specified by the LUT/instructions 328 .
- the programmable precoder 324 may be programmed by updating the LUT/instructions 328 .
- the programmable precoder 324 uses a mapping (LUT/instructions 328 ) having a section length (L) and memory (M) that is not more than a channel memory ( ⁇ ), i.e., M ⁇ .
- L section length
- M memory
- ⁇ channel memory
- the branches are labeled according to the programmable precoder described by TABLE 1.
- the radix-4 trellis 400 includes user bit labels (generally indicated in plain text) that can be found using the programmable lookup table given the (M) state variable bits and the channel bit label (generally indicated in bold and italics).
- the (M) newest bits of the state variable and the (L) incoming channel bits uniquely determine the respective (L) user bits corresponding to any branch in the trellis.
- the radix-4 trellis 400 includes four possible state values 402 , 404 , 406 , and 408 at a first bit state (S n ) and four possible state values 412 , 414 , 416 , and 418 at a second bit state (S n+1 ).
- a branch computation metric uses the state and channel bit labels (such as 00, 01, 10, and 11, illustrated in bold and italics for channel bits and in plain text for user bits) as usual.
- the SOVA detector such as the SOVA detector 322 illustrated in FIG. 3 , operates using the user bit labels assigned to each branch.
- the SOVA detector computes metric differences, traces the multiple paths back to compare the user bits rather than the channel bits on all of the paths to assign/update reliabilities to the user bits.
- the branch metric computation uses the state and channel bit label as usual.
- LLR log-likelihood ratio
- the signed LLR of a bit a m can be defined as follows:
- ⁇ i ⁇ ( S n ) ⁇ i ⁇ ( S ) - min i ⁇ ⁇ i ⁇ ( S n ) ( Equation ⁇ ⁇ 2 )
- the new hard decisions are represented as â m i *(S n ) and their associated log-likelihood ratios (LLRs) can be updated as follows.
- all paths merge at a state (S n ).
- Infinite reliabilities are assigned to those (newest) bits ⁇ a m :nL ⁇ m ⁇ nL+L ⁇ for which LLRs have not yet been assigned.
- Equations 3 and 4 above perform max-log maximum a posteriori (MAP) decoding.
- the LLR updates (Equations 3 and 4) need to be performed only on successfully decoded L-bit blocks of user bits.
- the LLR updates for incomplete blocks are postponed to a future trellis state when the complete L-bit block is received.
- ⁇ ⁇ ( S n - 1 , S n ) 1 2 ⁇ ( ⁇ y 2 ⁇ n - 3 ⁇ x 2 ⁇ n - 2 ⁇ x 2 ⁇ n - 1 - x 2 ⁇ n - 2 ⁇ 2 + ⁇ y 2 ⁇ n + 1 - 3 ⁇ x 2 ⁇ n + 1 - 2 ⁇ x 2 ⁇ n - x 2 ⁇ n - 1 ⁇ 2 ) ( Equation ⁇ ⁇ 6 )
- the trellis 500 includes four bit-state values 00, 01, 10, and 11 at first, second, third, and fourth states (S ⁇ 1 , S 0 , S 1 , and S 2 ).
- the trellis 500 includes a first bit-state value (00) 502 , a second bit-state value (01) 504 , a third bit-state value (10) 506 , and a fourth bit-state value (11) 508 .
- the trellis 500 includes a first bit-state value (00) 512 , a second bit-state value (01) 514 , a third bit-state value (10) 516 , and a fourth bit-state value (11) 518 .
- the trellis 500 includes a first bit-state value (00) 522 , a second bit-state value (01) 524 , a third bit-state value (10) 526 , and a fourth bit-state value (11) 528 .
- the trellis 500 includes a first bit-state value (00) 532 , a second bit-state value (01) 534 , a third bit-state value (10) 536 , and a fourth bit-state value (11) 538 .
- the initial state of the radix-4 trellis 500 is indicated at a first state (S ⁇ 1 ) is at a first bit-state value (00) 502 .
- y 0 ⁇ 3, 5, 3, 4, 2, 1, . . . ⁇
- an initial state metric of 0 can be assigned to the first state (S ⁇ 1 ), such that the selected bit-state at the first state (S ⁇ 1 ) is the first bit-state value (00) 502 .
- An infinite metric is assigned to all of the second, third, and fourth bit-state values (01, 10, and 11) 504 , 506 , and 508 of the first state (S ⁇ 1 ).
- the six decisions are error free.
- the channel bit decisions are readily determined using the postcoder look-up table.
- the postcoder map is an inverse of a precoder map defined in a precoder look-up table.
- reliabilities can be calculated for each of the first, second, third, and fourth bit-value states 522 , 524 , 526 , and 528 , respectively.
- the Viterbi path is illustrated as a solid line converging from the bit-state value (11) 518 at the second state (S 0 ).
- the user bit labels corresponding to each of the branches are shown.
- the user bit labels can be obtained from the programmable look-up table based on the incoming channel bits and a newest bit of origin state. Observe that the user bit labels on all incoming branches at the second bit-state value (01) 524 can be different, unlike the channel bit labels, which are the same on all incoming branches.
- TABLE 6 illustrates the four merging paths in a decreasing order of likelihood and the path metric difference ( ⁇ ) relative to the survivor path.
- the most likely path for which a 0 has a different decision is P 2 .
- those paths are P 2 and P 3 , respectively.
- all four paths (P 1 , P 2 , P 3 , and P 4 ) have the same decision for a 3 , rendering the hard decision on the a 3 bit completely reliable (with infinite LLR).
- LLRs log-likelihood ratios
- the signed LLRs can be obtained as follows:
- the signed LLRs obtained from Equation 7 as it relates to the first, second, third, and fourth bit-state values (00, 01, 10, 11) 522 , 524 , 526 , and 528 at the third bit state (S 1 ) is shown in TABLE 7.
- FIG. 6 is a diagram of still another particular illustrative embodiment of a radix 4-trellis 600 illustrating four state paths merging at a fourth bit state (S 2 ) having a bit-state value (00) 632 .
- the trellis includes a first bit state (S ⁇ 1 ), a second bit state (S 0 ), a third bit state (S 1 ) and the fourth bit state (S 2 ).
- Each of the first, second, third and fourth bit states have four possible bit-state values.
- the first bit state (S ⁇ 1 ) includes a first bit-state value (00) 602 , a second bit-state value (01) 604 , a third bit-state value (10) 606 , and a fourth bit-state value (11) 608 .
- the second bit state (S 0 ) includes a first bit-state value (00) 612 , a second bit-state value (01) 614 , a third bit-state value (10) 616 , and a fourth bit-state value (11) 618 .
- the third bit state (S 1 ) includes a first bit-state value (00) 622 , a second bit-state value (01) 624 , a third bit-state value (10) 626 , and a fourth bit-state value (11) 628 .
- the fourth bit state (S 2 ) includes a first bit-state value (00) 632 , a second bit-state value (01) 634 , a third bit-state value (10) 636 , and a fourth bit-state value (11) 638 .
- the radix-4 trellis 600 illustrated in FIG. 6 corresponds to the radix-4 trellis 500 illustrated in FIG. 5 , but the numbers are incremented to correspond to the figure number.
- TABLE 8 illustrates temporary hard decisions in decreasing order of likelihood for the bit-state value (00) 632 .
- the LLRs of the previous bits (a 0 , . . . , a 3 ) are updated according to Equations 3 and 4, above.
- L 0 ( S 2 ) ⁇ min ⁇ 2.342,2.342+5.444,4.319+6.465,1.319+6.909 ⁇ ⁇ 2.342
- L 1 ( S 2 ) ⁇ min ⁇ 2.342,2.342+5.444,6.465,6.909 ⁇ 2.342
- L 2 ( S 2 ) ⁇ min ⁇ 3.023,5.444,4.319+6.465, ⁇ +6.909 ⁇ ⁇ 3.023
- L 3 ( S 2 ) ⁇ min ⁇ ,6.022+5.444,6.465,1.319+6.909 ⁇ ⁇ 6.465
- a path metric for a first path P 1 from the first bit-state value (00) 622 of the third state (S 1 ) to the first bit-state value (00) 632 of the fourth state (S 2 ) is 6.976.
- the path metric for a second path P 2 from the second bit-state value (01) 624 of the third state (S 1 ) to the first bit-state value (00) 632 of the fourth state (S 2 ) is 1.532.
- the path metric for a third path P 3 from the third bit-state value (10) 626 of the third state (S 1 ) to the first bit-state value (00) 632 of the fourth state (S 2 ) is 8.441.
- the path metric for a fourth path P 4 from the fourth bit-state value (11) 628 of the third state (S 1 ) to the first bit-state value (00) 632 of the fourth state (S 2 ) is 7.997.
- a path metric difference ( ⁇ ) can be calculated to update the log-likelihood ratios (LLRs).
- preceding improves the performance of a communication system that has correlated channel bit errors, such as bit errors in a magnetic recording system, by lowering the raw bit error rate (BER) as seen by the error correction coding (ECC) and/or run-length limited (RLL) decoder.
- a programmable precoder can be represented by a look-up table to map user bits to channel bits and vice versa.
- the programmable precoder can be a polynomial or a non-polynomial precoder. While such preceding can be simple, the programmable precoder allows the read channel to be tuned or programmed for a particular channel. Further, postcoding at the decoder side can be performed jointly with the SOVA detector to enhance performance of the system.
- sectional non-polynomial preceding represents a viable technique to improve system performance at a channel decoder.
- a sectional non-polynomial precoder can be efficiently stored in a programmable lookup table and can be used in connection with a soft-output Viterbi algorithm (SOVA) detector or other soft-output detectors to achieve significant gains relative to the best polynomial precoders for the magnetic recording channels.
- SOVA Soft-output Viterbi algorithm
- the sectional non-polynomial precoder can be used to de-correlate channel bit errors and improving overall performance.
- reliabilities may be computed directly for user bits, instead of sub-optimally post-processing channel bit reliabilities. In channels that have inter-symbol interference or other characteristics, direct computation of reliabilities for the user bits improves the performance of the decoder.
- arbitrary precoders with a section length (L) can be integrated with a radix-2 ⁇ Viterbi trellis implementation.
- the SOVA detector can be hardwired for a single precoder, such as 1/(1+D) polynomial precoder or for a specific mapping table.
- the programmable precoder can be tuned or adjusted for a particular channel, for particular operating conditions (such as a signal-to-noise ratio, transition noise levels, and/or other noise), or any combination thereof.
- the programmable precoder used in connection with a SOVA detector renders the SOVA detector programmable, allowing the channel detector to be readily adapted to different channels by simply optimizing the precoder mapping table.
- mapping table that is specific to a particular read/write head, a particular disc, a portion of a recording media, or any combination thereof.
- the channel is known to have spatially-varying correlated noise, it is possible to store the optimal mapping tables for each zone on the recording surface.
- the channel characteristics in a magnetic recording system are dependent on the radial distance of the data track from the center.
- the precoder logic may select a mapping table from a plurality of mapping tables based on a radial distance of the data track from the center for the purpose of mapping user bits to channel bits and vice versa.
- the radial distance could be used to adaptively program a look-up table for use with a precoder and a SOVA detector.
- FIG. 7 is a flow diagram of a particular illustrative embodiment of a method of decoding a channel having correlated noise.
- user bits are mapped to channel bits via a programmable precoder during a write operation using a programmable look-up table (LUT) that is programmed to operating conditions associated with the channel.
- LUT programmable look-up table
- the programmable precoder includes a processor and a memory accessible to the processor. The memory stores instructions executable by the processor to access instructions to map the user bits to the channel bits according to the programmable LUT.
- readback samples are received from a channel having inter-symbol interference.
- the readback samples are decoded using a soft-output channel detector.
- the soft-output channel detector includes a high radix trellis and a sectional precoder.
- user bit decisions and their reliabilities are determined using an integrated postcoder map specified by the programmable LUT.
- user bit decisions are determined by providing the readback signal to a soft-output Viterbi algorithm (SOVA) detector that includes the integrated postcoder map.
- SOVA Soft-output Viterbi algorithm
- the integrated post coder map is used to map the channel bits to user bits to make user bit decisions. Proceeding to 710 , the determined user bit decisions are output. The method terminates at 712 . In a particular embodiment, the method also includes error correction coding the output to produce a corrected output.
- FIG. 8 is a flow diagram of another particular embodiment of a method of decoding a channel having correlated channel bit errors.
- precoder logic of an electronic device selects a programmable LUT from a plurality of programmable LUTs based on operating conditions associated with a channel, where the plurality of programmable LUTs stored at a memory of the electronic device, and where the selected programmable LUT is adapted to map user bits to channel bits and vice versa.
- the precoder logic can be adapted to receive servo control data associated with a radial position of the read/write head relative to a center of a disc platter of a disc drive and to select a particular programmable LUT based on the radial position.
- the precoder logic can be adapted to select a particular programmable LUT that is associated with a particular data source, such as a particular read/write head.
- a particular data source such as a particular read/write head.
- each of the read/write heads of a storage device may have its own LUT that can be selectively activated to map user bits to channel bits and vice versa based on the source read/write head for the particular readback signal.
- user bits are mapped to channel bits via the selected programmable precoder during a write operation using the selected programmable LUT.
- readback samples are received from the channel, where the channel includes correlated noise, such as inter-symbol interference.
- the readback samples are decoded using a soft-output Viterbi algorithm (SOVA) detector that is adapted to determine reliabilities based on user bits using a postcoder based on the selected programmable LUT.
- SOVA detector includes a high radix trellis and is adapted to communicate with a sectional precoder. Proceeding to 810 , the determined user bit decisions are output. The method terminates at 812 .
- the programmable precoder may be used with other detectors as well, provided the detectors are adapted for use with the programmable precoder.
- reliability data calculated from the outputs of the precoder can be based on an inverse mapping to the readback data that is derived from the LUT, rather than calculating reliabilities from the determined channel information.
- the soft-output Viterbi detector which is described with respect to FIGS. 1-8 above, works with an arbitrary radix trellis implementation and is not limited to a precoder section length.
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
Description
TABLE 1 |
Mapping for an example precoder having a memory (M = 1) and |
length (L = 2). |
State bit (x2n−1) | Channel bits (x2n, x2n+1) | User bits (a2n, a2n+1) |
0 | 00 | 00 |
0 | 01 | 01 |
0 | 10 | 11 |
0 | 11 | 10 |
1 | 00 | 01 |
1 | 01 | 11 |
1 | 10 | 10 |
1 | 11 | 00 |
TABLE 2 |
Mapping for an example precoder (M = 1, L = 3) at 60% jitter |
Channel bits | User bits | |
State bit (x3n−1) | (x3n, x3n+1, x3n+2) | (a3n, a3n+1, a3n+2) |
0 or 1 | 000 | 000 |
0 or 1 | 001 | 001 |
0 or 1 | 010 | 100 |
0 or 1 | 011 | 010 |
0 or 1 | 100 | 111 |
0 or 1 | 101 | 011 |
0 or 1 | 110 | 110 |
0 or 1 | 111 | 101 |
TABLE 3 |
Mapping for an example precoder (M = 1, L = 3) at 90% jitter. |
Channel bits | User bits | |
State bit (x3n−1) | (x3n, x3n+1, x3n+2) | (a3n, a3n+1, a3n+2) |
0 or 1 | 000 | 000 |
0 or 1 | 001 | 001 |
0 or 1 | 010 | 100 |
0 or 1 | 011 | 101 |
0 or 1 | 100 | 111 |
0 or 1 | 101 | 011 |
0 or 1 | 110 | 110 |
0 or 1 | 111 | 010 |
TABLE 4 |
Mapping for an example precoder (M = 0, L = 4) at 60% jitter. |
Channel bits | User bits | ||
(x4n, x4n+1, x4n+2, x4n+3) | (a4n, a4n+1, a4n+2, a4n+3) | ||
0000 | 0000 | ||
0001 | 0001 | ||
0010 | 0011 | ||
0011 | 0010 | ||
0100 | 1011 | ||
0101 | 0111 | ||
0110 | 1101 | ||
0111 | 0100 | ||
1000 | 1001 | ||
1001 | 0101 | ||
1010 | 1111 | ||
1011 | 0110 | ||
1100 | 1010 | ||
1101 | 1110 | ||
1110 | 1100 | ||
1111 | 1000 | ||
TABLE 5 |
Mapping for an example precoder (M = 0, L = 4) at 90% jitter. |
Channel bits | User bits | ||
(x4n, x4n+1, x4n+2, x4n+3) | (a4n, a4n+1, a4n+2, a4n+3) | ||
0000 | 0000 | ||
0001 | 0001 | ||
0010 | 0111 | ||
0011 | 0101 | ||
0100 | 0010 | ||
0101 | 0011 | ||
0110 | 0110 | ||
0111 | 0100 | ||
1000 | 1000 | ||
1001 | 1001 | ||
1010 | 1111 | ||
1011 | 1101 | ||
1100 | 1010 | ||
1101 | 1011 | ||
1110 | 1110 | ||
1111 | 1100 | ||
Suppose that a cumulative metric of the i-th path ending at a state Sn at time (n) is μi(Sn). At any stage during the decoding, let the hard decisions and the associated log-likelihood ratios (LLRs) on the i-th path be defined as âm i(Sn) and Lm i(Sn), respectively, for m≦nL+L−1. The hard decisions are obtained by simply tracing the path back through the trellis and recording the (plain text) user bit labels for every branch. The user bit labels themselves can be found readily using the programmable postcoder lookup table. Metric differences between the i-th path and the survivor path can be calculated as follows:
y n=3x n+2x n−1 +x n−2 +w n (Equation 5)
where xn ε {0,1} and yn are the channel input and output bits, respectively, and where wn is additive zero-mean white Gaussian noise with variance σw 2=1. Furthermore, using a programmable precoder having a memory and a length (M=1, L=2) specified by TABLE 1 to map the user bits to channel bits.
TABLE 6 | |||||
User bits | |||||
Path (Pi) | (a0, . . . , a3) | Path metric (μi) | Δi = μi − miniμi | ||
P1 | 1011 | 1.110 | 0 | ||
P2 | 0111 | 3.452 | 2.342 | ||
P3 | 1101 | 4.133 | 3.023 | ||
P4 | 0001 | 14.475 | 13.365 | ||
for the i-th path merging at the bit state (S2). The signed LLRs obtained from Equation 7 as it relates to the first, second, third, and fourth bit-state values (00, 01, 10, 11) 522, 524, 526, and 528 at the third bit state (S1) is shown in TABLE 7.
TABLE 7 | ||||
S1 | a0 | a1 | a2 | a3 |
00 | −2.342 | 2.342 | ∞ | −6.022 |
01 | −2.342 | 2.342 | −3.023 | −∞ |
10 | −1.319 | −1.978 | −∞ | −1.319 |
11 | −4.319 | −4.978 | −4.319 | ∞ |
TABLE 8 | |||||
User bits | |||||
Path (Pi) | (a0, . . . , a5) | Path metric (μi) | Δi = μi − miniμi | ||
P1 | 101101 | 1.532 | 0 | ||
P2 | 100100 | 6.976 | 5.444 | ||
P3 | 111001 | 7.997 | 6.465 | ||
P4 | 111100 | 8.441 | 6.909 | ||
L 0(S 2)←−min{2.342,2.342+5.444,4.319+6.465,1.319+6.909}=−2.342
L 1(S 2)←min{2.342,2.342+5.444,6.465,6.909}=2.342
L 2(S 2)←−min{3.023,5.444,4.319+6.465,∞+6.909}=−3.023
L 3(S 2)←−min{∞,6.022+5.444,6.465,1.319+6.909}=−6.465
Claims (18)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/048,830 US8307267B2 (en) | 2008-03-14 | 2008-03-14 | Programmable soft-output Viterbi algorithm system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/048,830 US8307267B2 (en) | 2008-03-14 | 2008-03-14 | Programmable soft-output Viterbi algorithm system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
US20090231745A1 US20090231745A1 (en) | 2009-09-17 |
US8307267B2 true US8307267B2 (en) | 2012-11-06 |
Family
ID=41062772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/048,830 Active 2031-05-07 US8307267B2 (en) | 2008-03-14 | 2008-03-14 | Programmable soft-output Viterbi algorithm system and method |
Country Status (1)
Country | Link |
---|---|
US (1) | US8307267B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8885779B2 (en) * | 2013-03-14 | 2014-11-11 | Seagate Technology Llc | Channel detector implementation with postcoder |
US9304851B2 (en) | 2013-11-27 | 2016-04-05 | Seagate Technology Llc | Decoding with log likelihood ratios stored in a controller |
US20170257232A1 (en) * | 2016-03-02 | 2017-09-07 | Mstar Semiconductor, Inc. | Equalizer apparatus and viterbi algorithm based decision method |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8433975B2 (en) * | 2010-08-13 | 2013-04-30 | Nxp B.V. | Bitwise reliability indicators from survivor bits in Viterbi decoders |
US8737460B2 (en) * | 2012-07-16 | 2014-05-27 | Seagate Technology, Llc | Equalizer and detector arrangement employing joint entropy-based calibration |
KR102039062B1 (en) * | 2013-02-14 | 2019-10-31 | 한국전자통신연구원 | Apparatus and method for decoding maximum a posteriori |
US9130599B2 (en) * | 2013-12-24 | 2015-09-08 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods of converting detector output to multi-level soft information |
US9213602B1 (en) * | 2014-06-23 | 2015-12-15 | Seagate Technology Llc | Write mapping to mitigate hard errors via soft-decision decoding |
US9654314B2 (en) * | 2014-10-13 | 2017-05-16 | Nec Corporation | Joint transmitter and receiver map algorithm for enhancing filtering tolerance in a bandwidth-limited system |
WO2020170435A1 (en) * | 2019-02-22 | 2020-08-27 | 三菱電機株式会社 | Error correcting decoding device and error correcting decoding method |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5142421A (en) * | 1990-09-21 | 1992-08-25 | U.S. Philips Corporation | Device for recording a digital information signal on a record carrier |
US5311547A (en) * | 1992-02-03 | 1994-05-10 | At&T Bell Laboratories | Partial-response-channel precoding |
US5621761A (en) * | 1994-12-09 | 1997-04-15 | General Instrument Corporation Of Delaware | Rotationally invariant trellis coding incorporating transparent binary convolutional codes |
US6252731B1 (en) | 1997-10-16 | 2001-06-26 | Seagate Technology Llc | Parametric optimization using disc drive read channel quality measurements |
US6513141B1 (en) * | 1999-05-07 | 2003-01-28 | Cirrus Logic Inc. | Sampled amplitude read channel employing a trellis sequence detector and a post processor for generating error metrics used to correct errors made by the trellis sequence detector |
US20030066020A1 (en) | 2001-06-11 | 2003-04-03 | Fujitsu Limited | Recording and reproducing apparatus, signal decoding circuit, error correction method and iterative decoder |
US20040068747A1 (en) * | 2002-10-02 | 2004-04-08 | Robertson Neil C. | Networked multimedia system |
US6757122B1 (en) * | 2002-01-29 | 2004-06-29 | Seagate Technology Llc | Method and decoding apparatus using linear code with parity check matrices composed from circulants |
US6791995B1 (en) | 2002-06-13 | 2004-09-14 | Terayon Communications Systems, Inc. | Multichannel, multimode DOCSIS headend receiver |
US20040233981A1 (en) * | 2001-07-26 | 2004-11-25 | Porter John David | Method and apparatus for predistorting data |
US7030789B1 (en) * | 2004-12-01 | 2006-04-18 | Hitachi Global Storage Technologies Netherlands B.V. | Techniques for applying modulation constraints to data using periodically changing symbol mappings |
US7050418B2 (en) | 1997-10-31 | 2006-05-23 | Interdigital Technology Corporation | Modem for processing CDMA signals |
US20060222094A1 (en) * | 2005-04-04 | 2006-10-05 | Makhlouf Isam R | Channel estimation using linearly constrained filter coefficients |
US20060282753A1 (en) * | 2005-05-18 | 2006-12-14 | Seagate Technology Llc | Second stage SOVA detector |
US7251768B2 (en) | 2002-04-22 | 2007-07-31 | Regents Of The University Of Minnesota | Wireless communication system having error-control coder and linear precoder |
US20080188190A1 (en) * | 2007-02-05 | 2008-08-07 | Narayan Prasad | Multi-rank beamforming precoding apparatus and method |
US20080240303A1 (en) * | 2007-03-30 | 2008-10-02 | Rose Shao | Map detector with a single state metric engine |
US20090150746A1 (en) * | 2007-12-06 | 2009-06-11 | Panu Chaichanavong | Iterative decoder systems and methods |
US20090225878A1 (en) * | 2008-03-06 | 2009-09-10 | Haralabos Papadopoulos | Adaptive forward-backward soft output m-algorithm receiver structures |
-
2008
- 2008-03-14 US US12/048,830 patent/US8307267B2/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5142421A (en) * | 1990-09-21 | 1992-08-25 | U.S. Philips Corporation | Device for recording a digital information signal on a record carrier |
US5311547A (en) * | 1992-02-03 | 1994-05-10 | At&T Bell Laboratories | Partial-response-channel precoding |
US5621761A (en) * | 1994-12-09 | 1997-04-15 | General Instrument Corporation Of Delaware | Rotationally invariant trellis coding incorporating transparent binary convolutional codes |
US6252731B1 (en) | 1997-10-16 | 2001-06-26 | Seagate Technology Llc | Parametric optimization using disc drive read channel quality measurements |
US7050418B2 (en) | 1997-10-31 | 2006-05-23 | Interdigital Technology Corporation | Modem for processing CDMA signals |
US6513141B1 (en) * | 1999-05-07 | 2003-01-28 | Cirrus Logic Inc. | Sampled amplitude read channel employing a trellis sequence detector and a post processor for generating error metrics used to correct errors made by the trellis sequence detector |
US20030066020A1 (en) | 2001-06-11 | 2003-04-03 | Fujitsu Limited | Recording and reproducing apparatus, signal decoding circuit, error correction method and iterative decoder |
US7237173B2 (en) | 2001-06-11 | 2007-06-26 | Fujitsu Limited | Recording and reproducing apparatus, signal decoding circuit, error correction method and iterative decoder |
US20040233981A1 (en) * | 2001-07-26 | 2004-11-25 | Porter John David | Method and apparatus for predistorting data |
US6757122B1 (en) * | 2002-01-29 | 2004-06-29 | Seagate Technology Llc | Method and decoding apparatus using linear code with parity check matrices composed from circulants |
US7251768B2 (en) | 2002-04-22 | 2007-07-31 | Regents Of The University Of Minnesota | Wireless communication system having error-control coder and linear precoder |
US6791995B1 (en) | 2002-06-13 | 2004-09-14 | Terayon Communications Systems, Inc. | Multichannel, multimode DOCSIS headend receiver |
US20040068747A1 (en) * | 2002-10-02 | 2004-04-08 | Robertson Neil C. | Networked multimedia system |
US7030789B1 (en) * | 2004-12-01 | 2006-04-18 | Hitachi Global Storage Technologies Netherlands B.V. | Techniques for applying modulation constraints to data using periodically changing symbol mappings |
US20060222094A1 (en) * | 2005-04-04 | 2006-10-05 | Makhlouf Isam R | Channel estimation using linearly constrained filter coefficients |
US20060282753A1 (en) * | 2005-05-18 | 2006-12-14 | Seagate Technology Llc | Second stage SOVA detector |
US20080188190A1 (en) * | 2007-02-05 | 2008-08-07 | Narayan Prasad | Multi-rank beamforming precoding apparatus and method |
US20080240303A1 (en) * | 2007-03-30 | 2008-10-02 | Rose Shao | Map detector with a single state metric engine |
US20090150746A1 (en) * | 2007-12-06 | 2009-06-11 | Panu Chaichanavong | Iterative decoder systems and methods |
US20090225878A1 (en) * | 2008-03-06 | 2009-09-10 | Haralabos Papadopoulos | Adaptive forward-backward soft output m-algorithm receiver structures |
Non-Patent Citations (4)
Title |
---|
Fossorier et al., M.; "On the Equivalence Between SOVA and Max-Log-MAP Decodings," IEEE Communications Letters, V. 2, No. 5, May 1998, pp. 137-139. |
Hagenauer, & Papke, J. & L.; Decoding "Turbo"-Codes with the Soft Output Viterbi Algorithm (SOVA), IEEE Publication, 1994, p. 164. |
Moon, & Park, J. & J.; "Pattern-Dependent Noise Prediction in Signal-Dependent Noise," IEEE Journal on Selected Areas in Communications, V. 19, N. 4, Apr. 2001. pp. 730-743. |
Ta, C. H. and Weiss, S. (2005) Design of Precoding and Equalisation for Broadband MIMO Transmission. In: 2nd IEE/EURASIP Conference on DSP Enabled Radio, Sep. 19-20, University of Southampton. 30/1-30/5. * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8885779B2 (en) * | 2013-03-14 | 2014-11-11 | Seagate Technology Llc | Channel detector implementation with postcoder |
US9304851B2 (en) | 2013-11-27 | 2016-04-05 | Seagate Technology Llc | Decoding with log likelihood ratios stored in a controller |
US20170257232A1 (en) * | 2016-03-02 | 2017-09-07 | Mstar Semiconductor, Inc. | Equalizer apparatus and viterbi algorithm based decision method |
US10044528B2 (en) * | 2016-03-02 | 2018-08-07 | Mstar Semiconductor, Inc. | Equalizer apparatus and Viterbi algorithm based decision method |
Also Published As
Publication number | Publication date |
---|---|
US20090231745A1 (en) | 2009-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8307267B2 (en) | Programmable soft-output Viterbi algorithm system and method | |
US7031090B2 (en) | Information recording and reproducing apparatus and method and signal decoding circuit having improved noise processing characteristics | |
US7415651B2 (en) | Data communication system with multi-dimensional error-correction product codes | |
US7827464B2 (en) | Iterative read channel architectures with coded modulation | |
JP4198904B2 (en) | Recording / reproducing apparatus, signal decoding circuit, error correcting method, and iterative decoder | |
US7805664B1 (en) | Likelihood metric generation for trellis-based detection and/or decoding | |
US8699167B2 (en) | Systems and methods for data detection using distance based tuning | |
JP4652310B2 (en) | Decoder and reproducing apparatus | |
US7779325B2 (en) | Data detection and decoding system and method | |
US20060156171A1 (en) | Combining spectral shaping with turbo coding in a channel coding system | |
US8291304B2 (en) | Signal processing device, signal processing method, and signal reproducing apparatus | |
KR20110118612A (en) | Error correction performance tuning system, disk drive test method and disk drive test system | |
US7788572B1 (en) | Parallel maximum a posteriori detectors with forward and reverse viterbi operators having different convergence lengths on a sampled data sequence | |
Wu et al. | Detection-decoding on BPMR channels with written-in error correction and ITI mitigation | |
US7555070B1 (en) | Parallel maximum a posteriori detectors that generate soft decisions for a sampled data sequence | |
US8271863B2 (en) | Forward decision aided nonlinear Viterbi detector | |
US8464119B1 (en) | Defect recovery for iteratively-decoded data channel | |
Xie et al. | Improving burst error tolerance of LDPC-centric coding systems in read channel | |
US9548762B2 (en) | Normalization factor adaptation for LDPC decoding for hard disk drive systems | |
US8917467B1 (en) | Systems and methods for ATI mitigation | |
US7421643B2 (en) | Data detection and decoding system and a method of detecting and decoding data | |
US8885779B2 (en) | Channel detector implementation with postcoder | |
Dholakia et al. | On iterative decoding for magnetic recording channels | |
Wu et al. | Noise predictive turbo systems | |
Aviran et al. | Noise-predictive turbo equalization for partial-response channels |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VENKATARAMANI, RAMAN CHATAPURAM;KUZNETSOV, ALEXANDER VASILIEVICH;PATAPOUTIAN, ARA;REEL/FRAME:021143/0827;SIGNING DATES FROM 20080314 TO 20080317 Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:VENKATARAMANI, RAMAN CHATAPURAM;KUZNETSOV, ALEXANDER VASILIEVICH;PATAPOUTIAN, ARA;SIGNING DATES FROM 20080314 TO 20080317;REEL/FRAME:021143/0827 |
|
AS | Assignment |
Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE, CALIFORNIA Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017 Effective date: 20090507 Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND FIRST PRIORITY REPRESENTATIVE, NEW YORK Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017 Effective date: 20090507 Owner name: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017 Effective date: 20090507 Owner name: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATE Free format text: SECURITY AGREEMENT;ASSIGNORS:MAXTOR CORPORATION;SEAGATE TECHNOLOGY LLC;SEAGATE TECHNOLOGY INTERNATIONAL;REEL/FRAME:022757/0017 Effective date: 20090507 |
|
AS | Assignment |
Owner name: SEAGATE TECHNOLOGY HDD HOLDINGS, CALIFORNIA Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001 Effective date: 20110114 Owner name: MAXTOR CORPORATION, CALIFORNIA Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001 Effective date: 20110114 Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001 Effective date: 20110114 Owner name: SEAGATE TECHNOLOGY INTERNATIONAL, CALIFORNIA Free format text: RELEASE;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:025662/0001 Effective date: 20110114 |
|
AS | Assignment |
Owner name: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT, CANADA Free format text: SECURITY AGREEMENT;ASSIGNOR:SEAGATE TECHNOLOGY LLC;REEL/FRAME:026010/0350 Effective date: 20110118 Owner name: THE BANK OF NOVA SCOTIA, AS ADMINISTRATIVE AGENT, Free format text: SECURITY AGREEMENT;ASSIGNOR:SEAGATE TECHNOLOGY LLC;REEL/FRAME:026010/0350 Effective date: 20110118 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: SEAGATE TECHNOLOGY LLC, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001 Effective date: 20130312 Owner name: EVAULT INC. (F/K/A I365 INC.), CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001 Effective date: 20130312 Owner name: SEAGATE TECHNOLOGY US HOLDINGS, INC., CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001 Effective date: 20130312 Owner name: SEAGATE TECHNOLOGY INTERNATIONAL, CAYMAN ISLANDS Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT AND SECOND PRIORITY REPRESENTATIVE;REEL/FRAME:030833/0001 Effective date: 20130312 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED, SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SEAGATE TECHNOLOGY LLC;SEAGATE SINGAPORE INTERNATIONAL HEADQUARTERS PTE. LTD.;REEL/FRAME:067489/0509 Effective date: 20240423 |