Trellis Coding
Trellis Coding
Part !
vated some coding theorists to study the trellis structure of these codes so that
trellis-based decoding algorithms can be devised to reduce decoding complexity.
Trellis representation of linear block codes was first presented in [1] and then
in [67, 109]. The first serious study of trellis structure and trellis construction
for linear block codes was due to Wolf. In his 1978 paper [109], Wolf presented
the first method for constructing trellises for linear block codes and proved that
an N-section trellis diagram for a q-ary (N, K) linear block code has at most
qmla(K,N-K) states. He also presented a method for labeling the states based on
the parity-check matrix of a code. Right after Wolf's work, Massey presented
a simple but elegant paper [67] in which he gave a precise definition of a code
trellis, derived some fundamental properties, and provided implications of the
trellis structure for encoding and decoding of codes. However, these early works
in trellis representation of linear block codes did not arouse much enthusiasm,
and for the next 10 years, there was basically no research in this area.
There are two major reasons for this inactive period of research in this area.
First, most coding theorists at that time believed that block codes did not have
simple trellis structure like convolutional codes and maximum likelihood decod-
ing of linear block codes using the Viterbi algorithm was practically impossible,
except for very short block codes. Second, since almost all of the linear block
codes are constructed algebraically or based on finite geometries, it was the
belief of many coding theorists that algebraic decoding was the only way to
decode these codes. These two reasons seriously hindered the development of
efficient soft-decision decoding methods for linear block codes and their appli-
cations to error control in digital communications. This led to a general belief
that block codes are inferior to convolutional codes and hence, that they were
not useful.
In fact, for more than two decades, most of the practicing communication
engineers believed that the rate-l/2 convolutional code of constraint length 7
with Viterbi decoding was the only effective error control coding scheme for
digital communications, except for perhaps ARQ schemes. To achieve higher
reliability for certain applications such as NASA's satellite and deep space
communications, this convolutional code concatenated with a Reed-Solomon
outer code was thought the best solution.
It was really Forney's paper in 1988 [24] that aroused enthusiasm for research
in the trellis structure of linear block codes. In this paper, Forney showed that
some block codes, such as Reed-Muller (RM) codes and some lattice codes,
do have relatively simple trellis structures, and he presented a method for con-
structingsectionalized
trellises
forlinearblock codes and assertedthatthe con-
Chapter 2 gives a brief review of linear block codes. The goal is to provide
the essential background material for the development of trellis structure and
trellis-based decoding algorithms for linear block codes in the later chapters.
Chapters 3 through 6 present the fundamental concepts, finite-state machine
model, state space formulation, basic structural properties, state labeling, con-
struction procedures, complexity, minimality, and sectionalization of trellises.
Chapter 7 discusses trellis decomposition and subtrellises for low-weight code-
words. Chapter 8 first presents well known methods for constructing long
powerful codes from short component codes or component codes of smaller
dimensions, and then provides methods for constructing their trellises which
include Shannon and Cartesian product techniques. Chapter 9 deals with con-
volutional codes, puncturing, zero-tall termination and tail-biting. It shows
that trellis construction procedures for both block and convolutional codes are
essentially the same, except that the trellises for convolutional codes or termi-
nated convolutional codes are time-invariant and the trellises for block codes
are in general time-varying. For both types of codes, trellis states are defined
based on a certain set of information bits, called the state-defining information
set.
Chapter 2 gives a brief review of linear block codes. The goal is to provide
the essential background material for the development of trellis structure and
trellis-based decoding algorithms for linear block codes in the later chapters.
We mainly present the basic concepts of encoding and decoding of linear block
codes and state some facts without derivations or proofs. Since in most present
digital data communication systems, information is coded in binary digits, '0'
or '1', we discuss only linear block codes with symbols from the binary field
GF(2). First, linear block codes are defined and described in terms of generator
and parity-check matrices. Second, coset partition of a linear block code is dis-
cussed, which is needed in analyzing the code trellis structure and construction.
Third, the concepts of minimum distance, weight distribution and distance pro-
file are presented, which are needed in the later chapters for presenting decoding
algorithms and their error performances. Finally, the concepts of hard-decision,
soft-decision, and maximum likelihood decoding are presented.
into a codeword (or code sequence) of N bits according to certain rules, where
N > K. Therefore, corresponding to the 2 K possible messages, there are 2 K
codewords. This set of 2 K codewords forms a block code of length N. For
a block code to be useful, the 2 K codewords must be distinct. Hence, there
should be a one-to-one correspondence between a message and a codeword.
where the rows, gl, g2, ..., gK, are linearly independent over GF(2). The 2 K
linear combinations of the K rows of G form the codewords of C. We say that
the rows of G span the code C, or C is the row space of G. Let
O. = (a1,tt2,...,aK)
= (-I,-2, ,-.)
for the message a = (at,a2,... ,aK) is given by
gl
= ("1,_= ...,aK) g2
gK
From (2.1) and (2.2), we find that for 1 < i < N, the i-th component of u is
given by
ui = at • gl_ -F a2 • g2i +"" + aK • gK_. (2.3)
instants,
For 1 < i < N, the i-th unit of time is the interval from time-(/- 1) to time-/.
During this interval, the i-th code bit u, is formed and transmitted. By time-i,
the transmission is completed. This interval is called a bit interval.
Example 2.1 Consider a binary (8, 4) linear block code which is generated by
gl I I I I I I I I
G= g2 = 0 0 0 0 1 1 1 1 (2.5)
g3 0 0 I 1 0 0 1 1
g4 0 1 0 1 0 1 0 1
U = l.g1+[Link]+O.g3+l.g 4
---- (10100101).
where the rows are linearly independent. A binary N-tuple u = (ut, u2,..., UN)
is a codeword in C if and only if the following condition holds:
u-H T = 0, (2.7)
&
1/,.1) = U l .U 1 +U 2.u 2 +... + U N.u N
= O.
Example 2.2 Consider the (8,4) linear block code given in Example 2.1. A
parity-check matrix for this code is the generator matrix itself given by (2.5),
i.e°_
I 1 1 1 I 1 1 i
0 0 0 0 1 1 1 1
H =G-._
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
For an (N, K) linear block code C, the ratio R = K/N is called the code
rate which represents the average number of information bits carried by a code
symbol (or the average number of information bits transmitted per channel
usage).
Consider a binary (N, K) linear block code C with a generator matrix G. Let
K1 be a nonnegative integer such that 0 < K1 _< K. A subset of 2 K' codewords
in C is said to be a linear subcode of C if this subset itself is a/(1-dimensional
subspace of the vector space of all the N-tuples over GF(2). Any K1 rows of
the generator matrix G span an (N, K1) linear subcode of C, and they form a
generator matrix for the subcode. If KI = 0, the subcode consists of only the
all-zero codeword 0 of C. For Kl = K, the subcode is just the code itself.
Let C1 be an (N, K1) linear subcode of C. Then C can be partitioned into
2 g-g_ disjoint cosets of C1; each coset is of the following form:
with 1 < l < 2 K-K_, where for vl _ O, vl is in C but not in C1 and for vl = O,
the coset 0 _ C1 is just the subcode C1 itself. This partition of C with respect
to C1 is denoted with C/CI, and the codeworcls v_ for 1 < l < 2 N-K_ are called
the coset representatives. Any codeword in a coset can be used as the coset
representative without changing the composition (the codewords) of the coset.
Important properties of cosets are:
(1) The sum of two codewords in a coset is a codeword in the subcode Cl.
(2) Let z and y be two codewords in cosets vi@C1 and vj _3C1 , respectively,
where i _ j. Then the sum _:+y is a codeword in the coset (vi+vi)t_C1
with vi + vj as the coset representative.
The set of representatives for the cosets in the partition C/C1 is denoted [C/CI]
which is called the coset representative space for the partition C/C1. Code
C can be expressed a.s the direct-sum of C1 and [C/C1] as follows:
and
Let u and v be two N-tuples over GF(2). The Hamming distance between
u and v, denoted d(u, v), is defined as the number of places where they differ.
The minimum (Hamming) distance of a block code C, denoted drain(C),
is defined as the minimum Hamming distance between all distinct pairs of
codewords in C, i.e.,
For a linear block code C, it follows from (2.16) and (2.17) that
= min{w(x): x E C,x _ O}
*-- (2.18)
weight of the (8,4) linear block code given in Table 2.1 is 4; therefore, its
minimum distance is 4.
Let C be an (N, K) linear block code. For 0 < i < N, let Ai be the number
of codewords with weight i. The numbers Ao,A1,A2,... ,AN are called the
weight distribution of C. It is clear that A0 = 1. The weight distribution of
the (8,4) linear block code given in Table 2.1 is
(ii) For I < i < m, the number of codewords in C with weight wi is not
equal to zero.
This set is called the weight profile of C. The weight profile of the (8, 4)
linear block code given by Table 2.1 is {0,4,8}. Let u be any codeword in
C. The weight distribution of C actually gives the distribution of distances of
codewords in C from the codeword u. The weight profile W of C gives the
profile of distances of codewords in C from the codeword u.
The error performance of a linear block code is determined by its minimum
distance and weight distribution. For an (N, K) linear block code with min-
imum distance drain, we often use the notation (N,K, dmin) to represent the
code. Therefore, the code given by Table 2.1 is an (8, 4, 4) linear block code.
2.4 DECODING
Suppose an (N, K) linear block code C is used for error control over an ad-
ditive white Gaussian noise (AWGN) channel. Let u = (ul,uz,...,ut¢) be
the codeword to be transmitted. Before the transmission, a modulator maps
each code bit into an elementary signal waveform. Binary PSK or FSK are
commonly used signal waveforrns for transmitting the bits in a codeword. The
resultant signal sequence is then transmitted over the channel and corrupted
by noise. At the receiving end, the received signal sequence is processed by a
demodulator and sampled at the end of each signal (bit) interval. This results
r =
which is called the received sequence. For 1 < i < N, the i-th received
component ri is the sum of a fixed real number ci and a Gaussian random
variable nl of zero-mean and variance No/2 where ci corresponds to the trans-
mitted code bit ul at time-/. These received components may or may not be
quantized. At one extreme, the demodulator can be used to make firm deci-
sions on whether each transmitted code bit is a '0' or a '1'. Thus the output
z = (zl, zM),
which may contain transmission errors, i.e., for some i, zl # ui. This bi-
nary hard-decision sequence is fed into a decoder which attempts to correct the
transmission errors (if any) and recover the transmitted codeword u. Since the
decoder operates on the hard decisions made by the demodulator, the decoding
process is called hard-decision decoding. At the other extreme, the unquan-
tized outputs from the demodulator can be fed directly into the decoder for pro-
cessing. We refer to the resulting decoding as soft-decision decoding. Since
the decoder makes use of the additional information contained in the unquan-
tized received samples to recover the transmitted codeword, soft-decision decod-
ing provides better error performance than hard-decision decoding. Decoding
based on the quantized outputs from the demodulator, where the number of
quantization levels exceeds two, is also referred to as soft-decision decoding.
Soft-decision decoding provides better error performance than hard-decision
decoding; however, hard-decision decoding is much simpler to implement. Var-
ious hard-decision decoding algorithms based on the algebraic structures of
linear block codes have been devised. These hard-decision decoding algorithms
are also termed algebraic decoding algorithms. Recently, effective soft-decision
decoding algorithms have been devised, and they achieve either optimum error
plexity.
Let u" be the estimate of the transmitted codeword at the output of the
likelihood decoder and the decoding process is called the maximum like-
Suppose BPSK signaling is used. Assume that each signal has unit energy.
c = (cl,c2,...,CN)
cl = 2u_ - 1. (2.24)
c, = (2.25)
-1,
4"1, if ui
if ui = 0,
= 1.
The squared Euclidean distance between the received sequence r = (rl, r2,
N N N
- cl2= r, -
i=1 i=l i=1
EN__,
c,2 = g. Therefore, minimizing Ir - cl 2 of (2.26) is equivalent to maxi-
mizing
r •C : ri • ci
i--1
N
= 1). (2.28)
i=1
The inner product given by (2.28) is called the correlation between the re-
N N
The inner product given by (2.30) is called the binary correlation between
the received sequence r and the codeword u.
Summarizing the above, MLD can be stated in four equivalent ways:
is maximized.
is minimized.
i=1
is maximized.
Length Nr.m -- 2 m
Dimension Kr,,,_ = 1 + (_') +... + (7)
Minimum distance d.,,,_ = 2 '_-'.
v3 = (00001111),
v2 = (00110011),
vl = (01010101).
where '.' denotes the logic product (or AND operation), i.e. ai • bi = 1 if and
only if both al and bl are '1'. For m = 3,
v3 • u1 = (00000101).
For simplicity,
we use ab for a. b.
Let 1 denote the ail-one2_n-tuple,
1 = (I,i,...,I). For I __il < iz < ...<
iz__m, the product
is said to have degree I. Since the weights of v l, v2,..., um are even and powers
of 2, it can be shown that the weight of the product vilvi3 ... vi, is also even
and a power of 2, in fact 2 "_-l.
The r-th order RM code, RM,.,m, of length 2 "_ is generated by the following
set of vectors:
GRM(r,m) = {1,VhV2,...,V,_,VlV2,VlV3,...,V,,_-lV,_,
There are
m
÷(:)
vectors in GaM(r,m) and they are linearly independent. If the vectors in
GRM(r,m) are arranged as rows of a matrix, then the matrix is a generator
matrix of the RM code, RMr,m. For 0 < l < r, there are exactly ('_) rows
in GaM(r,m) of weight 2 m-l. All the codewords of the RM code, RM_,m with
0 <_ r < m, have even weights. It is also clear that the (r - 1)-th order RM
code, RM,-1,,_, is a proper subcode of the r-th order RM code, RM ....
v0 =1 1111111111111111
v4 0000000011111111
va 0000111100001111
_ 0011001100110011
Vl 0101010101010101
v3v4 0000000000001111
v2v4 0000000000110011
vlv4 0000000001010101
v2v3 0000001100000011
vlv3 0000010100000101
vlv2 0001000100010001
The code given in Example 2.1 is the 1st order RM code, RM1,3, of length 8.
Let
G(2'2)_ [ 10 11 ] (2.33)
G(2"2') 0 1 1]
1]o[I 0 I
1 1 1 1
0 1 0 1
(2.34)
0 0 1 1
0 0 0 1
G(2,2)isdefinedas
1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 1 0 0 0 1
(2.35)
0 0 0 0 1 1 1 1
0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 1
Then IC, lC_ + C21 is an (2N,/(1 +/(2, d) binary linear code with
The above construction of a code from two component codes is called the
using the lulu + vl-construction [66]. For m > 2, the r-th order RM code
Consider a boolean function f(xl, x2,..., zm) of m variables, xl, x2,. • •, xm,
which take values 0 or 1. For each combination of values of xl, x2,.. •, and xm,
the function f takes a truth value either 0 or l. For the 2 "_ combinations of
values of xl,x2,... ,xm, the truth values of f form a 2m-tuple over GF(2).
For a nonnegative integer I less than 2 "_, let (ba, bz2,..., him) be the standard
given boolean function f(xl, _2,..., xm), we form the following 2"_-tuple (truth
vector):
v = (vl,v2,... ,v,+l,... ,v2-) (2.41)
where
and (bn, hi2,..., bl,_) is the standard binary representation of the index integer
I. We say that the boolean function f(zl,z2,... ,x_) represents the vector v.
We use the notation b(f) for the vector represented by f(zl, x2,..., xm).
It is easy to see that this boolean function represent the vector vi defined by
= (2.44)
= =-,-1=,,,,
... up to all products of r variables}. (2.46)
Finally,we want to point out that the dual code of the r-thorder RM code,
RM ....is the (rn- r - 1)-thorder RM code, RM .... 1,m.
An encoder for a linear code C with a finite memory, for which the output
code bits at any time instant during an encoding interval F -- {0,1,2,...}
are uniquely determined by the current input information bits and the state
of the encoder at the time can be modeled as a finite-state machine. The
The encoder starts from some initial state, denoted c0. At any time instant i
during its encoding interval F, the encoder resides in one and only one allowable
state in a finite set. In the trellis diagram, the set of allowable states at time-
i is represented by a set of vertices (or nodes) at the i-th level, one for each
allowable state. The encoder moves from one allowable state at one time instant
to another allowable state at the next time instant in one unit of time. This
is called a state transition which, in the trellis diagram, is represented by
a directed edge (or branch) connecting the starting state to the destination
state. Each edge is labeled with the code bits that are generated during the
state transition. The set of allowable states at a given time instant i is called
the state space of the encoder at time-i, denoted Zi(C). A state _i E Y_i(C)
is said to be reachable if there exists an information sequence that takes the
encoder from the initial state _0 to state oi at time-i. Every state of the encoder
is reachable from the initial state _r0. In the trellis, every vertex at leveL/for
i E r is connected by a path from the initial state _r0. The label sequence of
this path is a code sequence (or a prefix of a code sequence). Every vertex
in the trellis has at least one incoming edge except for the initial state and at
least one outgoing edge except for a state called the final state. Encoding of
an information sequence is equivalent to tracing a path in the trellis starting
from the initial vertex or0. If the encoding interval r is semi infinite, the trellis
continues indefinitely; otherwise it terminates at a final state, denoted _I.
Convolutionai codes have semi infinite trellises, while the trellises for linear
block codes terminate at the end of each encoding interval.
For i E 1", let Ii and Oi denote the input information block and its corre-
sponding output code block, respectively, during the interval from time-/ to
i-th level
2nd level 4
o
transition
time-(/+ 1). Then the dynamic behavior of the encoder for a linear code is
where oi 6 ]Ei(C) and ai+l E Zi+z(C) are called the current and next states,
respectively. In the trellis diagram for C, the current and next states are
0 0
0 0
0 0
(1) _i(C) C _(C) for 0 _<i < v and }31(C) = _(C) for i > v and
Consider a binary (N, K) linear block code C with generator and parity-check
matrices, G and H, respectively. During each encoding interval, a message
of K information bits is shifted into the encoder memory and encoded into a
codeword of N code bits. The N code bits are formed and shifted onto the
channel in N bit times. Therefore, the encoding span 1" is finite and consists
of N + 1 time instants,
r = {0, 1,2,...,N}.
C can be represented by an N-section trellis diagram over the time span r. Let
g(C) denote the encoder for C.
Definition 3.1 An N-section trellis diagram for a binary linear block code C
of length N, denoted T, is a directed graph consisting of N+ 1 levels of vertices
(called states) and edges (called branches) such that:
(t) For 0 < i < N, the vertices at the i-th level represent the states in the
state space Zi(C) of the encoder E(C) at time-/. At time-0 (or the 0-th
level) there is only one vertex, denoted a0, called the initial vertex (or
state). At time-N (or the N-th level), there is only one vertex, denoted
cry, called the final vertex (or state).
(2)For 0 < i _< N, a branch in the i-th section of the trellis T connects
a state _ri-1 E _i-t(C) to a state ai E ]Ei(C) and is labeled with a
code bit ui that represents the encoder output in the bit interval from
time-(/- 1) to time-/. A branch represents a state transition.
(3) Except for the initialstate, every state has at least one, but no more
than two, incoming branches. Except for the finalstate, every state has
at least one, but no more than two, outgoing branches. The initialstate
Two branches diverging from the same state have different labels.
(4) There is a directed path from the initialstate ao to the final state a I
with a label sequence (u_, u2,..., u/v) ifand only if (u_, us,..., u/v) is a
codeword in C.
A/x
Two states in the code trellisare said to be adjacent ifthey are connected
by a branch. During one encoding interval F, the encoder starts from the initial
state a0, transverses a sequence of states
O'0,al,... ,O'i,...,0"I) ,
and then reaches the final state a/. The bit-level 8-section trellis diagram
for the (8,4) linear block code given in Example 2.1 (Table 2.1) is shown in
Figure 3.2.
For 0 < i < N, let I_i(C)l denote the cardinality of the state space [_i(C).
state complexity of the N-section code trellis T. We will show later that for
is called state space dimension profile. From Figure 3.2, we see that the
state space complexity and dimension profiles for the (8, 4) code given in Ex-
ample 2.1 are (1, 2, 4, 8, 4, 8, 4, 2, 1) and (0, 1, 2, 3, 2, 3, 2, 1, 0), respectively.
(1) The leading '1' of each row appears in a column before the leading '1'
of any row below it.
(2) No two rows have their trailing _ones" in the same column.
Any generator matrix for C can be put in TOF by two steps of Gaussian
elimination.
Example 3.1 Consider the (8, 4) RM code given in Example 2.1 with following
generator matrix,
1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
It is not in TOF. By interchanging the second and the fourth rows, we have
1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
Add the fourth row of the above matrix to the first,second and third rows.
gx 1 1 1 1 0 0 0 0
G= g2 = 0 1 0 1 1 0 1 0
g3 0 0 1 1 1 i 0 0
g4 0 0 0 0 1 1 1 1
A/x
all the nonzero bits of g. This is denoted as span(g) A_ [/,j]. For a row g in
gl = (ga,gz2,...,gIN)
Let (al, a2,..., aK) be the block of K information bits (called a message) to
=
= ax • gl + a2 • g2 -[- "'" _- aK " gK"
We see that the/-th information bit al affects the output u of the encoder
£(C) over the span of the/-th row gt of the TOGM G. This span(g_) may be
regarded as the constraint length of the code associated with the/-th input
At time-/with 1 < i < N, the number of information bits that affect the next
output code bit u_+l is equal to the number of rows in G whose active spans
contain i. These information bits define the state of the encoder at time-/.
N-section trellisfor an (N, K) linear block code (7 over GF(2) with a TOGM
G.
At time-i, 0 < i < N, the rows of G are divided into three disjoint subsets:
(I) G_ consists of those rows of G whose spans are contained in the interval
[1,il.
(2) G / consists of those rows of G whose spans are contained in the interval
[i+ 1, q.
(3) G_ consists of those rows of G whose active spans contain i.
respect to time-/. The information bits in A { only affect the encoder outputs
after time-/. Since the active spans of the rows in G_ contain the time instant
i, the information bits in A_ affect not only the past encoder outputs up to
time-/ but also the future encoder outputs beyond time-/. We say that the
information bits in A_ define a state of encoder C(C) for the code (7 at time-i.
Let p_ _ IA_I = IG_I. Then there are 2 m distinct states that the encoder £.((7)
information bits in A_. These states form the state space El(C) of the encoder
g(C) (or simply of the code C). The parameter p_ is the dimension of the
state space Ei(C). In the trellis representation of C, the states in El(C) are
Example 3.2 Consider the TOGM G for the (8, 4) RM code given in Exam-
ple 3.1. The spans of the four rows are: span(g1) = [1,4], span(g2) = [2,7],
span(g3) = [3,6], and span(g4) = [5,81. Their active spans are therefore:
pan(gl)
= [i,
31,pan(g =)[2,
61,'pan(g3)
= [3,
5]and = [5,
7].
For each i with 0 < i < 8, counting the number of rows which are active at
For 0 < i < N, suppose the encoder E(O) isin state_rlE Ei(C). From time-/
to time-(/+ 1),E(C) generates a code bit ui+z and moves from state _ri to a
state _i+z E Ei+z(C). Let
A_ -- t_'z1"(i)
,"2_(i),... , a(pid)
} (3.2)
where Pi = [G_I. The current state cri of the encoder is defined by a specific
combination of the information bits in A_.
Let g" be the row in G / whose leading '1' is at position-(/+ 1). The unique-
ness of this row 9" (if it exists) is guaranteed by the first condition in the
definition of a generator matrix in TOF given in section 3.3. Let g.+z denote
the (i+ l)-th component of g'. Then g_+z = 1. Let a" denote the inforxna-
tion bitthat corresponds to row g'. It followsfrom (2.3)and the structureof
the TOGM G that the output code bit ui+z generated during the bitinterval
between time-iand time-(/+ 1) isgiven by
Pi
where _(0
Y/,i+ 1 is the (i + 1)-th component of g_0 in G_. Note that a" begins
to affect the output of the encoder £(C) at time-(/+ 1). For this reason, the
bit a" is regarded as the current input information bit. The second term
in (3.3) is the contribution from the state _i defined by the information bits
in AiO __ Luzs-(0,"z-('),.. . ,a_, )} which are stored in memory. From (3.3), we see
that the current output ui+z is uniquely determined by the current state _i of
the encoder C(C) and the current input a °. The output bit ui+l can have two
possible values depending on the current input information bit a'; each value
takes the encoder £(C) to a different state at time-(/+ 1). That is, there are
two possible transitions from the current state _i to two states in Ei+z(C) at
time-(/+ 1). In the code trellis, there are two edges (or branches) diverging
Suppose there is no such row g" in G//. Then the output code bit is given
by
Pi
In this case, we may regard that the current input information bit a" is being
set to "0", i.e. a" = 0 (this is called a dummy information bit). The output
code bit ui+l can take only one value given by (3.4) and there is only one
trellis T, there is only one branch diverging from the vertex ai.
Example 3.3 Again we consider the (8,4) code with its TOGM G given in
Example 3.1. Consider time-2. Then we find that Vp = O,G_ =- (Y3,Y4) and
G_ = (gt, Y_ }. Therefore, the information bits al and a2 define the state of the
encoder at time-2 and there are 4 distinct states defined by four combinations
of values of al and a2, (00,01, 10, 11). We also see that g* = g3. Therefore,
the current input information bit is a" = a3. The current output code bit u3
is given by
us = a3 +at'glS +a2"g23
= a3 + al.
For every state defined by al and a2, us has two possible values depending on
as. In the trellis, there are two branches diverging from each state at time-2,
G_ = {91,g2, g3}. Therefore, the information bits al, a2 and as define 8 states
at time-3, as shown in Figure 3.2. There is no row 9" in G_ with leading '1'
at position (or time) i = 4. Hence we set the current input information bit
u4 = al.g14+a2.g24+as'g34
= at+a2+as.
In the trellis, there is only one branch diverging from each of the 8 states, as
shown in Figure 3.2.
/x/x
Let gO be the row in G_ whose trailing '1' is at the position-(/+ 1). (Note
that this row gO may not exist.) The uniqueness of the row gO (if it exists)
is guaranteed by the second condition of a generator matrix in TOF given in
Section 3.3. Let a ° be the information bit in A_ that corresponds to row go.
Then at time-(/+ 1),
and
= u {a'). (3.6)
The information bits in Asi+1 define the state space _i+l(C) at time-(/+ 1).
The change from AS to A,_+I defines a state transition from the current state _i
defined by A is to the next state ai+l defined by Ai+
s 1. Therefore from AS, Ai%,,
(3.3) and (3.4), we can construct the N-section code trellis T for C.
The construction of the N-section trellis T is carried out serially, section by
section. Suppose the trellis has been constructed up to section-/. Now we want
to construct the (i + 1)-th section from time-/to time-(/+ 1). The state space
_(C) is known. The (i + 1)-th section is constructed by taking the following
steps:
(1) Determine G"i+1 and AS+l from (3.5) and (3.6). Form the state space
_i+l(C) at time-(/+ 1).
(2) For each state al 6 E_(C), determine its state transition(s) following the
state transition rules given above. Connect ai to its adjacent state(s) in
Zi+,(C) by edge(s).
(z) For each state transition, determine the output code bit u_+t from the
output function of (3.3) or (3.4), and label the corresponding edge in
the trellis with ui+l.
During the encoding interval r = {0, 1,...,N}, the output function of the
encoder £(C) changes between (3.3) and (3.4). Also, the set __gl,i+l(i) ' Y2,1+
_(i) I ' " " " '
g(i)
p,,i+l } in the summations of (3.3) and (3.4) may change from one time instant
to another. This is because each column in the TOGM is, in general, not a
downward shift of the column before it. Therefore, the output function of £(C)
is time-varying. As the encoder £(C) moves from time-/ to time-(/-I- 1), its
state space may also change, i.e., _i+x(C) _ Yl'i(C). Consequently, the trellis
for £(C) is time-varying.
To describe the time-varying state space of £(C), there are four cases to
consider.
Case I: There is no such row gO in G_, but there is a row g" in G[. As
the encoder moves from time-/ to time-(/-t- 1), the active span of g"
contains the time instant i -t- 1. Therefore, g" is added to the set G_
to form G_+ 1. The information bit a" that corresponds to 9" is now
in the encoder memory and is included in determining the next and
future states of the encoder. The next state cri+l is determined by the
information bits
G1(i) (i)
,0. 2 ,...,0, (pl,),a*
CaselI: There is a rowg° E G_ and arow g" E G{. When the encoder
moves from time-/to time-(/+ 1), the span of g0 moves into the interval
[1,i + 1] and 9 ° is replaced by g" in G_+ 1. In this case, the information
bit a ° that corresponds to g0 becomes part of the past with respect to
time-(/+ 1) and will not affect the encoder outputs further; however, the
information bit a" is now in the memory and is included in determining
the next and future states of the encoder. Assuming that a ° = a_i), the
next state ai+l of the encoder is then determined by the information
bits
a_ i) , a_'),..., a_, ) , a'.
Therefore, from time-/ to time-(/+ 1), the state space of the encoder
and its dimension remain the same, i.e., Pi+l = Pi-
Case Ill: There is no such row gO in G_ and no such row g" in G{. In this
as the encoder moves from time-/ to time-(i + 1). The next state is
Case IV: There exists a row gO E G_ but there is no such row g" fi G{. In
information bit a ° becomes part of the past as the encoder moves from
time-i to time-(/q- 1). Assuming that a ° -- a_ i), the state _i+1 of the
a(i)
2 ,"3_,(1) _..._a _,) .
space reduction.
Example 3.4 Consider the (8,4) code given in Example 3.1. From itsTOGM
G, we see that for i = 0, 1 and 2, there is no such row go in G_, but there is
a row g" in G{. Hence there is state space expansion from time-0 to time-3
as shown Figure 3.2. We note that there is such a row go in G] and there is
no such row g" in Ga/. Therefore, there is state space reduction from time-3 to
From the above analysis of the N-section trellisfor an (N, K) linear block
(1) The information bits in A p become the past and do not affectthe future
(2) The information bits in A{ affect the encoder outputs only beyond time-
(3) The information bits in A_ are the bits stored in the encoder memory
that define the encoder state at time-/.
For 0 <_ i < j _< N, let Cij denote the subcode of C consisting of those
i N-j
It follows from the definition of Cij and the structure of the TOGM G for
C that Cij is spanned by those rows in G whose spans are contained in the
interval [i + 1,j]. The two subcodes, Co,i and Ci,N, are spanned by the rows
in G_ and G{, respectively, and they are called the past and future subcodes
For a linear code D, let k(D) denote its dimension. Then, k(C0,,) = IG_'I
and k(C_,_) = IG{I. Recall that the dimension of the state space E_(C) at
time-/is
This gives a relationship between the state space dimension pi(C) at time-/
and the dimensions of the past and future subcodes, C0,i and Cijv, of C with
respect to time-/.
Note that Co,i and Cijv have only the all-zero codeword 0 in common.
The direct-sum of C0,i and Ci,N, denoted C0,i $ Ci,/v, is a subcode of C with
dimension
k(co,,) + k(c_._,).
Let C/(Co,i _ Ci,/v) denote the partition of C with respect to Co,i _ Cijv.
= 2m (3.8)
cosets of Co,i • CI,N. Eq.(3.8) says that the number of states in the state space
_ (C) at time-/is equal to the number of cosets in the partition C/(Co,/$ C_,jv).
Time 0 i N
o- o
C-=-_ a/
A coset in A coset in
po,,(c)/c_:h p,,,,(C)/Ct,'N
Figure 3.4. The paths in the code trellis that represent the 2 K-O' codewords in v
(Co,,_ C,,N).
Let Si denote the subspace of C that is spanned by the rows in G_. Then
each codeword in Si is given by
: _(,I
_I _._ s''" ,a_)). G:
'_2
= + +... + (3.9)
where al ') E A_ for 1 < l _ pi. The 2 0` codewords in S, can be used as
the representatives for the cosets in the partition C/(Co,i _ C,,N). Therefore,
S, is the coset representative space for the partition C/(Co,, ¢_ Ci,N). From
(3.9), we see that there is one-to-one correspondence between v and the
state o'i £ Ei(C) defined by l, a I(i) ,a 2(,) ,.. ., a(',_). Since there is a one-to-one
correspondence between v and a coset in C/(Co,, _ Ci,N), therefore, there is
a one-to-one correspondence between a state in the state space Ei(C) and
a coset in the partition C/(Co,i _ Ci,N).
With the above one-to-one correspondence in the trellis T, the codeword v
given by (3.9) is represented by a path that passes through the state a, defined
by the information bits, a_ 0, a_0, ..., a_. ) (i.e., a path that connects the initial
state a0 to the final state a! through the state a,). If we fix the information
bits, a_ 0, a(20,..., a(p',), and allow the other K - p, information bits to vary, we
obtain 2K-P'codewords of C in the coset
with u as the coset representative. In the trellis, these 2 K-p' codewords are
represented by paths that connect the initial state a0 to the final state o!
through the state ai at time-/defined by the information bits, a_ i), a_ i), ...,
a(oi,), as shown in Figure 3.4. Note that
and
k(, C_' _ = k(Cij).
,,.1, (3.14)
2K-k(Co..)-I=(C,.,'_) = 2p'
ctri,N = Pi,N(Ci,N). Then it follow from (3.13) and (3.14) that the partition
Time 0 i 0 j N
0 0
0 __ 0
O'o . . ) al
o,
Figure 3.5. Paths in the code trellis that represent the codewords in Cij.
pi,lv(C,)/Ct,_ consists of
2K-k(Co.,)-_(C,.rv) = 2m
cosets of C i,N.
tr Again we see that there is a one-to-one correspondence
between the cosets in pidv(C)/Gt,_ and the cosets in C/(Co,i (_ Gi,lv), and
pi,N(C)/C_,_ form the paths that connect a state _ri E Ei(C) to the final state
_r! as shown in Figure 3.4. Let L(al, al) denote the paths in the trellis T that
connect the state ai E _i(C) to the final state a I. Then L(c_,al) is a coset in
C tr
the partition pijv(C)/ i,lv"
For 0 < i < j < N, let a_ °) and _(o) denote two states on the all-zero path 0
in the trellis T at time-/and time-j, respectively. Let "_tcri (o) ,a i(o), )denotethe
that start from the initial state a0, follow the all-zero path 0 to the state al °),
all-zeropath 0 until they reach the final state a! as shown in Figure 3.5. These
paths represent the codewords in the subcode Ci,j of C. This implies that
Let v = (vz,v2,... ,vlv) be a path in the code trellis T. For 0 <_ i < j < N,
letoi-(w) and a_') be two states on the path v at time-/and time-j, respectively.
_, (w) (_),
Let _(_r i , aj ) denote the paths of length j - i that connect a}') to a_ ").
Consider the paths in T that start form the initial state or0, follow the path v
to the state or}"), transverse through the paths in "'
_tai (') ,o-(')x
i 1, then follow the
Time 0 i v j N
U
(3
O" o
° o
oi " -- .'_,,,oj- °l
p_a(v)+ c:'.
Figure 3.6. Paths in the code trellis that represent the codewords in the coset u _ Ci,j.
path v until they reach the final state a I as shown in Figure 3.6. These paths
., (-) (-)
This is a coset in the partition C/Ci,j. This implies that Lta i ,a i ) is a coset
L. [a (_,)
i ,a s(-), ) = pi,j(u) + C i,S
tr 6Pi,St ,C,.Ct_
)/ i,S, (3.17)
where Pi,j (v) denotes the vector of length j- i obtained from v by removing the
first i and last N-j components of v. For any two connected states ai 6 _,(C)
and a s 6 Zj(C) with 0 < i < j < N, they must be on a path in the trellis T.
a s 6 _j(C) is given by
(3.19)
]L(ai,aj)] = 2t(c[_
0, ), al and
if ai aa#s are connected,
not connected.
For 0 < i < j < k __ N, let _j(ai, ak) denote the set of states in Es(C )
through which the path in L(ai,ak) connect the state ai to the state ak as
Time i j k
D,
£2)- ak
o. i
L(ai, aj) o L(aj,a_) consists of those paths in L(ai, ak) that connect the state
space at a particular encoding time instant and the third method is based on
the parity-check matrix of the code. The first two methods are more efficient
than the third one for codes with K < N - K; however, the third method is
more efficient for codes with N - K < K. Based on these labeling methods,
construction procedures for the N-section trellis for an (N, K) linear block code
are presented. Also presented in this chapter is the mirror symmetry structure
of a code trellis. This symmetry structure is useful in decoding.
SET
In a code trellis, each state is labeled by a fixed sequence (or given a name).
This can be accomplished by using a K-tuple A with components correspond-
ing to the K information bits, al,a2 .... ,azc, in a message. At time-i, all the
components of A are set to zero except for the components at the positions
_ (_) (i)
corresponding to the information bits in A i = _tat ,a 2 ,..., a(i, )}. Every com-
bination of the Pi bits at the positions corresponding to the information bits
in A_ gives the label l(ai) for the state ai defined by the information bits,
al (i) (1), •..
_ (2 2 , a_i).
Example 4.1 Consider the (8,4) code given in Example 3.1. At time-4, we
find that A_ = {az, a3}. There are 4 states corresponding to 4 combinations of
a: and a3. Therefore, the label for each of these 4 states is given by (0, a2, a3,0).
AA
The construction of the N-section trellis for an (N, K) linear block code C
can be carried out as follows. Suppose the trellis T has been constructed up to
section-/. At this point, G[, A_ and _i(C) are known. Each state ai E _i(C)
is labeled by a K-tuple. The (i + 1)-th section is constructed by taking the
following steps:
(2) Form the state space _i+x(e) at time-(/+ 1) and label each state in
Z,+I(C) based on li_+l. The state in _+x(C) form the vertices of the
code trellis T at the (i + 1)-th level.
(3) For each state ai • _,i(C) at time-i, determine its transition(s) to the
state(s) in _i+x(C) based on the information bits of a* and a °. For each
transition from a state ai • _i(C) to a state ai+l E _i+l(C), connect
the state ai to the state ai+l by an edge (ai, ai+l).
(4) For each state transition (al, ai+x), determine the output code bit ui+l
and label the edge (al, ai+l) with ui+l.
Recall that at time-i, there are two branches diverging from a state in _]i(C)
if there exists a current information bit a*. One branch corresponds to a* =
Table 4.1. State defining sets and state labels for the 8-section trellis for the (8, 4) linear
block code.
0 0 G1 -- 0 (oooo)
1 G2 -- (0. ooo)
2 a3 (0.1a200)
3 {gz,gz,g3} -- 0.1
4 a4 - (0a a30)
5 -- a3 (Oa2a3a4)
6 -- 0.2 {o,,0.,} (Oa20a4)
a" = 0 and the lower branch to represent a" = 1. If a" is a dummy information
bit, then there is only one branch diverging from each state in ZI(C). This single
we can easily extract the information bits from each path in the trellis (the
Example 4.2 Consider the state labeling and trellis construction for the (8, 4)
91
1 1 1 1 0 0 0 0
0 1 0 1 1 0 1 0
G ____
g2 =
g3 0 0 1 1 1 1 0 0
94 0 0 0 0 1 1 1 1
For 0 < i < 8, we determine the submatrix G s and the state defining in-
formation set A s as listed in Table 4.1. From AS, we form the label for each
state in _i(C) as shown in Table 4.1. The state transitions from time-/to time-
0 0
Figure 4.1. The 8-section trellis diagram for the (8, 4) RM code with state labeling by
the state defining information set.
construction procedure given above, we obtain the 8-section trellis diagram for
the (8,4) RM code as shown in Figure 4.1. Each state in the trellis is labeled
by a 4-tuple.
AA
In many cases, we do not need K bits for labeling the states of the N-section
trellis for a binary (N, K) linear block code C. Let (P0,Pl,... ,pie) be the state
which is simply the maximum state space dimension of the trellis. From (3.7),
we find that Pm_x(C) _< K. In general, Pmax is smaller than K. Since the
number of states at any level of the trellis is less than or at most equal to
Table 4.2. State labeling for the (8, 4) RM code using Pmax(C) = 3 bits.
State Label
0 (ooo)
1 (a,oo)
2 (aia20)
3
4 (a a30)
5
6 (a2a, O)
7 (a, O0)
8 0 (ooo)
2 p"'x(c), Pmax(C) bits are sufficient for labeling the states in the trellis. Con-
sider the state space Ei(C) at time-/with 0 < i < N which is defined by the set
{(1)
a 1 ,a 2(i) ,.. . ,a(pi,)} of Pi information bits. For each state aie Ei(C), we form
Example 4.3 Again we consider the (8,4) RM code given in Example 4.2.
From the TOGM G of the code, we find the state space dimension profile of
the 8-section trellis for the code to be (0, 1, 2, 3, 2, 3, 2, 1, 0). Hence pm_x(C) - 3.
Using 3 bits for labeling the states as described above, the state labels are given
in Table 4.2. Compared to the state labeling given in Example 4.2, one bit is
saved.
AA
Let 0N-K denote the all-zero (N - K)-tuple (0,0,... ,0). For 1 < i < N,
let Hi denote the submatrix that consists of the first i columns of H, i.e.,
po,iCC)lC :i.
Let D be a coset in po,i/C_: i and 19 ¢ C_: i. For every vector a e D,
and is the same for all vectors in D, i.e., for al,a2 E D and al _ a2,
The (N- K)-tuple (sl, ss,..., SN-K) is called the label for the coset D. Let
D_ and Ds be two different cosets in po,i(C)/Ct:i. Let al E D1 and as E Ds.
It follows from the theory of linear block codes that al ¢ as and
.H? # as.
Definition 4.1 For 0 < i < N, the label of a state _ G Ei(C) based on a
parity-check matrix H of C, denoted l(a), is defined as the binary (N- K)-
tuple
a. = (sl,s2,,.. (4.10)
for any a 6 L(ao,a). For i = O, Hi = @and the initial state a0 is labeled with
the all-zero (N- K)-tuple, 0N-K. For i - N,L(ao,af) = C and the final state
_1 is also labeled with ON-K.
AA
It follows from the above definition of a state label, the one-to-one correspon-
dence between the states in Z,(C) and the cosets in po,i(C)/Ct_i for 0 < i < N,
and (4.10) that every state a 6 _i(C) has a unique label and different states
have different labels.
For 0 < i < N, let ai and ai+l be two adjacent states with ai 6 Ei(C)
and ai+t G _i+l(C). Let ui+l be the label of the branch in the code trellis
that connects state cq to state ai+l. The label ui+l is simply the encoder
output bit in the interval from time-/to time-(/+ 1) and is given by (3.3) or
(3.4). For every path (ul,u2 ..... ul) 6 L(ao,ai), the path (ul,u2,... ,ut,u,+l)
obtained by concatenating (ul, u2,..., ul) with the branch ui+, is a path that
connects the initial state a0 to the state ai+l through the state a,. Hence,
(u,,u2 .... ,ul,ui+l) 6 L(ao, ai+l). Then it follows from the definition of a
state label that
l(ai+l) = (ut,u2,...,ui,ui+x).H_i+t
= (u,, HS + u,+,.
= t(,r,) + ui+l • hir+l. (4.11)
Eq.(4.11) simply says that given the starting state labeled l(#_) at time-/and
the output code bit ui+t during the interval between time-/and time-(/+ 1),
the destination state labeled l(a_+x) at time-(/+ 1) is uniquely determined.
Now we present a procedure for constructing the N-section trellis diagram
for a binary (N, K) linear block code C by state labeling using the parity-
check matrix of the code. Let u = (ux,u2,... ,UN) be a binary N-tuple. For
0 < i _< N, let po,i(u) denote the prefix of u that consists of the first i
components, i.e.,
Suppose that trellis has been completed up to the i-th section (or time-i). At
this point, the rows of the TOGM G in the set G_ = t:_lYn(i),_"(1),--. ,g(pi,)) and
their corresponding information bits a I(i) ,a 2(i) ,...,tip_ _(1) uniquely define a state
a_ E E_(C). Let
= po.,(-)HT.
(1) Identify the special row g" (if any) in the submatrix G{ and its cor-
responding information bit a*. Identify the special row gO (if any) in
the submatrix G_. Form the submatrix G_+ 1 by including g" in G_ and
excluding gO from G_.
(3) For each state ai E Ei(C), form the next output code bit ui+l from
either (3.3) (if there is such a row g* in G[ at time-i) or (3.4) (if there
is no such row g" in Gi"f at time-i).
0 0
0 0
Figure 4.2. 8-section trellis for (8, 4) RM code with state labelingby parity-checkmatrix.
(4) For each possible value of Ui+l (two if computed from (3.3) and one if
computed from (3.4)), connect the state ai to the state az+l E Ei+l (C)
with label
= + u,+l. h,T÷l.
The connecting branch, denoted L(ai, o'i+1), is labeled with Ui+l. This
completes the construction of the (i + 1)-th section of the trellis.
Repeat the above steps until the entire code trellis is constructed.
Example 4.4 Consider the (8, 4) RM code given in Example 3.1. This code is
self dual. Therefore, a generator matrix is also a parity-check matrix. Suppose
1 1 1 1 1 1 1 1
0 0 0 0 1 1 1 1
H
0 0 1 1 0 0 1 1
0 1 0 1 0 1 0 1
Using this parity-check matrix for labeling and following the above trellis con-
struction steps, we obtain the 8-section trellis with state labels shown in Fig-
ure 4.2. To illustrate the construction process, we assume that the trellis has
been completed up to tlme-3. At this time instant, G_ = {gl,g2,g3} and
A_ = {al,a2,a3} are known. The eight states in E3(C) are defined by the
eight combinations of al,a2 and as. These 8 states and their labels are given
below:
states defined statelabels
as, a3 ) paths
The four paths that connect the initial state a0 to the four states, denoted al °),
_(1) _ 0"4
(2) and a (3) in E4(C) are:
po,,(,_o) = (oooo),
po,,(ul) ---- (0011),
po,,(,,_) = (OlOl),
po,,(_,_) = (OliO).
The submatrix//4 is
1 1 1 1
0 0 0 0
H
0 0 1 1
0 I 0 i
From po,4(uy), with 0 < j _< 3 and/-/4, we can determine the labels for the four
states, a_°),a_l),a_ 2) and a_ s), in E4(C) which are given below:
by (a2, as)
(oo) (0000)
al i) (Ol) (0001)
a_ 2) (10) (ooio)
a_ s) (ii) (00ii)
The four states and their labels are shown in Figure 4.3 at time-4. Now suppose
the encoder is in the state _r3{s) with label l(ai 5)) = (0001) at time-3. Since no
such row g" exists at i = 3, the output code bit u4 is computed from (3.4) as
follows:
= I'I+0"I+I'I
= O.
z(4_))
+,,.h_ = (oooi)
+ o.(io_1)
= (00Ol),
oooo)
oool)
oolo)
(1ooi)0
l
Time-3 Time-4
Figure 4.3. State labels at the two ends of the 4-th section of the trellis for (8, 4) RM
code.
which is state u O). The connecting branch is labeled with u4 = 0. The connec-
tions from the other states in E3(C) to the states in E4(C') axe accomplished
in the same manner.
/xA
State labeling based on the state defining information sets requires K (or
the parity-check matrix requires N - K bits to label each state of the trellis.
Consider a binary (N, K) linear block code C with even length N and TOGM
Let T denote the N-section trellisdiagram for C. Suppose the TOGM G has
the following symmetry property: For each row g in G with span(g) = [a,b],
there exists a row g' in G with span(g') = [N + 1 - b,N + 1 - a]. With this
symmetry property in G, we can readily see that for 0 < i < N/2, the number
= IS,(C)l
for 0 < i < N/2. We can permute the rows of G such that the resultant matrix,
denoted G _, is in a reverse trellis oriented form:
(1) The trailing '1' of each row appears in a column before the trailing '1'
(2) No two rows have their leading "ones" in the same column.
If we rotate the matrix G' by 180 ° counter clockwisely, we obtain a matrix G"
leading '1'of gK+I-_ becomes the trailing '1' of g_'). From the above, we see
that G" and G are structurally identical in the sense that
span(g_') = span(g,)
Example 4.5 Consider the (8, 4) RM code given in Example 4.2 with TOGM
gl 1 I I 1 0 0 0 0
0 1 0 1 1 0 i 0
e
g2 =
gs 0 0 1 1 1 I 0 0
94 0 0 0 0 1 i 1 1
We find that span(g 1) = [1, 4], span(g4) = [5, S], and gl and g, are symmetrical
with each other. Row g2 has span [2, 7] and is symmetrical with itself. Row
g._ has span [3, 6] and is also symmetrical with itself. Suppose we permute the
second and third rows of G. We obtain the following matrix in reverse trellis
oriented form:
1 1 1 1 0 0 0 0
9'2 0 0 1 1 1 1 0 0
0 1 0 1 1 0 1 0
g', 0 0 0 0 1 1 1 1
1 1 1 I 0 0 0 0
0 I 0 1 1 0 I 0
g'; 0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 I
We find that G" and G are in fact identical, not just structurally identical.
Therefore, the 8-section trellis T for the (8, 4) RM code has mirror symmetry
with respect to the boundary location 4, the last four sections form the mirror
image of the first four sections as shown in Figures 3.2 and 4.1.
AA
For the case that N is odd, if the TOGM G of a binary (N, K) code C has
the mirror symmetry property, then the last (N- 1)/2 sections of the N-section
trellis T for C form the mirror image of the first (N - 1)/2 sections of T.
For the case that G" --- G, the N-section trellis T of C has full mirror
symmetry structure [101]. For N even, the last N/2 sections of T in reverse
direction (the final state _rf is being regarded as the initial state) is completely
identical to the first N/2 sections of T (including the path labels). The 8-section
trellis of the (8, 4) RM code has full mirror symmetry as shown in Figure 4.1.
For N odd, the last (N - I)/2 sections of T in reverse direction are completely
identical to the first (N - 1)/2 sections of T (including the path labels).
trellis
diagrams forcycliccodes is given. It itshown that the maximum state
space dimension meets the upper bound derived in Section 5.1.
For a binary (N, K) linear block code C, the state complexity of an N-section
bit-level code trellis is measured by its state space dimension profile
(Po,Pl,p2,... ,PN),
pm,x(c)
= max p_.
o_i_
o, = K - k(Co,,)- k(C_,_,),
for 0 < i < N. Since k(Co,i) and k(Ci,u) axe nonnegative, we have
pm,,x(C) _ K. (5.1)
Pi _ N - K (5.2)
Combining (5.1) and (5.3), we have the following upper bound on the maximum
state complexity:
This bound was first proved by Wolf [109]. In general, this bound is quite loose.
However, for cyclic (or shortened cyclic) codes, this bound gives the exact state
complexity. For noncyclic codes, tighter upper bounds on pm_(C) have been
obtained.
If the Viterbi algorithm is applied to the N-section trellis of a code, then the
maximum numbers of survivors and path metrics needed to be stored are both
For 0 < i < rain{K, N - K}, it follows from the structure of a TOGM G
that the number of rows in G whose active spans contain the time index i is no
greater than i. For i >_ max{K, N - K}, since there is one-to-one correspon-
dence between the states in _i(C) and cosets in the partition p,,N(C)/C_rN,
m = ktC t,
< k(p,,N(C))
< N-i
Therefore, for 0 < i < N, we have the following upper bound on Pi:
Let C -Ldenote the dual code of C. Then C "Lis an (N, N - K) linear block
code. Consider the N-section trellisdiagram for C "L. For 0 _< i _< N, let
_i(C "L) denote the state space of C "L at time-/. Then there is a one-to-one
correspondence between the states in _i(C "L)and the cosets in the partition
po,i(c-L)/Co,i-L'tr where c-L'tr05 denotes the truncation of C_i in the interval [1, i].
"L,tr
_-" i -- wc"
_ O,i]
= i- k(Co,d (5.s)
and
k/fy-L,tr$
,= i- (5.9)
This says that C and its dual code C ± have the same state complexity.
An N-section trellis
issaidto be minimal ifthe totalnumber of statesin the
trellis
isminimum. A minimal trellis
isunique within isomorphism [77],i.e.,
two minimal trellises
forthe same code are isomorphic (structurally identi-
cad). The above definition
of mlnimality is commonly used in the literature.
However, a more meaningful and usefuldefinition
of minimality of a trellis
is
in terms of itsstate space dimension [Link] N-section trellis
issaid to
be a minimum state space dimension trellisifthe statespace dimension
at each time of the trellis
isminimum. A more precisedefinition
is given as
[Link] T be an N-section trellis
for an (N, K) code C with state space
dimension profile(P0,Pt,...,Ply). T is said to be minimal if,for any other
N-section trellis
T' for C with state space dimension profile(P'o,P_,...
,P_v),
the followinginequalityholds:
pi < p_,
for0<i<N.
Suppose a minimum state space dimension trellis T exists. Then, it is clear
that T is a minimal trellis in total number of states. The formulation of state
spaces given in Section 3.4 results in a minimum state space dimension trel-
lis (or minimal trellis) for an (N, K) linear block code. This will be proved
in Theorem 5.1. This says that a minimum state space dimension trellis T
exists for any linear block code C. From the uniqueness of a minimal trellis
in total number of states within graph isomorphism, the minimal trellis is a
minimum state space dimension trellis. This gives the equivalence between the
two definitions of minimality of a trellis for a linear block code.
Theorem 5.1 Let C be a binary (N, K) linear block code with trellis oriented
generator matrix G. The N-section trellis T for C constructed based on G is a
minimum state space dimension trellis.
Proof: We only need to prove that for 1 < i < N, the number of states, 2 p',
at time-/in the trellis T is minimum over all the trellises for C, where
= K - k(Co,d -
Let C_ denote the linear subcode of C that is spanned by the rows in the
submatrix G_ of G. Then IC_I = 2 a'. For two different codewords u and v in
C_, it follows from condition (1) of a TOGM that
(2) Suppose u' • C_'. This implies that u + u' • C_. Since u + u' # 0,
u + u _ can not be in both C_ and C0,:. This results in a contradiction.
(3) Suppose u _ E Cij¢. This implies that u E Co,i (_ Cijv, which is not
possible.
It followsfrom Theorem 5.1 that Eq.(3.7) gives the minimum state space
dimension Pi with 0 < i < N foran N-section trellis
foran (N, K) linearblock
code. Prom (3.7),we see that the state space dimension p_ at time-/depends
on the dimensions of the past and future codes, Co,i and Ci,N. For a given
code C, k(Co,i) and k(Ci,N) are fixed.
Given an (N, K) linear block code C, a permutation of the orders of the bit
(or symbol) positions results in an equivalent code C t with the same weight
distribution. Different permutations of the bit positions may result in different
dimensions, k(Co,i) and k(Cijv), of the past and future subcodes, Co,i and
Ci,N, and hence different state space dimensions pi at time-i. A permutation
that yields the smMhst state space dimension at every time of the code trellis is
called an optimum permutation (or bit ordering). It is clear that an optimum
permutation reduces the state complexity and is often desirable. Optimum
permutation is hard to find, however optimum permutations for RM codes
are known [45] but they are unknown for other classes of codes.
1, if #"
I,(_') _= 2, g- e¢ G{.
G{, (5.12)
Let E denote the total number of branches in the N-section trellis T. Then
N-1
E = _ Ir.,(C)l.I,(g')
i----0
N-1
Example 5.1 Again we consider the (8, 4) linear block code given in Exam-
and
E = 2°.2+21"2+22"2+23"1+22"2+23"1+22"1+ 21"1
= 2+4+8+8+8+8+4+2
= 44.
AA
a minimal branch (or edge) trellis diagram if it has the smallest branch
complexity. A minimal trellis diagram has the smallest branch complexity [69].
Branch complexity also depends on the bit ordering of a code. Proper permuta-
tion of the bit positions of a code may result in a significant reduction in branch
the following property: for 0 < i < N, when pi is large, Ii(g °) should be equal
to 1.
where for 1 _< i < N - K, gi E GF(2). A generator matrix for this cyclic code
is given by
G (s.14)
".
The K rows of G are simply the K cyclic shifts of the first row. This generator
matrix has the following properties:
(3) The active spans of aU the rows have the same length, N - K.
Now we consider the bit-level trellis structure for this (N, K) cyclic code.
There are two cases to be considered: K > N - K and K _< N - K. Consider
the case for which K > N - K. For 1 < i < N - K, the number of rows whose
active spans contain the time index i is i. These rows are simply the first i
rows. For N - K < i _< K, the number of rows whose active spans contain the
time index i is N - K. For K < i _< N, the number of rows whose active spans
contain the time index-/is N - i. Since i > K,
N-i<N-K.
From the above analysis, we see that the maximum state space dimension is
Pmax(C) = N - K and the state space profile is
Now consider the second case for which K < N - K. For 1 < i < K, the
number of rows whose active spans contain the time index i is i (the first i
rows). For K < i < N- K, the number of rows whose active spans contain the
time index i is K. For N - K < i <_.N, the number of rows whose active spans
contain i is N - i. Since i > N - K, N - i < K. From the above analysis, we
find that the maximum state space dimension is
p_.x(C) = K,
Putting the results of the above two cases together, we conclude that for an
(N, K) cyclic code, the maximum state space dimension is
pm,x(C) = rrfin{ g, N - K }.
This is to say that a code in cyclic form has the worst state complexity (i.e., it
meets the upper bound on the state complexity).
The generator polynomial g(X) of an (N, K) binary cyclic code C divides
X 2v + 1 [62]. Let
x N + 1 = g(X)h(X).
Then h(X) is a polynomial of degree K of the following form:
with hi E GF(2) for 1 _< i < K. This polynomial is called the parity-check
polynomial. The dual code C 1 of C is an (N, N-K) cyclic code with generator
polynomial
/__(g . ) = { 2,
1, for0<i<K,
otherwise.
K-I K-I
E --_ _ 2' . 2-1- (N-- 2K) . 2K -1- __ 2K-' . 1
i=0 i----0
= 2. (2_ - l) + (N - 2K). 2K+ 2. (2_ - 1)
= (N-2K+4).2K-4. (5.16)
N-K-I N-K-I
E = 2'. 2+ 2. N)-2 + 2"-"'
i=0 i=0
= (4K- 2N+4).2 _V-K- 4. ([Link])
The methods for constructing trellises for binary linear block codes can be gen-
eralized for constructing trellises for nonbinary linear block codes with symbols
from GF(q) in a straightforward manner. The symbol-level N-section trellis
diagram for an (g, K) linear block code C over GF(q) has the following basic
properties: (1) every branch is labeled with a code symbol from GF(q); (2)
except for the initial state, every state has at least one, but no more than q,
incoming branches; (3) except for the final state, every state has at least one,
but no more than q, outgoing branches; and (4) the initial state has no in-
coming branch and the final state has no outgoing branch. In the definition of
a trellis oriented generator matrix, the leading "1" and trailing "1" of a row
maximum state space dimension pm_x(C) of the minimal N-section trellis for
C is upper bounded by
For Reed-Solomon (RS) codes over GF(q), the above equalities hold, i.e.,
and
IS(C)l,... = qmin{K,N-K}.
So far, we have only considered bit-level N-section trellis diagrams for linear
block codes of length N. In a bit-level trellis diagram, every time instant in
the encoding interval F = {0, 1, 2,..., N} is a section boundary location and
every branch represents a code bit. It is possible to sectionalize a bit-level
trellis with section boundary locations at selected instants in the encoding
interval F. This sectionalization results in a trellis in which a branch may rep-
resent multiple code bits and two adjacent states may be connected by multiple
branches. Proper sectionalization may result in useful trellis structural prop-
erties and allow us to devise efficient trellis-based decoding algorithms. This
chapter is devoted in analyzing sectionalized trellis diagrams for linear block
codes. Section 6.1 presents the concepts and rules for trellis sectionalization.
In Section 6.2, the branch complexity and state connectivity are analyzed and
expressed in terms of the dimensions of codes related to the code being con-
sidered. In Section 6.3, construction of a sectionalized trellis diagram for a
linear block code based on the trellis oriented generator matrix is presented.
Section 6.4 studies the parallel structure of a sectionalized trellis diagram.
is the state space dimension profile of the L-section code trellis T(U) with
section boundary set U = {0, h_, h2,..., hL-_, N}. From (3.7), we have
If we choose the section boundaries, U = {h0, hi,..., hn}, at the places where
Phl,Ph3,... ,PhL-I are small, then the resultant L-section code trellis T(U) has
ao a I
a small state space dimension profile. The maximum state space dimension is
decoding complexity.
Example 6.1 Again, we consider the (8,4) RM code given in Example 3.1
whose 8-section trellis diagram is shown in Figure 3.2 (or Figure 4.1). Suppose
4-section trellis diagram as shown in Figure 6.1, in which every branch repre-
sents 2 code bits. The state space dimension profile for this 4-section trellis
is a 4-section, 4-state code trellis. From Figure 6.1, we notice that the right-
half of the trellis (the third and fourth sections) is the mirror image of the
left-half of the trellis (the first and second sections). This mirror symmetry
identical 2-state (Viterbi) decoders to process the trellis in parallel. The mirror
symmetry and parallel structure not only simplify the decoding complexity but
also speed up the decoding process. For large code trellises, these structural
properties are very important in IC (integrated circuit) implementations.
AA
Consider the j-th section of a minimal L-section trellis diagram T(U) with
section boundary set U -- {ho,hl,... ,hL} for an (N,K) linear code C. The
boundaries of this section are hi_l and hi. Each branch in this section is
labeled with hj - hi-1 bits. Let a and _' be two adjacent states in the state
spaces _n,_l (C) and _hj (C), respectively. Let L(a, a t) denote the set of parallel
branches connecting _r and or'. Let L(cr0, _r) denote the set of paths connecting
the initial state or0 to the state s,. Sometimes, it is convenient to regard the
parallel branches, L(a, at), between two states as a single branch. This single
branch is called a composite branch, and L(cr, a _) is called a composite
branch label.
The branch complexity of a trellis section is measured by: (1) the size of a
composite branch; (2) the number of distinct composite branches in the trellis
section; and (3) the total number of composite branches in the trellis section.
The overall branch complexity of the trellis is then the sum of the trellis section
branch complexities. These three branch complexity parameters can be ex-
pressed in terms of the dimensions of Chj_l,h_, C0,h#_l, Ch_,A', and Ph__l,h_ (C)
which can be obtained from the TOGM G of C.
Let ah__l and _rh# be two adjacent states with _hj-i E _h__l(C) and cr_j
E Ehi(C). It has been shown in Section 3.7 that the parallel branches in
L(ah___, _hj) form a coset in the partition
tr
pn,_,,h,(C)/Ch__,,_,,.
Therefore, the number of parallel branches between two adjacent states ah__1
L(ao,an,_,) o L(ahj_:,ah,)
is the set of paths in T(U) that diverge from the initial state a0, converge
at the state an#_,, and then transverse the parallel branches in L(anj_l,an,)
to the state o'nj as shown in Figure 6.2. It has also been shown in Sec-
tition po,h# (C)/Ct:n#. Let Y:'h,_, (an#) denote the set of states in the state space
:Enj_I (C) that are adjacent to state an# as shown in Figure 6.2. Then
This implies that the number of composite branches converging into a state
l l
Time-hj_t Time-hi
2k(nh__,,hj(C))--k(Ch_-I,"j). (6.11)
It follows from (6.2) and (6.10) that the total number of composite branches in
2K--k(Co'h_-l)--k(Chj'N)--k(ChJ-l'_J ). (6.12)
From (6.11) and (6.12), we find that each distinct composite branch appears in
times.
Prom (6.2) (with hj replaced by fij-1)and (6.12),we can compute the
number of composite branches divergingfrom a state #hj-1 E _j_I(C) at
time-fij-
i as
2t(Ch__1.N)--t(C_#.N)--h(Ch#_1.h#) (6.14)
with anj E End(U). The ordered sequence (#1,6:,...,5L) is called the con-
verging branch dimension profile (CBDP). Define
Aj A log 2 deg(o'_,_)out.
The ordered sequence (A0,A1,... ,AL-1) is called the diverging branch di-
mension profile (DBDP).
Let M i denote the total number of composite branches in the j-th trellis
section (given by (6.12)) and define
_j A log 2 Mj.
Since each branch in the j-th section of T(U) represents hj - hj-1 code bits, it
is equivalent to hj - hi_ i branches in the bit-level N-section trellis T for the
code. Therefore, the branch complexity in terms of bit branches is given by
L
E = _(hj- hj__)
2_,.2_I_',-,.',_. (6.16)
j=l
TRELLIS
A minimal L-section trellis diagram for an (N, K) linear block code C can be
constructed directly from the TOGM G. Let U = {ho, hi,..., hL} be the set of
section boundary locations with/to = 0 < hi < ... < hL-1 < hL = N. Again
the construction of the minimal L-section trellis diagram T(U) with section
boundary set U is carried out serially, section by section. Suppose T(U) has
been constructed up to the j-th section (i.e., up to time-hi) with 1 _< j <: L.
Now we begin to construct the (j -t- 1)-th section from time-hi to time-hj+l.
Partition the rows of the TOGM G into three disjoint subsets, GPj, G/, and
G'h_as follows(alsoshown in Figure 6.3):
(i) Gnh# consistsof those rows in G whose spans are containedin the interval
[1,hj].
(2) G_j consists of those rows in G whose spans are contained in the interval
[h# -I- 1, N].
(3) G'hj consists of those rows in G whose active spans contain the time
index hi.
It is clear that G_j and Gh/i generate the past and future codes, Co,hi and
Ch_,Jv,[Link] A"hj be the set of informationbits that correspond
to the rows of G 8_. Then the bits in Ash#define the state space Ehj(C) at
time-hi. That is,for any binary Ph, = [A"h_[-tuple,
which representsvalues of
information bitsin A s
hj, there isa correspondingstatein Eaj (C).
To determine the composite branches between statesin Eh# (C) and states
in Zh_+_(C) and the parallelbranches between two adjacentstates,we further
partition the rows of G/j into three subsets, Gl'Phj,hj+_, Gh_,hj+_l'"and Gfhj+l as
follows (see Figure 6.3):
(1) Gl'Ph#,hj+:
consistsof those rows of Ghf whose spans are contained in the
interval[hi+ 1,hi+l].
Time _..
0 h hi+z N
G_, 0 0
p,,.,_,, ¢at,_'.,,,) 0
o 1,s
P_j,_s+, (Ghj ,_j+, )
0 } a_,÷,
0
Phj,hj+,
(Ga,,aa+1
) 0
,I 0 Gl,V
(2) --h,,h,+,
f:-f'" consists of those rows of Gh/ whose active spans contain the
time index hj+l.
Let A Lp and A l's denote the subsets of information bits that corre-
hj,hi+ , h,,hj+,
spond to the rows in G y'p and _'-f" respectively. Then the information
hi,hi+, V h_,hj+ , '
bits in these two sets may be regarded as the current input information bits.
These input bits together with the state of the encoder at time-h/ uniquely
determine the output code bits between time-hi and time-hi+,. Note that
the information bits in A Lp only affect the output during the interval be-
hj,h3+l
tween time-hi and time-hj+l. Therefore, they determine the parallel branches
between two adjacent states. The information bits in A/'° determine the
h_,hj+l
cations of G f'p
h_,hj+l 1
Gfh:h#+_ and G_,# from time-hi to time-hj+l. The rows in
phi ,h j+l
,fd.p
_s"r hj,h_+l
'_span
/
the code C tr
hj,hj+l '
and the rows in ph,,h,+.(Glh_hj+,).
f,J
Ph,,a,+l (Ghj,hj+_) and ph,,aj._ (G_#) span the truncated code Pa#,a,+x (C). Then
every composite branch between a state ahs E Y'.hj(C) and a state ah#+x E
Zaj+I (C) is a coset in the partition Ph,,nj+l (C)/C_,h#+ x. The number of par-
Let aaj be the state at time-hi defined by the binary ph,-tuple formed by
in G_. Then
is a codeword (or path) passing through the state ahj at time-h/. Let ph_,_,+, (u)
denote the branch on u from time-hi to time-h/+x. Let Bh_.h,+, denote the
code of length h1+1 - h I generated by p_,,.h,+, (G_:h,+x). Then for every vector
b _ Bh_,hj+_, there is a composite branch diverging from the state ahj which
consists of the following parallel branches,
(p_,,h,+, (U) + b + • : • _ C tr
h_,h.j+_ }. (6.19)
Therefore, the number of composite branches diverging from the state am, is
IB_,,_,+, [.
Next, we analyzethestatetransitions.
Partition
the matrixG_,,intotwo
submatrices, where
G_,:_,+, and G_,':,_,+,,
(1) G_:_+I consists of those rows in G °h_ whose active spans do not contain
the time index hj+_, and
(2) G_,,_+,"" consists of those rows in G'h_ whose active spans contain the
time index hj+x.
Therefore, the state transitions from time-hi to time-hj+l are completely spec-
flied by the change from A °h_ to A °hj+l"
Define
bits in the set A°'Phj,h_+l, ahj be the binary phj,hj+_-tuple formed by the infor-
mation bits in the set Ah,,h,+_,
s,8 and a_,, be the binary (Ph_+_ - ph_,hj+_)-tuple
formed by the information bits in the set Ahf':h,.. Then (a°hj,ah_) defines a
state, denoted cr(a_,, ah_), in the state space E_,, (C) at time-h/, and (am,, a'h_)
defines a state, denoted a(ah,, a_,,), in the state space Eh,+, (C) at time-hj-+x.
State a(a%, ah,) is adjacent to state a(ah,, a'h,). The composite branch that
connects these two states in the trellis is given by (6.19) with
Note that these two states share a common ahj. For a phj _ ah,, the state c(a%,
ah#) at time-hi is not adjacent to the state a(a_h,, a_,,) at time-hj+_. Therefore,
from each state ff(O,°hj, aha) in _h, (C), there are 2P_, +' -P_'",+_ possible tran-
sitions to the states a(a_,, a_,) in _,+_ (C) with a_, • {0, 1}P_,+ x-p_,'_,+'.
This completely specifies the state transitions from time-h/to time-h_+_.
State labeling based on the state defining information set A_ with 0 < j < L
is exactly the same as described in Section 4.1. We may use either a K-tuple
(2) For each state in Eh,(C), determine its transitionsto the states in
Eh#+, (C) based on the statetransitionrulesdescribedabove.
(3) For two adjacent states, _,(a°h#,ah#) and ¢r(ah,,a;,,), at time-hi and
time-hi+l, connect them by parallel branches given by (6.19).
Repeat the above procedure until the L-section trellis T(U) is completed.
i 1 1 I 0 0 0 0
0 1 0 1 1 0 1 0
G ____
0 0 1 1 1 1 0 0
0 0 0 0 1 1 1 I
C t'
0,5= C t' C" C"e,,={o},
Table 6.1. State defining information sets for a 4-section trellis for the (8, 4, 4) RM code.
Time
0 2 4 6 8
A"
hs 0 {a_,a2} {a2,a__} {a_,_4} 0
AI,,
hj,hj+l
{a_ a_} {,,_) {_,} 0 0
fro a!
10_01
Figure 6.4. A minimal 4-section trellis diagram for the (8, 4, 4) RM code with 2-bit state
labels.
from hhj+l to hhj+,. Let l(_Yhj) be the label for the state ahj. Then the
composite branch given by (6.19) connects the state ah, to the state a_i+ _ E
(1,1(.),
c).
The first
component f isa binary ph,-tupleformed by a specificcombination
of the p_j information bitsin A ha"
s This ph#-tupledefinesa specific
statea in
Eh, (C). The second component l(_r)issimply the labelof state #. The third
component isgiven by
= Ph,.hj+_
(.f"
G_#), (6.27)
(2) For every entry (f,/(a),c) e Qh, and every b E Bhj,h,+l, form the
composite branch,
(3) For every starting state a • Ehj(C), and b • Bhj,h,+,, the destination
state a' • Eh,+,(C) is labeled with
l(.') = l(.)+(b+c) T
•ghj,h,+,• (6.29)
Repeat the above process until the L-section trellis T(U) is completed.
The trellis construction procedures presented in Section 4.1, Section 4.2, and
this section only provide the general steps of construction. A detail and efficient
trellis construction procedure is given in Appendix A.
Consider the trellis section from time-h I to tlme-hi+t. For a given Phj,h#+s"
tuple ah_, define the following two sets of states at time-h I and time-hi+l,
respectively:
= ): o • 10, (6.30)
and
(2) Every state in SR(a%) is adjacent from all the 2P_#-Ph#'%+* states in
SL(ah_) and is not adjacent from any other state in _hj(C).
Therefore, the states in SL(a%), the states in Sn(a%), and the composite
branches connecting them form a completely connected suhtrellis (known
as a complete bipartite graph). Since there are 2P_J'hJ+1 possible p%,%+_-
tuple a%, there are 2Ph,'%+ * such completely connected subtrellises in the
trellis section time-h/ and time-hj+l. All these subtrellises are structurally
identical (isomorphic), and there are no cross connections between them.
These subtrellises are called parallel components. The parallel structure of
a trellis section is shown in Figure 6.5.
It follows from the definition of P%,h_+! given by (6.21) and the partition of
the TOGM G shown in Figure 6.3 that
Therefore, the total number of parallel components in the trellis section from
time-h/to time-hj+l is
• time hi hj+l
2Ph#--P_#'h#+II_
Istates 2Ph#+1-Ph#'"#+tstates
2Phj._#+._
parallel
components
2PhJ--OhJ'_'J+_I_
states 1 20hJ+_
states--Phi'hJ+'
r,h,(c) r,h,+,(c)
From (6.2) and (6.33), we find that the numbers of states in SL(ah,) and
SR(ah,) are:
2k(co._j+_ )-k([Link])-k(C_._+z) (6.34)
and
ao al
Figure 6.6. The 4-section minimal trellis diagram T({0, 4, 8, 12, 16}) for RM2,4.
Example 6.3 Consider the RM2,4 code which is a (16,11) code. The 4-
section minimal trellis diagram T(U) with section boundary locations in U --
{0, 4, 8, 12, 16} is depicted in Figure 6.6. There are two parallel and structural
identical components in both the second and third sections of the trellis, and
ing from it. For 1 _< j _< 4, p4(i_l),4i(RM2,4) = RM2,2 and C tr4(i_1),41 = RMo,2.
Therefore, there are 2 parallel branches between any two adjacent states whose
4-bit label sequences form a coset of RM0,2 in RM2,2. In both the second and
third sections of the trellis, each coset in RM2,2/RM0,2 appears 4 times as the
composite branch label. In fact, the entire trellis consists of two 4-section par-
allel and structurally identical subtrellises without cross connections between
them. The maximum state complexity is 8. Therefore it is possible to devise
two identical trellis-based decoders, say Viterhi decoders, to process the entire
trellis in parallel. This not only simplifies the decoding complexity but also
speeds up the decoding process.
AA
(B1) If two statesan, and a'h# in _n# (A) are in the same leftU-block, then
they have the same setof divergingcomposite branches,i.e.,
r-
Time hj h j+l
and otherwise
e
(6.38)
We next partition _hj+l (A) into blocks, called right U-blocks, which satisfy
the following conditions:
(B2) If two statesaa)+, and a' hj+l in _h)+l (h) are in the same right U-block,
then they have the same set of converging composite branches, i.e.,
Each left U-block (or right U-block) consists of 2 v',''*+' (c) states [44], where
A pair of a left U-block and a right U-block is called a U-block pair. It follows
from the conditions (B1) and (B2), that eaz.h U-block pair (Bh, Bh_+, ) has the
following uniform properties:
The first property simply says that for a U-block pair (Bha,Bhl+t), the set
of composite branches from states in the left U-block Bh2 converging to any
state in the right U-block Bh_+_ is the same. The second property simply
says that the set of composite branches diverging from any state in Bhj to
states in Bhj+_ is the same. Two different U-block pairs have mutually disjoint
composite branch sets.