A media noise optimized (MNO) detector for a read channel compensates for
pattern dependent media noise, and compensates for nonlinearities from
many sources such as residual MR nonlinearity, residual nonlinear
transition shift, partial erasure, write-induced nonlinearity, and
steady-state mis-equalization. The MNO detector is implemented by
adjusting a conventional Viterbi detector branch metric so that the
channel output value (ideal value) can be a nonlinear function of the
state/branch bits, and the branch metric scaling factor is a function of
the state/branch. For a given state/branch, the ideal value is the mean
of analog-to-digital converter samples for the pattern corresponding to
the state/branch, and the branch metric scaling factor is proportional to
the noise variance for the pattern corresponding to that state/branch.