题目
写出 1100 、1101 、 1110 、1111 对应的汉明码。
写出 1100 、1101 、 1110 、1111 对应的汉明码。
题目解答
答案
解:有效信息均为 n=4 位,假设有效信息用 b4b3b2b1 表示
校验位位数 k=3 位,( 2k >=n+k+1 )
设校验位分别为cl、c2、c3 ,则汉明码共4+3=7位,即:Clc2b4c3b3b2b1
校验位在汉明码中分别处于第 1、 2、 4位
c仁b4 ®b3 ®b1
c2=b4 ®b2 ®b1
c3=b3 ®b2 ®b1
1100 时, c3c2c1=110, | 汉明码为 0111100 |
1101 时, c3c2c1=001, | 汉明码为 1010101 |
1110 时, c3c2c1=000, | 汉明码为 0010110 |
1111 时, c3c2c1=111, | 汉明码为 1111111 |
当有效信息为
o
当有效信息为
o
当有效信息为
o
当有效信息为
o
解析
汉明码编码的核心思路是通过添加校验位实现单比特错误检测与纠正。本题中,有效信息为4位(n=4),需确定校验位数k(满足$2^k \geq n+k+1$),计算得k=3。汉明码结构为Clc2b4c3b3b2b1,校验位分别位于第1、2、4位。关键公式为:
- $c_1 = b_4 \oplus b_3 \oplus b_1$
- $c_2 = b_4 \oplus b_2 \oplus b_1$
- $c_3 = b_3 \oplus b_2 \oplus b_1$
有效信息1100(b4=1, b3=1, b2=0, b1=0)
- 计算校验位:
- $c_1 = 1 \oplus 1 \oplus 0 = 0$
- $c_2 = 1 \oplus 0 \oplus 0 = 1$
- $c_3 = 1 \oplus 0 \oplus 0 = 1$
- 组合汉明码:
$c_1c_2b_4c_3b_3b_2b_1 = 0\,1\,1\,1\,1\,0\,0 = 0111100$
有效信息1101(b4=1, b3=1, b2=0, b1=1)
- 计算校验位:
- $c_1 = 1 \oplus 1 \oplus 1 = 1$
- $c_2 = 1 \oplus 0 \oplus 1 = 0$
- $c_3 = 1 \oplus 0 \oplus 1 = 0$
- 组合汉明码:
$c_1c_2b_4c_3b_3b_2b_1 = 1\,0\,1\,0\,1\,0\,1 = 1010101$
有效信息1110(b4=1, b3=1, b2=1, b1=0)
- 计算校验位:
- $c_1 = 1 \oplus 1 \oplus 0 = 0$
- $c_2 = 1 \oplus 1 \oplus 0 = 0$
- $c_3 = 1 \oplus 1 \oplus 0 = 0$
- 组合汉明码:
$c_1c_2b_4c_3b_3b_2b_1 = 0\,0\,1\,0\,1\,1\,0 = 0010110$
有效信息1111(b4=1, b3=1, b2=1, b1=1)
- 计算校验位:
- $c_1 = 1 \oplus 1 \oplus 1 = 1$
- $c_2 = 1 \oplus 1 \oplus 1 = 1$
- $c_3 = 1 \oplus 1 \oplus 1 = 1$
- 组合汉明码:
$c_1c_2b_4c_3b_3b_2b_1 = 1\,1\,1\,1\,1\,1\,1 = 1111111$