Disclosed herein is an apparatus and method of calibrating the parameters
of a Viterbi detector 138 in which each branch metric is calculated based
on noise statistics that depend on the signal hypothesis corresponding to
the branch. An offline algorithm for calculating the parameters of
data-dependent noise predictive filters 304A-D is presented which has two
phases: a noise statistics estimation or training phase, and a filter
calculation phase. During the training phase, products of pairs of noise
samples are accumulated in order to estimate the noise correlations.
Further, the results of the training phase are used to estimate how wide
(in bits) the noise correlation accumulation registers need to be. The
taps [t.sub.2.sup.[k], t.sub.1.sup.[k], t.sub.0.sup.[k]] of each FIR
filter are calculated based on estimates of the entries of a 3-by-3
conditional noise correlation matrix C.sup.[k] defined by
C.sub.ij.sup.[k]=E(n.sub.i-3n.sub.j-3|NRZ condition k).