Skip to main content

Short note: Syndrome calculation in linear systematic block code

Short answer

Syndrome s = r H^T equals the XOR of parity bits recomputed from the received message and the received parity bits. s=0 means no detectable error; s≠0 indicates an error, and for a single error s matches the corresponding column of H.

Write a short note on syndrome calculation in linear systematic block code.

In a linear systematic (n,k)(n,k) block code, G=[Ik∣P]G=[I_k\mid P] and the parity-check matrix is H=[PT∣In−k]H=[P^T\mid I_{n-k}], so every codeword obeys cHT=0\mathbf{c}H^T=\mathbf{0}. The syndrome of a received vector r\mathbf{r} is the (n−k)(n-k)-bit vector

s=rHT\mathbf{s}=\mathbf{r}H^T

Properties

  • Writing r=c⊕e\mathbf{r}=\mathbf{c}\oplus\mathbf{e}: s=eHT\mathbf{s}=\mathbf{e}H^T, i.e. it depends only on the error pattern.
  • s=0\mathbf{s}=\mathbf{0}: no detectable error. s≠0\mathbf{s}\neq\mathbf{0}: error present.
  • For a single error in bit ii, s\mathbf{s} = ii-th column of HH, so the error is located directly.
  • All error patterns in one coset of the standard array share one syndrome; the coset leader is taken as the error.

Calculation

In systematic form, s\mathbf{s} = (parity bits recomputed from the received message bits) ⊕\oplus (received parity bits).

 r = [ received msg | received parity ]
         |                 |
   [recompute parity]      |
         |                 |
         +------(XOR)------+--> syndrome s

Example, (6,3)(6,3) code with H=[101100011010110001]H=\begin{bmatrix}1&0&1&1&0&0\\0&1&1&0&1&0\\1&1&0&0&0&1\end{bmatrix} and r=100011\mathbf{r}=100011:

s=col1⊕col5⊕col6=(1,1,0)\mathbf{s}=\text{col}_1\oplus\text{col}_5\oplus\text{col}_6=(1,1,0)

This equals column 3, so bit 3 is wrong; corrected word 101011. For cyclic codes, the syndrome is the remainder of r(x)/g(x)r(x)/g(x), computed with a shift register.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Communication Systems chapter 8 questions →