A Viterbi detector includes circuitry for receiving an NRZ encoded received
signal in an EEPR4 channel to decode the signal according to
.lambda..sub.k.sup.(i) =(z.sub.k -y.sub.k.sup.(i)).sup.2 -.alpha..sup.(i),
wherein .alpha..sup.(i) is m .alpha., .alpha. is a positive constant, m is
a number of transitions within the most current four symbol periods,
.lambda..sub.k.sup.(i) is a branch metric at time k for an i.sup.th
Viterbi branch, k is a time period, z.sub.k is a received value at time k,
.lambda..sub.k.sup.(i) is a metric used to determine a next state of the
Viterbi based upon a maximum likelihood evaluation for an i.sup.th branch,
a.sub.k, a.sub.k-1, a.sub.k-2, a.sub.k-3 are received state values at
respective time periods k, k-1, k-2, and k-3, and y.sub.k is an ideal
sample associated with an i.sup.th branch. The detector is operated to
decode a received data value by determining whether the received value is
in a space containing first (90) and second (92) possible decode values.
The space has a boundary (96) substantially equidistant from the first
(90) and second (92) possible decode values and separating the first and
second possible decode values. If the received value is within a first
portion of the space closest to the first decode value, the received value
is decoded as the first decode value. If the received value is within a
second portion of the space closest to the second decode value, it is
decoded as the second decode value. A value (.alpha.) that estimates an
amount of jitter noise in a channel (26) through which the received value
has passed is produced. The boundary (96) is then moved an additive amount
(1.alpha., 2.alpha., 3.alpha.) determined by the value that estimates an
amount of jitter noise, wherein the boundary is moved (97, 98, 99) to
enlarge whichever of the first and second spaces that contains a larger
amount of jitter noise.