Exercise 3.1: Analysis of a Convolutional Encoder
We consider the outlined convolutional encoder and assume the following information sequence:
- u_=(0,1,1,1,1,0,1,0,1,...).
This sequence is divided into three strands:
- u_(1) = (0,1,1,...),
- u_(2) = (1,1,0,...),
- u_(3) =(1,0,1,...).
The bits present at the coder at time i are denoted by u(1)i, u(2)i and u(3)i . For example u(1)1=0, u(2)2=1, u(3)3=1.
The purpose of this exercise is to determine
- the number k of information bits processed per coding step,
- the number n of code bits output per coding step,
- the memory order (or, for short, the memory) m,
- the total influence length (or for short: influence length) ν.
For the given information sequence u_ you shall determine the code symbols x(1)i, x(2)i, x(3)i and x(4)i for the clock instants i=1 and i=3. It must be assumed that all memory elements were filled with zeros at the beginning.
Hints:
- This exercise refers to the chapter "Basics of Convolutional Coding".
- For completeness, the code bits to the clock step i=2 are also given here:
- x(1)2=1,x(2)2=0,x(3)2=0,x(4)2=0.
- However, this last specification is not needed to solve the exercise.
Questions
Solution
(2) We denote here the influence lengths of the information sequences u_(j) by νj, where 1≤j≤k=3 is to be set. Then holds:
- ν1 = 0(forthefirstsequencenoshiftregisterisnecessary),ν2 = 1,ν3=2.
- The memory order m (or memory for short) of the encoder is given by the longest shift register ⇒ m=2_.
- The total influence length (or influence length for short) is equal to the number of memory elements of the entire encoder circuit ⇒ ν=3_.
(3) In general, for the n=4 code bits of step i:
- x(1)i = u(1)i,
- x(2)i = u(1)i+u(2)i+u(2)i−1+u(3)i−1,
- x(3)i = u(2)i+u(3)i+u(2)i−1+u(3)i−2,
- x(4)i = u(1)i+u(2)i+u(3)i+u(3)i−2.
- In the first coding step, all memory elements are assigned zeros.
- Therefore for i=1 all bits with the indices i \, –1 or i \, –2 can be omitted.
- In accordance with the specification, let further hold: u_1^{(1)} = 0, u_1^{(2)} = 1, u_1^{(3)} = 1.
- This is obtained by modulo-2 addition:
- x_1^{(1)} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_{1}^{(1)} \hspace{0.15cm}\underline {=0} \hspace{0.05cm},
- x_1^{(2)} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_{1}^{(1)} + u_{1}^{(2)} = 0+1 \hspace{0.15cm}\underline {=1} \hspace{0.05cm},
- x_1^{(3)} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_{1}^{(2)} + u_{1}^{(3)}= 1 + 1 \hspace{0.15cm}\underline {=0}\hspace{0.05cm},
- x_1^{(4)} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_{1}^{(1)} + u_{1}^{(2)} + u_{1}^{(3)}= 0+1+1\hspace{0.15cm}\underline {=0}\hspace{0.05cm}.
(4) In the coding step i = 3 the information bits are:
- u_i^{(1)} \hspace{-0.2cm} \ = \ \hspace{-0.2cm}1\hspace{0.05cm},\hspace{0.2cm}u_{i-1}^{(1)} = 1\hspace{0.05cm},\hspace{0.2cm}u_{i-2}^{(1)} = 0\hspace{0.05cm},
- u_i^{(2)} \hspace{-0.2cm} \ = \ \hspace{-0.2cm}0\hspace{0.05cm},\hspace{0.2cm}u_{i-1}^{(2)} = 1\hspace{0.05cm},\hspace{0.2cm}u_{i-2}^{(2)} = 1\hspace{0.05cm},
- u_i^{(3)} \hspace{-0.2cm} \ = \ \hspace{-0.2cm}1\hspace{0.05cm},\hspace{0.2cm}u_{i-1}^{(3)} = 0\hspace{0.05cm},\hspace{0.2cm}u_{i-2}^{(3)} = 1\hspace{0.05cm},
- which results in the following code bits:
- x_3^{(1)} \hspace{0.15cm}\underline {=1} \hspace{0.05cm},\hspace{0.4cm}x_3^{(2)} = 1+0+1+0\hspace{0.15cm}\underline {=0}\hspace{0.05cm},\hspace{0.4cm}x_3^{(3)}= 0+1+1+1 \hspace{0.15cm}\underline {=1} \hspace{0.05cm},\hspace{0.4cm}x_3^{(4)} = 1+0+1+1\hspace{0.15cm}\underline {=1}\hspace{0.05cm}.
⇒ The code bits in the coding step i = 2 have already been mentioned on the information page. Here still follows the derivation:
- x_2^{(1)} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_{2}^{(1)} = 1 \hspace{0.05cm},
- x_2^{(2)} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_{2}^{(1)} + u_{2}^{(2)} + u_{1}^{(2)} + u_{1}^{(3)} = 1+1+1+1 = 0 \hspace{0.05cm},
- x_2^{(3)} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_{2}^{(2)} + u_{2}^{(3)}+ u_{1}^{(2)} + u_{0}^{(3)} = 1+0+1+(0) = 0\hspace{0.05cm},
- x_2^{(4)} \hspace{-0.15cm} \ = \ \hspace{-0.15cm} u_{2}^{(1)} + u_{2}^{(2)} + u_{2}^{(3)}+ u_{0}^{(3)}= 1+1+0+(0) = 0\hspace{0.05cm}.
- Thus, the code sequence \underline {x} (after multiplexing) starts with (0100, 1000, 1011, \ \text{...}).
- The grouping was done here only for clarity.