gpt4 book ai didi

python - 系统 Reed Solomon 编码方法之间的差异

转载 作者:行者123 更新时间:2023-12-05 05:37:43 26 4
gpt4 key购买 nike

我一直在尝试实现 Reed Solomon 编码器,以生成系统形式的代码字,消息后跟校验符号。为了进行比较,我引用了这份白皮书:http://www.bbc.co.uk/rd/pubs/whp/whp031.shtml这对手算和 LFSR 描述很有指导意义。

对于本白皮书中给出的示例,RS(15,11) 代码的本原多项式为 X^4 + X + 1,消息为 1,2,3,4,5,6,7,8, 9,10,11 和生成的复选符号是 3,3,12,12。

我可以亲手验证这一点。我也用过这段代码https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders维基百科关于 Reed Solomon 的文章引用以验证复选符号是 3,3,12,12。

但是,当我使用 Python galois 包和这段代码时,我得到了不同的结果。复选符号是 11,10,14,6。

import galois

rs = galois.ReedSolomon(15,11, primitive_poly = 19)
GF = rs.field;
## Encode the message
m = GF([1,2,3,4,5,6,7,8,9,10,11])
c = rs.encode(m)

这个结果与 MATLAB 一致。

是否有两种不同的算法可以对 reed solomon 中的系统码字进行编码,从而产生不同的校验符号?如果不是,哪种方法是正确的?

最佳答案

问题是生成多项式不同。

使用生成多项式 (x-1)(x-2)(x-4)(x-8),编码产生 3,3,12,12。

使用生成多项式 (x-2)(x-4)(x-8)(x-3),编码产生 11,10,14,6。

两个生成多项式都是“正确的”。以 (x-2) 开头的生成器被称为“狭义代码”。

https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction#The_BCH_view:_The_codeword_as_a_sequence_of_coefficients

关于python - 系统 Reed Solomon 编码方法之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73075501/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com