海明码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

r 1 = I 0 + I 2 + I 3 + I 5 + I6 = 1 + 0 + 1 + 0 + 0 = 0
r2 = I1 + I2 + I3 = 0 +0 +1 = 1 r3 = I4 + I5 + I6 = 0 + 0 + 0 = 0
• 海明码为0011001000: r0 r1 I0 r2 I1 I2 I3 r3 I4 I5 I6
2.1 海明码
• 海明码是一种可以纠正一比特错误的编码。
• 基本设计思想:
–编码:在k比特信息上附加r比特的校验位,构成n=k+r 比特的码字,其中每个校验比特和某几个特定的信息比 特构成偶校验的关系。 –检验:接收端检验r个偶校验关系,即将每个校验比特 和与它关联的信息比特相加(异或),相加结果称为校 正因子。若r个校正因子全为0,认为没有错误;否则, 校正因子指出发生错误的比特位。
如何检测与纠正错误?
• 码字(codeword):由m比特的数据(消息)加上r比特的 冗余(校验位)构成。 • 有效编码集:由2m个(符合编码规则的)有效码字组成。 • 检错:当收到的码字为无效码字时,称检测出错误。 • 海明距离(Hamming Distance):两个码字的对应位上取 值不同的位数。 • 纠错:将收到的无效码字纠正到距其最近的有效码字。 • 检错码与纠错码的能力都是有限的。
校验比特的位数
• 为利用 r 个校正因子区分无差错和码字中n 个不同位置的一比特错(共n+1种情况), 校验比特的位数 r 应满足: 2r ≥ n + 1 = k + r + 1 • 比如:7-4海明码,11-7海明码。
信息比特与校验比特的位置
• 信息比特与校验比特的位置:2k 位置上是校验比特 rk,其 余位置是信息比特 Ii,以11-7海明码为例: r0 r1 I0 r2 I1 I2 I3 r3 I 4 I5 I6 1 2 3 4 5 6 7 8 9 10 11
海明码
编码
1 2 3 4 5 6 7 8 9 10 11
0 0 1 0 0 1 1 1 0 1
1,2,4,8是校验位! 其余位是信息位.
最终的 海明码 采用偶 检验哦!
码字
0
为什么此 处是1? (1) 0
(8) 1
(9)(10)(11) 0 1 0 奇数个1
(3)(5)(7)(9)(11) 之和的形式,则该信息比 特应参与这些校验比特的生成,如:
3 = 20 +21,则 I0 应参与 r0 和 r1 的生成。
编码与检验的方法
• 海明码的构造:
3 = 20 +21 5 = 22 +20 6 = 22 +21 7 = 22 +21 + 20 9 = 23 +20 10 = 23 +21 11 = 23 +21 + 20 发送端计算校验位: r0 = I0 + I1 + I3 + I 4 + I6 r1 = I0 + I2 + I3 + I 5 + I6 r2 = I1 + I2 + I3 r3 = I4 + I5 + I6 接收端计算校正因子: S0 = r 0 + I 0 + I 1 + I 3 + I 4 + I 6 S1 = r 1 + I 0 + I 2 + I 3 + I 5 + I 6 S2 = r 2 + I 1 + I 2 + I 3 S3 = r 3 + I 4 + I 5 + I 6
0 0 1 1 0 0 1 0 0 0 0
检验举例
• 收到码字00111010000:
r0 r1 I0 r2 I1 I 2 I3 r3 I4 I5 I6 0 0 1 1 1 0 1 0 0 0 0
S0 = r0 + I0 + I1 + I3 + I4 + I6 = 0 + 1 + 1 + 1 + 0 + 0 = 1 S1 = r1 + I0 + I2 + I3 + I5 + I6 = 0 + 1 + 0 + 1 + 0 + 0 = 0 S2 = r2 + I1 + I2 + I3 = 1 + 1 + 0 +1 = 1 S3 = r3 + I4 + I5 + I6 = 0 + 0 + 0 + 0 = 0 错误位置:S = 0101 = 5
海明码
由上图可看出,海明码的信息余量很大,因而编号效率低. 例:根据海明编码方法,对ASCII字符Z(二进制编码是1011010), 形成11位码字,要求简单地写出编码过程.并说明在传输过程中, 有一位错的情况下,如何能够检查出是哪一位是错的? 解: m=7,n =11,r =4 编号: 1=1,2=2,3=1+2,4=4,5=1+4,6=2+4,7=1+2+4,8=8,9=1+8, 被检测位: 10=2+8,11=1+2+8 数据位 于是有: (1) (3)+(5)+(7)+(9)+(11) 检测位 (2) (3)+(6)+(7)+(10)+(11) (4) (5)+(6)+(7) (8) (9)+(10)+(11)
海明码
(2)海明码算法
①将码字数内的位从最左边开始按顺序依次编号,第1位 是1号,第2位是2号, ……第n位是n号.编号为2的幂的 位(1号位,2号位,4号位,8号位等)是校验位,其余的位 填入m 位数据(2 r ≧n+1). ②每个校验位的取值应使得包括自己在内的一些位的集 合符合规定的奇偶性.(主要用于奇偶性校验)
2 检错和纠错
• 传输出错的类型
–单个错:由随机的信道热噪声引起,一次只影响1位。 –突发错:由瞬间的脉冲噪声引起,一次影响许多位。 用突发长度表示突发错影响的最大数据位数。
• 差错编码的类型
–检错码:只能检测到数据传输发生了错误,但无法自 行纠正,通常与反馈重传结合起来进行差错恢复。 –纠错码:不权能够检测出数据传输发生了错误,而且 能够自行纠正错误。
1 2 3 4 5 6 7 8 9 10 11 12
校验位
海明码
③为了知道编号为K的数据位对哪些检测 位有影响,将编号K 改写成2的幂的和 (如:11=1+2+8, 29=1+4+8+16),1个位只 由扩展式中所示编号的位检测(编号为 11的位,只能由1,2,8 检测位检测) ④由于在每个校验位的形成表达式中,除 自身编号外,其余都是信息位的编号,因 此只要信息位是确定的,校验位也可以 唯一地确定.
• 比特5有错,正确码字应为00110010000。
海明码
1. 海明码
(1)海明距离及意义 两个码字中不同的位数的个数称为海明距离,简称 H距离
1 0 0 0 1 0 0 1 H=3 10110001
求H距离的方法主要有:异或运算 海明距离的意义是:假如两个码字具有海明距离d ,
则需要d 个位差错才能将其中一个码字转换成另 一个.
编码集的检错与纠错能力
• 编码集的海明距离:编码集中任意两个有效码字的海明距 离的最小值。 • 检错能力:为检测出 d比特错误,编码集的海明距离至少 应为d+1;奇偶校验是能够检测出1比特错误的检错码。 • 纠错能力:为纠正 d 比特错误,编码集的海明距离至少应 为2d+1;海明码是能够纠正1比特错误的纠错码。
• 海明码的检验:
若S = S3S2S1S0 = 0000,无错;否则,错误比特的位置由 ( S3S2S1S0 ) 指示。
编码举例
• 信息比特为1001000: r0 r1 I0 r2 I1 I2 I3 r3 I4 I5 I6 1 0 0 1 0 0 0
r0 = I0 + I1 + I3 + I 4 + I6 = 1 + 0 + 1 + 0 + 0 = 0
相关文档
最新文档