Skip to main content

Error detection vs correction; rate ½ convolutional encoder

Short answer

Error detection identifies errors; error correction identifies and corrects them. For rate-1/2 convolutional encoder with generators 111 and 101, code tree and trellis diagram show outputs for each input bit and state transitions.

Differentiate error-detection and error-correction. Design a convolutional encoder having code-rate of ½. Also, draw the code-tree and trellis diagram for the same assuming any three-bit input.

Error detection vs error correction

PointError detectionError correction
AimOnly finds that an error occurredFinds and fixes the error
RedundancyFew check bits (parity, CRC)More check bits
Action on errorRequest retransmission (ARQ)Corrected at receiver (FEC)
CapabilityDetects dmin−1d_{min}-1 errorsCorrects ⌊(dmin−1)/2⌋\lfloor (d_{min}-1)/2\rfloor
Return channelNeededNot needed
ExamplesParity, checksum, CRCHamming, BCH, convolutional

Rate-1/2 convolutional encoder (design)

Choose k=1k=1 input bit, n=2n=2 output bits (r=1/2r=1/2), constraint length K=3K=3 (two memory flip-flops, 4 states) and generators g(1)=111g^{(1)}=111, g(2)=101g^{(2)}=101.

 Encoder: g1 = 111, g2 = 101 (K = 3, rate 1/2)

 m -->[ m_i ]-->[ m_i-1 ]-->[ m_i-2 ]
        |          |           |
        +---(+)----+-----------+---> c1 = mi+mi-1+mi-2
        |                      |
        +---(+)----------------+---> c2 = mi+mi-2
            output per bit: c1 c2

A commutator samples c1c_1 then c2c_2 for each input bit, so two bits go out for every bit in.

State = previous two inputs (mi−1mi−2)(m_{i-1}m_{i-2}): a = 00, b = 10, c = 01, d = 11.

Present stateInputOutput c1c2c_1c_2Next state
a (00)000a (00)
a (00)111b (10)
b (10)010c (01)
b (10)101d (11)
c (01)011a (00)
c (01)100b (10)
d (11)001c (01)
d (11)110d (11)

Code tree (three-bit input)

Upper branch = input 0, lower branch = input 1; labels are outputs.

                              00 a  (000)
                    00 a ---<
                   /          11 b  (001)
          00 a ---<
         /         \          10 c  (010)
        /           11 b ---<
       /                      01 d  (011)
 start<
       \                      11 a  (100)
        \           10 c ---<
         \         /          00 b  (101)
          11 b ---<
                   \          01 c  (110)
                    01 d ---<
                              10 d  (111)
   bit:    1          2          3

Read along a path: input 101 gives 11, 10, 00, i.e. root (down 11) to b, (up 10) to c, (down 00) to b.

Trellis diagram, input 101 (plus 00 to flush)

      t0     t1     t2     t3     t4     t5
a 00  *      o      o      o      o      *
        \                               /
           \                           /
b 10  o      *      o      *      o   /  o
               \         /   \      /
                  \   /         \  /
c 01  o      o      *      o      *      o


d 11  o      o      o      o      o      o
in:      1      0      1      0      0
out:    11     10     00     10     11

Encoded output for 101: 11 10 00 10 11. Every state in the full trellis has two outgoing branches; after the first two stages the trellis structure repeats.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Communication Systems chapter 8 questions →