Syndrome Decoding is a #decoding technique to correct some errors, especially those with high probability, cause by noisy channel. It does this by comparing \(r\), a received vector of dimensions \(1 \times n\), to #\(H\), the parity check matrix. \(r\) is defined as:
$$ r = c + e $$
Where:
- \(c\) is the transmitted code vector
- \(e\) is the error vector or error pattern
We calculate the syndrome \(s\) from the following matrix multiplication:
$$ s = rH^T $$
Where:
- \(H^T\) is the transpose version of \(H\)
In #Cyclic Code, adopt the following formula:
$$ S(D) = R(D) \mod g(D) $$
Where:
- \(R(D)\) is the received message polynomial#
- \(g(D)\) is Generator Polynomial#
The syndrome \(s\) has some properties:
- It depends only on the error pattern \(e\) and not on the transmitted code word \(c\). If there are errors occur in transmission, then the syndrome is non-zero. Otherwise, the syndrome is a zero vector.
- A single \(i\)-th bit error in \(c\) will lead to a vector \(s\) that would be identical to \(i\)-th row in \(H^T\). According to this information, we can correct the \(i\)-th bit in the \(r\) which will lead us to the \(c\). However, this will work only for single errors in transmission.
- With syndrome decoding a \((n,k)\) #linear block code can correct up to \(t\) errors per code word, provided that \(n\) and \(k\) satisfy the Hamming bound.