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

下载本文档

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

文档简介

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

2、的实质 1.1.3 信道编码公式 1.1.4 线性分组码的编译码原理 循环码介绍 循环码定义 循环码的特点 (n .k )循环码的码多项式表示 (n,k)循环码的生成多项式与生成矩阵.(n ,k)循环码的校验多项式与一致校验矩阵1.21.2.11.2.21.2.31.2.41.31.41.51.61.2.5循环码编码原理 循环码的最小码距 循环码的纠检错能力 循环码的纠错译码原理 101011二、(15,7)循环码程序设计 循环码仿真模块 循环码译码仿真模块 循环码在高斯信道下的误码性能仿真模块12152.1(15,7)2.2(15,7)2.3(15,7) 三、设计与仿真151616173.1

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

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

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

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

7、校验矩阵生成矩阵:G称为生成矩阵,因为可以用它产生整个码组A,即有100011101001100010101(1-3)0001011Aa6a5a 4a3a2a1a0a6a5a4a3 G1-4)由典型生生成矩阵的性质:具有 IkQ 形式的生成矩阵称为典型生成矩阵。成矩阵得出的码组A中,信息位的位置不变,监督位附加于其后。这种形式的码 组称为系统码。矩阵G的各行也必须是线性无关的。如果已有 k个线性无关的 码组,则可以将其用来作为生成矩阵 G,并由它生成其余码组。监督矩阵:1110100H1101010PI r10110011-5)监督矩阵可用来校验和纠错。此外还具1.2 循环码介绍循环码是线性分

8、组码的一种, 所以它具有线性分组码的一般特性, 有循环性。循环码的编码和解码设备都不太复杂,且检 (纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n,k)循环码可以检测长为n-k或 更短的任何突发错误,包括首尾相接突发错误。循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件, 即相邻两个数码之间只有一位码元不同, 码元就是组成数码的单 元。符合这个特点的有多种方案, 但循环码只能是表中的那种。 循环码的优点是 没有瞬时错误, 因为在数码变换过程中, 在速度上会有快有慢, 中间经过其它一 些数码形式, 称它们为瞬时错误。 这在某些数字系统中是不允许的,

9、 为此希望相 邻两个数码之间仅有一位码元不同, 即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码, 它可以在卡诺图中依次循环得到。 循环码又称格雷码Grey Code )。循环码是采用循环移位特性界定的一类线性分组码。是线性分组码 的一个重要子类;BCH码是其主要的一大类;汉明码、R-M码、Golay 码、RS码等可变换;纳入循环码内,Goppa码的一个子类也属于循环 码;用反馈线性移位寄 存器可以容易的实 现其 编码和得到伴随式;由于 数学上的特性,译码方法简单。1.2.1循环码定义设C使某(n,k)线性分组码的码字集合,如果对任何n3C (Cn i,Cn 2, ,C0)C,它

10、的循环移位 C(Cn2,Cn3,J 也属于 C。该码在 结构上有另外的限 制,即一个码字任 意循环移位的 结果 仍是一个有效码字。1.2.2循环码的特点循环码有两个数学特征:(1) 线性分组码 的封闭型;(2) 循环性,即 任一许用码组经过循环移 位后所得到的 码组 仍为 该许用码组 集合中 的 一个 码组 。如:a 1 a 0 为 一 循 环 码 组 , 则a n 3 a n 4a n 1 a n 2、还是许用码 组。也 就是说,不论是左移 还是右移,也 不论移 多少位,仍然是 许用的 循环 码组。a n 2 a n 3 a 0 a n 11.2.3 (n.k )循环码的码多项式表示为了用代

11、数理论研究循环码, 可将码组用多项式表示, 设码长为 n 的循环码其中 ai 为二进制数, 通常把码组中各码元当做二进制的系数, 即把上式中长为 n 的各个分量看做多项表示为( an 1 an 2 ai a1a0 ),式的各项系数,:n 1n 2T x an 1xan 2 xniaixa1 x a01-6)则码字与码多项式一一对应,这种多项式称为码多项式。式中,x的幕次是码元位置的标记。若把一个码组左移i 位后的码组记为,其码多项式为A(an 1 ian 2 i .a n i 1an i )(1-7)(i )n 1n 2A (x) an 1 ixan i 2xani x an i(1-8)A(

12、i) (x) 可以根据 xiA(x) 按模 xn+1 运算得到,即A ( i ) ( x ) x i A ( x(1)-m9)od( xn1)xiA(x) Q ( x )( x n dOA(X)式中,Q(x)为xA(x)除以xn+1的商式,而xiA(x)等于A (x)被x+1除得之余式。124(n,k)循环码的生成多项式与生成矩阵(n,k)循环码的生成多项式写为g(x),它是(n,k)循环码码集中唯一的,幕次为 n-k的码多项式,则xkg(x)是个幕次为n的码多项式。按模(xn 1)运算,此时:Q(x) 3n(1-11)且因运算后的xkg(x)R(x)(1-12)kx余式”也是循环码的一个码字

13、,它必能被g(x)整除,即:g(x)也是n阶幕,故Q(x)=1。由于它是循环码,故xkg(x)按模(xn 1)R(x)g(x)F(x)(1-13)由以上两式可以得到:xkg(x) Q(x)(xn1)R(x) (xn 1) f(x)g(x)(1-14)xnxkf(x)g(x) h(x)g(x)(1-15)从上式中可以看出,生成多项式g(x)应该是xn 1的一个因式,即循环码多1的一个n-k次因式。项式应该是xn根据各码组集合中生成多项式的唯一性,可以构造生成矩阵G由于g(x)的次数为n-k,贝U g(x),xg(x),x k1 g(x)都是码多项式,而且线性无关,因此 以这 k 各多项式对应的码

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

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

16、1-22)对式( 1-22 )作线性变换,整理成系统一致校验矩阵Hs01(1-23 )1.3 循环码编码原理m0 ,其中最高幂次为 k-1;有信息码构成信息多项式 m(x) mk 1xk 1用xn k乘以信息多项式m(x),得到的xnkm(x),最高幕次为n-1,该过程相当于把信息码( mk 1 , mk 2,mi, m。)移位到了码字德前k个信息位,其后是r个全为零的监督位;用g(x)除xn km(x)得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此 r(x) 加于信息位后做监督位,即将r(x)于xn km(x)相加,得到的多项式必为一码多项式。循环码的编译码过程如下:编

