## Applications to Error-Correcting Codes

Linear algebra over finite fields forms the foundation of **error-correcting codes**, which enable reliable data transmission over noisy communication channels.

### Linear Codes

A **linear code** is a subspace of Fⁿ_q (the vector space of n-tuples over a finite field with q elements). Messages are encoded as codewords using linear transformations.

### Generator Matrix

An (n, k) linear code has a **generator matrix** G of size n × k such that every codeword is:

**c = Gm**

where **m** ∈ Fᵏ_q is the message vector and **c** ∈ Fⁿ_q is the encoded codeword.

### Parity-Check Matrix

A **parity-check matrix** H satisfies HG = 0. A vector y is a valid codeword if and only if:

**Hy = 0**

The syndrome **s = Hy** identifies the error pattern.

### Hamming (7, 4) Code

The Hamming (7, 4) code encodes 4 bits into 7 bits, correcting any single-bit error:

```
G = [I₄ | P] where P is a 4×3 parity matrix
```

The minimum distance d = 3 ensures single-error correction.

### Example

For a message m = [1, 0, 1, 1]ᵀ, the codeword is c = Gm. If one bit is flipped during transmission, computing the syndrome s = Hc identifies which bit to flip back.

### Applications

- **Telecommunications**: WiFi, cellular networks
- **Data storage**: CDs, DVDs, RAID systems
- **Deep space communication**: NASA missions
- **QR codes**: Reed-Solomon codes (based on polynomial algebra over finite fields)