【问题标题】:Reed-Solomon Decoding里德-所罗门解码
【发布时间】:2009-11-04 08:48:07
【问题描述】:

我有一个 28 字节的序列,据说是用 Reed-Solomon (28, 24, 5) 码编码的。 RS 代码使用 8 位符号并在 GF(28) 中运行。场生成多项式为 x8+x4+x3+x2+1。我正在寻找一种简单的方法来解码这个序列,这样我就可以判断这个序列是否有错误。

我已经尝试过 Python ReedSolomon module,但我什至不确定如何为我的 RS 代码正确配置编解码器(例如,字段生成多项式的第一个连续根是什么原始元素是什么)。我也看过Schifra,但我什至无法在我的Mac上编译它。

我不太关心平台(例如 Python、C、Scilab),只要它是免费的。

【问题讨论】:

  • 该 Python 模块可能不正确,因为如果您查看网页并点击指向 Phil Karn 页面的链接,它所基于的库在 2007 年有一个错误修复,但 Python 模块日期从 2005 年开始。
  • 这里有点晚了,但原始元素是x+0 或十六进制02。生成多项式的第一个连续根通常也是十六进制02:(x-0x02)(x-0x04 )(x-0x08)(x-0x10) ,但它可以是十六进制 01:(x-0x01)(x-0x02)(x-0x04)(x-0x08)。对于使用自倒数生成多项式的不寻常情况,第一个连续根是 (hex 02)^126(提高到 126 次方): (x-0x66)(x-0xcc)(x-0x85)(x -0x17) .

标签: error-correction


【解决方案1】:

几年前,我成功构建了一个使用 Reed Solomon 纠错的嵌入式数据通信项目。我只是看了一下它以刷新我的记忆,我发现我使用了一个相当轻量级的、GPL 许可的 C 语言子系统,该子系统由一个名叫 Phil Karn 的知名人士发布来进行编码和解码。它只有几百行代码,但它是相当密集的东西。但是我发现我不需要理解数学就可以使用代码。

谷歌搜索 Phil Karn Reed Solomon 找到了我 this document

这看起来是一个不错的起点。希望这会有所帮助。

【讨论】:

  • 与阅读代码相比,理解数学很容易。很多人都使用过它,所以我相当肯定它有效,如果它解决了你的问题,那就去吧。如果您认为需要更改任何代码,您可能应该编写自己的 RS 库。这是您获得所需教育的唯一方法,您需要祈祷理解 Karn 的简洁 C 代码足以改变它。
  • Khan 的代码漏洞百出。纠正擦除并不总是有效,此外,他使用宏来“内联”某些计算对于今天的优化器来说是无用的。简而言之,它是一个不错的库,但我不会在生产中使用它。
  • 我和 OP 似乎都有规律的 -1 反应。对我来说有点困惑,就个人而言,我永远不会 -1 一个真正的问题或真正的帮助尝试。艰难的人群。
  • 这似乎是一个损坏的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-07
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
  • 2013-12-10
相关资源
最近更新 更多