17、码过程第一步第二步第三步将信息码字表示为nk将 xn km x 与 g 编码结果为 c xm x ,其最高次幂为 k 1; 求模得出相应的余式 r x nkx m x r x。1.4 循环码的最小码距一个线性码的两个码字之间的最小距离等于任何非零码字的最小 汉明重量。已知线性分组码的生成矩阵G,因为要产生系统码,而给定的生成矩阵不 是典型生成矩阵,因此首先要将 G通过一系列初等行变换,变为典型生成矩阵。 然后利用码组矩阵A等于信息矩阵C与典型生成矩阵G的乘积,将所得的矩阵A按 照异或运算的规则进行相应的处理,即可求得所有的生成码字矩阵A( A中每一行为一个生成码字),将生成码字矩阵A的每一行与

18、其他行进行比较,如果对应 值相同则为0,不同则为1,将比较所得的结果保留在一个与A矩阵列数相同的矩 阵M中,再对M中的所有行求和,则得到任意两个码字的汉明距离 S,对所得结 果S求最小值,即得到最小汉明距离。由生成矩阵可得本课程设计中( 15,7)循 环码的最小码距为5。1.5循环码的纠检错能力由于循环码是一种线性分组码,所以其纠检错能力与线性分组码相当。 而线 性分组码的最小距离可用来衡量码的抗干扰能力,那么一个码的最小距离就与它 的纠检错能力有关。定理:对于任-一个(n,k)线性分组码,若要在码字内(1)检测巳个错误,要求码的最小距离de 1 ;(2)纠正t个错误,要求码的最小距离d2t

