计算机通信课设(15,7)循环码的编码与译码_第1页
计算机通信课设(15,7)循环码的编码与译码_第2页
计算机通信课设(15,7)循环码的编码与译码_第3页
计算机通信课设(15,7)循环码的编码与译码_第4页
计算机通信课设(15,7)循环码的编码与译码_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、*实践教学*兰州理工大学计算机与通信学院2013年秋季学期计算机通信课程设计题 目: (15,7)循环码的编译码方法 专业班级: 通信工程(1)班 姓 名: 学 号: 指导教师: 成 绩: 摘 要本课程设计主要是通过分析查阅(n,k)循环码的编码方法,在MATLAB环境下设计了对(15,7)循环码编译码方法的仿真,首先设计了对任意(15,7)循环码的编译码,然后使一个经过(15,7)循环码编码的信号序列通过高斯信道,再对译码后的序列进行误码分析,加深对循环码的了解。关键词:(15,7)循环码;高斯噪声;matlab目 录前 言1一、循环码编码21.1信道编码理论21.1.1信道编码的目的21.

2、1.2信道编码的实质21.1.3 信道编码公式21.1.4线性分组码的编译码原理31.2 循环码介绍41.2.1 循环码定义41.2.2 循环码的特点41.2.3 (n.k)循环码的码多项式表示51.2.4 (n,k)循环码的生成多项式与生成矩阵51.2.5 (n,k)循环码的校验多项式与一致校验矩阵71.3 循环码编码原理91.4 循环码的最小码距91.5 循环码的纠检错能力101.6 循环码的纠错译码原理11二、(15,7)循环码程序设计132.1(15,7)循环码仿真模块132.2(15,7)循环码译码仿真模块142.3(15,7)循环码在高斯信道下的误码性能仿真模块14三、设计与仿真1

3、53.1仿真设备153.2 (15,7)循环码的编码153.3 (15,7)循环码的译码153.4 (15,7)循环码在高斯信道下的误码性能17总结18参考文献19附 录20致谢263前 言随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作软件的要求也越来越高。在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传

4、递,它使得现代通信的可靠性与有效性实现了质的飞跃。它是现代计算机技术与通信技术飞速发展的产物,在日常生活通信领域、武器控制系统等领域都被广泛应用。一、循环码编码1.1信道编码理论1.1.1信道编码的目的在数字通信系统中由于信道内存在加性噪声及信道传输特性不理想等容易造成码间串扰同时多用户干扰、多径传播和功率限制等也导致错误译码。为了确保系统的误比特率指标通常采用信道编码。信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码。它是在信息码中增加一定数量的多余码元,使码字具有一定的抗干扰能力。1.1.2信道编码的实质 信道编码的实质就是在信息码中增加一定数量的多余码元(称为监督码元),

5、使它们满足一定的约束关系,这样由信息码元和监督码元共同组成一个由信道传输的码字。举例而言,欲传输k位信息,经过编码得到长为n(n>k)的码字,则增加了 n - k = r 位多余码元,我们定义 R = k / n 为编码效率。1.1.3 信道编码公式 令信息速率为fb,经过编码以后的速率为ft,定义:Rfb/ft为编码率。则对于任何一个信道,总存在一个截止速率R0,只要R<R0,总可以达到:BER<CR2-nR0,其中CR为某个常数,n为编码的约束长度。 对于等概二进码、AWGN信道,有: (1-1) (1-2)1.1.4线性分组码的编译码原理1、 线性分组码的基本概念一个n

6、 ,k线性分组码, 是把信息划成k个码元为一段(称为信息组), 通过编码器变成长为n个 码元的一组, 作为n, k线性分组码的一个码字。 若每位码元的取值有q种(q为素数幂), 则共有qk个码字。 n长的数组共有qn组, 在二进制情况下, 有2n个数组。 显然, qn个n维数组(n重)组成一个GF(q)上的n维线性空间。 如果qk(或2k)个码字集合构成了一个k维线性子空间, 则称它是一个n ,k线性分组码。即将k维k重信息空间的元素线性映射到n维n重矢量空间(接收矢量/收码) 的k维n重子空间(码空间)。 2、生成矩阵和校验矩阵 生成矩阵: (1-3)G称为生成矩阵,因为可以用它产生整个码组

