Skip to main content

Convolutional vs block codes; (7,4) cyclic code for 1011

Short answer

Convolutional coders work on continuous streams with memory, providing better performance. For (7,4) cyclic code with message 1011 and generator g(x)=1+x+x^3, non-systematic code vector is 1111111, systematic is 1001011.

Why convolution coder is better than block coder? Determine systematic and non-systematic code vector for a (7,4) cyclic hamming code for message vector {1011} with generator polynomial g(x) = 1 + X + X³.

Why a convolutional coder is better than a block coder

  • It works on a continuous stream, so no need to wait for a full block; encoding delay and buffering are small.
  • It has memory: each output depends on several past bits, so redundancy is spread over many bits and burst-like noise is handled better with interleaving.
  • Soft-decision Viterbi decoding is easy, giving 2 to 3 dB more coding gain than hard-decision block decoding at the same rate.
  • Simple shift-register encoder and good performance at low rates (used in GSM, satellite, Wi-Fi).

(7,4) cyclic Hamming code, g(x)=1+x+x3g(x)=1+x+x^3, message 1011

Convention (Haykin): message (m0m1m2m3)=1011(m_0m_1m_2m_3)=1011 in ascending powers, so

m(x)=1+x2+x3m(x)=1+x^2+x^3

Modulo-2 arithmetic.

Non-systematic: c(x)=m(x)g(x)c(x)=m(x)g(x)

c(x)=(1+x2+x3)(1+x+x3)=1+x+x3  +  x2+x3+x5  +  x3+x4+x6=1+x+x2+x3+x4+x5+x6\begin{aligned} c(x)&=(1+x^2+x^3)(1+x+x^3)\\ &=1+x+x^3\;+\;x^2+x^3+x^5\;+\;x^3+x^4+x^6\\ &=1+x+x^2+x^3+x^4+x^5+x^6 \end{aligned}

Non-systematic code vector (c0…c6)(c_0\dots c_6) = 1111111.

Systematic: c(x)=b(x)+xn−km(x)c(x)=b(x)+x^{n-k}m(x), with b(x)b(x) = remainder of x3m(x)/g(x)x^3m(x)/g(x).

x3m(x)=x3+x5+x6x^3m(x)=x^3+x^5+x^6
              x^3 + x^2 + x + 1
          ---------------------------
x^3+x+1 ) x^6 + x^5 +       x^3
          x^6 +       x^4 + x^3
          -------------------------
                x^5 + x^4
                x^5 +       x^3 + x^2
                -----------------------
                      x^4 + x^3 + x^2
                      x^4 +       x^2 + x
                      -------------------
                            x^3 +       x
                            x^3 +       x + 1
                            -----------------
                                          1

b(x)=1b(x)=1, so parity bits (b0b1b2)=100(b_0b_1b_2)=100.

c(x)=1+x3+x5+x6c(x)=1+x^3+x^5+x^6

Systematic code vector (b0b1b2 m0m1m2m3)(b_0b_1b_2\,m_0m_1m_2m_3) = 100 1011.

Check: c(x)=(1+x+x2+x3)g(x)c(x)=(1+x+x^2+x^3)g(x), which expands to 1+x3+x5+x61+x^3+x^5+x^6, so it is a valid codeword.

FormCode vector
Non-systematic1111111
Systematic1001011

✓ Answer checked by Claude Opus 5.5 (high effort)

All Communication Systems chapter 8 questions →