数据通信实验报告和指导.doc
文本预览下载声明
汉明码编译码实验
实验目的
掌握汉明码编译码原理
掌握汉明码纠错检错原理
掌握用CPLD实现汉明码编译码的方法
实验内容
汉明码编码实验。
汉明码译码实验。
汉明码纠错检错能力验证实验。
自行设计任意码长汉明码电路,下载并进行验证。
实验器材
模块8
实验原理
在随机信道中,错码的出现是随机的,且错码之间是统计独立的。例如,由高斯白噪声引起的错码就具有这种性质。因此,当信道中加性干扰主要是这种噪声时,就称这种信道为随机信道。由于信息码元序列是一种随机序列,接收端是无法预知的,也无法识别其中有无错码。为了解决这个问题,可以由发送端的信道编码器在信息码元序列中增加一些监督码元。这些监督码元和信码之间有一定的关系,使接收端可以利用这种关系由信道译码器来发现或纠正可能存在的错码。在信息码元序列中加入监督码元就称为差错控制编码,有时也称为纠错编码。不同的编码方法有不同的检错或纠错能力。有的编码就只能检错不能纠错。
那么,为了纠正一位错码,在分组码中最少要加入多少监督位才行呢?编码效率能否提高呢?从这种思想出发进行研究,便导致汉明码的诞生。汉明码是一种能够纠正一位错码且编码效率较高的线性分组码。下面我们介绍汉明码的构造原理。
一般说来,若码长为n,信息位数为k,则监督位数r=n?k。如果希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求
2r ? 1 ≥ n 或 2r ≥ k + r + 1 (14-1)
下面我们通过一个例子来说明如何具体构造这些监督关系式。
设分组码(n,k)中k=4,为了纠正一位错码,由式(14-1)可知,要求监督位数r≥3。若取r=3,则n= k + r =7。我们用α6α5…α0 表示这7个码元,用S1、S2、S3表示三个监督关系式中的校正子,则S1 S2 S3的值与错码位置的对应关系可以规定如表14-1所列。
表 14-1
S1 S2 S3 错码位置 S1 S2 S3 错码位置 001
010
100
011 α0
α1
α2
α3 101
110
111
000 α4
α5
α6
无 错 由表中规定可见,仅当一错码位置在α2 、α4 、α5 或α6 时,校正子S1 为1;否则S1 为0。这就意味着α2 、α4 、α5 和α6四个码元构成偶数监督关系
S1 =α6(α5 (α4 (α2 (14-2)
同理,α1 、α3 、α5 和α6构成偶数监督关系
S2 =α6(α5 (α3 (α1 (14-3)
以及α0 、α3 、α4 和α6构成偶数监督关系
S3 =α6(α4 (α3 (α0 (14-4)
在发送端编码时,信息位α6 、α5 、α4 和α3 的值决定于输入信号,因此它们是随机的。监督位α2 、α1 和α0 应根据信息位的取值按监督关系来确定,即监督位应使上三式中S1、S2和S3的值为零(表示变成的码组中应无错码)
(14-5)
由上式经移项运算,解出监督位
(14-6)
给定信息位后,可直接按上式算出监督位,其结果如表14-2所列。
表 14-2
信息位 监督位 信息位 监督位 α6α5α4α3 α2α1α0 α6α5α4α3 α2α1α0 0000
0001
0010
0011
0100
0101
0110
0111 000
011
101
110
110
101
011
000 1000
1001
1010
1011
1100
1101
1110
1111 111
100
010
001
001
010
100
111 接收端收到每个码组后,先按式(14-2)~(14-4)计算出S1 、S2 和S3 ,再按表14-2判断错码情况。例如,若接收码组为0000011,按式(14-2)~(14-4)计算可得S1 =0,S2 =1,S3 =1。由于S1 S2 S3 等于011,故根据表14-1可知在α3 位有一错码。按上述方法构造的码称为汉明码。表14-2中所列的(7,4)汉明码的最小码距d0 =3,因此,这种码能纠正一个错码或检测两个错码。
汉明码有以下特点:
码长 n=2r-1 最小码距d=3
信息码位 k=2r-m-1 纠错能力t=1
监督码位 r=n-k=m
这里m为≥2的正整数,给定m后,即可构造出具体的汉明码(n,k)。
汉明码的编码效率等于k/n=(2r-1-r)
显示全部