19、1 ;(3)纠正t个错误同时检测包(t)个错误,则要求dt e1 ;循环码的译码分检错译码与纠错译码两类。在无记忆信道上,对码字C,差错图案e和接收向量r的多项式描述为r(x) c(x) e(x)(1-24 )定义r(X)的伴随多项式为s(x)s(x) r(x) (mod g(x)2So Six S2Xr 1Sr 1X(1-25)由于 c(x) a(x)g(x) O(modg(x),所以s(x) e(x)(mod g(x)(1-26 )由此可见,s(x) 0则一定有差错产生,或说满足e(x)(mod g(x)0的差错图样e(x)产生,它满足e(x)(mod g(x)0。(1-27)循环码的检错

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

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

22、表达式,每一个表达式对应一个错误 格式。可以知道(15,7)循环码的S(x)共有2(15-7)= 256个可能的表达式。本课程设计中米用(15,7)循环码由生成矩阵可得其最小码距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

23、=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 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=00 0 0 0 0 0 10 0

24、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,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

25、 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 0 0s=0,0,0,0,0,0,0,1第十五位错上式指出了系统循环码的译码方法:将收到的码字R(x)用g(x)去除,如果除尽则无错;否则有错。如果有错,可由余式 S(x) 一一找出对应图样,然后将 错误图样E(x)与R(x)模2和,即为所求码字C(x),从而实现纠错目的。(15,7)循环码程序设计本设计分为三大模块:(15,7)循环码仿真模块、(15,7)循环码译码仿真模块、(15,7)循环码误码性能分析模块2.1 (15,7 )循环码仿真模块按

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

27、LAB环境下实现对任意码的编码Command Window情输入消恳矢fi: 11100 输入庫列;019漏码输出序別:图3-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中编出的码字输入译码程序中可得匚omrnand V/iRdcw3Cl 0 ID 0Data =图3-2(15,7)循环码的译码程序仿真结果图由上图可以看出,用编

28、出的码字译码,没有错误,正确译出原码。验证了译 码程序的正确性。(2) 将3.2中编出的码字改变一位作为译码程序的输入,译码程序仿真输 出为中可得3rsIc =WSB?译阳嘯土庁列:Dara =图3-3(15,7)循环码的纠一位错程序仿真结果图由上图可以看出本程序可以正确纠正一位错码。3.4 ( 15,7)循环码在高斯信道下的误码性能编码器输入信号编码器输出信号译码器输出信号频谱图图3-4信源产生的序列及无噪输出序列循环码在不同信噪比下的误码率误码率率码误的下声噪白斯高性加在1012图 3-5 循环码在不同信噪比下的误码率分析总结本课程设计主要是通过分析查阅(n, k)循环码的编码方法,在 M

29、ATLAB 境下设计了对( 15,7)循环码编译码方法的仿真,首先设计了对任意( 15, 7) 循环码的编译码,然后使一个经过( 15, 7)循环码编码的信号序列通过高斯信 道,再对译码后的序列进行误码分析。通过本次课程设计,是我掌握了( 15,7 )循环码的编译码方法,并求出该码 的最小码距及纠检错能力, 通过观察该码通过高斯信道后的仿真结果, 并参考其 他编码方法,可发现循环码纠检错能力强。此次课程设计成功实现了对任意 (15,7 )循环码的编译码, 以及该码在高斯 信道下的误码性能分析,完成了本次课程设计的要求。通过此次课程设计不仅加深了我对课程理论的了解,并更加熟悉了 MATLAB 语

30、言,而且它让我了解了学习知识不仅在课本上, 还有更多更广的渠道获得知识。31参考文献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 statistical theory of mobile radio receptionJ . Bell Systems Technical Joumal ,1968 ,47 (6) : 957 - 1000

31、.3 樊昌信,曹丽娜编著,通信原理,北京:国防工业出版社,2010: 73-844樊昌信,通信原理,北京:国防工业出版社, 2002:70-80:67-905曹志刚等著,现代通信原理,北京:清华大学出版社,2001.5。:65-786吴伟陵等著,移动通信原理,北京:电子工业出版社,2005:30-57-MATLAB 通信工具箱,西安:西安7.李建新,现代通信系统分析与仿真 电子科技大学出版社, 2000:13-458潘子宇, Matlab 通信仿真设计指导书,南京工程学院, 2011:24-369刘敏, MATLAB 通信仿真与应用,北京:国防工业出版社: 56-60源程序代码如下1.(15,

32、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(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(

33、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:15if rem(abs(b(i),2)=0 b(i)=0;endendfor i=1:15if rem(abs(b(i),2)=1 b(i)=1;endenddis p(输入序列:);dis p(编码输出序列:);2( 15,7)循环码的编

34、码 clear; clc; r= 1 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,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:8if

35、rem(abs(s(i),2)=0 s(i)=0;endendfor i=1:8if rem(abs(s(i),2)=1 s(i)=1;endendif s=0 0 0 0 0 0 0 0e=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; elseif s=1 0 0 0 0 0 0 0e=0 0 0 0 0 0 0 0 0 0 0 0 0 0 1;elseif s=1,1,0,0,0,0,0,0e=0 0 0 0 0 0 0 0 0 0 0 0 0 1 0;elseif s=0,1,1,0,0,0,0,0e=0 0 0 0 0 0 0 0 0 0 0 0 1 0 0;elsei

36、f s=1,0,1,1,0,0,0,0e=0 0 0 0 0 0 0 0 0 0 0 1 0 0 0;elseif s=0,1,0,1,1,0,0,0e=0 0 0 0 0 0 0 0 0 0 1 0 0 0 0;elseif s=0,0,1,0,1,1,0,0e=0 0 0 0 0 0 0 0 0 1 0 0 0 0 0;elseif s=0,0,0,1,0,1,1,0e=0 0 0 0 0 0 0 0 1 0 0 0 0 0 0;elseif s=1,0,0,0,1,0,1,1e=0 0 0 0 0 0 0 1 0 0 0 0 0 0 0;elseif s=0,1,0,0,0,1,0,1e

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

38、 0 0 0 0 0;else s=0,0,0,0,0,0,0,1e=1 0 0 0 0 0 0 0 0 0 0 0 0 0 0; endu=r+e;for i=1:15if rem(abs(u(i),2)=0 u(i)=0;end endfor i=1:15if rem(abs(u(i),2)=1 u(i)=1;end endData=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

39、 0 0 0 0 0 0disp(没有错误:)k=0,elsedis p(第几位错误:)k=find(e);enddisp(接收码字)dis p(译码输出序列:)n = 15;k = 7;msg = randint(k*4,1,2);%随机提取信号, 引起一致地分布的任Data3循环码编码与解码Matlab 源程序(实验以( 7,4)循环码进行分析)%定义码长 % 信息位长code = encode(msg,n,k,cyclic,p);%编码函数, 对信号进行差错编码意整数矩阵subplot(2,2,1)stem(msg)titleC编码器输入信号)p=cyclpoly(n,k)%循环码生成多

40、项式, n=7, k=4subplot(2,2,2)stem(code)title(编码器输出信号)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; %系统采

温馨提示

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

评论

0/150

提交评论