Python 有没有办法推广这种里德-所罗门编码器/解码器?

Python 有没有办法推广这种里德-所罗门编码器/解码器?,python,reed-solomon,Python,Reed Solomon,我正试图使用这个库,用GF(8)上的本原多项式0x3f3(1+x+x^3)构造一个[7,4,4]RS代码 使用命令初始化编码器时 coder = rs.RSCoder(7,4, prim = 0x3f3, c_exp = 3) 我得到以下错误: Traceback (most recent call last): File "/home/damuna/HACKATHON/RS.py", line 174, in <module> coder = rs

我正试图使用这个库,用GF(8)上的本原多项式0x3f3(1+x+x^3)构造一个[7,4,4]RS代码

使用命令初始化编码器时

coder = rs.RSCoder(7,4, prim = 0x3f3, c_exp = 3)
我得到以下错误:

Traceback (most recent call last):
  File "/home/damuna/HACKATHON/RS.py", line 174, in <module>
    coder = rs.RSCoder(7,4,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
回溯(最近一次呼叫最后一次):
文件“/home/damuna/HACKATHON/RS.py”,第174行,在
coder=rs.RSCoder(7,4,prim=0x3f3,c_exp=3)
文件“/home/damuna/.local/lib/python3.8/site packages/unireedsolomon/rs.py”,第89行,在__
init_lut(generator=generator,prim=prim,c_exp=self.gf2_c_exp)
文件“/home/damuna/.local/lib/python3.8/site packages/unireedsolomon/ff.py”,第154行,在init_lut中
对数表[x]=i
索引器:列表分配索引超出范围
该库用于在GF(16)上生成通常的(255223)RS代码,在尝试推广这一点时,它似乎做得不好,有人有想法吗?(函数可在存储库中的文件“rs.py”中找到)

代码应为:

coder = rs.RSCoder(7,4, prim = 0xb, c_exp = 3)  # all numbers are powers of 3
代码还可以将2定义为基本元素:

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

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

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