雷达 · 通信 · 电子战 / 基础精学 032
无编码链路把每个判决错误直接交给上层。卷积编码器通过受控冗余让合法输出序列在汉明空间中分离,译码器再利用整段序列的一致性纠正部分噪声错误。
编码器本身不产生编码增益;增益来自编码距离和序列译码。码率降低意味着发送相同信息需要更多信道符号,能量比较必须按信息比特归一化。
Rc:卷积码码率(无量纲)
K:约束长度(比特)
g0,g1:生成多项式(八进制)
sk:编码器存储内容(状态)
dfree:任意两条无限码序列的最小距离(比特)
uk:输入信息位(比特)
vk:编码输出对(二比特)
对 K=3 编码器,令状态保存前两个输入位。生成多项式 (7,5)8 对应
每输入一位输出两位,因此 Rc=1/2。
状态
有四种取值。输入 uk 后,下一状态为
每个状态有两条出边,边标签同时记录输入位和输出二比特。所有合法码序列都对应状态图上的路径。
自由距离是从同一状态分离并最终重新合并的两条路径之间最小输出汉明距离。对 (7,5)8 码,输入事件 100 产生输出重量五,因此
终止时附加 K−1 个零可把编码器送回全零状态。
移位寄存器把有限历史变成编码器状态,生成多项式决定哪些历史位参与奇偶校验。自由距离衡量最接近的错误路径,需要与译码器和信道模型一起解释,而不能直接等同于可纠正固定数量的任意连续错误。
验证枚举四个状态的两种输入转移,绘制状态图和长度有限的格形图。程序编码固定测试序列,检查终止后回到零状态,并搜索最短非零回零输入事件,报告最小输出重量。
| 量 | 数值 |
|---|---|
| 码率 | 0.5 |
| 约束长度 | 3 |
| 状态数 | 4 |
| generator polynomials octal | 7 5 |
| test input bits | 101100100 |
| test encoded bits | 111000010111111011 |
| 最终状态 | 0 |
| searched free distance | 5 |
| shortest minimum weight event | 100 |
图 1 卷积编码状态图 格形转移 已知序列输出与自由距离搜索
图表保留原报告的独立双精度参考结果。本次补充运行同参数 MATLAB 脚本并通过数值断言;随机算例比较统计关系,参考程序与 MATLAB 的随机样本不作逐点相同的假设。
模块 conv_encoder_k3.sv 在每个有效时钟按 (7,5)8 生成两位输出并更新两位状态。同步清零可重新开始独立帧。testbench 用已知输入序列逐拍核对编码输出、无效间隙和清零。
RTL 只实现本课中可明确量化的确定性数据通路或控制功能。概率分布拟合、浮点函数求值和图形生成留在 MATLAB 参考程序中,防止把软件统计功能误认为可综合硬件。
该编码器适用于教学、短控制链路和理解格形码。实际标准可能采用更长约束长度、递归系统卷积码、打孔和交织,必须按标准固定多项式位序和终止方式。
不同文献的寄存器方向和多项式位序可能相反。
未终止或尾咬合帧需要不同的译码初始和结束状态。
硬判决译码丢失接收幅度置信度,性能低于软判决。
自由距离只给出渐近距离信息,不等于有限帧的完整误码率。
卷积编码器用有限状态历史生成冗余序列。码率二分之一、约束长度三的 (7,5)8 编码器有四个状态和自由距离五,状态图为后续 Viterbi 最大似然序列译码提供结构。
内容依据:每日精学第 32 课《卷积编码器与自由距离》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。