每日精学 212|八点极化编码的异或蝶形

2026-09-25

← 技术专题 · 每日精学目录

雷达 · 通信 · 电子战 / 基础精学 212

二比特核提供局部混合,而长块编码需要系统化组合。Kronecker 积把局部规则复制到多个尺度,蝶形结构则避免使用稠密矩阵乘法。

01
模型与符号

行向量编码

\boldsymbol x=\boldsymbol uF^{\otimes3}

不额外施加位反转;数组顺序从零至七,层跨距依次为一、二、四。

F:二比特核(矩阵)

G8:八点生成矩阵(矩阵)

s:蝶形跨距(位置)

uj:输入位(比特)

xj:输出位(比特)

02
从模型到公式

张量结构

递归矩阵满足

G_{2N}=\begin{pmatrix}G_N&0\\G_N&G_N\end{pmatrix},\qquad G_1=[1].

因而

G_8=F\otimes F\otimes F.

每层对应一个索引二进制位上的局部核。

蝶形规则

对跨距 s=1,2,4,每个长度 2s 的块内执行

v_{b+j}\leftarrow v_{b+j}\oplus v_{b+j+s},\quad j=0,\ldots,s-1.

右支保留,所有层共需

\frac N2\log_2N=12

次异或。

置换约定确定后,这与矩阵形式完全等价。

逆与距离边界

由于 F2=I 且 Kronecker 积保持乘法关系,得到

G_8^2=(F^2)^{\otimes3}=I_8.

因而

(\boldsymbol uG_8)G_8=\boldsymbol u.

未施加冻结约束时全部 28 输入都合法,码率一,不具备纠错冗余。


Kronecker结构的自逆检查

不含位反转置换时,八点变换矩阵为

G_8=F^{\otimes3}

利用 Kronecker 乘积的相容性以及 F2=I,得到

G_8^2=(F^2)^{\otimes3}=I_8.

因此把编码输出按相同比特顺序再次送入同一核,应恢复原八位输入。

这提供与逐层蝶形中间值不同的整体不变量:

(uG_8)G_8=u.

若某实现另外包含位反转或采用列向量约定,应先还原对应置换再使用此式。自逆说明映射可逆,不说明任意冻结位选择都具有良好的信道可靠性;

编码变换与冻结集合设计是不同层面的约束。

03
物理含义

蝶形改变比特依赖关系而不增加块长。真正的编码冗余来自把一部分输入固定为已知冻结值,而不是来自蝶形运算本身。

04
固定参数算例

穷举二百五十六个输入,比较三层蝶形与显式 Kronecker 矩阵乘法,并把编码结果再次编码以检查自逆。绘制生成矩阵及各层中间状态。

固定参数数值验证结果
量数值
块长8
输入向量数256
butterfly matrix errors0
self inverse errors0
xor operations12
unique outputs256
extra bit reversal0
图 1:八点极化生成矩阵与蝶形层状态图 1:八点极化生成矩阵与蝶形层状态

图 1 八点极化生成矩阵与蝶形层状态

表中数值和图中曲线由 MATLAB 实际运行得到,随机种子为 20261131;运行版本与完整结果另存为独立文件。

05
数字实现的边界

RTL 输入 a[7:0],三层组合异或后登记输出;位零对应数学索引零,不进行位反转。子核仅执行编码,不选择冻结位置。 模块采用同步高有效复位及 valid 握手;

有效输入在一个时钟沿登记输出,空拍不改变数据寄存器而清除输出有效标志。端口采用有符号 32 位容器,实际有效范围按子核定义约束。自检覆盖多组有效输入、空拍保持及复位;

它验证指定算术或地址子核,不代表完整通信系统或完整译码器已经完成硬件验证。

独立自检程序已在 Icarus Verilog 13.0 中实际运行并通过。该结果不包含器件综合、静态时序分析或板级测试。

06
适用范围

用于短极化编码器、流水线结构和位序接口测试。较大块可复用同一蝶形调度,需另行考虑存储带宽和延迟。

07
工程上需要注意

不同软件可能采用额外位反转。

满速率变换没有纠错冗余。

冻结位选择决定实际码集合。

组合三层只是小规模示例,长块需重新分配流水级。

八点极化编码以三层异或实现 Kronecker 生成矩阵,矩阵一致性和自逆性可在全输入空间验证。位反转及冻结约定必须显式给定。

内容依据:每日精学第 212 课《八点极化编码的异或蝶形》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。

阅读7
分享
写评论...