- Asked 4/20
- 2078 Kartik · 5 marks
- 2073 Chaitra · 5 marks
- 2073 Shrawan · 2+6 marks
- 2069 Chaitra · 2+4 marks
Convolutional codes and their uses
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.
Where are convolutional codes used? Explain the concept of convolutional codes (e.g. 1/2 rate) with the help of a state-transition diagram.
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.
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)
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.
✓ Answer checked by Claude Sonnet 5.5
Related questions
- Trellis decoding of 1/2 rate conv. code (2-bit errors) · Data Communication, chapter 8 · asked 2×
- Trellis decoding of 1/2 rate conv. code (3-bit errors) · Data Communication, chapter 8 · asked 2×
- Short note: Convolutional codes · Communication Systems, chapter 8 · asked 5×
- Error detection vs correction; rate ½ convolutional encoder · Communication Systems, chapter 8
- Short note: Trellis diagram of convolutional encoder · Communication Systems, chapter 8
- Rate 1/3 convolutional encoder: encode 10011 · Communication Systems, chapter 8