7、A,即有 (1-4)生成矩阵的性质:具有IkQ形式的生成矩阵称为典型生成矩阵。由典型生成矩阵得出的码组A中,信息位的位置不变,监督位附加于其后。这种形式的码组称为系统码。 矩阵G的各行也必须是线性无关的。如果已有k个线性无关的码组,则可以将其用来作为生成矩阵G,并由它生成其余码组。监督矩阵: (1-5) 监督矩阵可用来校验和纠错。1.2循环码介绍循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错

8、误。 循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码( Grey Code )。循环码是采用循环移位特性界定的一类线性分组码。是线性分组码的一个重要子类;BCH

9、码是其主要的一大类;汉明码、R-M码、Golay码、RS码等可变换;纳入循环码内,Goppa码的一个子类也属于循环码;用反馈线性移位寄存器可以容易的实现其编码和得到伴随式;由于数学上的特性,译码方法简单。1.2.1循环码定义设C使某(n,k)线性分组码的码字集合,如果对任何,它的循环移位也属于C。该码在结构上有另外的限制,即一个码字任意循环移位的结果仍是一个有效码字。1.2.2循环码的特点循环码有两个数学特征:(1) 线性分组码的封闭型;(2) 循环性,即任一许用码组经过循环移位后所得到的码组仍为该许用码组集合中的一个码组。如:若为一循环码组,则、还是许用码组。也就是说,不论是左移还是右移,也

10、不论移多少位,仍然是许用的循环码组。1.2.3 (n.k)循环码的码多项式表示为了用代数理论研究循环码,可将码组用多项式表示,设码长为n的循环码表示为(), 其中为二进制数,通常把码组中各码元当做二进制的系数,即把上式中长为n的各个分量看做多项式的各项系数,: (1-6)则码字与码多项式一一对应,这种多项式称为码多项式。式中,x的幂次是码元位置的标记。若把一个码组左移i位后的码组记为,(1-7)其码多项式为 (1-8)A(i)(x)可以根据xiA(x)按模xn+1运算得到,即 (1-9) (1-10)式中,Q(x)为xiA(x)除以xn+1的商式,而xiA(x)等于A(i)(x)被xn+1除得

11、之余式。1.2.4 (n,k)循环码的生成多项式与生成矩阵 (n,k)循环码的生成多项式写为g(x),它是(n,k)循环码码集中唯一的,幂次为n-k的码多项式,则是一个幂次为n的码多项式。按模()运算,此时: (1-11) 即 (1-12)且因 g(x)也是n阶幂,故Q(x)=1。由于它是循环码,故按模()运算后的“余式”也是循环码的一个码字,它必能被g(x)整除,即: (1-13)由以上两式可以得到: (1-14)和 (1-15)从上式中可以看出,生成多项式g(x)应该是的一个因式,即循环码多项式应该是的一个n-k次因式。根据各码组集合中生成多项式的唯一性,可以构造生成矩阵G。由于g(x)的

12、次数为n-k,则g(x),xg(x),xk-1g(x)都是码多项式,而且线性无关,因此以这k各多项式对应的码组作为k行就能构成该循环码的生成矩阵,因此循环码的生成矩阵多项式可以写成 (1-16)本课程设计要求完成任意(15,7)循环码的编码和译码,其中给出的生成多项式为:g(x)=x8+x7+x6+x4+1则生成矩阵G为g(x)升幂排列时的G为 (1-17)对式(1.1.12)作线性变换,整理成典型形式的系统生成矩阵 (1-18)若信息码元与式(1.1.13)相乘,得到的就是系统循环码。1.2.5 (n,k)循环码的校验多项式与一致校验矩阵如前所述,在(n,k)循环码中,由于g(x)能除尽,因

13、此xn+1可分解成g(x)和其他因式的乘积,记为 xn +1=g(x)h(x) (1-19)即可写成 h(x)= xn +1/g(x) (1-20)由于g(x)是常数项为1的r次多项式,所以h(x)必为k次多项式。称h(x)为监督多项式或一致校验多项式,与式(3.18)给出的G(x)相对应,监督矩阵多项式可表示为 (1-21)式中,h*(x)式h(x)的逆多项式。在本课程设计中,由于生成多项式为:g(x)=x8+x7+x6+x4+1,校验多项式为 h(x)= xn +1/g(x),因此可由长除法求得校验多项式为h(x)=x7+x6+x4+1,所以校验矩阵H为 (1-22) 对式(1-22)作线

