3. 经典线性码核心概念
Steane 七比特码并不是凭空设计出来的编码,它本质上是经典 [7,4,3] 汉明码在量子比特上的“翻版”。要真正看懂 Steane 码的编码电路和纠错逻辑,必须先回到经典线性码的语言体系里,把生成矩阵、校验矩阵、对偶码、汉明距离与纠错能力这几件事讲清楚。本节不追求抽象证明,而是围绕“这些矩阵长什么样、怎么算、怎么用”来展开,为后续构造稳定子与纠错综合征打基础。
一、线性码与生成矩阵:把信息位映射成码字
一个二元线性码 C 是向量空间 F₂ⁿ 的一个子空间。所谓“线性”,指任意两个码字相加(逐位异或)仍是码字,全零向量也一定是码字。若码长为 n、信息位为 k,则码字总数是 2ᵏ,记作 [n, k] 码。生成矩阵 G 是一个 k×n 的矩阵,它的行构成码空间的一组基,编码过程就是把 k 位信息向量 u 右乘 G:
c = u · G (所有运算在 GF(2) 上进行,即模 2 加法)
以经典 [7,4,3] 汉明码为例,取系统形式的生成矩阵:
G = [ I₄ | P ]
⎡1 0 0 0 | 1 1 0⎤
⎢0 1 0 0 | 1 0 1⎥
⎢0 0 1 0 | 0 1 1⎥
⎣0 0 0 1 | 1 1 1⎦
左侧是 4×4 单位阵,保证信息位原样出现在码字前四位;右侧 P 是 4×3 校验生成块,负责产生 3 个校验位。例如信息 u = (1,0,1,1),则码字 c = u·G = (1,0,1,1, 1⊕0⊕1, 1⊕1⊕1, 0⊕1⊕1) = (1,0,1,1,0,1,0)。这里要特别注意:GF(2) 上的加法就是异或,1⊕1=0,不要按普通整数加法处理。
二、校验矩阵:判断“是不是码字”
校验矩阵 H 是一个 (n−k)×n 矩阵,满足对任意码字 c 都有 H·cᵀ = 0。它刻画了码空间的正交补约束。对系统码 G = [Iₖ | P],可直接构造 H = [Pᵀ | Iₙ₋ₖ],于是上面的汉明码有:
H = ⎡1 1 0 1 | 1 0 0⎤
⎢1 0 1 1 | 0 1 0⎥
⎣0 1 1 1 | 0 0 1⎦
把刚才的码字 c = (1,0,1,1,0,1,0) 代入验证:第一行点积为 1⊕0⊕0⊕1⊕0⊕0⊕0 = 0,第二行 1⊕0⊕1⊕1 = 0,第三行 0⊕0⊕1⊕1 = 0,三行全零,说明它确实是合法码字。反过来,若收到向量 r 使 H·rᵀ ≠ 0,就说明 r 不是码字,且这个非零结果(综合征)还能指示错误位置——这正是后续量子纠错中“测量稳定子得到综合征”的经典原型。
三、对偶码:H 的行空间就是 C 的对偶
对偶码 C⊥ 定义为与 C 中所有码字都正交的向量集合,即 C⊥ = { v | v·c = 0, ∀c∈C }。它的维数是 n−k,而校验矩阵 H 的行恰好构成 C⊥ 的一组基。换句话说,H 是 C⊥ 的生成矩阵,G 是 C⊥ 的校验矩阵,两者角色互换。对 [7,4,3] 汉明码,其对偶码是 [7,3,4] 单纯码,这个对偶关系在 Steane 码构造中极为关键:Steane 码的稳定子正是同时取自 C 与 C⊥ 的元素,利用“C 包含于 C⊥”这一自正交性质,才能让 X 型与 Z 型稳定子互相对易。
四、汉明距离与纠错能力:d=3 意味着什么
码字 c 的汉明重量 wt(c) 是其非零位的个数;两个码字之间的距离是它们逐位不同的位数,即 wt(c₁⊕c₂)。线性码的最小距离 d 定义为所有非零码字重量的最小值,也等于任意两个不同码字间距离的最小值。对上面的 [7,4,3] 汉明码,可以验证每个非零码字重量至少为 3,例如 G 的第三行 (0,0,1,0,0,1,1) 重量为 3,故 d = 3。
最小距离直接决定纠错能力。直观地说,若两个码字相距 d,则以每个码字为球心、半径 t 的“汉明球”要互不重叠,必须满足 2t + 1 ≤ d,于是:
- 纠错位数 t = ⌊(d−1)/2⌋。d=3 时 t=1,只能可靠纠正 1 位错误。
- 检错位数 最多可检出 d−1 = 2 位错误(但不能同时纠正)。
- 若发生 2 位错误,接收向量可能落在另一个码字的纠错球内,导致“误纠”,这是 d=3 码的固有限制。
用综合征的视角看更具体:单比特错误 eᵢ 产生的综合征 H·eᵢᵀ 恰好等于 H 的第 i 列。由于汉明码的 H 各列互不相同且非零,7 种单比特错误对应 7 个不同的非零综合征,因此可以唯一定位错误位置并翻转纠正。这正是“d=3 纠一位”在矩阵层面的可操作解释,也是后面 Steane 码用 X、Z 两组综合征分别定位比特翻转与相位翻转的直接依据。
把这几件工具串起来看:给定信息 u,用 G 得到码字 c;信道引入错误 e 后收到 r = c⊕e;用 H 计算综合征 s = H·rᵀ = H·eᵀ;再根据 s 与 H 各列的对应关系定位并纠正 e。整个闭环只依赖矩阵乘法和 GF(2) 加法,计算量小、结构清晰。理解了这套经典机制,再去看 Steane 码如何把“比特翻转”和“相位翻转”分别映射到两个经典汉明码的校验框架上,就不会觉得突兀——量子纠错并没有抛弃经典线性码,而是把它用得更巧。