奇偶校验矩阵
GF(2)上的每个线性码——只有0和1的域,模2算术——都有一个奇偶校验矩阵H。对于(7,4) Hamming码,H是一个3×7矩阵,其列是1到7的二进制表示:
``
H = [ 0 0 0 1 1 1 1 ] ← bit 2 of position number
[ 0 1 1 0 0 1 1 ] ← bit 1 of position number
[ 1 0 1 0 1 0 1 ] ← bit 0 of position number
``
H的第j列是j的二进制表示。这就是为什么伴随码s = Hr直接指出错误的位置。
映射H: GF(2)^7 → GF(2)^3是一个线性映射(模2矩阵乘法)。其核ker(H) = { r : Hr = 0 }恰好是所有有效码字的集合。
维数计数:dim(ker H) = 7 − rank(H) = 7 − 3 = 4。所以有2^4 = 16个码字。这证实了4比特的信息位。
码字作为核
一个字c ∈ {0,1}^7是有效码字当且仅当Hc = 0 (mod 2)。这是线性码的定义方程。
例:c = 0011001。检验Hc mod 2:
``
Row 1: 0·0+0·0+0·1+1·1+1·0+1·0+1·1 = 0+0+0+1+0+0+1 = 2 ≡ 0
Row 2: 0·0+1·0+1·1+0·1+0·0+1·0+1·1 = 0+0+1+0+0+0+1 = 2 ≡ 0
Row 3: 1·0+0·0+1·1+0·1+1·0+0·0+1·1 = 0+0+1+0+0+0+1 = 2 ≡ 0
``
Hc = 000。所以0011001是(7,4) Hamming码的有效码字。
码的陪集
码字集合C = ker(H)形成GF(2)^7的一个子群。GF(2)^7中的每个其他字都恰好属于C的一个陪集。
陪集定义:对于任何字e,陪集C + e = { c + e : c ∈ C }。
两个字属于同一陪集当且仅当它们的差是一个码字——等价地,如果它们有相同的伴随码:H(r₁) = H(r₂)当且仅当H(r₁ − r₂) = 0当且仅当r₁ − r₂ ∈ C。
伴随码映射H引起同构GF(2)^7 / C ≅ GF(2)^3。其中|C| = 16且|GF(2)^7| = 128:恰好有128/16 = 8个陪集,每个对应GF(2)^3中的一个伴随码值。
标准阵列:列出每个陪集的一个陪集首元——该陪集中Hamming重量最小的字。对于单错纠正,每个非零伴随码唯一对应一个重量-1错误模式(某一位置的单个1)。这就是为什么7个错误模式 + 1个无错 = 8个陪集 = 2^3。
通过陪集首元解码
解码算法:接收r → 计算s = Hr → 查找陪集首元e_s(伴随码s的规范错误)→ 输出r − e_s = r + e_s(在GF(2)中相同)。
对于(7,4)码,8个陪集首元是:0000000(伴随码000)、1000000(伴随码001)、0100000(伴随码010)、0010000(伴随码011)、0001000(伴随码100)、0000100(伴随码101)、0000010(伴随码110)、0000001(伴随码111)。
为什么(7,4)是完美的
最小距离为3的码C ⊆ GF(2)^n可以纠正所有单错。每个码字c都有一个Hamming球,半径为1:中心c及其n个邻近字(重量-1错误模式)。球的体积 = 1 + n。
对于n = 7:球体积 = 8。有16个码字:16 × 8 = 128 = 2^7。这些球完美平铺GF(2)^7——没有点遗漏,没有点被覆盖两次。
这是完美码的定义:M · Vol(n, t) = 2^n。完美单错纠正码(t=1)仅存在于特定的参数:(7,4)、(15,11)、(23,12)(二进制Golay码),以及平凡地n = 2^r − 1,k = n − r对任何r ≥ 2。
几何上:GF(2)^7在码的作用下分解为恰好8个轨道,分解为陪集。每个陪集有一个唯一的伴随码。伴随码映射H是从陪集到GF(2)^3的双射。
计数论证
对于n = 2^r − 1比特上的完美单错纠正码,r个奇偶校验比特:
- 码字数量:M = 2^k = 2^(n−r)
- 球的体积:Vol(n, 1) = 1 + n = 1 + 2^r − 1 = 2^r
- 总覆盖:M × Vol = 2^(n−r) × 2^r = 2^n ✓
当n = 2^r − 1时Vol(n,1) = 2^r这个事实是使完美码在这些长度上成为可能的原因。在其他长度,1 + n不是2的幂,完美单错纠正二进制码不能存在。
生成矩阵与对偶
奇偶校验矩阵H通过核定义码。它的对偶:生成矩阵G,其行形成ker(H)的一个基。
对于(7,4)码:G是一个4×7矩阵。任何码字c = mG其中某个信息向量m ∈ GF(2)^4。G的行张成码;H的行张成码的零空间。
关键关系:HG^T = 0 (mod 2)。G的每一行都在ker(H)中;H的每一行都使G的每一行为零。
对偶码:C⊥ = ker(G^T) = image(H^T)。对于(7,4)码,对偶是一个(7,3)码——一个[7,3,4]码,最小距离为4。
对偶的几何:C和C⊥是GF(2)^7的正交子空间。整个空间分解为码、它的陪集和伴随码映射编码的对偶结构。