1. 引言
1.1 数字通信系统架构
数字通信系统的核心任务是在噪声信道中以尽可能低的功率与带宽代价实现可靠传输。一个完整的数字通信链路可划分为信源编码、信道编码、调制、物理信道、解调、信道译码及信源译码七个功能层级。其中,信道编码与译码构成差错控制的核心环节,其位置处于信源压缩之后、调制之前,在接收端则位于解调之后、信源扩张之前。
信道编码器通过引入可控冗余将信息比特映射为更长的码字符号,使接收端能够检测或纠正传输过程中引入的差错。若系统具备充足带宽且仅需点对点简单传输,该环节或可省略;但在功率受限或可靠性要求严苛的场景(如卫星通信、深空探测、数字广播),信道编码是逼近香农极限的必要手段。
1.2 信道编码的核心价值
香农信道容量定理指出,只要信息传输速率低于信道容量,便存在某种编码方案可使差错概率任意小。实际工程中,分组码与卷积码是两类基础构造。分组码将数据切分为独立的定长块进行处理,适用于存储与突发差错场景;卷积码则以连续流方式处理,利用记忆特性在低信噪比条件下提供更高的编码增益。现代级联与迭代译码技术(如Turbo码、LDPC码)均建立在上述两类码的扩展之上。
2. 分组码原理与实现
2.1 基本定义与参数体系
分组码以固定长度块为单位进行编码。设信息序列被划分为每块 kkk 比特,编码器输出长度为 nnn 的码字,其中 r=n−kr=n-kr=n−k 为冗余校验位。该 (n,k)(n,k)(n,k) 分组码包含 2k2^k2k 个有效码字,嵌入在总长 nnn 的二进制空间 2n2^n2n 中。
码率定义为信息位与总长度之比:
R=knR = \frac{k}{n}R=nk
码率直接决定带宽扩展程度。若原始信息速率为 RbR_bRb,采用 (n,k)(n,k)(n,k) 分组码后,信道传输速率需提升至:
Rc=Rb⋅nkR_c = R_b \cdot \frac{n}{k}Rc=Rb⋅kn
编码器被假定为无记忆系统,即各码块独立处理,块间不存在关联。
2.2 线性分组码的代数结构
线性分组码是分组码的重要子类,其任意两个码字的模二和仍为有效码字。线性码包含全零码字,且最小汉明距离等于非零码字的最小汉明重量。该性质极大简化了性能分析,因为只需遍历非零码字即可确定整个码集的检纠错能力。
线性码可由生成矩阵 G\mathbf{G}G 完全描述。设信息向量为 u\mathbf{u}u,码字 c\mathbf{c}c 通过线性运算生成:
c=u⋅G\mathbf{c} = \mathbf{u} \cdot \mathbf{G}c=u⋅G
对应的校验矩阵 H\mathbf{H}H 满足 c⋅HT=0\mathbf{c} \cdot \mathbf{H}^T = \mathbf{0}c⋅HT=0。接收端计算伴随式 s=y⋅HT\mathbf{s} = \mathbf{y} \cdot \mathbf{H}^Ts=y⋅HT,若 s≠0\mathbf{s} \neq \mathbf{0}s=0 则判定存在差错。系统码是线性码的特例,其信息比特直接出现在码字前部或后部,便于提取。
2.3 汉明码构造与译码
汉明码是一类完备的单错纠正线性分组码,由贝尔实验室于二十世纪四十年代提出。二元汉明码的典型参数为 (7,4)(7,4)(7,4),即每 444 位信息生成 777 位码字,码率 R=4/7R=4/7R=4/7。
(7,4)(7,4)(7,4) 汉明码包含 24=162^4=1624=16 个有效码字,分布在 27=1282^7=12827=128 种可能的接收序列中。其最小汉明距离 dmin=3d_{\min}=3dmin=3,满足单错纠正的充要条件。编码可通过生成矩阵或查表实现,译码则利用伴随式定位错误比特位置。
汉明码的构造可推广至一般形式:对于校验位长度 mmm,码长 n=2m−1n=2^m-1n=2m−1,信息位 k=2m−m−1k=2^m-m-1k=2m−m−1。该码可纠正所有单比特错误模式,且所有单错模式均落入以各码字为中心、半径为 111 的不相交汉明球内,因此属于完美码。
2.4 循环码与Golay码
循环码是线性分组码的子集,具有循环移位不变性:任一码字经循环移位后仍为有效码字。该代数特性使编码与译码可通过多项式模运算高效实现,移位寄存器与反馈网络即可完成系统编码。
Golay码是循环码中极具工程价值的实例。二元Golay码 (23,12)(23,12)(23,12) 的最小距离 dmin=7d_{\min}=7dmin=7,可纠正 333 位错误;其扩展形式 (24,12)(24,12)(24,12) 增加一位全局校验,最小距离提升至 888。Golay码与汉明码同属完美码,意味着对于其纠错半径内的所有错误模式,译码球恰好填满整个空间而无重叠或空隙。
Golay码已广泛应用于卫星数字电视广播、计算机存储系统的差错控制。其编码器可采用基于生成多项式的移位寄存器实现,数据比特流经寄存器网络后,在校验位输出端得到冗余符号。
2.5 BCH码与RS码
BCH码是循环码的重要扩展,通过有限域上的多项式构造实现可设计的检纠错能力。对于任意整数 mmm 与纠错能力 ttt,存在长度为 n=2m−1n=2^m-1n=2m−1 的BCH码,可纠正至多 ttt 个随机错误。BCH (127,64)(127,64)(127,64) 码是卫星通信中的典型配置,其最小距离 dmin≥2t+1d_{\min} \geq 2t+1dmin≥2t+1,在 120120120 Mbps传输系统中提供双错纠正能力。
Reed-Solomon码是定义在多符号域上的非二元BCH码,每符号包含 mmm 比特。RS (255,223)(255,223)(255,223) 码可纠正 161616 个符号错误,即至多 128128128 比特的连续突发差错。该特性使其成为光盘存储、深空通信的标准外码,常与卷积码内码级联使用。
2.6 检纠错能力的距离判据
分组码的检纠错能力由最小汉明距离 dmind_{\min}dmin 唯一确定。对于任意 (n,k)(n,k)(n,k) 分组码:
- 可检测的错误数上限为 dmin−1d_{\min}-1dmin−1;
- 可保证纠正的错误数上限为 ⌊(dmin−1)/2⌋\lfloor (d_{\min}-1)/2 \rfloor⌊(dmin−1)/2⌋。
该结论的几何解释基于汉明球 packing:以各码字为中心、半径 ttt 的球体互不相交,当接收序列落入某球内时,最近邻译码即可正确恢复。若 dmin=3d_{\min}=3dmin=3,则 t=1t=1t=1;若 dmin=7d_{\min}=7dmin=7,则 t=3t=3t=3。对于突发差错,交织技术可将连续错误分散至多个码块,使分组码亦能应对信道中的突发损伤。
3. 卷积码原理与实现
3.1 连续编码的移位寄存器模型
与分组码的块处理方式不同,卷积码以连续比特流形式工作。编码器由 KKK 级移位寄存器与模二加法器构成,当前输出不仅取决于当前输入,还依赖于此前 K−1K-1K−1 个输入比特的记忆状态。
典型编码器结构包含 k0k_0k0 个并行输入位与 vvv 个并行输出位。码率定义为 R=k0/vR=k_0/vR=k0/v。当 k0=1k_0=1k0=1、v=2v=2v=2 时,得到广泛应用的 1/21/21/2 码率卷积码。输入比特流逐位进入移位寄存器,各级寄存器状态经抽头连接至模二加法器,生成两路输出序列,复用后形成编码比特流。
3.2 约束长度与码率定义
约束长度 KKK(或称记忆跨度、生成记忆)定义为编码输出所依赖的输入比特总数,等于移位寄存器级数加一。约束长度直接决定编码器的记忆深度与状态空间规模。对于 KKK 级寄存器,系统共有 2K−12^{K-1}2K−1 个可能状态。
码率 RRR 与约束长度 KKK 是权衡复杂度与性能的核心参数。较低码率引入更多冗余,提供更强保护但消耗更多带宽;较长约束长度通过扩大记忆窗口提升编码增益,但使译码复杂度随状态数指数增长。
3.3 状态转移与网格图
卷积码的编码过程可抽象为有限状态机在时间上的展开。每时刻的系统状态由移位寄存器内容定义,输入比特触发状态转移并产生对应输出。将所有时刻的状态与转移关系按时间轴展开,即得到网格图(Trellis)。
网格图中,节点代表状态,边代表转移,边权代表输出码字。由于状态转移受寄存器结构严格约束,并非所有输出序列均合法;只有沿网格路径生成的序列才是有效码字。该特性使接收端可通过路径搜索实现最大似然译码。
3.4 Viterbi最大似然译码
Viterbi算法是卷积码最优译码的核心方法,其本质是动态规划在网格图上的应用。算法在每个时刻维护到达各状态的最优路径度量(通常为汉明距离或欧氏距离),通过加-比-选(ACS)操作递推更新,最终回溯得到全局最优路径。
对于约束长度 KKK 的卷积码,译码复杂度与 2K−12^{K-1}2K−1 成正比。工程实现中,Viterbi译码器采用路径度量存储与幸存路径回溯机制。回溯深度通常取 5K5K5K 至 11K11K11K,在AWGN信道下 5K5K5K 已接近最优,而在衰落信道需延长至 11K11K11K 以获取额外增益。
3.5 编码增益与约束长度关系
卷积码的编码增益随约束长度增加而提升。以 1/21/21/2 码率为例,当约束长度从 K=3K=3K=3 增至 K=8K=8K=8 时,在比特差错率 10−310^{-3}10−3 处可获得约 444 dB至777 dB的增益。NASA深空网络采用 K=7K=7K=7、R=1/2R=1/2R=1/2 的卷积码作为标准配置,在 10−510^{-5}10−5 比特差错率下实现约 555 dB增益;而伽利略任务使用的 K=15K=15K=15、R=1/4R=1/4R=1/4 码可提供超过 777 dB的编码增益。
编码增益的代价是带宽扩展。对于 R=1/2R=1/2R=1/2 的码,传输带宽需增加一倍,等效于信噪比损失 333 dB。因此净系统增益为编码增益减去带宽代价,例如 666 dB编码增益减去 333 dB代价后,净增益为 333 dB。
4. 性能评估与系统设计
4.1 最小汉明距离与检纠错极限
最小汉明距离是评估任意纠错码性能的首要指标。对于线性分组码,dmind_{\min}dmin 等于非零码字的最小重量;对于卷积码,dmind_{\min}dmin 定义为任意两条路径间的最小累积距离,常称为自由距离 dfreed_{\text{free}}dfree。
检错与纠错的理论极限由以下不等式给出:
tdetect≤dmin−1t_{\text{detect}} \leq d_{\min} - 1tdetect≤dmin−1
tcorrect≤⌊dmin−12⌋t_{\text{correct}} \leq \left\lfloor \frac{d_{\min} - 1}{2} \right\rfloortcorrect≤⌊2dmin−1⌋
当 dmin=4d_{\min}=4dmin=4 时,系统可检测至多 333 位错误,纠正至多 111 位错误。若需纠正 222 位错误,则必须满足 dmin≥5d_{\min} \geq 5dmin≥5。
4.2 编码增益的定义与计算
编码增益描述在给定比特差错率下,采用纠错码相对于未编码系统所需的信噪比降低量。设未编码系统在比特差错率 PbP_bPb 处需要 Eb/N0=γuncodedE_b/N_0 = \gamma_{\text{uncoded}}Eb/N0=γuncoded,编码系统仅需 γcoded\gamma_{\text{coded}}γcoded,则编码增益为:
Gcoding=γuncoded−γcoded(dB)G_{\text{coding}} = \gamma_{\text{uncoded}} - \gamma_{\text{coded}} \quad (\text{dB})Gcoding=γuncoded−γcoded(dB)
以BCH (127,64)(127,64)(127,64) 码为例,在 Pb=10−5P_b = 10^{-5}Pb=10−5 处,未编码BPSK需要约 9.69.69.6 dB,而该码仅需约 777 dB,编码增益约为 2.62.62.6 dB。对于 1/21/21/2 码率卷积码(K=7K=7K=7),在相同差错率下编码增益可达 5.55.55.5 dB至 666 dB。
4.3 带宽扩展代价分析
编码增益并非纯收益。引入冗余导致传输速率提升,进而占用更多带宽或延长传输时间。对于码率 R=k/nR=k/nR=k/n,带宽扩展因子为 1/R1/R1/R。在功率受限但带宽充足的场景(如深空通信),该代价可接受;在带宽受限场景,需采用高码率码或网格编码调制(TCM)以兼顾功率与频谱效率。
带宽扩展等效于信噪比损失。对于二进制调制,码率 RRR 对应的信噪比代价为:
Lbandwidth=−10log10(R)(dB)L_{\text{bandwidth}} = -10\log_{10}(R) \quad (\text{dB})Lbandwidth=−10log10(R)(dB)
因此 R=1/2R=1/2R=1/2 时 Lbandwidth=3L_{\text{bandwidth}} = 3Lbandwidth=3 dB,R=2/3R=2/3R=2/3 时约为 1.761.761.76 dB。净编码增益为:
Gnet=Gcoding−LbandwidthG_{\text{net}} = G_{\text{coding}} - L_{\text{bandwidth}}Gnet=Gcoding−Lbandwidth
4.4 卫星链路实例分析
在卫星TDMA系统中,常采用BCH (127,113)(127,113)(127,113) 双错纠正码保护 120120120 Mbps业务数据。该码 dmin=5d_{\min}=5dmin=5,可纠正 222 位随机错误或检测 444 位错误。对于 101010 kbps传输链路,若采用 dmin=4d_{\min}=4dmin=4 的分组码,可检测 333 位错误并纠正 111 位错误。
当信道误比特率 p=10−2p=10^{-2}p=10−2、码块长度 n=10n=10n=10 时,用于检错的未检出错误概率需计算至少 dmind_{\min}dmin 位错误同时使错误模式落入另一码字的概率。对于纯检错模式,接收端检测到任何非零伴随式即宣告差错,请求重传。
5. 知识图谱与工程应用
5.1 差错控制码分类体系
差错控制码按结构特征可划分为线性码与非线性码、系统码与非系统码、分组码与卷积码、完美码与非完美码。循环码是线性码的子集,BCH码与RS码是循环码的扩展,而汉明码与Golay码是各自参数下的完美码。
卷积码通过增加记忆深度获得性能提升,其现代扩展包括Turbo码(并行级联卷积码)与LDPC码(基于稀疏校验矩阵的迭代译码)。这些先进编码技术已应用于 555G移动通信、卫星广播及深空探测任务。
5.2 典型应用场景映射
- 卫星与空间通信:功率受限链路优先采用卷积码(K=7K=7K=7, R=1/2R=1/2R=1/2)或级联RS+卷积码(NASA标准)。
- 数字广播与电视:DVB-S标准采用RS外码与卷积内码级联,提供抗衰落与突发差错能力。
- 光盘存储:CD与DVD采用RS码纠正长突发差错,配合交织技术应对划痕损伤。
- 计算机内存:ECC内存采用汉明码或扩展汉明码实现单错纠正、双错检测(SEC-DED)。
6. 例题精解
6.1 分组码与卷积码性能对比
命题:分组码可实现比卷积码更大的编码增益。
解析:该命题为假。在相同码率与 comparable 复杂度条件下,卷积码通常提供更高的编码增益,尤其在低信噪比区域。卷积码的记忆特性使其自由距离随约束长度增长而增大,Viterbi译码充分利用了序列间的相关性。分组码的优势在于结构简单、适合高速并行译码与突发差错纠正,而非极限编码增益。
6.2 约束长度与记忆深度
命题:当前编码输出所依赖的输入比特数由约束长度决定。
解析:正确。约束长度 KKK 明确定义了输出比特与输入序列之间的记忆跨度。在标准卷积编码器中,KKK 对应移位寄存器级数加一,输出是 KKK 个连续输入比特的线性组合。约束长度区别于码长或搜索窗口,是卷积码的固有结构参数。
6.3 检纠错能力计算
问题:某卫星链路传输速率 101010 kbps,采用 dmin=4d_{\min}=4dmin=4 的分组码。
- 可检测几位错误?
- 可纠正几位错误?
- 若码块长度 n=10n=10n=10、信道误比特率 p=10−2p=10^{-2}p=10−2,用于检错时,检测到错误的概率是多少?
解答:
- 检测能力:tdetect≤dmin−1=3t_{\text{detect}} \leq d_{\min} - 1 = 3tdetect≤dmin−1=3。该码可检测至多 333 位错误。
- 纠正能力:tcorrect≤⌊(4−1)/2⌋=1t_{\text{correct}} \leq \lfloor (4-1)/2 \rfloor = 1tcorrect≤⌊(4−1)/2⌋=1。该码可纠正至多 111 位错误。
- 检错概率:码块内发生至少 111 位错误的概率为:
Pdetect=1−(1−p)n=1−(0.99)10≈1−0.9044=0.0956P_{\text{detect}} = 1 - (1-p)^n = 1 - (0.99)^{10} \approx 1 - 0.9044 = 0.0956Pdetect=1−(1−p)n=1−(0.99)10≈1−0.9044=0.0956
即约 9.56%9.56\%9.56% 的码块会被检测出差错。若仅考虑可检测的错误模式(111 至 333 位错),概率为:
∑i=13(10i)pi(1−p)10−i≈0.0914+0.00415+0.00012≈0.0957\sum_{i=1}^{3} \binom{10}{i} p^i (1-p)^{10-i} \approx 0.0914 + 0.00415 + 0.00012 \approx 0.0957i=1∑3(i10)pi(1−p)10−i≈0.0914+0.00415+0.00012≈0.0957
与总差错概率几乎一致,因为 444 位及以上错误概率极低。
6.4 编码增益与净增益核算
问题:比较未编码BPSK与 R=1/2R=1/2R=1/2、K=7K=7K=7 卷积码在 Pb=10−5P_b=10^{-5}Pb=10−5 处的性能,并计算净增益。
解答:未编码BPSK在 Pb=10−5P_b=10^{-5}Pb=10−5 处需要 Eb/N0≈9.6E_b/N_0 \approx 9.6Eb/N0≈9.6 dB。采用 R=1/2R=1/2R=1/2 卷积码后,所需 Eb/N0E_b/N_0Eb/N0 降至约 3.63.63.6 dB,编码增益:
Gcoding=9.6−3.6=6.0 dBG_{\text{coding}} = 9.6 - 3.6 = 6.0 \text{ dB}Gcoding=9.6−3.6=6.0 dB
带宽扩展代价:
Lbandwidth=−10log10(0.5)=3.0 dBL_{\text{bandwidth}} = -10\log_{10}(0.5) = 3.0 \text{ dB}Lbandwidth=−10log10(0.5)=3.0 dB
净系统增益:
Gnet=6.0−3.0=3.0 dBG_{\text{net}} = 6.0 - 3.0 = 3.0 \text{ dB}Gnet=6.0−3.0=3.0 dB
该结果表明,尽管编码带来 666 dB的链路预算改善,但带宽加倍导致信噪比损失 333 dB,最终净增益为 333 dB。在功率受限卫星链路中,该净增益仍极具工程价值,因为它允许降低发射功率或缩小天线口径。
本文系统阐述了数字通信中分组码与卷积码的构造原理、译码方法及性能评估体系,涵盖从基础汉明码到现代卫星级联码的完整技术脉络,为通信系统设计与差错控制策略制定提供理论依据与工程参考。
1926



被折叠的 条评论
为什么被折叠?



