二元汉明码编译matlab,基于MATLAB的(7-4)汉明码的编译仿真.doc

摘要

在通信系统中,要提高信息传输的有效性,我们将信源的输出经过信源编码用较少的符号来表达信源消息,这些符号的冗余度很小,效率很高,但对噪声干扰的抵抗能力很弱。汉明码(Hamming Code)是一种能够自动检测并纠正一位错码的线性纠错码,即SEC(Single Error Correcting)码,用于信道编码与译码中,提高通信系统抗干扰的能力。

为了提高信息传输的准确性,我们引进了差错控制技术。而该技术采用可靠的,有效的信道编码方法来实现的。 纠错码是一种差错控制技术,目前已广泛应用于各种通信系统和计算机系统中,纠错编码主要用于数字系统的差错控制,对于保证通信、存储、媒体播放和信息转移等数字传递过程的质量有着重要意义,是通信、信息类科知识结构中不可缺少的一部分。?

关键字:通信系统、MATLAB 线性分组码、Hamming码一、引言1

二、设计原理2

2.1 汉明码的构造原理2

2.2 监督矩阵H3

2.3 生成矩阵G4

2.4 校正子(伴随式)S5

三、(7,4)汉明码编码的设计7

3.1 (7,4)汉明码编码方法7

3.2 编码流程图7

3.3 (7,4)汉明码编码程序设计7

四、(7,4)汉明码的译码器的设计8

4.1 (7,4)汉明码译码方法8

4.2 译码流程图10

4.3(7,4)汉明码译码程序的设计10

五、(7,4)汉明码编译码程序的编译及仿真波形11

六、总结?13

七、参考文献14

附录15一、引言

当计算机存储或移动数据时,可能会产生数据位错误,这时可以利用汉明码来检测并纠错,简单的说,汉明码是一个错误校验码码集,由Bell实验室的R.W.Hamming发明,因此定名为汉明码。

与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。在接受端通过纠错译码自动纠正传输中的差错来实现码纠错功能,称为前向纠错FEC。在数据链路中存在大量噪音时,FEC可以增加数据吞吐量。通过在传输码列中加入冗余位(也称纠错位)可以实现前向纠错。但这种方法比简单重传协议的成本要高。汉明码利用奇偶块机制降低了前向纠错的成本。二、设计原理

2.1 汉明码的构造原理

线性分组码是一类重要的纠错码,应用很广泛。在(n,k)分组码中,若监督码元是按线性关系模2相加而得到的,则称其为线性分组码。

一般来说,若汉明码长为n,信息位数为k,则监督位数r=n-k.若希望用r个监督位构造出r个监督关系式来指示一位错码的n种可能位置,则要求或

现在以(7,4)分组码为例来说明线性分组码的特点。设其码字为A=[,],前4位是信息元,后3位是监督元,可用下列线性方程组来描述该分组码产生监督元:显然,这3个方程是线性无关的。代入上述公式可得(7,4)码的全部码组,如表1所示。

表1 (7,4)汉明码的全部码组

信息位

a6 a5 a4 a3监督位

a2 a1 a0信息位

a6 a5 a4 a3

监督位

a2 a1 a0

0000000100011100010111001100001010110100100011110101100101001101100001010110111010100110011111010001110001111111由上表可知:(7,4)汉明码的最小码距=3,它能纠1位错或检2位错。

由此可见,汉明码是能够纠正单个错误的线性分组码,其特点是:最小码距=3,码长n与监督位r满足关系式:,说明上述所说的(7,4)线性分组码就是汉明码。同时,由于码率,故当很大和很小时,码率接近1,可见,汉明码是一种高效码。

2.2 监督矩阵H

式(3.1)所示的(7,4)汉明码的监督方程可以改写为:(式2.2.1)用矩阵的形式可以将上式表示为:(摸2)(式2.2.2)上式可以简记为:

式中A=[a6 a5 a4 a3 a2 a1 a0]0=[0 0 0]

右上标“T”表示将矩阵转置。例如,HT是H的转置,即HT的第一行为H的第一列,HT的第二行为H的第二列等等。

其中,H成为监督矩阵,只要监督矩阵H给定,编码时信息位和监督位的关系也就随即确定下来了。

2.3 生成矩阵G上面汉明码例子中的监督位公式为(式2.3.1)

也可改写成矩阵形式:(式2.3.2)

或者写成(式2.3.3)

式中,Q为一个k*r阶矩阵,它为P的转置,即Q=PT上式表示,在信息位给定后,用信息位的行矩阵车乘矩阵Q就产生出监督位。

若将(2.2.1式)的监督方程补充完整并写