用于在n比特上生成大小k纠错码的算法

时间:2010-07-04 18:20:34

标签: algorithm encoding hamming-distance

我想为n个位生成一个代码,用于我想要分类的k个不同输入。该代码的主要要求是纠错标准:不同输入的任何两种编码之间的最小成对距离最大化。我不需要它是准确的 - 近似会做,并且易用性和计算实现的速度也是一个优先事项。

一般来说,n将是数百,k是几十。

此外,k个不同的n位二进制编码之间的最小汉明距离是否存在合理的约束?

1 个答案:

答案 0 :(得分:3)

找到给定参数的确切最佳纠错码的问题非常困难,即使近似最好的代码也很难。最重要的是,有些代码没有任何合适的解码算法,而对于其他代码,解码问题非常棘手。

但是,你要问的是一个特定范围的参数,其中n»k,如果我理解正确你想要一个长度为n的k维码。 (因此,k比特以n比特编码。)在该范围内,首先,随机码可能具有非常好的最小距离。唯一的问题是解码是从不切实际到无法实现的任何地方,实际上计算最小距离也不是那么容易。

其次,如果你想要案例n»k的显式代码,那么你可以用q {2的BCH code做得相当好。正如维基百科页面所解释的那样,BCH码有一个很好的解码算法。

关于最小汉明距离的上界,在n»k的范围内,您应该从Hamming bound开始,也称为体积界限或球体包装界限。绑定的想法简单而美观:如果最小距离为t,则代码可以纠正距离楼层((t-1)/ 2)的错误。如果您可以将误差修正到某个半径,则意味着该半径的汉明球不会重叠。另一方面,可能的单词总数是2 n ,所以如果你把它除以一个汉明球中的点数(在二进制情况下是二项式系数之和),你得到无错误代码字数的上限。有可能击败这个界限,但是对于较大的最小距离来说并不容易。在这种制度下,这是一个非常好的约束。