基于MATLAB的(15,7)循环码的编译仿真_第1页
基于MATLAB的(15,7)循环码的编译仿真_第2页
基于MATLAB的(15,7)循环码的编译仿真_第3页
基于MATLAB的(15,7)循环码的编译仿真_第4页
基于MATLAB的(15,7)循环码的编译仿真_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Huaqiaouniversity纠错码与差错控制课程设计题目:基于MATLAB的(15,7)循环码的编译仿真院(系)信息科学与工程学院专业通信工程专业届别2011级班级11通信B学号姓名刘珩指导老师周林摘要随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递。它是现代计算机技术与通信技术飞速发展的产物,在日

2、常生活通信领域被广泛应用。纠错码(errorcorrectingcode),在传输过程中发生错误后能在收端自行发现或纠正的码。仅用来发现错误的码一般常称为检错码。为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程称为译码。检错码与其他手段结合使用,可以纠错。纠错编码又称信道编码,它与信源编码是信息传输的两个方面。它们之间存在对偶

3、的关系。应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。为了使一种码具有检错或纠错能力,必须对原码字增加多余的码元,以扩大码字之间的差别,使一个码字在一定数目内的码元上发生错误时,不致错成另一个码字。准确地说,即把原码字按某种规则变成有一定剩余度的码字,并使每个码字的码元间有一定的关系。关系的建立称为编码。码字到达收端后,用编码时所用的规则去检验。如果没有错误,则原规则一定满足,否则就不满足。由此可以根据编码规则是否满足以判定有无错误。当不能满足时,在可纠能力之内按一定的规则确定错误所在的位置,并予以纠正。纠错并恢复原码字的过程称为译码;码元间的关系为线性时,称为

4、线性码;否则称为非线性码。检错码与其他手段结合使用,可以纠错。检错反馈重发系统(ARQ系统)就是一例。所谓循环码是指:线性码中任一许用码组经过循环移位后得到的码组仍为一许用码组。循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(仏k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。 基本原理2.1线性分组码的编码原理2.1.1生成矩阵线性分组码(n,k)中许用码字(组)为2k个。定义线性分组码的加法为模二加,乘法为二进制乘法。且码字与码字的运算在

5、各个相应比特位上符合上述二进制加法运算规则。线性分组码具有如下性质(n,k)的性质:.封闭性,任意两个码组的和还是许用的码组;.码的最小距离等于非零码的最小码重;对于码组长度为n、信息码元为k位、监督码元为r=n-k位的分组码,常记作(n,k)码,如果满足2r-1n则有可能构造出纠正一位或一位以上错误的线性码。15,7)线性分组码有215-7个许用码字或合法码字。发送方发送的是许用码字,若接收方收到的是禁用码字,则说明传输中发生了错误。一个系统码的生成矩阵G,其左边k行k列应是一个k阶单位方阵Ik,因此生成矩阵G表示为2-1)式中,P是一个kX(n-k)阶矩阵。2.1.2校验矩阵生成矩阵:具有

6、BkQ形式的生成矩阵称为典型生成矩阵。监督矩阵:1110H=11011011100010=PIr0012-2)监督矩阵可用来校验和纠错。由H矩阵得到(n,k)线性分组码的每一码字ci,(i=1,2,:2k),都必须满足由H矩阵各行所确定的线性方程组,即ciHT=0.(7,3)码的生成矩阵G中每一行及其线性组合都是(n,k)码的码字,所以有GHT=0。2.2线性分组码的译码原理码的距离及纠检错能力1码的距离两个码字之间,对应位取之不同的个数,称为汉明距离,用d表示。一个码的最小距离dmin定义为两个码字之间的距离dmin二min(ci,cj),i幻叫咒G(n,k)表示它们之间差别的大小。距离越大

7、,两个码字的差别越大,则传送时从一个码字错成另一码字的可能性越小。码的最小距离愈大,其抗干扰能力愈强。2.线性码的纠检错能力对于任一个(nk)线性分组码,若要在码字内检测出e个错误,则要求码的最小距离de+1.纠正t个错误,则要求码的最小距离d2t+1;纠正t个错误同时检测e(三t)个错误,则要求dt+e+1;2.3循环码的编译码原理2.3.1编码原理根据给定的(n,k)值,再根据循环码生成定理对所给定信息位k,选定生成多项式g(x),所有码多项式c(x)都能被g(x)整除,且次数小于n-k。若已知(2-4)g(x)=gXn-k+g.Xn-k-1HFgX+gn-kn-k-110并设信息元多项式

8、m(X)=mk-1Xk-1+mk-2*2+Fm1XFmo(2-5)要编码成系统循环码形式,即码字的最左边k位是信息元,其余n-k位是校验元,则要用xn-k乘以m(x),再加上校验元多项式r(x),这样得到的码字多项式c(x)=xn-km(x)+r(x)=mxn-1+mxn-2fmxn-k+rxn-k-1frx+r1k-1k-2n-k-10(2-6)式(2-6)中中(x)二rn-k-1xn-k-1+r1x+rcoc(x)一定是g(x)的倍数,即有多项式c(x)二xn-km(x)+r(x)二q(x)g(x)2-7)c(x)二xn-km(x)+r(x)二0-modg(x)2-8)注意到g(x)为nk

