每日精学 202|ReedSolomon七三码的求值编码

2026-09-25

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

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

二元线性编码可以推广到有限域符号。多项式求值把码字约束转化为不同点属于同一低次多项式这一条件,为后续插值恢复提供直接结构。

01
模型与符号

采用 GF(8) 和模多项式 x3+x+1,消息为 u0,u1,u2,求值点为全部七个非零域元素;符号位置顺序固定为整数编码一至七。

f(x):消息多项式(域多项式)

ui:信息系数(域符号)

aj:互异求值点(域元素)

cj:输出码字符号(域符号)

V:求值矩阵(域矩阵)

02
从模型到公式

求值定义

消息多项式为

f(x)=u_0+u_1x+u_2x^2,\qquad \deg f<3.

码字符号为

c_j=f(a_j),\quad j=1,\ldots,7.

三位域符号不是三个独立普通整数系数,所有加乘均在 GF(8) 内。

线性矩阵形式

定义 Vi,j=aji,其中 i=0,1,2,则

\boldsymbol c=\boldsymbol uV.

互异三个点对应的 Vandermonde 行列式为

\det V_3=\prod_{i<j}(a_j-a_i)\ne0.

域中无零因子,因此三点即可唯一确定三个系数,编码映射无歧义。


Horner实现

将二次式重排得到

f(a)=(u_2a+u_1)a+u_0.

码率为

R=3/7,\qquad |\mathcal C|=8^3=512.

求值形式通常不是直接系统码,消息系数不必出现在固定输出位置。

Horner求值的依赖顺序

二次信息多项式可写成

f(x)=u_0+u_1x+u_2x^2

Horner 形式为

f(x)=(u_2x+u_1)x+u_0.

两种表达式相等,但内部乘法依赖不同。

Horner 单符号需要两次域乘法和两次域加法;七个求值点直接逐点执行共需十四次域乘法,实际电路可按资源和节拍选择串行复用或并行展开。

f(0)=u_0.

零点评估虽可用作代数检查,却不是七个非零节点码字的一部分。

每次求值的节点和三个系数必须保持一致;组合单符号核通过不验证外部七点调度是否漏点、重复或交换符号顺序。

03
物理含义

编码把低次曲线上的七个取值同时发送。冗余并非重复单个符号,而是共享同一组三个系数的代数关系,任意可用点都可能提供独立约束。

04
固定参数算例

穷举五百一十二条消息,比较显式二次式与 Horner 求值,并检查码字唯一性和域线性性。图中给出求值网格及非零码字重量分布,不把重量分析替代后续根数界证明。

固定参数数值验证结果
量数值
有限域元素数8
信息符号数3
码字符号数7
消息数512
horner direct errors0
unique codewords512
linearity pair errors0
图 1:RS求值编码矩阵与码字重量分布图 1:RS求值编码矩阵与码字重量分布

图 1 RS求值编码矩阵与码字重量分布

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

05
数字实现的边界

RTL 的 a[8:0] 分别存放三位 u0、u1、u2,b[2:0] 为单个求值点;两级域乘法实现一个符号求值。完整七点调度与缓存由外部完成。 模块采用同步高有效复位及 valid 握手;

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

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

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

06
适用范围

适用于符号级编码、有限域多项式评估与存储擦除实验。实现应统一求值点顺序、域元素编码以及系数高低次顺序。

07
工程上需要注意

求值形式不同于循环系统编码格式。

点必须互异才能保证插值唯一。

任意输入整数运算不能替代域运算。

RTL只验证单点求值子核。

RS 七三求值码以二次多项式的七个域取值携带三符号信息。Vandermonde 可逆性保证信息保留,Horner 重排给出紧凑实现。

内容依据:每日精学第 202 课《ReedSolomon七三码的求值编码》。图表沿用原课固定参数数值结果,属于数值验证,不代表设备实测。

阅读7
分享
写评论...