30
CHAPTER 1.
CHANNEL CODES
a clock pulse and the formation of a new encoder state. In this example, the
first bit of a branch label refers to the upper output of the encoder. The upper
branch leaving a node corresponds to a 0 input bit, while the lower branch
corresponds to a 1. Every path from left to right through the trellis represents
a possible codeword. If the encoder begins in the all-zero state, not all of the
other states can be reached until the initial contents have been shifted out. The
trellis diagram then becomes identical from column to column until the final
input bits force the encoder back to the zero state.
Each branch of the trellis is associated with a branch metric, and the metric
of a codeword is defined as the sum of the branch metrics for the path associ-
ated with the codeword. A maximum-likelihood decoder selects the codeword
with the largest metric (or smallest metric, depending on how branch metrics
are defined). The Viterbi decoder implements maximum-likelihood decoding
efficiently by sequentially eliminating many of the possible paths. At any node,
only the partial path reaching that node with the largest partial metric is re-
tained, for any partial path stemming from the node will add the same branch
metrics to all paths that merge at that node.
Since the decoding complexity grows exponentially with constraint length,
Viterbi decoders are limited to use with convolutional codes of short constraint
lengths. A Viterbi decoder for a rate-1/2, K = 7 convolutional code has ap-
proximately the same complexity as a Reed-Solomon (31,15) decoder. If the
constraint length is increased to K = 9, the complexity of the Viterbi decoder
increases by a factor of approximately 4.
The suboptimal sequential decoding of convolutional codes [2] does not in-
variably provide maximum-likelihood decisions, but its implementation com-
plexity only weakly depends on the constraint length. Thus, very low error
probabilities can be attained by using long constraint lengths. The number of
computations needed to decode a frame of data is fixed for the Viterbi decoder,
but is a random variable for the sequential decoder. When strong interfer-
ence is present, the excessive computational demands and consequent memory
overflows of sequential decoding usually result in a higher than for Viterbi de-
coding and a much longer decoding delay. Thus, Viterbi decoding is preferable
for most communication systems and is assumed in the subsequent performance
analysis.
To bound for the Viterbi decoder, we assume that the convolutional code
is linear and that binary symbols are transmitted. With these assumptions, the
distribution of either Hamming or Euclidean distances is invariant to the choice
of a reference sequence. Consequently, whether the demodulator makes hard or
soft decisions, the assumption that the all-zero sequence is transmitted entails
no loss of generality in the derivation of the error probability. Let denote
the number of paths diverging at a node from the the correct path, each having
Hamming weight and incorrect information symbols over the unmerged seg-
ment of the path before it merges with the correct path. Thus, the unmerged
segment is at Hamming distance from the correct all-zero segment. Let
denote the minimum free distance, which is the minimum distance between any
two codewords. Although the encoder follows the all-zero path through the