---
title: "Convolutional codes and their uses"
subject: "Data Communication"
chapter: 8
key: "semester_5/data_communication:convolution-codes-explain"
source: https://www.bctengineer.com/q/semester_5/data_communication/convolution-codes-explain
site: BCT Engineering
---

# Convolutional codes and their uses

Data Communication · Chapter 8: Information Theory and Coding

- Asked in: 2078 Kartik, 5 marks; 2073 Chaitra, 5 marks; 2073 Shrawan, 2+6 marks; 2069 Chaitra, 2+4 marks (asked 4 times)
- Video: [Convolutional Codes (Basics, Designing & Parameters) Explained in Digital Communication](https://www.youtube.com/watch?v=hPNfiFmx5Dk) — Engineering Funda
- Answer checked by Claude Sonnet 5.5 on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/data_communication/convolution-codes-explain
- Whole chapter: https://www.bctengineer.com/md/semester_5/data_communication/chapter-8

## Question

Where are convolutional codes used? Explain the concept of convolutional codes (e.g. 1/2 rate) with the help of a state-transition diagram.

## Short answer

Convolutional codes are forward error-correcting codes used in satellite, mobile, Wi-Fi, and deep-space links. They encode data continuously using a shift register; example: a rate 1/2, K=3 code with generators g1=111, g2=101 produces two output bits per input bit based on the current and previous two bits. The state diagram has four states (00,10,01,11) with transitions labeled input/output.

## Answer

#### Uses
Convolutional codes are forward error-correcting (FEC) codes used where retransmission is not possible or costly: **deep-space and satellite links**, **GSM and 3G mobile** (channel coding), **Wi-Fi (802.11a/g)**, digital TV broadcasting (DVB), and as the inner code with Reed-Solomon. They are decoded with the **Viterbi algorithm**.

#### Concept
Unlike a block code, a convolutional code encodes the data **continuously**: each output depends on the present input bit and the previous K−1 bits stored in a shift register (memory). A code of **rate k/n** produces n output bits for every k input bits. **Constraint length K** = number of register stages + 1.

Example: **rate 1/2, K = 3**, with generators g1 = 111 and g2 = 101:
- Output 1 = b ⊕ s1 ⊕ s2
- Output 2 = b ⊕ s2

where b is the current bit and s1 s2 are the previous two bits.

```text
 input b --+--->[s1]--->[s2]
           |     |       |
           +--(+)<-------+---> out1 = b+s1+s2
           +-------(+)<-+---> out2 = b+s2
```

#### State transition table
State = (s1 s2). Input b moves to state (b s1). Label: input / output.

| Current state | Input 0 | Input 1 |
|---|---|---|
| a = 00 | a, out 00 | b, out 11 |
| b = 10 | c, out 10 | d, out 01 |
| c = 01 | a, out 11 | b, out 00 |
| d = 11 | c, out 01 | d, out 10 |

#### State diagram (transitions, input/output)
```text
 a --0/00--> a      a --1/11--> b
 b --0/10--> c      b --1/01--> d
 c --0/11--> a      c --1/00--> b
 d --0/01--> c      d --1/10--> d

```
Every state has exactly two outgoing arrows (one per input bit), and the number of states is 2^(K−1) = 4.

#### Example encoding
Input 1 0 1 1 followed by two flushing zeros (start 00):

| Input | State | Output |
|---|---|---|
| 1 | 00 | 11 |
| 0 | 10 | 10 |
| 1 | 01 | 00 |
| 1 | 10 | 01 |
| 0 | 11 | 01 |
| 0 | 01 | 11 |

Coded output: **11 10 00 01 01 11**. The free distance of this code is 5, so Viterbi decoding can correct up to 2 errors in a short span of the stream.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. Where are convolutional codes used?
   A. Deep-space, satellite, GSM/3G, Wi-Fi
   B. Only wired Ethernet
   C. Paper tape
   D. Only text files
   Answer: A. They provide FEC where retransmission is costly. (Key point: Uses)

2. How does a convolutional encoder differ from a block code?
   A. Encodes block by block
   B. Encodes continuously, with output depending on present and previous bits
   C. Uses no memory
   D. Adds a CRC
   Answer: B. Outputs depend on the current bit and the K-1 stored bits. (Key point: Memory)

3. How many states for K = 3?
   A. 2
   B. 3
   C. 4
   D. 8
   Answer: C. 2^(K-1) = 4. (Key point: States)

4. Which algorithm decodes them?
   A. Viterbi
   B. Euclid
   C. Huffman
   D. Dijkstra
   Answer: A. The Viterbi algorithm decodes convolutional codes. (Key point: Decoding)

## Related in Data Communication

- [Trellis decoding of 1/2 rate conv. code (2-bit errors)](https://www.bctengineer.com/question.md?key=semester_5%2Fdata_communication%3Aconv-trellis-2bit) — Data Communication, chapter 8, asked 2×
- [Trellis decoding of 1/2 rate conv. code (3-bit errors)](https://www.bctengineer.com/question.md?key=semester_5%2Fdata_communication%3Aconv-trellis-3bit) — Data Communication, chapter 8, asked 2×

## Related in other subjects

- [Short note: Convolutional codes](https://www.bctengineer.com/question.md?key=semester_6%2Fcommunication_systems%3Ashort-note-convolutional-codes) — Communication Systems, chapter 8, asked 5×
- [Error detection vs correction; rate ½ convolutional encoder](https://www.bctengineer.com/question.md?key=semester_6%2Fcommunication_systems%3Aerror-detect-correct-conv-half-rate) — Communication Systems, chapter 8
- [Short note: Trellis diagram of convolutional encoder](https://www.bctengineer.com/question.md?key=semester_6%2Fcommunication_systems%3Ashort-note-trellis-1010-half-rate) — Communication Systems, chapter 8
- [Rate 1/3 convolutional encoder: encode 10011](https://www.bctengineer.com/question.md?key=semester_6%2Fcommunication_systems%3Aconv-encoder-third-rate-10011) — Communication Systems, chapter 8
