【问题标题】:error correcting code over a 4 element alphabet4 元素字母表上的纠错码
【发布时间】:2011-07-03 05:27:43
【问题描述】:

我需要开发一个纠错码。

我的字母表是 {0,1,2,3}(4 个元素)
码字大小 n 为 8 或 12
预期纠错能力 = 1 位
预期错误检测能力 = 2 位

我查看了许多 ecc 技术(rs、ldpc 等),但仍然不知道从哪里开始以及如何做。

谁能帮我建造它?

谢谢

【问题讨论】:

    标签: error-correction error-detection


    【解决方案1】:

    你考虑过checksum吗?

    【讨论】:

    • 我认为,我们无法纠正错误。我的代码预计在 8 位或 12 位内最多检测 2 个错误并纠正最多 1 个错误。
    • 保留两条额外的信息。首先是总和。其次是异或。现在,有可能找到一个胜过这两种情况的案例,但这将处理大多数情况。没有 100% 的方法可以检查所有案例。
    • 我的符号是 {0/1/2/3}。据我所知,XOR 适用于二进制。是否可以对非二进制应用 XOR?
    【解决方案2】:

    有很多方法可以实现这一点,但一种常见的方法是使用 Reed-Solomon 代码。

    由于您需要检测所有双符号错误并纠正所有单符号错误,这意味着您将需要两个校验符号。

    您说您有 2 位(4 元素)符号,这将您的代码长度限制为 3 个符号。

    加起来,每个 12 位代码字都有 1 个数据符号和 2 个校验符号。

    效率不高,是吗?为了提高效率,您不妨将符号重复三次,并使用相同的码字大小以及检测和纠正能力。

    要更有效地使用 Reed-Solomon,您需要使用大符号。大多数其他类型的代码也是如此。

    编辑:

    您可能需要考虑没有 Reed-Solomon 码(BCH 码的子集)那么多限制的通用 BCH 码,但代价是更复杂的解码:

    http://en.wikipedia.org/wiki/BCH_code

    【讨论】:

    • 感谢您的评论。我可能说不清楚,让我更好地表达。我的字母表是 4 个元素,而代码字是 8 位或 12 位数字。因此,代码字类似于“30112320”或“301123202131”,我需要最多纠正 1 个错误,并检测最多 2 个数字错误(就像 Hamm[7,4] 一样)。那么 Hamm.distance 至少应该是 5。你能再评论一下吗?
    • 当您说您的代码字是 8 位或 12 位时,我假设您的意思是数据字(实际信息内容)是 8 位,而代码字(信息加上纠错信息)是12 位数。它是否正确?这就是我的回答所假设的。
    • 不,它是码字大小(8 位或 12 位),即包括数据和开销。当然,目标之一是获得最佳的 k/n 比。但数据位数可能会有所不同。限制是码字大小,检测+校正应该是(2+1)。虽然我认为可以满足 2+1 w 8 或 12 尺寸,但我担心它最终可能会导致 k/n 比很差,正如你之前提到的。在这种情况下,我仍然可以讨论增加 cw 大小,但我更喜欢让它更短。感谢您的关注。
    猜你喜欢
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多