9、次多项式,而r(x)最多为n-k-1次多项式r(x)=xn-km(x)-modg(x)2-9)即r(x)必是xn-km(x)除以g(x)的余式。上述过程指出了系统循环码的编码方法:(1).将信息组m(x)乘以xn-k变成xn-km(x),乘以xn-k的目的是将m(x)提高nk次。(2).然后将得到的xnkm(x)除以g(x),得到商q(x)和余式r(x).g(x),可知该余式分子r(x),即为校验多项式,从而得到码字多项式c(x)=xn-km(x)+r(x)2.3.2译码原理设发送的码字为C(x),接收到的码字为R(x),如果C(x)=R(x),则说明收到的码字正确;如果C(x)MR(x),则

10、说明收到的码字出现错误,则有:R(x)二C(x)+E(x)公式(2-11)中的玖x)称为错误图样。当E(x)=0时说明没有错误,用g(x)去除R(x),R(x)C(x)+E(x)C(x)*E(x)g(x)=g(x)=g(x)g(x)因为C(x)是由g(x)生成的,故C(x)必能为g(x)除尽,显然R(x)与E(x)同余式R(x)三E(x)modg(x),以g(x)除E(x)所得余式称为伴随式S(x)o由式(2-12)可知,R(x)Ht二(C(x)+E(x)H(x)二E(x)H(x)若E(x)=则E(x)H(x)二0;若E(x)丰0,则E(x)H(x)丰0。这说明,R(x)HT仅与错误图样有关,

11、而与发送的码字无关。由于g(x)的次数为nk次,g(x)除E(x)后得到余式(即伴随式S(x)的次数为n-k-1次,故S(x)共有2n-k个表达式,每个可能的表达式对应一个错误格式,可以知道(15,7)循环码的S(x)共有215-7个表达式,可以根据错误图样表来纠正(15,7)循环码的一位错误。系统循环码的译码方法:将收到的码字R(x)用g(x)去除,如果除尽则无错;否则有错。如果有错可由余式S(x)一一找出对应图样,然后将错误图样E(x)与R(x)模2相加,即为所求码字C(x),从而实现纠错目的。在本课程设计中要求完成任意(15,7)循环码的编码和译码,其中给出的生成多项式为:g(x)=X8

12、+X7+X6+X4+1则生成矩阵G为g(x)升幕排列时的G为2-13)若信息码元与式(1.1.13)相乘,得到的就是系统循环码。在本课程设计中,由于生成多项式为:g(x)=x8+x7+x6+x4+l,校验多项式为h(x)=xn+l/g(x),因此可由长除法求得-110100010000011010001000001101000100H=000110100010000011010001000001101000000000110100000000011010校验多项式为h(x)=x7+x6+x4+1,所以校验矩阵H为000000000000001000100012-14)本课程设计中采用(15,7

13、)循环码由生成矩阵可得其最小码距dmin为5由最小码距可得其纠检错能力可知其最多可检4位错,可纠2位错。上式指出了系统循环码的译码方法将收到的码字R(x)用g(x)去除,如果除尽则无错;否则有错。如果有错,可由余式S(x)一一找出对应图样,然后将错误图样E(x)与R(x)模2和,即为所求码字C(x),从而实现纠错目的。二、系统分析本次课程设计主要是完成(15,7)循环码的编译码,求出该码的最小码距以及其纠错能力并分析该码在高斯信道下的误码性能。循环码的编译码过程如下:(1)编码过程:第一步:将信息码字表示为m(x),其最高次幕为k1;第二步:将xn_km(x)与g(x)求模得出相应的余式r(x

14、);第三步:编码结果为C(x)二xn-km(x)+r(x)。(2)译码过程:第一步:由接收码字R(X)与监督矩阵相乘得出错误图样S;第二步:判断S是否为零。若不为零,则出错。在假定至多只有一位错的情况下,可以有效地译了相应的信息码字;第三步:在出错的情况下,将S与标准监督矩阵对比,得出错误的比特位并进行更正得出前四位为信息码字。三、仿真过程如果不考虑具体的编码和译码过程,采用系统的默认生成矩阵,则仿真方法如下:%(15,7)循环编码性能(纠错后还原为信息序列,与原信息序列进行比较)bits=70000;msg=randint(bits,1,2);SNR=0:1:12;%信噪比L=length(

15、SNR);BER1=zeros(1,L);BER2=zeros(1,L);modbit1=pskmod(msg,2);%调制fork=1:L未编码的序列,调制后经过高斯白噪声信道,再解调制,求误码yl=awgn(modbitl,SNR(k),measured);%在传输序列中加入AWGN噪声demmsg1=pskdemod(y1,2);recode=reshape(demmsgl,l,);errorl=(recode=msg);errorbits=sum(errorl);BERl(k)=errorbits/length(msg);endcode=encode(msg,15,7,syclic,1

16、00010111);%(15,7)循环编码modbit2=pskmod(code,2);%调制fork=1:L%编码的序列,调制后经过高斯白噪声信道,再解调制,再纠错后求误码y2=awgn(modbit2,SNR(k),measured);demmsg2=pskdemod(y2,2);recode=reshape(demmsg2,1,);decodebit=decode(recode,15,7,cyclic,100010111);error2=(decodedbit=msg);errorbits=sum(error2);BER2(k)=errorbits/length(msg);endsemilogy(SNR,(BER1),b-*)%画图holdonsemilogy(SNR,(BER2),r-o)gridonlegend(未编码,(15,7)循环编码);xlabel(SNR/dB);ylabel(BER);title(15,7)循环编码性能)运行结果如图所示。io(T5.7)循环编码性能未编码循环编码1o51iiiii

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论