solutions chapter 11 part1
DESCRIPTION
chapter11TRANSCRIPT
Error Control Coding — week 2: Encoding of convolutional codes 1
Solutions to selected problems from Chapter 11
11.1 (a) The structure of the encoder realized in the controller canonical form(CCF) is shown in Figure 1.
��
��
��
��
�
�
v(3)
u
v(1)
v(2)
Figure 1: Encoder in the CCF for the rate R = 1/3 convolutional code.
(b) The encoder has memory m = 2 and rate R = 1/3. The generator matrixis
G(D) = [g(0)(D) g(1)(D) g(2)(D)] = [1 +D 1 +D2 1 +D +D2].
Equivalently, we can write
G(D) = G0 + G1D + G2D2
withG0 = [1 1 1]; G1 = [1 0 1]; G2 = [0 1 1].
In time domain, the generator matrix is the semi-infinite matrix with thestructure
G =
G0 G1 G2
G0 G1 G2
G0 G1 G2
. . . . . . . . .
which yields
G =
1 1 1 1 0 1 0 1 1
1 1 1 1 0 1 0 1 11 1 1 1 0 1 0 1 1
. . . . . . . . .
.(c) The codeword corresponding to the information sequence u = (1 1 1 0 1)
is given by
v = uG = (111 010 001 110 100 101 011 000 ...).
Error Control Coding — week 2: Encoding of convolutional codes 2
11.2 (a) The generator sequences of the convolutional encoder in Figure 11.3 onpage 460 are given by expressions (11.21a)-(11.21c) on the same page inthe book. Thus we obtain that the generator matrix of this rate R = 3/4code is
G(D) =
g(0)1 (D) g
(1)1 (D) g
(2)1 (D) g
(3)1 (D)
g(0)2 (D) g
(1)2 (D) g
(2)2 (D) g
(3)2 (D)
g(0)3 (D) g
(1)3 (D) g
(2)3 (D) g
(3)3 (D)
=
1 1 1 10 1 +D D 10 D 1 +D2 1 +D2
.Equivalently, we can write
G(D) = G0 + G1D + G2D2
with
G0 =
1 1 1 10 1 0 10 0 1 1
; G1 =
0 0 0 00 1 1 00 1 0 0
; G2 =
0 0 0 00 0 0 00 0 1 1
.(b) The time-domain generator matrix is given by
G =
G0 G1 G2
G0 G1 G2
G0 G1 G2
. . . . . . . . .
=
1111 0000 00000101 0110 00000011 0100 0011
1111 0000 00000101 0110 00000011 0100 0011
. . . . . . . . .
.
(c) The codeword corresponding to the information sequence u = (110 011 101)is given by
v = uG = (1010 0000 1110 0111 0011 0000 ...).
11.3 (a) See solution of Problem 11.1 b).
(b) The input sequence u(D) = 1 + D2 + D3 + D4 (which corresponds tothe time domain sequence u=1111) is encoded as the codeword v(D) =(v(0)(D) v(1)(D) v(2)(D)) according to
v(D) = u(D)G(D) = (1 +D2 +D3 +D4)[1 +D 1 +D2 1 +D +D2]
= (1 +D +D2 +D5 1 +D3 +D5 +D6 1 +D +D4 +D6).
11.4 (a) The memory m = 1, rate R = 2/3 convolutional encoder shown in Figure11.2 on page 457 in the book has the generator matrix
G =
[1 +D D 1 +DD 1 1
].
The composite generator polynomials are (cf. expression (11.37) in thebook)
g1(D) = 1 +D2 +D3 +D4 +D5; g2(D) = D +D2 +D3.
Error Control Coding — week 2: Encoding of convolutional codes 3
(b) The information sequence u(D) = (u(1)(D) u(2)(D)) = (1 +D+D3 1 +D2 +D3) is encoded as the codeword v(D) = (v(0)(D) v(1)(D) v(2)(D))according to
v(D) = u(D)G(D) = (1 +D +D3 1 +D2 +D3)
[1 +D D 1 +DD 1 1
]= (1 +D +D2 1 +D +D3 +D4 D4),
which corresponds to time-domain sequence of 3-tuples
v = (110 110 100 010 011),
and, which, equivalently, can be written as a polynomial
1 +D +D3 +D4 +D6 +D10 +D13 +D14.
11.5 (a) The generator polynomials of this memory m = 5, rate R = 1/3 system-atic encoder are, in D-domain,
g(0)(D) = 1; g(1)(D) = 1+D2 +D3 +D5; g(2)(D) = 1+D+D4 +D5,
which yields
G(D) = G0 + G1D + G2D2 + G3D
3 + G4D4 + G5D
5
with
G0 = [1 1 1]; G1 = [0 0 1]; G2 = [0 1 0]; G3 = [0 1 0]; G4 = [0 0 1]; G5 = [0 1 1].
Thus, the time-domain generator matrix is
G =
111 001 010 010 001 011
111 001 010 010 001 011111 001 010 010 001 011
. . . . . . . . . . . .
.(b) The parity sequences corresponding to the input sequence u = (1 1 0 1),
that is, u(D) = 1 +D +D3, are
v(1)(D) = u(D)g(1)(D) = 1 +D +D2 +D3 +D4 +D8
v(2)(D) = u(D)g(2)(D) = 1 +D2 +D3 +D6 +D7 +D8
or, in time-domain,
v(1) = (1 1 1 1 1 0 0 0 1)
v(2) = (1 0 1 1 0 0 1 1 1).
Error Control Coding — week 2: Encoding of convolutional codes 4
��
�� ��
���
�
v(2)
u(1)
u(2)
v(0)
v(1)
Figure 2: CCF realization of the rate R = 2/3 convolutional encoder.
��
�� �� ��
��
v(2)
u(1)
u(2)
v(0)
v(1)
Figure 3: OCF realization of the rate R = 2/3 convolutional encoder.
11.6 The generator matrix of this memory m = 3, rate R = 2/3 systematic encoderis given by
G(D) =
[g
(0)1 (D) g
(1)1 (D) g
(2)1 (D)
g(0)2 (D) g
(1)2 (D) g
(2)2 (D)
]=
[1 0 1 +D2 +D3
0 1 1 +D +D3
].
(a) The controller canonical form (CCF) realization of the encoder requires6 memory elements and it is shown in Figure 2.
(b) The observer canonical form (OCF) realization of the encoder requiresonly 3 memory elements and it is shown in Figure 3.
11.8 The OCF realization of the systematic generator matrix
G(D) =[1 1+D2
1+D+D21+D
1+D+D2
]is shown in Figure 4. The overall constraint length of G(D) is ν = 2. Notethat this is the number of memory elements required for the CCF, not for theOCF!
11.14 (a) The generator polynomials are relatively prime, that is, their greatestcommon divisor is GCD = 1.
(b) Since the GCD = 1, the right inverse G−1(D) must satisfy
G(D)G−1(D) = I,
that is,[1 +D2 1 +D +D2] G−1(D) = 1.
Error Control Coding — week 2: Encoding of convolutional codes 5
����
��
��
�
�
�
��
u v(0)
v(1)
v(2)
Figure 4: OCF realization of the rate R = 1/3 systematic convolutional encoder.
By inspection, we easily find
G−1(D) =
[1 +DD
].
11.15 (a) The generator polynomials are not relatively prime. Their greatest com-mon divisor is GCD = 1 +D2. Thus, the encoder is catastrophic and thepolynomial right inverse of the generator matrix does not exist.
(b) The encoder’s state diagram is shown in Figure 5.
0/11
000
100
001
010 101
110
011
1110/00
1/11
0/01
1/10
1/10
0/01
0/11
1/00
0/00
1/11
1/01
0/10
0/10
1/01
1/00
Figure 5: State transition diagram of a catastrophic encoder.
(c) The cycles through the states 2 − 5 − 2 and 7 − 7 both produce zerooutput weight, while the corresponding input is non-zero.
(d)+(e) The encoder is catastrophic, hence, there exists an infinite-weight inputsequence that produces finite-weight output code sequence. In our case,input sequences that bring the encoder in one of the two zero-weightcycles we found in part c) result in finite-weight output sequences. Forexample, infinite weight sequence
u = 1010101010...
Error Control Coding — week 2: Encoding of convolutional codes 6
that is,u(D) = 1 +D2 +D4 +D6 +D8 +D10 + ...
yields the state sequence 0−4−2−5−2−5−2−.... and the correspondingoutput code sequence has only weight 3:
v = (11 01 00 00 00 ...)
that is,v(D) = (v(0)(D) v(1)(D)) = (1 1 +D).
11.16 For a systematic (n, k, ν) encoder, the k × n generator matrix is of the form
G(D) = [Ik | P (D)]
where Ik is the k×k identity matrix corresponding to the systematic symbolsand P (D) is a k× (n−k), in general rational, matrix corresponding to paritysymbols. The polynomial (feedforward) right inverse G−1(D) with delay l = 0must be such that
G(D)G−1(D) = Ik.
Clearly, the matrix satisfying this condition is given by
G−1(D) =
[Ik
0(n−k)×k
],
where 0(n−k)×k is the all-zero matrix of size (n− k)× k.