14、性变换,整理成系统一致校验矩阵 (1-23 ) 1.3 循环码编码原理有信息码构成信息多项式,其中最高幂次为k-1;用乘以信息多项式m(x),得到的,最高幂次为n-1,该过程相当于把信息码(,)移位到了码字德前k个信息位,其后是r个全为零的监督位;用g(x)除得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此r(x)加于信息位后做监督位,即将r(x)于相加,得到的多项式必为一码多项式。循环码的编译码过程如下:编码过程第一步:将信息码字表示为,其最高次幂为;第二步:将与求模得出相应的余式;第三步:编码结果为。1.4循环码的最小码距一个线性码的两个码字之间的最小距离等于任何非零码

15、字的最小汉明重量。已知线性分组码的生成矩阵G,因为要产生系统码,而给定的生成矩阵不是典型生成矩阵,因此首先要将G通过一系列初等行变换,变为典型生成矩阵。 然后利用码组矩阵A等于信息矩阵C与典型生成矩阵G的乘积,将所得的矩阵A按照异或运算的规则进行相应的处理,即可求得所有的生成码字矩阵A(A中每一行为一个生成码字),将生成码字矩阵A的每一行与其他行进行比较,如果对应值相同则为0,不同则为1,将比较所得的结果保留在一个与A矩阵列数相同的矩阵M中,再对M中的所有行求和,则得到任意两个码字的汉明距离S,对所得结果S求最小值,即得到最小汉明距离。由生成矩阵可得本课程设计中(15,7)循环码的最小码距为5

16、。1.5循环码的纠检错能力由于循环码是一种线性分组码,所以其纠检错能力与线性分组码相当。而线性分组码的最小距离可用来衡量码的抗干扰能力,那么一个码的最小距离就与它的纠检错能力有关。定理: 对于任一个线性分组码,若要在码字内(1) 检测e个错误,要求码的最小距离;(2) 纠正t个错误,要求码的最小距离;(3) 纠正t个错误同时检测e()个错误,则要求;循环码的译码分检错译码与纠错译码两类。在无记忆信道上,对码字c,差错图案和接收向量的多项式描述为 (1-24 )定义的伴随多项式为 (1-25)由于所以 (1-26 )由此可见,则一定有差错产生,或说满足的差错图样产生,它满足。 (1-27)循环码

17、的检错译码即是计算并判断是否为01.6 循环码的纠错译码原理 纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。 通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。用于纠错目的的循环码的译码算法比较复杂。 当码字c通过噪声信道传送时,会受到干扰而产生错误。如果信道产生的错误图样是e,译码器收到的n重接受矢量是y,则表示为: (1-2

18、8)上式也可以写成多项式形式: (1-29)译码器的任务就是从y(x)中得到,然后求的估值码字 (1-30) 并从中得到信息组。循环码的译码过程:第一步:由接收到的y(x)计算伴随式s(x);第二步:根据伴随式s(x)找出对应的估值错误图样;第三步:计算,得到估计码字。若,则译码正确,否则,若,则译码错误。由于g(x) 的次数为n - k 次,g(x) 除E(x) 后得余式(即伴随式)的最高次数为n-k-1次,故S(x) 共有2n-k 个可能的表达式,每一个表达式对应一个错误格式。可以知道(15,7)循环码的S(x) 共有2(15-7) = 256个可能的表达式。本课程设计中采用(15,7)循

19、环码由生成矩阵可得其最小码距dmin为5由最小码距可得其纠检错能力可知其最多可检4位错,可纠2位错。其伴随式如表1-1所示。表1-1 (15,7)循环码错误图样表错误图样伴随式纠错e=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s=0 0 0 0 0 0 0 0无错e=0 0 0 0 0 0 0 0 0 0 0 0 0 0 1s=1 0 0 0 0 0 0 0第一位错e=0 0 0 0 0 0 0 0 0 0 0 0 0 1 0s=0,1,0,0,0,0,0,0第二位错e=0 0 0 0 0 0 0 0 0 0 0 0 1 0 0s=0,0,1,0,0,0,0,0第三位错e=0

