Error Correcting Codes - Binary Convolutional Code

Errors occur when bits get corrupted during transmission over computer networks due to interference and network problems. Error-correcting codes (ECC) are sequences of numbers generated by specific algorithms for detecting and correcting errors in data transmitted over noisy channels.

Error correcting codes determine the exact number of corrupted bits and their locations within the algorithm's limitations. ECCs are broadly categorized into two types: block codes and convolutional codes.

Binary Convolutional Codes

In convolutional codes, the message comprises data streams of arbitrary length, and output bits are generated by sliding application of Boolean functions to the data stream. Unlike block codes where data is divided into fixed-length blocks, convolutional codes process continuous data streams.

The key difference is that in block codes, the output codeword depends only on present inputs. In convolutional codes, the output stream depends on both present input bits and previous input bits stored in memory.

Block Codes vs Convolutional Codes Block Codes ? Fixed-length blocks ? Output depends only on current input block ? No memory Convolutional Codes ? Continuous data streams ? Output depends on current and previous inputs ? Uses memory (shift register)

Convolutional codes were first introduced in 1955 by Elias. In 1973, Viterbi developed the Viterbi algorithm for maximum likelihood decoding, which led to modern convolutional codes.

Encoding by Convolutional Codes

For generating a convolutional code, information is passed sequentially through a linear finite-state shift register comprising memory stages and Boolean function generators.

A convolutional code is represented as (n, k, K) where:

  • k is the number of bits shifted into the encoder at one time (typically k = 1)

  • n is the number of encoder output bits corresponding to k information bits

  • Code rate Rc = k/n

  • K is the constraint length (encoder memory size)

  • The encoder state is determined by the value of (K-1) bits

Example of Generating a Convolutional Code

Consider a convolutional encoder with k = 1, n = 2, K = 3. The code rate Rc = k/n = 1/2.

Convolutional Encoder (1,2,3) D1 D2 Input ? ? Output 1 Output 2 D1, D2 = Delay elements (memory)

For input sequence 1101, the encoding process generates outputs as bits are shifted through the register. Each input bit produces two output bits based on XOR operations.

State Representation

The convolutional encoder can be represented using state transition diagrams and tables. For the example encoder:

  • Set of inputs: {0, 1}

  • Set of outputs: {00, 10, 11, 01}

  • Set of states: {00, 01, 10, 11} (based on D1D2 values)

Current State Input 0 Input 1
00 00/00 10/11
01 10/10 00/01
10 01/01 11/10
11 11/11 01/00

Each cell shows Next State/Output for the given input.

Conclusion

Binary convolutional codes provide efficient error correction by processing continuous data streams through shift registers with memory. Unlike block codes, they use previous input bits stored in memory to generate output codes, making them particularly suitable for real-time communication systems.

Updated on: 2026-03-16T23:36:12+05:30

15K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements