https://zhuanlan.zhihu.com/p/103888948
https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders
https://www.jianshu.com/p/8208aad537bb
这三篇综合起来基本就可以说明白了
Reed-Solomon编码的数学过程
(一)用途
Reed-Solomon纠错码(以下简称RS码)广泛用于数据存储(如CD)和传输应用中。RS码是一种纠错性能很强的线性纠错码,能够纠正随机错误和突发错误。
(二)R-S编码
以200/400GBASE-R使用的RS(544,514)(注释:前面一个数字为生成编码长度,后面一个数字为原始信息数据长度)编码为例:
- 每个Symbol数据10bits,(m=10)
- 原始需要加密的数据是514个symbols,(k=514)
- 校验数据为30个symbols,(2t=30)
- 最终完成的编码为544个symbols,(n=544)
IEEE 802.3 119.2.4.6中定义了编码的算法:
编码的数学过程并不复杂
1.将原始需要编码的数据后面补30个0(上图「取余」运算符左侧部分,补0意思是为校验码占位)
2.除以生成多项式g(x)取余下的多项式为校验多项式 p(x)
3.将校验多项式加到刚才补过0的编码数据多项式中,就是最终生成的编码
(三)R-S解码