基于MATLAB的(7,4)汉明码编译码设计与仿真结果分析

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

通信原理课程设计报告书课题名称基于MATLAB的(7,4)汉明码编译码设计与仿真结果分析姓名学号学院通信与电子工程学院专业通信工程指导教师2011年12月23日※※※※※※※※※※※※※※※※※※※※※※※※2009级通信工程专业通信原理课程设计1一、设计任务及要求:设计任务:利用MATLAB编程,实现汉明码编译码设计。理解(7,4)汉明码的构造原理,掌握(7,4)汉明码的编码和译码的原理和设计步骤。并对其性能进行分析。要求:通过MATLAB编程,设计出(7,4)汉明码的编码程序,编码后加入噪声,然后译码,画出信噪比与误比特数和信噪比与误比特率的仿真图,然后对其结果进行分析指导教师签名:2011年12月23日二、指导教师评语:指导教师签名:年月日三、成绩验收盖章年月日2基于MATLAB的(7,4)汉明码编译码设计与仿真结果分析1设计目的(1)熟悉掌握汉明码的重要公式和基本概念。(2)利用MATLAB编程,实现汉明码编译码设计。(3)理解(7,4)汉明码的构造原理,掌握(7,4)汉明码的编码和译码的原理和设计步骤。(4)对其仿真结果进行分析。2设计要求(1)通过MATLAB编程,设计出(7,4)汉明码的编码程序。(2)编码后加入噪声,然后译码,画出信噪比与误比特数和信噪比与误比特率的仿真图。(3)然后对其结果进行分析。3设计步骤3.1线性分组码的一般原理线性分组码的构造3.1.1H矩阵根据(7,4)汉明码可知一般有现在将上面它改写为上式中已经将“”简写成“+”。上式可以表示成如下矩阵形式:000034613562456aaaaaaaaaaaa010011010010101100010111012345601234560123456aaaaaaaaaaaaaaaaaaaaa(1)(2)3上式还可以简记为HAT=0T或AHT=0式中A=[a6a5a4a3a2a1a0]0=[000]右上标“T”表示将矩阵转置。例如,HT是H的转置,即HT的第一行为H的第一列,HT的第二行为H的第二列等等。将H称为监督矩阵。只要监督矩阵H给定,编码时监督位和信息位的关系就完全确定了。H矩阵的性质:1)H的行数就是监督关系式的数目,它等于监督位的数目r。H的每行中“1”的位置表示相应码元之间存在的监督关系。例如,H的第一行1110100表示监督位a2是由a6a5a4之和决定的。H矩阵可以分成两部分,例如式中,P为rk阶矩阵,Ir为rr阶单位方阵。我们将具有[PIr]形式的H矩阵称为典型阵。2)由代数理论可知,H矩阵的各行应该是线性无关的,否则将得不到r个线性无关的监督关系式,从而也得不到r个独立的监督位。若一矩阵能写成典型阵形式[PIr],则其各行一定是线性无关的。因为容易验证[Ir]的各行是线性无关的,故[PIr]的各行也是线性无关的。3.1.2G矩阵:上面汉明码例子中的监督位公式为)(模20001011001110101011101000123456aaaaaaa101100111010101110100HrPIH001101101011011001110346035614562aaaaaaaaaaaa(3)(4)(5)(6)(7)(8)(9)4也可以改写成矩阵形式:或者写成式中,Q为一个kr阶矩阵,它为P的转置,即Q=PT上式表示,在信息位给定后,用信息位的行矩阵乘矩阵Q就产生出监督位。我们将Q的左边加上1个kk阶单位方阵,就构成1个矩阵GG称为生成矩阵,因为由它可以产生整个码组,即有或者因此,如果找到了码的生成矩阵G,则编码的方法就完全确定了。具有[IkQ]形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组A中,信息位的位置不变,监督位附加于其后。这种形式的码称为系统码。G矩阵的性质:1)G矩阵的各行是线性无关的。因为由上式可以看出,任一码组A都是G的各行的线性组合。G共有k行,若它们线性无关,则可以组合出2k种不同的码组A,它恰是有k位信息位的全部码组。若G的各行有线性相关的,则不可能由G生成2k种不同的码组了。2)实际上,G的各行本身就是一个码组。因此,如果已有k个线性无关的码组,则可以用其作为生成矩阵G,并由它生成其余码组。3.1.3校正子S当接收码组有错时,E0,将B当作A代入公式(AHT=0)后,该式不一定成立。在错码较多,已超过这种编码的检错能力时,B变为另一许用码组,则该式仍能成立。这样的错码是不可检测的。在未超过检错能力时,上式不3456012101111011110aaaaaaaQ34563456012011101110111aaaaaaaaaaa0110001101001011001001111000QGkIG34560123456aaaaaaaaaaaGA][3456aaaa(10)(11)(12)(13)(14)5成立,即其右端不等于0。假设这时该式的右端为S,即BHT=S将B=A+E代入上式,可得S=(A+E)HT=AHT+EHT由于AHT=0,所以S=EHT式中S称为校正子。它能用来指示错码的位置。S和错码E之间有确定的线性变换关系。若S和E之间一一对应,则S将能代表错码的位置。3.2(7,4)汉明码的构造原理在偶数监督码中,由于使用了一位监督位a0,它和信息位an-1…a1一起构成一个代数式:在接收端解码时,实际上就是在计算若S=0,就认为无错码;若S=1,就认为有错码。现将上式称为监督关系式,S称为校正子。由于校正子S只有两种取值,故它只能代表有错和无错这两种信息,而不能指出错码的位置。若监督位增加一位,即变成两位,则能增加一个类似的监督关系式。由于两个校正子的可能值有4中组合:00,01,10,11,故能表示4种不同的信息。若用其中1种组合表示无错,则其余3种组合就有可能用来指示一个错码的3种不同位置。同理,r个监督关系式能指示1位错码的(2r–1)个可能位置。一般来说,若码长为n,信息位数为k,则监督位数r=n-k。如果希望用r个监督位构造出r个监督关系式来指示1位错码的n种可能位置,则要求然后根据(7,4)汉明码的编码原理,画出程序设计的流程图:0021aaann021aaaSnn1212rknrr或(15)(16)(17)(18)(19)(20)6图1编码流程图然后根据流程图进行编写程序。4、程序设计clearall;closeall;N=30000;K=4*N;%信息长度Q=8;%调制形式num=zeros(20,1);%误比特数开始始对(7,4)汉明码进行编码输出编码后的(7,4)汉明码加入高斯白噪声对加入噪声后的(7,4)汉明码进行译码结束输出译码码后的(7,4)汉明码画出误码率/数与信噪比的仿真图对编码后的(7,4)汉明码进行调制7ber=zeros(20,1);%误比特率forSNR=1:1:20%生成矩阵G=[1000111010011000101010001011];%监督矩阵H=[111010011010101011001];A=zeros(7*N,1);编码后信号S=zeros(N,3);%校验子E=zeros(7*N,1);%错误图样I=zeros(7*N,1);%解调纠错后的矩阵NEW=zeros(K,1);%收到的信号a=randsrc(K,1,[0,1]);%信源%编码fork=1:Ncode=[a(4*k-3)a(4*k-2)a(4*k-1)a(4*k)]*G;forl=0:6A(7*k-l)=mod(code(7-l),2);endend%8PSK调制Xa=pskmod(A,Q);%信道传输加噪Xb=awgn(Xa,SNR);%解调B=pskdemod(Xb,Q);%编码forn=1:N8M=7*n-6;Z=4*n-3;T=7*n-3;V=4*n;L=7*n;s=B(M:L,1)'*H';S(n,:)=mod(s,2);ifS(n,:)==[000]E(M:L,1)=[0000000]';elseifS(n,:)==[001]E(M:L,1)=[0000001]';elseifS(n,:)==[010]E(M:L,1)=[0000010]';elseifS(n,:)==[011]E(M:L,1)=[0000100]';elseifS(n,:)==[100]E(M:L,1)=[0001000]';elseifS(n,:)==[101]E(M:L,1)=[0010000]';elseifS(n,:)==[110]E(M:L,1)=[0100000]';elseifS(n,:)==[111]E(M:L,1)=[1000000]';endP=B(M:L,1)+E(M:L,1);I(M:L,1)=mod(P,2);NEW(Z:V,1)=I(M:T,1);end[num(SNR,:),ber(SNR,:)]=biterr(NEW,a);endplot(num,'b:s');%画出误比特数xlabel('信噪比');ylabel('误比特数');figure9plot(ber,'k-*');%画出误比特率xlabel('信噪比');ylabel('误比特率');5、设计结果及分析5.1通过对以上程序的编译运行仿真可以得到以下两个仿真图。024681012141618200123456x104信噪比误比特数图2汉明码译码误比特数图100246810121416182000.050.10.150.20.250.30.350.40.450.5信噪比误比特率图3汉明码译码误比特率图5.2编码后信号A与经过校验子S校验后译码得到的信号截图图4编码后信号A的截图11图5译码得到的信号截图5.3仿真结果分析(1)观察图2和图3我们可以看到误比特数和误比特率随信噪比的增加而减小,并最后趋于0.由图4和图5,再联系前面校正子s与各码元之间的对应关系,我们可以发现校正子s的重要作用。并且我们还可以推算出当程序中N取值很小时画出来的图形将是锯齿减函数,也就是说随着N的增大观察到的图形越光滑。(2)与其它检错纠错码相比较(7,4)汉明码是能够纠正1位错码且编码效率较高的一种线性分组码6主要仪器与设备安装了matlabR2009a程序的电脑。7设计体会与建议7.1设计体会7.2对设计的建议参考文献[1]曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,1994.[2]王兴亮,寇宝明.数字通信原理[M].西安:西安电子科技大学出版社,2009.[3]周炯槃.通信原理[M].北京:北京邮电大学出版社,2008.12[4]崔良海,徐洁.数据通信技术[M].北京:北京大学出版社,2009.[5]樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社,2009.[6]张志勇,杨祖撄.MATLAB教程[s].北京:北京航空航天大学出版社,2006.

1 / 13
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功