Linear Block Codes
Fundamentals
An information source produces bits, segmented into messages of length ( possible messages). Each message is encoded to bits, : an code with message digits and parity check digits.
Over , , where is the message and the codeword.
so every codeword satisfies .
Syndrome
A received word is with error pattern . Its syndrome is
A single error in bit gives the -th column of . Select the with minimum weight for that syndrome, and the corrected codeword is .
Minimum Distance
For linear codes, equals the minimum weight of a nonzero codeword, and the smallest number of columns of that sum to 0.
Error detection A block code detects all errors up to . For a BSC, with the number of codewords of weight , the probability of not detecting errors is
Error correction With the maximum number of errors the code can correct, , so
With standard array decoding on a BSC, , where is the number of coset leaders of weight .
Standard Array and Syndrome Decoding
- Start with , each column is a codeword.
- Select the next minimum-weight not yet in the array and add it to all the original codewords.
- There are coset leaders, and a coset leader is an error vector. All vectors with weight at most can be coset leaders.
Syndrome decoding Compute the syndrome of every coset leader, get the syndrome of the received message, and add .
Hamming Codes
The columns of are all nonzero vectors in , .
Perfect Codes
A code is perfect if every vector is within distance of exactly one codeword, i.e. there are no coset leaders of weight above . Hamming codes are perfect.