如何计算CRC码的汉明距离

时间:2016-02-23 16:03:56

标签: networking crc error-correction error-detection

我的研究生课程的教授给了我们计算他在幻灯片中演示的CRC方法的汉明距离的任务

他向我们展示了CRC协议如何能够捕获所有单个,双重,奇数个比特错误,突发错误2 <= k <= n,n + 1的突发错误,其中余数为0,并且消息被错误地接受为1/2 ^(n-1),因为第一个和最后一个比特总是固定为1,最后错误突发大于n + 1,其余概率为0,其中1/2 ^ n

到目前为止,我的回答是他的两部分问题:

问题5

a)考虑奇偶校验位协议与p,q,和另外的r位。这个协议的汉明距离是多少?简要解释原因

我们知道Hamm(代码)&gt; = x + 1.将奇偶校验位协议与p的q和r一起使用,可以得到3位错误检测能力。因此x = 3.这意味着该协议的汉明距离是> = x + 1 = 3 + 1 = 4.

b)假设我们有一个CRC协议,它满足我们在幻灯片中描述的所有理想属性。这个协议的汉明距离是多少?简要解释原因。

如上所述,代码的汉明距离是x + 1,其中x是x位错误检测功率。如果我们有一个CRC协议,它满足我们在幻灯片中讨论的所有理想属性,它们是: 1)所有单比特错误 2)所有双位错误 3)所有奇数位错误 4)k比特的错误突发,2 <= k <= n

如果我们使用这些因素,我们可以看到CRC协议满足包括2 <= k <= n个突发的所有错误突发。这意味着Hamm(代码)&gt; = x + 1 =(n-2)+ 1 = n-1。

c)对于a)和b),这些协议可以用于纠错吗?如果是,它们可以纠正多少位? (即,他们可以执行x位校正,如果是,那么x是什么?)解释你是如何达到这个值的。

表示a) 因为我们知道所讨论的奇偶校验位协议可以检测所有3位或更少位错误,x = 3.我们也知道为了执行x位校正: Hamm(代码)&gt; = 2x + 1 = 2(3)+ 1 = 7,

。我不确定这是否正确

但是对于b)部分,我对CRC协议的纠错感到困惑。我对汉明校正的答案是Hamm(代码)&gt; = 2x + 1&lt; = 2(n-1)+1 = 2n - 2 + 1 = 2n - 1 我甚至不确定这是否正确或如何确定它可以纠正的位数。

1 个答案:

答案 0 :(得分:0)

我实际上最终看到了我在大部分时间缺乏知识的地方,但我仍然不确定我对a)和b)的回答是否正确。有人能告诉我我是否走在正确的轨道上?我不是在寻找“这就是答案”。如果我是正确的,那么听到肯定会很高兴,但如果不是一个简单的指导,我将非常非常感激。

表示a) 因为我们知道所讨论的奇偶校验位协议可以检测所有3位或更少位错误,因为Hamm(代码)> = 4,所以x = 3.我们也知道为了执行x位校正: Hamm(代码)&gt; = 2x + 1.因此我们只能检测单个位错误,因为2(1)+ 1 = 3.任何更多都将大于4。

表示b) 我们知道CRC协议具有Hamm(代码)&gt; = n + 2,其中x = n + 1。为了使Hamm(代码)> = 2x + 1,x <= floor(n / 2)。然后该协议可以使用纠错。