20、0 0 0 0 0 0 0 0 0 0 1 0 0 0s=0,0,0,1,0,0,0,0第四位错e=0 0 0 0 0 0 0 0 0 0 1 0 0 0 0s=1,0,0,0,1,0,0,0第五位错e=0 0 0 0 0 0 0 0 0 1 0 0 0 0 0s=0,1,0,0,0,1,0,0第六位错e=0 0 0 0 0 0 0 0 1 0 0 0 0 0 0s=1,0,1,0,0,0,1,0第七位错e=0 0 0 0 0 0 0 1 0 0 0 0 0 0 0s=1,1,0,1,0,0,0,1第八位错e=0 0 0 0 0 0 1 0 0 0 0 0 0 0 0s=0,1,1,0,1,0

21、,0,0第九位错e=0 0 0 0 0 1 0 0 0 0 0 0 0 0 0s=0,0,1,1,0,1,0,0第十位错e=0 0 0 0 1 0 0 0 0 0 0 0 0 0 0s=0,0,0,1,1,0,1,0第十一位错e=0 0 0 1 0 0 0 0 0 0 0 0 0 0 0s=0,0,0,0,1,1,0,1第十二位错e=0 0 1 0 0 0 0 0 0 0 0 0 0 0 0s=0,0,0,0,0,1,1,0第十三位错e=0 1 0 0 0 0 0 0 0 0 0 0 0 0 0s=0,0,0,0,0,0,1,1第十四位错e=1 0 0 0 0 0 0 0 0 0 0 0 0

22、0 0s=0,0,0,0,0,0,0,1第十五位错 上式指出了系统循环码的译码方法:将收到的码字R(x) 用g(x) 去除,如果除尽则无错;否则有错。如果有错,可由余式S(x) 一一找出对应图样,然后将错误图样E(x) 与R(x) 模2 和,即为所求码字C(x) ,从而实现纠错目的。26二、(15,7)循环码程序设计本设计分为三大模块: (15,7)循环码仿真模块、(15,7)循环码译码仿真模块、(15,7)循环码误码性能分析模块2.1(15,7)循环码仿真模块按照循环码的编码原理设计流程图如下开始输入消息m(x)如1 1 1 0 0 0 0确定余式r(x): 确定c(x): 输出码字C(x)

23、结束 图2-1 (15,7)循环码编码程序流程图2.2(15,7)循环码译码仿真模块可得(15,7)循环码译码的程序框图如图2.3.1 所示:开始由接收信号r确定伴随式s:s=r*h S是否为0由S确定错误图样e纠错输出码字c结束是否否 图2-2 (15,7)循环码译码程序流程图信号源(15,7)循环码编码加入不同信噪比的高斯白噪声(15,7)循环码译码误码分析2.3(15,7)循环码在高斯信道下的误码性能仿真模块图2-3 (15,7)循环码在高斯信道下的误码性能三、设计与仿真3.1仿真设备装有MATLAB的PC机一台3.2 (15,7)循环码的编码在MATLAB环境下实现对任意码的编码图3-

24、1 (15,7)循环码的编码程序仿真结果图由上图可看出,本程序实现了对任意输入消息进行(15,7)循环码的编码。如上图输入a=1 1 1 0 0 0 0,编码输出b= 1 0 1 0 0 1 1 0 1 1 1 0 0 0 03.3 (15,7)循环码的译码在MATLAB环境下实现对任意码的编码(1)将3.2中编出的码字输入译码程序中可得图3-2 (15,7)循环码的译码程序仿真结果图由上图可以看出,用编出的码字译码,没有错误,正确译出原码。验证了译码程序的正确性。(2)将3.2中编出的码字改变一位作为译码程序的输入,译码程序仿真输出为中可得 图3-3 (15,7)循环码的纠一位错程序仿真结果

