雷达 · 通信 · 电子战 / 基础精学 212
二比特核提供局部混合,而长块编码需要系统化组合。Kronecker 积把局部规则复制到多个尺度,蝶形结构则避免使用稠密矩阵乘法。
行向量编码
不额外施加位反转;数组顺序从零至七,层跨距依次为一、二、四。
F:二比特核(矩阵)
G8:八点生成矩阵(矩阵)
s:蝶形跨距(位置)
uj:输入位(比特)
xj:输出位(比特)
递归矩阵满足
因而
每层对应一个索引二进制位上的局部核。
对跨距 s=1,2,4,每个长度 2s 的块内执行
右支保留,所有层共需
次异或。
置换约定确定后,这与矩阵形式完全等价。
由于 F2=I 且 Kronecker 积保持乘法关系,得到
因而
未施加冻结约束时全部 28 输入都合法,码率一,不具备纠错冗余。
不含位反转置换时,八点变换矩阵为
利用 Kronecker 乘积的相容性以及 F2=I,得到
因此把编码输出按相同比特顺序再次送入同一核,应恢复原八位输入。
这提供与逐层蝶形中间值不同的整体不变量:
若某实现另外包含位反转或采用列向量约定,应先还原对应置换再使用此式。自逆说明映射可逆,不说明任意冻结位选择都具有良好的信道可靠性;
编码变换与冻结集合设计是不同层面的约束。
蝶形改变比特依赖关系而不增加块长。真正的编码冗余来自把一部分输入固定为已知冻结值,而不是来自蝶形运算本身。
穷举二百五十六个输入,比较三层蝶形与显式 Kronecker 矩阵乘法,并把编码结果再次编码以检查自逆。绘制生成矩阵及各层中间状态。
| 量 | 数值 |
|---|---|
| 块长 | 8 |
| 输入向量数 | 256 |
| butterfly matrix errors | 0 |
| self inverse errors | 0 |
| xor operations | 12 |
| unique outputs | 256 |
| extra bit reversal | 0 |
图 1 八点极化生成矩阵与蝶形层状态
表中数值和图中曲线由 MATLAB 实际运行得到,随机种子为 20261131;运行版本与完整结果另存为独立文件。
RTL 输入 a[7:0],三层组合异或后登记输出;位零对应数学索引零,不进行位反转。子核仅执行编码,不选择冻结位置。 模块采用同步高有效复位及 valid 握手;
有效输入在一个时钟沿登记输出,空拍不改变数据寄存器而清除输出有效标志。端口采用有符号 32 位容器,实际有效范围按子核定义约束。自检覆盖多组有效输入、空拍保持及复位;
它验证指定算术或地址子核,不代表完整通信系统或完整译码器已经完成硬件验证。
独立自检程序已在 Icarus Verilog 13.0 中实际运行并通过。该结果不包含器件综合、静态时序分析或板级测试。
用于短极化编码器、流水线结构和位序接口测试。较大块可复用同一蝶形调度,需另行考虑存储带宽和延迟。
不同软件可能采用额外位反转。
满速率变换没有纠错冗余。
冻结位选择决定实际码集合。
组合三层只是小规模示例,长块需重新分配流水级。
八点极化编码以三层异或实现 Kronecker 生成矩阵,矩阵一致性和自逆性可在全输入空间验证。位反转及冻结约定必须显式给定。
内容依据:每日精学第 212 课《八点极化编码的异或蝶形》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。