Structure and Representation of Convolutional Code Encoder

This column contains the core knowledge of information theory and coding, organized by knowledge points, and can be used as a reference for teaching or learning. The markdown version has been archived to [Github repository: https://github.com/timerring/information-theory ] or public account [AIShareLab] to reply to Information Theory .

Convolutional Code Basics

Block codes—memoryless codes

Convolutional Codes - Memory Codes

  • Be able to memorize the basic concepts of convolutional codes;
  • Able to draw the encoder of the convolutional code according to the connection vector, and encode it;
  • Able to draw the state transition diagram and trellis diagram of the convolutional code according to the encoder;
  • Ability to decode convolutional codes using the Viterbi decoding algorithm;
  • Understand the concept of interleaving.

The concept of convolutional code

The convolutional code is described by three integers, (n, k, L), where k/n also represents the coding efficiency, and L is called the constraint length; it represents the series of k-tuples in the coding shift register, and k represents the coding time The number of code elements fed into the encoder at one time.

An important feature of convolutional codes different from block codes is the memory of the encoder, that is, the n-tuples generated by the convolutional encoding process are not only a function of the current input k-tuples, but also the previous L-1 input k-tuples The function. Usually, n and k take smaller values, and the coding capability and complexity are controlled by changing L.

Structure of Convolutional Code Encoder

(n, k, L) convolutional code: The following figure shows the encoder of the convolutional code, in which there are kL-level shift registers, L \boldsymbol{L}L is called the constraint length of the convolutional code.

The encoder of the convolutional code is a finite state machine, and its number of states is 2 ( L − 1 ) k 2^{(L-1) k}2( L 1 ) k . state and current inputk \boldsymbol{k}The k -tuple determines the current output n-tuple.

Convolutional Encoder Representation

This is a (2,1,3) convolutional code, ie n=2, k=1, L=3.

Why is it called a convolutional code?

Encoding process:

Suppose the input information sequence is 100101.

The output information sequence is 11 01 11 11 01 00 01 11

The initial state of the convolutional code encoder is 0, and the state must be cleared after encoding

1. Connect vector (generate vector)

One way to describe an encoder is to specify n connected vectors, each corresponding to a modulo-2 adder. Each vector is L-dimensional and represents the connection between the modulo-2 adder and the encoded shift register. A 1 on the i-th bit in the vector indicates that the corresponding stage of the shift register is connected to the modulo 2 adder , and a 0 indicates that there is no connection between the corresponding stage and the modulo 2 adder .

2. State description and state diagram

Convolutional code encoders belong to a class of devices known as finite state machines.

"Limited" indicates that the state machine has only a finite number of distinct states. "State" can use the current input of the device and the minimum amount of information to predict the output of the device. A state provides constraints on the past sequence process and a set of possible future output sequences, the next state is always constrained by the previous state.

Taking a convolutional code encoder with a coding efficiency of 1/n as an example, the state is represented by the contents of the rightmost (L-1) level register (note that the rightmost here refers to the rightmost end of the shift register after the current information symbol is input register).

Knowing the current state and the next input is a necessary and sufficient condition for determining the next output.

One way to represent a simple encoder is a state diagram.

The states in the state diagram box represent the possible contents of the rightmost (L-1) level of the register, and the paths between the states represent the output branch words from this state transition. The state of the register is expressed as a=00, b=01, c=10, d=11. Corresponding to two possible input bits, there are only two transitions from each state, and the output branch word during state transition is marked in the corresponding next to the transfer path. In the figure, the solid line indicates the path where the input bit is 0, and the dotted line indicates the path where the input bit is 1.

Note: State transitions are not arbitrary. Since information is shifted in one bit at a time, there are only two possible state transitions for the register at each bit time.

3. Tree diagram

Although the state diagram completely describes the characteristics of the encoder, it is inconvenient to use the state diagram to track the state transition of the encoder because it does not represent the time process. If you want to show all possible situations of encoder input and output, you can use a tree diagram to describe it. It is formed by expanding the state diagram of the encoder in time.

4. The trellis Diagram

The grid graph combines nodes at the same level on the tree graph that are in the same state.

The following figure is a trellis diagram of a (2,1,3) convolutional code. The nodes of the grid graph represent the state of the encoder; in each time unit, the grid graph uses 2 L − 1 2^{L-1}2L 1 nodes represent2 L − 1 2^{L-1}2L 1 possible encoder states. It can be seen that there will be repetitions.

The connection vector of a (2,1,3) convolutional code is:
g 1 = [ 1 1 0 ] , g 2 = [ 0 1 1 ] g_{1}=\left[\begin{array}{lll} 1 & 1 & 0 \end{array}\right], \quad g_{2}=\left[\begin{array}{lll} 0 & 1 & 1 \end{array}\right]g1=[110],g2=[011]
(1) Please draw the encoder, state diagram and trellis diagram of the convolutional code.

(2) When the input sequence is 100011101001, find the encoded output.

references:

  1. Proakis, John G., et al. Communication systems engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  2. Proakis, John G., et al. SOLUTIONS MANUAL Communication Systems Engineering. Vol. 2. New Jersey: Prentice Hall, 1994.
  3. Zhou Jiongpan. Communication Principles (3rd Edition) [M]. Beijing: Beijing University of Posts and Telecommunications Press, 2008.
  4. Fan Changxin, Cao Lina. Principles of Communication (7th Edition) [M]. Beijing: National Defense Industry Press, 2012.

Guess you like

Origin blog.csdn.net/m0_52316372/article/details/131307002