用于大代码长度和错误的 Reed-Solomon 代码

问题描述

我是纠错码 (ECC) 的新手。以Reed-Solomon码(RS(n,k))为例,它将k个符号编码为n个具有n-k个奇偶校验符号的符号,并且可以纠正(n-k)/2个错误符号。

我想知道有没有像600这样的大n,k是400的RS(n,k)的设计或实现?这意味着它可以纠正大约100个错误符号。如果不可能,限制是什么?如果可能,时间成本是多少,尤其是解码,因为它比编码更复杂,对于大数据。

我查阅了几篇文献。虽然n=544是可能的,但是目前的方案只支持RS(544,514),也就是说纠错能力只有(544-514)/2=15。

我知道解码最难的部分是求解关键方程。但是我不知道如何估算解码的时间成本。

谢谢!

解决方法

请记住,随着 RS(n,k) 中的 n 变大,场变大。对于 n = 512 到 1023,需要 10 位字段。如果数据是 400 字节,那实际上是 320 个 10 位符号。

RS(600,400) 不是问题。对于奇偶校验数 = 校验子数 = n-k = p 的 RS(n,k),编码的时间复杂度为 O(pn)。生成综合征是 O(pn)。如果使用 Berlekamp Massey 或 Sugiyama 扩展的 Euclid 解码器,解码是 O(p^2),如果使用 Peterson Gorenstein Zierler 矩阵求逆,则解码是 O((p/2)^3)。


作为“更大”代码的示例,BCH 代码使用 GF(2^n) 的元素,但将编码多项式限制为 1 位系数。例如,有一个 BCH(48600,48408),48408 个数据位,192 个奇偶校验位,但是校验子生成和错误解码是在 GF(2^16) 中完成的。它用于称为 DVBS2 的数字广播。