Background: Linear block codes represent encoding and decoding as matrix arithmetic over GF(2) — the Galois Field with two elements {0,1}, where addition and subtraction are both the XOR (exclusive-or) operation. A generator matrix G, in systematic form G = [Ik | P] (Ik = k×k identity matrix, P = parity submatrix), maps a k-bit message m to an n-bit codeword via c = m·G. The corresponding parity-check matrix H = [PT | Im] satisfies c·HT = 0 for every valid codeword, and for a received (possibly corrupted) vector r, the syndrome s = r·HT reveals whether — and where — an error occurred. This G/H machinery is the general linear-algebra framework underlying specific codes like Hamming codes.
Description of This Web Application: Enter your own set of basis codewords (or pick a preset), and the app derives the systematic generator matrix G and parity-check matrix H via Gaussian elimination over GF(2). Across three tabs you can inspect the matrices themselves, test whether an arbitrary bit string satisfies every parity-check equation (and enumerate all valid codewords for small codes), and encode a message, flip a bit, and watch syndrome decoding locate and correct the error. You will come away seeing exactly how G and H relate to each other, why row-reduction naturally produces a systematic form, and how syndrome decoding generalizes the idea behind Hamming codes to any linear block code.