问题标签 [reed-solomon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1573 浏览

algorithm - 基本 Reed-Solomon 纠错问题

Reed-Solomon 纠错是否适用于存在丢失字节(或多个丢失字节)的情况?例如,假设它是 (12,8) Reed Solomon 码,所以理论上它应该能够纠正 2 个错误(如果位置已知,则可以纠正 4 个擦除)。但是,如果只接收到 11(或 10)个字节并且不知道丢弃了哪些字节,会发生什么?Reed-Solomon 纠错会起作用吗?

谢谢,

0 投票
1 回答
1896 浏览

memory - 用于嵌入式应用的 Reed-Solomon 编码器(内存高效)

我正在寻找用于嵌入式应用程序的 Reed-Solomon 编码器的内存效率非常高(例如用于查找表的最大 500 字节内存等)的实现?

我有兴趣用 5 个字节的奇偶校验编码 10 个字节的块。速度并不重要。

你知道我可以为此目的免费使用的实现吗?

提前致谢。

0 投票
2 回答
9656 浏览

math - 伽罗瓦域中的加法和乘法

我正在尝试在极其有限的嵌入式平台上生成 QR 码。除了生成纠错码字之外,规范中的所有内容似乎都相当简单。我查看了一堆现有的实现,它们都试图实现一堆让我头疼的多项式数学,特别是关于伽罗瓦域。在数学复杂性和内存要求方面,我能看到的最直接的方式是规范本身中列出的电路概念:

电路原理图

根据他们的描述,我相当有信心可以实现这一点,除了标记为 GF(256) 加法和 GF(256) 乘法的部分。

他们提供以下帮助:

QR 码的多项式算法应使用按位模 2 算法和按字节模 100011101 算法计算。这是一个 2^8 的伽罗瓦域,其中 100011101 表示该域的素数模多项式 x^8+x^4+x^3+x^2+1。

这对我来说几乎都是希腊语。

所以我的问题是:在这种伽罗瓦域算术中执行加法和乘法的最简单方法是什么?假设两个输入数字都是 8 位宽,我的输出也需要是 8 位宽。几个实现预先计算,或者在两个查找表中硬编码来帮助解决这个问题,但我不确定这些是如何计算的,或者在这种情况下我将如何使用它们。我宁愿不为这两个表占用 512 字节的内存,但这实际上取决于替代方案是什么。我真的只需要帮助了解如何在这个电路中进行单次乘法和加法运算。

0 投票
2 回答
515 浏览

objective-c - 如何在 48 位消息中添加一些检测或更正代码?

我正在开发一个 OCR 工具,其中包含一组符号,每个符号代表 2 位。

例如:
{ ---> 00
} ----> 01

我总是有一个 48 位代码,所以我有 24 个符号。

我需要在 Objective-c 中实现检测器或更正错误(我正在为 Mac 开发应用程序)。我唯一的要求是代码尽可能小。我有一个 48 位(代表 24 Sibol)并且不想在我的设计中添加更多。

我试图实现这个代码: http ://code.google.com/p/rscode-objc/

但它已经过时了,我遇到了很多错误,并且是为 255 字节的消息设计的(当然我不知道如何适应)。如果有人可以帮助我适应它,那就太好了。

如果您需要更多详细信息,请告诉我。

谢谢你。

0 投票
2 回答
1829 浏览

c - 使用 Reed-Solomon Erasure Correction 进行前向纠错

我的任务是使用奇偶校验和方法和Reed-Solomon Erasure Correction对一些声音字节进行编码和解码。我已经完成了第一种方法(奇偶校验和)的编码,但需要帮助完成第二种方法,即 Reed-Solomon Erasure Correction 检测。

到目前为止,我知道,RS 代码将t符号添加到k数据符号中。因此,它能够定位和纠正最多t/2符号,或者如果错误位置已知,则称为擦除。它最多可以纠正t。对于这个任务,我必须使用伽罗瓦域 GF(2 8 ) 将每个符号表示为一个字节。加法和减法运算是基于 XOR 的。因此,总的来说,我必须使用能够纠正直至t=3擦除的 Reed-Solomon 代码。现在单个 Reed Solomon 码的计算如下

所以代码字节可以被视为向量 ,单个代码是从 k 字节的数据中计算出来的,如下 所示,所以我的编码和解码过程需要以下 Vandermonde 矩阵 Fc=[c0,c1,...,ck+2]Cd=[d0,d1,...,dk-1]

所以一个简单的矩阵向量乘法使用F&D我们得到C=F.D

到目前为止,我为编码所做的如下:

我需要代码来完成此代码,以使用 Reed-Solomon Erasure Correction 对我的 fox_encode 和 fox_decode 类进行编码和解码。任何帮助将不胜感激,以尽快完成此任务。

提前致谢

0 投票
1 回答
218 浏览

qr-code - 计算二维码中需要的纠错字数

我喜欢编码二维码。因此我需要知道,指定版本和纠错级别需要多少纠错字。对于 QR 版本 1 与 ec-level Q 组合,必须有 13 个纠错字和 13 个数据字。我知道 ISO/IEC 18004 中有一些表(表 7、8、9)存储了这些信息。但我想知道是否可以计算所需的纠错字数。

问候,拉菲

0 投票
1 回答
4838 浏览

java - Java中的Reed-Solomon编解码实现示例

我需要使用 Reed-Solomon 纠错码对一些文本进行编码和解码。实现应该是Java。

我已经浏览了 Sean Owen 的实现类,但无法通过工作示例构建这些类。

有人可以发布 Reed-Solomon 纠错码或任何参考链接的工作示例。

0 投票
1 回答
580 浏览

redundancy - 纠错码

对于允许银行/电汇的支付系统,我需要可靠地将支付与它们所针对的相应用户帐户相关联。为此,用户应在与他的帐户关联的转账中包含一个参考号。

我想用内置冗余(额外符号)生成这个数字,这样我就可以检测和纠正最多 N 个以下(可能是常见的)错误:

  • 序列中的符号不​​正确(错字)
  • 两个符号的交换(我猜这与两个不正确的符号相同)
  • 序列中缺少符号
  • 序列中的额外符号

我搜索了一下,似乎 Reed Solomon 或 BCH 是常用的代码。我唯一找不到的是它们是否支持最后一种情况,即额外的符号。

另外,我希望代码有一个故障模式,它说:“这太糟糕了,我无法修复它”,而不是给我一个随机的“更正”结果。我想我可以简单地通过生成稀疏的参考号来做到这一点,并希望它不太可能意外地碰到一个有效的参考号,但我宁愿有这样的东西:“我最多可以纠正 5 个错误,但如果它是超过3个,我放弃。”

有什么想法吗?谢谢!

0 投票
1 回答
535 浏览

embedded - 就嵌入式环境中突发错误(块代码)的计算时间而言,最快的算法是什么?

我正在研究为在具有突发错误的嘈杂通道中运行的设备实施编码和解码。我发现克服突发错误的最常用技术如下:

  1. 里德-所罗门 (RS) 代码
  2. 防火规范
  3. 交错
  4. 级联
  5. 级联

我认为在嵌入式系统中,实现基于多项式的技术以将相关多项式存储在查找表中的最有效方式。然而,编码和解码涉及大量计算,只是想知道这些可能需要多长时间。

任何帮助,将不胜感激。

==========

PS:检测和修正都是必须的。

0 投票
1 回答
3304 浏览

matlab - Matlab:如何为 QR 码创建多项式生成器 Reed Solomon

我必须制作一个 matlab 程序,它应该创建一个 QR 码。

我的问题是 Reed Solomon 纠错

用户输入他想要的单词。[...] 我得到了一串数字,我应该在多项式生成器中消失(Reed Solomon)(我发现一些做得很好的网站:http ://www.pclviewer.com/rs2/calculator.html )

我希望它发生:例如我输入:32 91 11 120 209 114 220 77 67 64 236 17 236

[Reed Solomon 生成多项式]

我想知道:168 72 22 82 217 54 156 0 46 15 180 122 16

我找到了函数 rsenc comm.rsencoder gf ... 但是无法理解这些函数的操作。功能详解: http: //www.mathworks.fr/fr/help/comm...n.html#fp12225

我尝试了这种类型的代码:

他产生了 255 个字符串,而我想要 13 个输出。

谢谢您的帮助。