'''[[Maximum-likelihood]]''' decoding using the eponymous [[Viterbi algorithm]] was proposed in 1967 by [[Andrew Viterbi]] as a means of decoding [[convolutional codes]].<ref>A. Viterbi, "[https://ieeexplore.ieee.org/document/1054010 Error bounds for convolutional codes and an asymptotically optimum decoding algorithm]", IEEE Trans. Info. Theory, Vol. 13, No. 2, pp. 260-269, Apr. 1967</ref>
By 1971, [[Hisashi Kobayashi]] at [[IBM]] had recognized that the Viterbi Algorithmalgorithm could be applied to analog channels with inter-symbol interference and particularly to the use of PR4 in the context of Magnetic Recording<ref>H. Kobayashi, "[https://ieeexplore.ieee.org/document/1054689 Correlative level coding and maximum-likelihood decoding]", IEEE Trans. Inform. Theory, vol. IT-17, PP. 586-594, Sept. 1971</ref> (later called PRML). (The wide range of applications of the Viterbi algorithm is well described in a review paper by [[Dave Forney]].<ref>D. Forney, “[https://www2.isye.gatech.edu/~yxie77/ece587/viterbi_algorithm.pdf The Viterbi Algorithm]”, Proc. IEEE, Vol. 61, No. 3, pp. 268-278, Mar. 1973</ref>) A simplified algorithm, based upon a difference metric, was used in the early implementations. This is due to Ferguson at [[Bell Labs]].<ref>M. Ferguson, ”[https://ieeexplore.ieee.org/document/6774130 Optimal reception for binary partial response channels]” Bell Syst. Tech. J., vol. 51, pp. 493-505, Feb. 1972</ref>
== Implementation in products ==
=== PRML with nonlinearities and signal-dependent noise ===
As data detectors became more sophisticated, it was found important to deal with any residual signal nonlinearities as well as pattern-dependent noise (noise tends to be largest when there is a magnetic transition between bits) including changes in noise-spectrum with data-pattern. To this end, the Viterbi- detector was modified such that it recognized the expected signal-level and expected noise variance associated with each bit-pattern. As a final step, the detectors were modified to include a 'noise predictor filter' thus allowing each pattern to have a different noise-spectrum. Such detectors are referred to as Pattern-Dependent Noise-Prediction (PDNP) detectors<ref>J. Moon, J. Park, "[https://ieeexplore.ieee.org/abstract/document/920181 Pattern-dependent noise prediction in signal dependent noise]" IEEE J. Sel. Areas Commun., vol. 19, no. 4, pp. 730–743, Apr. 2001</ref> or [[noise-predictive maximum-likelihood detection|noise-predictive maximum-likelihood detectors]] (NPML)<ref>E. Eleftheriou, W. Hirt, "[https://ieeexplore.ieee.org/document/539233 Improving Performance of PRML/EPRML through Noise Prediction]". IEEE Trans. Magn. Vol. 32, No. 5, pp. 3968–3970, Sept. 1996</ref>. Such techniques have been more recently applied to digital tape recorders<ref>E. Eleftheriou, S. Ölçer, R. Hutchins, "[https://ieeexplore.ieee.org/document/5438946 Adaptive Noise-Predictive Maximum-Likelihood (NPML) Data Detection for Magnetic Tape Storage Systems]", IBM J. Res. Dev. Vol. 54, No. 2, pp. 7.1-7.10, March 2010</ref>.
== Modern electronics ==
== Recent Read/Write Electronics ==
Although the PRML acronym is still occasionally used, the most advanced detectors today (as of 2017) are around 10,000 times more complex (gate-count) than the first PRML channel and operate aboutat 100 times thehigher data-rate (up to 3 Gbit/s)rates. The analog front-end typically includes [[Automatic_gain_control|AGC]], correction for the nonlinear read-element response, and a low-pass filter with control over the high-frequency boost or cut. Equalization is done after the A/DADC with a digital [[Finite_impulse_response|FIR filter]] equalizer. ([[Two-dimensional magnetic recording|TDMR]] uses a 2-input, 1-output equalizer.) The detector uses the PDNP/NPML approach but the hard-decision Viterbi algorithm is replaced with a detector providing soft-outputs (additional information about the reliability of each bit). Such detectors using a 'soft Viterbi algorithm' or [[BCJR algorithm]] algorithm are essential in iteratively decoding the [[LDPClow-density parity-check code]] codes used in modern HDDs. A single integrated circuit contains the entire R/Wread and write channelchannels (including the iterative decoder) as well as all the disk control and interface functions. There are currently two suppliers: [[Broadcom]] and [[Marvell Technology Group|Marvell]].<ref>{{cite web |url=https://www.marvell.com/storage/assets/Marvell_88i9422_Soleil_pb_FINAL.pdf |title=Marvell 88i9422 Soleil SATA HDD Controller |date=September 2015}}{{dead link|{{subst:DATE}}}}</ref>
== See also ==
|