雷达 · 通信 · 电子战 / 基础精学 195
分组编码需要从有限信息集合构造带冗余的合法码字集合。线性结构使码字闭合、编码规则简洁,并为校验和距离分析提供统一代数基础。
信息向量采用行向量,;生成矩阵 G 为 k× n 且满行秩,所有矩阵运算均模二。
G:生成矩阵(二元矩阵)
:信息行向量(比特)
:码字行向量(比特)
k,n:维数与码长(比特)
R:码率(比值)
二元域运算满足
编码为
每一输出位是若干信息位的奇偶校验。
若两个信息产生相同码字,则
满行秩保证核只含零,故
因此
不满秩矩阵不能独立承载声称的全部信息位。
将四个信息位放在位置三、五、六、七,记为 d0,d1,d2,d3,校验位为
码字按位置排列为
位置编号与寄存器位序必须另行声明。
信息向量以行向量表示时,线性编码为 c=uG。若生成矩阵在二元域上行满秩,则
因此四个信息位得到十六个互不相同码字,而非仅得到十六次可能重复的输出。
与校验矩阵相容还要求
全体码字满足零伴随式的原因由该矩阵恒等式给出。普通实数矩阵秩不能替代二元域秩,异或与普通求和也不能混用;
接口比特顺序发生变化时,生成矩阵列与校验矩阵列必须使用相同置换。
冗余来自输出空间中的约束而非额外随机信息。四位信息仍只对应十六个码字,七位输出空间中其余向量均不合法;异或网络保留全部四个自由度。
穷举十六条信息,比较矩阵乘法与显式校验公式,检查码字唯一性、零映射及全部信息对的线性闭合。绘制生成矩阵和码字重量分布。
| 量 | 数值 |
|---|---|
| 信息比特数 | 4 |
| 码字比特数 | 7 |
| 码字数 | 16 |
| unique codewords | 16 |
| matrix formula errors | 0 |
| linearity pair errors | 0 |
| 码率 | 0.571428571429 |
图 1 生成矩阵与全部七位码字重量
表中数值和图中曲线由 MATLAB 实际运行得到,随机种子为 20261114;运行版本与完整结果另存为独立文件。
RTL 将 a[3:0] 映射到七位码字,输出位零对应位置一,位六对应位置七;直接使用六组异或连接,其他输出位清零。 模块采用同步高有效复位及 valid 握手;
有效输入在一个时钟沿登记输出,空拍不改变数据寄存器而清除输出有效标志。端口采用有符号 32 位容器,实际有效范围按子核定义约束。自检覆盖多组有效输入、空拍保持及复位;
它验证指定算术或地址子核,不代表完整通信系统或完整译码器已经完成硬件验证。
独立自检程序已在 Icarus Verilog 13.0 中实际运行并通过。该结果不包含器件综合、静态时序分析或板级测试。
用于小型分组编码、硬件异或网络生成和后续校验矩阵接口验证。任意置换码字位置不会改变线性维数,但会改变物理接口映射。
模二加法不能使用普通整数和替代。
行秩必须在二元域中计算。
码率本身不决定纠错能力。
端口位序与数学位置不一致是常见实现错误。
生成矩阵把信息比特线性嵌入较长码字,满行秩确保映射无歧义。有限域运算和位序约定是正确数字实现的基础。
内容依据:每日精学第 195 课《GF二元域生成矩阵编码》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。