【问题标题】:Error control coding for a practical application实际应用的错误控制编码
【发布时间】:2012-06-06 04:16:31
【问题描述】:

我正在做一个项目,其中制造了一个设备来测量橡胶园中橡胶树的周长。 我需要给每棵树一个标识来存储每棵树的测量值。 每棵树的 ID 包含 33 位(二进制)。对于错误检测和纠正,我希望将这个 33 位字编码为代码字(使用错误控制编码技术)并生成 2D 矩阵(颜色矩阵 - 红色和青色方块代表 1 和 0)。 2D 矩阵将表示编码字。这个矩阵将被粘贴在树的树干上。并使用相机(设备)拍摄二维矩阵的图像并解码代码,然后获取树的 ID。

我正在寻找实现这一点的最佳方案。我想到了循环码来编码,但是由于数据字是33位循环码似乎有点复杂。

有人可以建议最好的方法(至少是一个好方法)来实现这个吗???

附加信息:图像是在森林环境中拍摄的(弱光条件),考虑环境使用彩色矩阵。(树皮较暗,因此黑白矩阵不合适)

【问题讨论】:

  • 不使用 Aztec 或其他 30 多个矩阵代码的原因是什么?
  • 数据不是流,所以任何块码、循环码、格码等都无济于事。像素平均、降噪、图像稳定和其他利用多个图像帧的方法将为您的 mips 带来更多好处。
  • 黑色的每比特能量较低,因此二元或三元配色方案可以获得更好的信噪比,但这意味着必须处理多个通道,从而增加符号间干扰。
  • 对于你的编码,只需要考虑一个哈希;每个有效代码散列为唯一值,每个无效代码散列为唯一值。你的工作是最大化分隔每个有效哈希码的哈希位数。
  • 没有块位的奇偶校验位无法帮助您纠正代码。最大限度地减少符号间干扰。

标签: error-correction forwarderrorcorrection


【解决方案1】:

一种方法是使用二维奇偶校验码。生成的码字是一个矩阵,它具有单次纠错 (SEC) 能力。

由于您的信息部分(树 ID)有 33 位,您可能需要添加一些虚拟位以使代码字成为 2D 矩形(例如,6x6 信息部分)。如果一棵树的 ID 是 1010_1010_1010_1010_1010_1010_1010_1010_1,那么再加上 3 个 0,我们就得到了:

1 0 1 0 1 0 | 1
1 0 1 0 1 0 | 1
1 0 1 0 1 0 | 1
1 0 1 0 1 0 | 1
1 0 1 0 1 0 | 1
1 0 1 0 0 0 | 0
—————————————
0 0 0 0 1 0   1

然后你得到一个 (n, k, d) = (49, 36, 3) 代码,它纠正了 1 位错误。

【讨论】:

    猜你喜欢
    • 2022-07-08
    • 2015-11-19
    • 2016-12-26
    • 2011-01-13
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 2018-10-11
    • 2017-07-27
    相关资源
    最近更新 更多