25、图由上图可以看出本程序可以正确纠正一位错码。3.4 (15,7)循环码在高斯信道下的误码性能 图3-4 信源产生的序列及无噪输出序列 图3-5循环码在不同信噪比下的误码率分析总结本课程设计主要是通过分析查阅(n,k)循环码的编码方法,在MATLAB环境下设计了对(15,7)循环码编译码方法的仿真,首先设计了对任意(15,7)循环码的编译码,然后使一个经过(15,7)循环码编码的信号序列通过高斯信道,再对译码后的序列进行误码分析。通过本次课程设计,是我掌握了(15,7)循环码的编译码方法,并求出该码的最小码距及纠检错能力,通过观察该码通过高斯信道后的仿真结果,并参考其他编码方法,可发现循环码纠检

26、错能力强。此次课程设计成功实现了对任意(15,7)循环码的编译码,以及该码在高斯信道下的误码性能分析,完成了本次课程设计的要求。通过此次课程设计不仅加深了我对课程理论的了解,并更加熟悉了MATLAB语言,而且它让我了解了学习知识不仅在课本上,还有更多更广的渠道获得知识。参考文献 1 BELLO. P. A. Characterization of randomly time variant lin2ear channelsJ . IEEE Trans. Communications Systems , 1963 ,11 (4) :360 - 393.2 CLARKE ,R. H.A stati

27、stical theory of mobile radio receptionJ . Bell Systems Technical Joumal ,1968 ,47 (6) : 957 - 1000.3樊昌信,曹丽娜编著,通信原理,北京:国防工业出版社,2010:73-844樊昌信,通信原理,北京:国防工业出版社,2002:70-80:67-905曹志刚等著,现代通信原理,北京:清华大学出版社,2001.5。:65-786吴伟陵等著,移动通信原理,北京:电子工业出版社,2005:30-577.李建新,现代通信系统分析与仿真-MATLAB 通信工具箱,西安:西安电子科技大学出版社,2000:13

28、-458潘子宇,Matlab通信仿真设计指导书,南京工程学院,2011:24-369刘敏,MATLAB通信仿真与应用,北京:国防工业出版社:56-60附 录源程序代码如下1.(15,7)循环码的编码clear;clc;a=input('请输入消息矢量:');%高次项系数在前的生成多项式Gx=1 0 0 0 1 0 1 1 1;%将数组a的高位依次放在数组Data的低位 Data=zeros(1,15); Data(1)=a(7); Data(2)=a(6); Data(3)=a(5); Data(4)=a(4); Data(5)=a(3); Data(6)=a(2); Data

