Convolutional Codes Lecture Notes

CONVOLUTIONAL CODES

The encoder generates an n-bit codeword from a k-bit message block in block coding. As a result, code words are generated one at a time. As a result, to put the message block, the encoder needs a buffer.

Convolutional codes are a subclass of Tree codes. The message bits are constantly accepted by the convolutional encoder, which then creates the encoded codeword sequence. As a result, a buffer is unnecessary. Memory is necessary to implement the encoder in convolutional codes.

Figure: Convolutional Codes

(a) Convolutional Encoder

The encoding process in a convolutional code is the discrete-time convolution of the input data sequence with the encoder's impulse response. The input message bits are stored in a fixed-length shift register and concatenated using mod-2 adders. Convolutional coding is the name given to an operation that is equal to binary convolution. The connection diagram for an example convolutional encoder is shown in the figure.

Figure: Convolutional Encoder alternatively Redrawn

A binary convolution code encoder may be considered a finite-state machine. It comprises an M-stage shift register with modulo-2 adder connections. The outputs of the adders are serialized by a multiplexer. The non-systematic convolutional codes generated by these encoders are shown in the above figure.

Assume that the current message bit has been moved to m0. The preceding two message bits are then stored in m1 and m2. We now get the updated values of X1 and X2 due to mod-2 adders 1 and 2. We can write.

The multiplexer switch samples X1 first, followed by X2. The next input bit is taken and saved in m0. After that, the shift register changes the bit in m0 to m1. The bit that was previously in m1 is now in m2. The bit in m2 that has already been used is discarded. This new combination of m0, m1 and m2 generates X1 and X2 once again. This process is performed for each bit of the input message. As a result, the output bitstream for each input bit will be,

X = x1 x2 x1 x2 x1 x2…….. and so on

In this convolutional encoder, two encoded output bits X1 and X2 are delivered for each input message bit. As a result, k = 1 is the number of message bits. n = 2 is the number of encoded output bits for a single message bit.

Code rate:

This convolutional encoder's code rate is given by

Code rate, r = 𝑀𝑒𝑠𝑠𝑎𝑔𝑒 𝑏𝑖𝑡𝑠 (𝑘)/𝑒𝑛𝑐𝑜𝑑𝑒𝑟 𝑜𝑢𝑡𝑝𝑢𝑡 𝑏𝑖𝑡𝑠 (𝑛) = 𝑘/𝑛 = 1/2

where 0 < r < 1

Constraint Length:

A convolution code's constraint length (K) is the number of shifts through which a single message bit can influence the encoder output. Message bits are used to express it.

The constraint length for the encoder in Figure is K = 3 bits. Because a single message bit has an effect on the encoder output for three shifts in a row. The message bit is lost at the fourth shift and has no impact on the output.

When a message bit enters the shift register in the encoder shown in Figure, it stays in the shift register for three shifts. ie.,

First Shift -> Message bit is entered in position m0.

Second Shift -> Message bit is shifted in position m1.

Third Shift -> Message bit is shifted in position m2.

The length of the constraint 'K' is also one plus the number of shift registers needed to construct the encoder.

Dimension of the Code

The number of message bits 'k,' the number of encoder output bits 'n,' and the constraint length 'K' determine the code dimension of a convolutional code. As a result, the code dimension is represented by (n, k, K).

The code dimension for the encoder illustrated in figure is (2, 1, 3), where n = 2, k = 1, and constraint length K = 3.

Graphical representation of convolutional codes

The following three graphical representations of convolutional code structure are commonly used.

1. By the use of a state diagram

2. By tracing the trellis code

3. Building a code tree

Advantages of convolutional codes

• Convolutional codes work with smaller data chunks. As a result, the decoding time is minimal, and

• The storage hardware required is minimal.

Disadvantages of convolutional codes

• Convolutional codes are difficult to analyze due to their intricacy

 • They haven't been developed as extensively as block codes.

Sreejith Hrishikesan

Sreejith Hrishikesan is a ME post graduate and has been worked as an Assistant Professor in Electronics Department in KMP College of Engineering, Ernakulam. For Assignments and Projects, Whatsapp on 8289838099.

Post a Comment

Previous Post Next Post