有没有办法概括这个 Reed-Solomon 编码器/解码器?

问题描述

我正在尝试使用库 https://github.com/lrq3000/unireedsolomon

在 GF(8) 上使用原始多项式 0x3f3 (1+x+x^3) 构建 [7,4,4] RS 代码

使用命令初始化编码器

coder = rs.RSCoder(7,prim = 0x3f3,c_exp = 3)

我收到以下错误:

Traceback (most recent call last):
  File "/home/damuna/HACKATHON/RS.py",line 174,in <module>
    coder = rs.RSCoder(7,prim=0x3f3,c_exp = 3)   
  File "/home/damuna/.local/lib/python3.8/site-packages/unireedsolomon/rs.py",line 89,in __init__
    init_lut(generator=generator,prim=prim,c_exp=self.gf2_c_exp)
  File "/home/damuna/.local/lib/python3.8/site-packages/unireedsolomon/ff.py",line 154,in init_lut
    logtable[x] = i
IndexError: list assignment index out of range

该库用于通过 GF(16) 生成通常的 (255,223) RS 代码,在尝试对此进行概括时似乎效果不佳,有人有想法吗? (函数在存储库的“rs.py”文件中找到)

解决方法

代码应该是:

coder = rs.RSCoder(7,4,prim = 0xb,c_exp = 3)  # all numbers are powers of 3

代码还可以将 2 定义为原始元素:

coder = rs.RSCoder(7,c_exp = 2)  # all numbers are powers of 2

0x3f3 = 0x3 * 0x3 * 0x3 * 0xb * 0xb(在二进制 GF(2) 数学中)并且不代表可用于 GF(512) 的不可约多项式。这可能是导致错误的原因。

RS(255,...) 需要 GF(256) 或更大。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...