通信原理设计报告(7,4)汉明码的编解码设计(2)

2019-01-12 16:38

通信系统课程设计报告

第3章 (7,4)汉明码的构造原理

3.1 汉明码的构造原理

线性分组码是一类重要的纠错码,应用很广泛。在(n,k)分组码中,若

监督码元是按线性关系模2相加而得到的,则称其为线性分组码。

现在以(7,4)分组码为例来说明线性分组码的特点。设其码字为A=[a6,

a5,a4,a3,a2,a1,a0],前

4位是信息元,后3位是监督元,可用下列线性方程组

来描述该分组码产生监督元:

? a 2 ? a 6 ? a 5 ? a 4 ?

? a 6 ? a 5 ? a3? a1

? ? ? ?

a 6 a 4 a 3 0 ?a

(式3.1)

显然,这3个方程是线性无关的。代入上述公式可得(7,4)码的全部码组,

如表1所示。

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

信息位 a6 a5 a4 a3 0000 0001 0010 0011 0100 0101 0110 0111 监督位 a2 a1 a0 000 011 101 110 110 101 011 000 信息位 a6 a5 a4 a3 1000 1001 1010 1011 1100 1101 1110 1111 监督位 a2 a1 a0 111 100 010 001 001 010 100 111 第6页 共22页

通信系统课程设计报告

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

3.2 监督矩阵H和生成矩阵G ● 监督矩阵H

式(3.1)所示的(7,4)汉明码的监督方程可以改写为:

a6?a5?a4?a2?0

a6?a5?a3?a1?0 (式3.2.1)

(式3.2.2)

a6?a4?a3?a0?0用矩阵的形式可以将上式表示为:

并简记为:H?AT?0T或HT?A?0

其中,H成为监督矩阵,只要H给定,信息位和监督位的关系也就随即确定下来了。H的行数就是监督矩阵的数目,等于监督数目r。H序列可分为两部分:

?1110?100???(式3.2.3) H?1101?010??PIr?????1011?001??

第7页 共22页

通信系统课程设计报告

其中P为r?k阶矩阵,Ir为r?r阶单位阵。

因为HT?A?0,所以可以用这个关系式来作为判断接收码字A是否出错的依据。若HT?A?0,则说明码字A有错,反之则说明码字A无错。

● 生成矩阵G

若将(3.2.1式)的监督方程补充完整并写成矩阵的形式:

(式3.2.4)

即:A=G·[a6a5a4a3]=G·M 上式中

?1000....111?0100....110 G=??0010....101??0001....011G成为生成矩阵,根据式3.2.4知:由G和信息码就能产生所有码字。生成矩阵也可分为两部分,即

G=?Ik,Q? (式3.2.6)

上式中

?111???110 Q=???PT (式3.2.7)

?101???011??a???? (式3.2.5) ???第8页 共22页

Q为k?r阶矩阵,Ik为k阶单位阵。

3.3 校正子(伴随式)S

通信系统课程设计报告

设一发送码组A=[an?1,an?2,...a1,a0],在传输的过程中可能发生误码。接受码组B=[bn?1,bn?2,...,b1,b0],收发码组之差定义为错误图样E。

E=B-A (式3.3.1)

其中,E=[en?1,en?2,...,e1,e0],令S=B?HT,称为校正子(伴随式)。 S?B?HT?(A?E)HT?E?HT (式3.3.2) 可见:校正子S与错误图样E之间由确定的线性变换关系。 (7,4)汉明码的校正子和错误图样之间的对应关系如表2所示。

表2 (7,4)汉明码S 与E 对应关系

错误码位 b0 错误图样E e6 e5校正子S e4 e3 e2 e1 e0 S2S1S0 0 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 1 1 1 0 0 0 错误位置C 0 1 2 3 4 5 6 7 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 b1 b2 b3 b4 b5 b6 无错 由上表可知:

当S=001时,则出错在0 位,即b0 出错; 当S=010时,则出错在1 位,即b1 出错; 当S=100时,则出错在2 位,即b2 出错; 当S=011时,则出错在3 位,即b3 出错; 当S=101时,则出错在4 位,即b4 出错;

第9页 共22页

通信系统课程设计报告

当S=110时,则出错在5 位,即b5 出错; 当S=111时,则出错在6 位,即b6 出错; 当S=000时,则无错。

第4 章 (7,4)汉明码编码器的设计

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

(7,4)汉明码的编码就是将输入的4 位信息码M=[ a6a5a4a3]加上3 位监督码b2b1b0从而编成7位汉明码[a6a5,a4,a3,a2,a1,a0],编码输出B=[a6a5a4a3a2

a1a0].由式A = M·G=[a6a5a4a3]·G 可知,信息码M与生成矩阵G 的乘积就

是编好以后的(7,4)汉明码。 ????

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

根据(7,4)汉明码的编码原理,由于输入的是4 位的信息码M=[a3a2a1a0],输出的是7 位的(7,4)汉明码B=[a6a5,a4,a3,a2,a1,a0]。所以定义4 位输入信息码a3a2a1a0 的语句为:port(datain:in std_logic_vector(3 downto 0);编码输出的语句为:port(b:out std_logic_vector(6 downto 0);

再根据(式3.1),即可得到监督位与信息码之间的对应关系,编码输出的表示语句可写成如下形式:

b(2)<=a(3) XOR a(2) XOR a(1); b(1)<=a(3) XOR a(2) XOR a(0); b(0)<=a(3) XOR a(1) XOR a(0);

最后将上式计算所得的监督位和输入的信息位一起输出,则此次编码就算完成了。 (7,4)汉明码的编码源程序见下文附录。

第10页 共22页


通信原理设计报告(7,4)汉明码的编解码设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北理工信号与系统精品课程习题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: