Lecture 9 - 2025 / 4 / 15
Message → Error Corrrecting Code
{0,1}m→{0,1}n(n≥m)
- ∀ci,cj∈{0,1}n, dH(ci,cj)≥2t+1 bits.
- Sphere packing bound 2n/∑i=0t(in)≥2m
- Gilbert-Vashamov bound
- Efficient Encoding / Decoding Algorithm
Hamming Code
H=000111101100111010101, note that the columns are 1234567 respectively.
For xi,xj∈Null(H)={x∈{0,1}7,Hx=0}
dH(xi,xj)=∥xi−xj∥1=∥xk∥1, xk∈Null(H)
H⋅xk=0⇒∥xk∥1≥3 (weight)
For Hamming (7,4,3) Code (Linear code), sphere packing bound is tight, which are called perfect code.
Decoding
Correct 1-bit error ci∈Null(H)→x→ci, dH(x,ci)≤1 bit
Hx={0H(ci+δ)=Hδx→cix−δ→ci
Encoding
mi∈{0,1}4→ci=[mi,⋅,⋅,⋅]
g1,g2,g3,g4∈Null(H), let G=(g1,g2,g3,g4) then H⋅G=0.
c∈Null(H)=∑i=14aigi=G⋅a, where a=(a1,a2,a3,a4)⊤∈{0,1}4
{0,1}4→Null(H)
a↦G⋅a
We must have a standard form of G s.t. Ga=[I4G3]a=[aG3a]
Why? Permute H to [3567,I3] then H⋅G=0 must has a solution G=[I4G3].
General steps for Linear code [n,k,d] (k-dim subspace of {0,1}n):
- Generating matrix Gn×k.
- the column vector of G is a basis of the k-dim subspaces.
- Encoding m↦Gm.
- ∃ standard form of G=[IkGn−k].
Nonlinear Code
(n,k,d)
Shortening. Given (n,m,d) code. How to change [7,4,3] to (8,4,4)?