29、(7)=a(1); %Data除以Gx得到余数Rx Qx,Rx=deconv(Data,Gx); b=Rx+Data; %将数组b的高位放在后面 c=b(1); b(1)=b(15); b(15)=c; c=b(2); b(2)=b(14); b(14)=c; c=b(3); b(3)=b(13); b(13)=c; c=b(4); b(4)=b(12); b(12)=c; c=b(5); b(5)=b(11); b(11)=c; c=b(6); b(6)=b(10); b(10)=c; c=b(7); b(7)=b(9); b(9)=c; %将数组b校正for i=1:15 if rem(a

30、bs(b(i),2)=0 b(i)=0;end endfor i=1:15 if rem(abs(b(i),2)=1 b(i)=1;endenddisp('输入序列:');adisp('编码输出序列:');b2(15,7)循环码的编码clear;clc;r= 1 0 1 0 0 1 0 0 1 1 1 0 0 0 0;h=1,0,0,0,0,0,0,0;1,1,0,0,0,0,0,0;0,1,1,0,0,0,0,0;1,0,1,1,0,0,0,0;0,1,0,1,1,0,0,0;0,0,1,0,1,1,0,0;0,0,0,1,0,1,1,0;1,0,0,0,1,

31、0,1,1;0,1,0,0,0,1,0,1;0,0,1,0,0,0,1,0;0,0,0,1,0,0,0,1;0,0,0,0,1,0,0,0;0,0,0,0,0,1,0,0;0,0,0,0,0,0,1,0;0,0,0,0,0,0,0,1;b=flipud(h);s=r*b;for i=1:8 if rem(abs(s(i),2)=0 s(i)=0;end endfor i=1:8 if rem(abs(s(i),2)=1 s(i)=1;endend if s=0 0 0 0 0 0 0 0 e=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; elseif s=1 0 0 0 0 0

32、 0 0 e=0 0 0 0 0 0 0 0 0 0 0 0 0 0 1; elseif s=1,1,0,0,0,0,0,0 e=0 0 0 0 0 0 0 0 0 0 0 0 0 1 0; elseif s=0,1,1,0,0,0,0,0 e=0 0 0 0 0 0 0 0 0 0 0 0 1 0 0; elseif s=1,0,1,1,0,0,0,0 e=0 0 0 0 0 0 0 0 0 0 0 1 0 0 0; elseif s=0,1,0,1,1,0,0,0 e=0 0 0 0 0 0 0 0 0 0 1 0 0 0 0; elseif s=0,0,1,0,1,1,0,0 e=0 0

33、 0 0 0 0 0 0 0 1 0 0 0 0 0; elseif s=0,0,0,1,0,1,1,0 e=0 0 0 0 0 0 0 0 1 0 0 0 0 0 0; elseif s=1,0,0,0,1,0,1,1 e=0 0 0 0 0 0 0 1 0 0 0 0 0 0 0; elseif s=0,1,0,0,0,1,0,1 e=0 0 0 0 0 0 1 0 0 0 0 0 0 0 0; elseif s=0,0,1,0,0,0,1,0 e=0 0 0 0 0 1 0 0 0 0 0 0 0 0 0; elseif s=0,0,0,1,0,0,0,1 e=0 0 0 0 1 0 0

34、 0 0 0 0 0 0 0 0; elseif s=0,0,0,0,1,0,0,0 e=0 0 0 1 0 0 0 0 0 0 0 0 0 0 0; elseif s=0,0,0,0,0,1,0,0 e=0 0 1 0 0 0 0 0 0 0 0 0 0 0 0; elseif s=0,0,0,0,0,0,1,0 e=0 1 0 0 0 0 0 0 0 0 0 0 0 0 0; else s=0,0,0,0,0,0,0,1 e=1 0 0 0 0 0 0 0 0 0 0 0 0 0 0; endu=r+e;for i=1:15 if rem(abs(u(i),2)=0 u(i)=0;end

35、endfor i=1:15 if rem(abs(u(i),2)=1 u(i)=1;endendData=zeros(1,7); Data(1)=u(9); Data(2)=u(10); Data(3)=u(11); Data(4)=u(12); Data(5)=u(13); Data(6)=u(14); Data(7)=u(15);if e=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0disp('没有错误:')k=0,elsedisp('第几位错误:') k=find(e) ;enddisp('接收码字')rdisp('译

36、码输出序列:')Data3循环码编码与解码Matlab源程序(实验以(7,4)循环码进行分析) n = 15; %定义码长k = 7; %信息位长msg = randint(k*4,1,2); %随机提取信号,引起一致地分布的任意整数矩阵subplot(2,2,1)stem(msg)title('编码器输入信号')p=cyclpoly(n,k) %循环码生成多项式,n=7,k=4code = encode(msg,n,k,'cyclic',p); %编码函数,对信号进行差错编码subplot(2,2,2)stem(code)title('编码器输

37、出信号')recode=decode(code,n,k,'cyclic',p) %对信号进行译码,对接收到的码字进行译码,恢复出原始的信息,译码参数和方式必须和编码时采用的严格相同subplot(2,2,3)stem(recode)title('译码器输出信号')t=-1:0.01:1;x=recode; %将recode赋值给x,并进行长度与fft设定N=length(x);fx=fft(x);df=100/N;n=0:N/2;f=n*df;subplot(2,2,4);plot(f,abs(fx(n+1)*2/N); grid;title('频谱图')2、误码率与信噪比之间的关系程序(以(3,2)循环码进行测试) n = 15; %定义码长k = 7; %信息位长Fs=40; %系统采样频率Fd=1; %码速率N=Fs/Fd;M=2; %进制数for SNRpBit=1:100;%信噪比SNR=SNRpBit/log2(M);%制造100个信息组,每组k位msg = randint(100,k,0,1);code = encode(ms

温馨提示

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

评论

0/150

提交评论