将 Reed-Solomon 纠错算法与 4 态条码一起使用
Use of Reed-Solomon error correction algorithm with 4-state barcodes
我有一个组合数据信息,最少需要 35 位 。
使用 4 态条形码,每个条代表 2 位 ,因此上述信息可以翻译成 18 个条。
我想为这个条形码添加一些强大的纠错功能,这样如果它以某种方式损坏了,它可以被更正。其中一种方法是 Reed-Solomon error correction。
我的目标是添加尽可能强大的纠错功能,但另一方面我对条形码有大小限制。如果我正确理解 Reed-Solomon algorithm,m∙k 必须至少是我的消息的大小,即在我的例子中是 35。
基于 Reed-Solomon Interactive Demo,我可以将 (m, n, t, k) 设为 (4, 15, 3, 9),这将允许我对最多 4∙9 = 36 位的消息进行编码。这将导致 code word 大小 4∙15 = 60 位,或 30 条 ,但是纠错 比率 t / n 将只是 20.0%。
下一个选项是 (m, n, t, k) 为 (5, 31, 12, 7) ,这将允许我对最多 5∙7 = 35 位的消息进行编码。这将导致 code word 大小 5∙31 = 155 位,或 78 条 ,和纠错 比率 t / n 将是 ~38.7%.
第一种情况需要使用 30 条条形码,这很好,但 20.0% 的纠错率不如预期。第二种情况提供了 38.7% 的出色纠错率,但条形码必须有 78 个条,太多了。
是否有其他方法或不同的方法可以提供很好的纠错和合理的条码长度?
您可以使用更短的代码字,例如 (5, 19, 6, 7) 31.5% 校正率,95 位,48 条。如果允许纠正最多 6 个错误,则缩短代码字的一个优点是减少错误纠正的机会。如果6个错误位置中的任何一个在有效位置范围之外,则表明存在超过6个错误。误改概率约为(19/31)^6 = 5.3%.
我有一个组合数据信息,最少需要 35 位 。
使用 4 态条形码,每个条代表 2 位 ,因此上述信息可以翻译成 18 个条。
我想为这个条形码添加一些强大的纠错功能,这样如果它以某种方式损坏了,它可以被更正。其中一种方法是 Reed-Solomon error correction。
我的目标是添加尽可能强大的纠错功能,但另一方面我对条形码有大小限制。如果我正确理解 Reed-Solomon algorithm,m∙k 必须至少是我的消息的大小,即在我的例子中是 35。
基于 Reed-Solomon Interactive Demo,我可以将 (m, n, t, k) 设为 (4, 15, 3, 9),这将允许我对最多 4∙9 = 36 位的消息进行编码。这将导致 code word 大小 4∙15 = 60 位,或 30 条 ,但是纠错 比率 t / n 将只是 20.0%。
下一个选项是 (m, n, t, k) 为 (5, 31, 12, 7) ,这将允许我对最多 5∙7 = 35 位的消息进行编码。这将导致 code word 大小 5∙31 = 155 位,或 78 条 ,和纠错 比率 t / n 将是 ~38.7%.
第一种情况需要使用 30 条条形码,这很好,但 20.0% 的纠错率不如预期。第二种情况提供了 38.7% 的出色纠错率,但条形码必须有 78 个条,太多了。
是否有其他方法或不同的方法可以提供很好的纠错和合理的条码长度?
您可以使用更短的代码字,例如 (5, 19, 6, 7) 31.5% 校正率,95 位,48 条。如果允许纠正最多 6 个错误,则缩短代码字的一个优点是减少错误纠正的机会。如果6个错误位置中的任何一个在有效位置范围之外,则表明存在超过6个错误。误改概率约为(19/31)^6 = 5.3%.