




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*实践教学*兰州理工大学计算机与通信学院2013年秋季学期计算机通信课程设计题 目:(15,7)循环码的编译码方法专业班级:通信工程(1 )班姓名:学号:指导教师:成 绩:摘要本课程设计主要是通过分析查阅(n, k)循环码的编码方法,在 MATLAB 境下设计了对(15,7)循环码编译码方法的仿真,首先设计了对任意(15,7) 循环码的编译码,然后使一个经过(15,7)循环码编码的信号序列通过高斯信 道,再对译码后的序列进行误码分析,加深对循环码的了解。关键词:(15,7 )循环码;高斯噪声;matlab目录、八丄前 言 1一、循环码编码 21.1 信道编码理论 21.1.1 信道编码的目的
2、21.1.2 信道编码的实质 21.1.3 信道编码公式 21.1.4 线性分组码的编译码原理 31.2 循环码介绍 41.2.1 循环码定义 41.2.2 循环码的特点 51.2.3 (n.k)循环码的码多项式表示 51.2.4 (n ,k)循环码的生成多项式与生成矩阵 61.2.5 (n ,k)循环码的校验多项式与一致校验矩阵 81.3 循环码编码原理 101.4 循环码的最小码距 101.5 循环码的纠检错能力 111.6 循环码的纠错译码原理 12二、(15,7)循环码程序设计 152.1(15,7)循环码仿真模块 152.2(15,7)循环码译码仿真模块 162 . 3 ( 1 5
3、, 7 )循环码在高斯信道下的误码性能仿真模块 16三、设计与仿真 173.1 仿真设备 173.2 (15,7)循环码的编码 173.3 (15,7)循环码的译码 173.4 (15,7)循环码在高斯信道下的误码性能 19总结 20参考文献 21附 录 22致谢 28、八前言随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发 展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。 随着经济文 化水平的显著提高, 人们对生活质量及工作软件的要求也越来越高。 在计算机通 信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类 码。它有许多特殊的代数性质,它使计算机
4、通信以一种以数据通信形式出现, 实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确 地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃。它是现 代计算机技术与通信技术飞速发展的产物,在日常生活通信领域、武器控 制系统等领域都被广泛应用。、循环码编码1.1信道编码理论1.1.1信道编码的目的在数字通信系统中由于信道内存在加性噪声及信道传输特性不理想等容易造成码间串扰同时多用户干扰、多径传播和功率限制等也导致错误译码。为了确保系统的误比特率指标通常采用信道编码。信道编码是为了保证信息传输的可靠性、提高传输质量而设计的一种编码。它是在信息码中增加一定数量的多余码元, 使码字具有一
5、定的抗干扰能力。1.1.2信道编码的实质信道编码的实质就是在信息码中增加一定数量的多余码元(称为监督码 元),使它们满足一定的约束关系,这样由信息码元和监督码元共同组成一个由 信道传输的码字。举例而言,欲传输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信道
6、,有:Ro1 log2(1 e R0Eb/N0)(1-1)EbNo1Roln2(1 Ro)(1-2)1.1.4线性分组码的编译码原理1、 线性分组码的基本概念一个n , k线性分组码, 是把信息划成k个码元为一段(称为信息组), 通过编码器变成长为n个 码元的一组,作为n, k线性分组码的一个码字。 若每位码元的取值有q种(q为素数幕),则共有qk个码字。n长的数组共有qn 组,在二进制情况下,有2n个数组。显然,qn个n维数组(n重)组成一个GF(q) 上的n维线性空间。如果qk(或2k)个码字集合构成了一个k维线性子空间,则 称它是一个n , k线性分组码。即将k维k重信息空间的元素线性映
7、射到 n 维n重矢量空间(接收矢量/收码)的k维n重子空间(码空间)。2、生成矩阵和校验矩阵生成矩阵:1000111G I k Q01001100010101( 1-3 )0001011G称为生成矩阵,因为可以用它产生整个码组A,即有a6a5a 4a3a2a1a0a6a5a 4a3 G1-4)生成矩阵的性质:具有 IkQ 形式的生成矩阵称为典型生成矩阵。由典型生 成矩阵得出的码组A中,信息位的位置不变,监督位附加于其后。这种形式的码 组称为系统码。矩阵G的各行也必须是线性无关的。如果已有 k个线性无关的 码组,则可以将其用来作为生成矩阵 G,并由它生成其余码组。监督矩阵:1001110010P
8、I rH 11010011-5)1011监督矩阵可用来校验和纠错。1.2 循环码介绍循环码是线性分组码的一种, 所以它具有线性分组码的一般特性, 此外还具 有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图 中的邻接条件, 即相邻两个数码之间只有一位码元不同, 码元就是组成数码的单 元。符合这个特点的有多种方案, 但循环码只能是表中的那种。 循环码的优点是 没有瞬时错误, 因为在数码变换过程中
9、, 在速度上会有快有慢, 中间经过其它一 些数码形式, 称它们为瞬时错误。 这在某些数字系统中是不允许的, 为此希望相 邻两个数码之间仅有一位码元不同, 即满足邻接条件, 这样就不会产生瞬时错误。 循环码就是这样一种编码, 它可以在卡诺图中依次循环得到。 循环码又称格雷码 ( Grey Code )。循环码是采用循环移位特性界定的一类线性分组码。是线性分组码 的一个重要子类;BCH码是其主要的一大类;汉明码、R-M码、Golay 码、 RS 码等可变换; 纳入循环码内, Goppa 码的一个子类也属于循环 码;用反馈线性移位寄存器可以容易的实现其编码和得到伴随式;由于 数学上的特性, 译码方法
10、简单。1.2.1循环码定义设C使某(n,k)线性分组码的码字集合,如果对任何C (Cn i,Cn 2, ,Co) C,它的循环移位 C(42,53,J 也属于 C。该码在 结构上有另外的限 制,即一个码字任 意循环移位的 结果 仍是一个 有效码字。1.2.2循环码的特点循环码有两个数学特征:( 1)线性分 组码 的封闭 型;(2)循环性,即 任一许用码组经过循环移位后所得到的码组仍为 该许用码组集合中的一个码组。如:为一循环码组,则a n 3a n 4还是许用码组。也 就是说,不论是左移还是右移,也 不论移多少位,仍然是 许用的循环码组。1.2.3 (n.k )循环码的码多项式表示为了用代数理
11、论研究循环码, 可将码组用多项式表示, 设码长为 n 的循环码 表示为(an j an 2 ai a1 a0),其中 gi为二进制数,通常把码组中各码元当做二进制的系数, 即把上式中长为 n 的各个分量看做多项 式的各项系数,:n 1n 2n iT x an 1x an 2 xai xa1 x a0( 1-6)则码字与码多项式一一对应,这种多项式称为码多项式。式中, x 的幂次是码元位置的标记。若把一个码组左移 i 位后的码组记为,A(an 1 ian 2 i .an i 1an i )(1-7)其码多项式为(i )n 1n 2A (x) an 1 i xan i 2 xani x an i(
12、1-8)A(i) (x) 可以根据 xiA(x) 按模 xn+1 运算得到,即A ( i ) ( x ) x i A ( x(1)-m9)od( xn1)xiA(x) Q ( x )( x n(1y10A(x)式中,Q(x)为xA(x)除以xn+1的商式,而xA(x)等于A (x)被xn+1除得之余式。1.2.4 (n,k)循环码的生成多项式与生成矩阵(n,k)循环码的生成多项式写为g(x),它是(n,k)循环码码集中唯一的,幕次为n-k的码多项式,则xkg(x)是一个幕次为n的码多项式。按模(xn 1)运算,此时:Q (x)R (x)n(1-11)(1-12)xkg(x)R(x)k.且因x
13、g(x)也是n阶幕,故Q(x)=1。由于它是循环码,故x g(x)按模(xn 1)运算后的 余式”也是循环码的一个码字,它必能被g(x)整除,即:R(x) g(x)F(x)(1-13)由以上两式可以得到:knx g(x) Q(x)(x 1) R(x)(xn1) f(x)g(x)(1-14)(1-15)xn1 xk f(x)g(x) h(x)g(x)从上式中可以看出,生成多项式g(x)应该是xn 1的一个因式,即循环码多 项式应该是xn 1的一个n-k次因式。根据各码组集合中生成多项式的唯一性,可以构造生成矩阵G由于g(x)的次数为n-k,贝U g(x),xg(x),xk-1g(x)都是码多项式
14、,而且线性无关,因此以这 k 各多项式对应的码组作为 k 行就能构成该循环码的生成矩阵, 因此循环码 的生成矩阵多项式可以写成xk1g(x)(1-16)G(x) . .xg(x)g(x)本课程设计要求完成任意( 15,7)循环码的编码和译码,其中给出的生成多项式为: g(x)=x8+x7+x6+x4+1则生成矩阵G为g(x)升幕排列时的G为111010001000000011101000100000001110100010000G000111010001000000011101000100000001110100010(1-17 )000000111010001对式(1.1.12 )作线性变换
15、,整理成典型形式的系统生成矩阵100000011101000010000001110100001000000111010Gs 000100000011101000010011100110000001001110011( 1-18 )000000111010001若信息码元与式 (1.1.13 )相乘,得到的就是系统循环码。1.2.5 (n,k) 循环码的校验多项式与一致校验矩阵如前所述,在(n, k)循环码中,由于g(x)能除尽,因此xn+1可分解成g(x) 和其他因式的乘积,记为xn +1=g(x)h(x)(1-19)即可写成h(x)= xn +1/g(x)(1-20)由于g(x)是常数项为
16、1的r次多项式,所以h(x)必为k次多项式。称h(x) 为监督多项式或一致校验多项式,与式(3.18 )给出的G(x)相对应,监督矩阵 多项式可表示为(1-21)xr 1h* (x)H(x) .xh* (x)h*(x)式中,h*(x)式h(x)的逆多项式。在本课程设计中,由于生成多项式为:g(x)=x8+x7+x6+x4+1,校验多项式为h(x)= xn+1/g(x),因此可由长除法求得校验多项式为h(x)=x7+x6+x4+1,所以校验矩阵 H 为110100010000000011010001000000001101000100000H0001101000100001 1000011010
17、001000000001101000100000000110100010(1-22)000000011010001对式( 1 -22 )作线性变换,整理成系统一致校验矩阵100010110000000110011101000000111011000100000Hs0111011000100001 O101100000001000010110000000100001011000000010(1-23 )0001011000000011.3 循环码编码原理有信息码构成信息多项式 m(x) mk 1xk 1m0 ,其中最高幂次为 k-1;用xnk乘以信息多项式m(x),得到的xnkm(x),最高幕次
18、为n-1,该过程相 当于把信息码(mk ! , mk 2, , mi,)移位到了码字德前k个信息位,其后是 r 个全为零的监督位;用g(x)除xn km(x)得到余式r(x),其次数必小于g(x)的次数,即小于(n-k), 将此r(x)加于信息位后做监督位,即将r(x)于xn km(x)相加,得到的多项式必为 一码多项式。循环码的编译码过程如下:编码过程第一步:将信息码字表示为 m x ,其最高次幂为 k 1;nk第二步:将 x m x 与 g x 求模得出相应的余式 r x ;nk第三步:编码结果为 c x x m x r x 。1.4 循环码的最小码距一个线性码的两个码字之间的最小距离等于
19、任何非零码字的最小 汉明重量。已知线性分组码的生成矩阵G,因为要产生系统码,而给定的生成矩阵不 是典型生成矩阵,因此首先要将 G通过一系列初等行变换,变为典型生成矩阵。 然后利用码组矩阵A等于信息矩阵C与典型生成矩阵G的乘积,将所得的矩阵A按 照异或运算的规则进行相应的处理,即可求得所有的生成码字矩阵A( A中每一行为一个生成码字),将生成码字矩阵A的每一行与其他行进行比较,如果对应 值相同则为0,不同则为1,将比较所得的结果保留在一个与A矩阵列数相同的矩 阵M中,再对M中的所有行求和,则得到任意两个码字的汉明距离 S,对所得结 果S求最小值,即得到最小汉明距离。由生成矩阵可得本课程设计中(
20、15,7)循 环码的最小码距为5。1.5循环码的纠检错能力由于循环码是一种线性分组码,所以其纠检错能力与线性分组码相当。 而线 性分组码的最小距离可用来衡量码的抗干扰能力,那么一个码的最小距离就与它 的纠检错能力有关。定理:对于任一个(n,k)线性分组码,若要在码字内(1) 检测三个错误,要求码的最小距离de 1 ;(2) 纠正二个错误,要求码的最小距离d 2t 1 ;(3) 纠正-个错误同时检测:二个错误,则要求d t e 1 ;循环码的译码分检错译码与纠错译码两类。在无记忆信道上,对码字C,差错图案e和接收向量r的多项式描述为r(x) c(x) e(x)(1-24 )定义r(x)的伴随多项
21、式为s(x)r 1Sr 1X(1-25)s(x) r(x) (mod g(x)2So Six s?x由于 c(x) a(x)g(x) 0(mod g(x),所以(1-26 )s(x) e(x)(mod g(x)由此可见,S(x) 0则一定有差错产生,或说满足e(x)(mod g(x)0的差错图样e(x)产生,它满足(1-27)e(x)(mod g(x)0循环码的检错译码即是计算 s(x) 并判断是否为 01.6 循环码的纠错译码原理纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比 编码较难实现,对于纠错能力强的纠错码更复杂。根据不同的纠错或检错 目的,循环码译码器可分为用于纠错目的
22、和用于检错目的的循环码译码器。通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。用于纠错目的 的循环码的译码算法比较复杂。当码字 c 通过噪声信道传送时,会受到干扰而产生错误。如果信道产生的 错误图样是e,译码器收到的n重接受矢量是y,则表示为:y c e( 1-28)上式也可以写成多项式形式:y(x) c(x) e(x)(1-29)A译码器的任务就是从y(x)中得到e(x),然后求的估值码字c(x) y(x) e(x)(1-30)并从中得到信息组 m(x)。循环码的译
23、码过程:第一步:由接收到的y(x)计算伴随式s(x);第二步:根据伴随式s(x)找出对应的估值错误图样e(x);AAA第三步:计算c(x) a 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个可能的表达式,每一个表达式对应一个错误 格式。可以知道(15,7)循环码的S(x)共有2(15-7) = 256个可能的表达式。本课程设计中采用(15,7)循环码由生成矩阵可得其最小码距dmin为5由最小码距可得其
24、纠检错能力可知其最多可检 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 0 0 0 0 0 0 0 0 0 0 1 0 0 0s=
25、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 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
26、 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 0 0s=0,0,0,0,0,0,0,1第十五位错上式指出了系
27、统循环码的译码方法:将收到的码字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 )循环码仿真模块按照循环码的编码原理设计流程图如下厂输入消息m (x)如1 1 1 0 0 0 0f确定余式 r(x): r(x)m(x)xn kg(x)VJ!确定 c(x): c(x) m(x)xn k r(x)_J1 F输
28、出码字C(x )图2-1( 15,7)循环码编码程序流程图2.2 (15,7)循环码译码仿真模块可得(15, 7)循环码译码的程序框图如图2.3.1所示:图2-3(15,7 )循环码在高斯信道下的误码性能三、设计与仿真3.1仿真设备装有MATLAB的PC机一台3.2 ( 15,7)循环码的编码在MATLAB环境下实现对任意码的编码匚ornmand Window情输入消恳矢星:111000输入帛列:a =1 1 1 0 0 0 0编码输出序列;b =10100110111000图3-1( 15,7)循环码的编码程序仿真结果图由上图可看出,本程序实现了对任意输入消息进行(15,7)循环码的编码 女
29、口上图输入 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中编出的码字输入译码程序中可得匚ommand V/iriidow0揍收科享10:001101110 000嗥码输岀博列:Data =I 100 Q 0图3-2(15,7)循环码的译码程序仿真结果图由上图可以看出,用编出的码字译码,没有错误,正确译出原码。验证了译 码程序的正确性。(2) 将3.2中编出的码字改变一位作为译码程序的输入,译码程序仿真输 出为中可得Comrriand Wfndavr
30、00 I 00 I译阳输岀庁列:Dsra -1110 C 0图3-3(15,7)循环码的纠一位错程序仿真结果图由上图可以看出本程序可以正确纠正一位错码。3.4 ( 15,7)循环码在高斯信道下的误码性能编码器输入信号编码器输出信号译码器输出信号频谱图图3-4信源产生的序列及无噪输出序列循环码在不同信噪比下的误码率率码误的下声噪白斯高性加在246 8信噪比10 12误码率35 2 5 12o / O o O05图 3-5 循环码在不同信噪比下的误码率分析总结本课程设计主要是通过分析查阅(n, k)循环码的编码方法,在 MATLAB 境下设计了对( 15,7)循环码编译码方法的仿真,首先设计了对任
31、意( 15, 7) 循环码的编译码,然后使一个经过( 15, 7)循环码编码的信号序列通过高斯信 道,再对译码后的序列进行误码分析。通过本次课程设计,是我掌握了( 15,7 )循环码的编译码方法,并求出该码 的最小码距及纠检错能力, 通过观察该码通过高斯信道后的仿真结果, 并参考其 他编码方法,可发现循环码纠检错能力强。此次课程设计成功实现了对任意 (15,7 )循环码的编译码, 以及该码在高斯 信道下的误码性能分析,完成了本次课程设计的要求。通过此次课程设计不仅加深了我对课程理论的了解,并更加熟悉了 MATLAB 语言,而且它让我了解了学习知识不仅在课本上, 还有更多更广的渠道获得知识。参考
32、文献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.3 樊昌信,曹丽娜编著,通信原理,北京:国防工业出版社, 2010: 73-8
33、44 樊昌信,通信原理,北京:国防工业出版社, 2002:70-80:67-905 曹志刚等著,现代通信原理,北京:清华大学出版社, 2001.5。:65-786 吴伟陵等著,移动通信原理,北京:电子工业出版社, 2005:30-577 . 李建新,现代通信系统分析与仿真 -MATLAB 通信工具箱,西安:西安 电子科技大学出版社, 2000:13-458 潘子宇, Matlab 通信仿真设计指导书,南京工程学院, 2011:24-369 刘敏, MATLAB 通信仿真与应用,北京:国防工业出版社: 56-60附录源程序代码如下1.(15,7)循环码的编码clear;clc;a=input(
34、请输入消息矢量: );%高次项系数在前的生成多项式 Gx=1 0 0 0 1 0 1 1 1;Data 的低位%将数组 a 的高位依次放在数组 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 得到余数 RxQx,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=
35、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)=0b(i)=0;endendfor i=1:15if rem(abs(b(i),2)=1b(i)=1;endenddisp(输入序列:);adisp(编码输出序列:);b2( 15,7)循环码的编码clear;clc;r= 1 0 1 0 0 1 0 0 1 1 1 0
36、 00 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 rem(abs(s(i),2)=0s(i
37、)=0;endendfor i=1:8if rem(abs(s(i),2)=1s(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; elseif s=1,0,1,1,0,0,0,0e=
38、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=0 0 0 0 0 0 1 0
39、 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 0 0 0 0 0;
40、 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; end u=r+e;for i=1:15if rem(abs(u(i),2)=0u(i)=0;endend for i=1:15if rem(abs(u(i),2)=1u(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 0 0 0 0 0
41、 0disp(没有错误:)k=0,elsedisp(第几位错误:)k=find(e);enddisp(接收码字)rdisp(译码输出序列:)Data3循环码编码与解码Matlab 源程序(实验以( 7,4)循环码进行分析)%定义码长%信息位长%随机提取信号, 引起一致地分布的任%循环码生成多项式, n=7, k=4n = 15;k = 7;msg = randint(k*4,1,2);意整数矩阵subplot(2,2,1) stem(msg)title(编码器输入信号)p=cyclpoly(n,k)code = encode(msg,n,k,cyclic,p);%编码函数, 对信号进行差错编码
42、subplot(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( 频谱图 )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业自动化技术及其应用案例分析
- 工业自动化技术的创新发展
- 工作之余的放松之道如何有效利用假期旅行
- 工作生活平衡与压力管理技巧
- 工业领域中的绿色制造策略
- 工作效率提升的科技趋势分析
- 工作场合英语口语提升方法
- 工程施工中的材料管理优化
- 工程机械在变载条件下的动力特性研究
- 工程测量中的数据智能处理技术
- 英语歌曲欣赏troubleisafriend
- 邮轮乘务员职业道德与素养PPT完整全套教学课件
- 有限责任公司章程两个及以上股东样本
- 山东开放大学工作人员招聘考试真题2022
- 夏季预防中暑及中暑急救培训PPT
- 地缘政治与中国的地缘战略
- DB11T 065-2022电气防火检测技术规范
- 2022年和政县政务中心综合窗口人员招聘笔试试题及答案解析
- 铝电解电容器
- GB/T 10653-2001高聚物多孔弹性材料压缩永久变形的测定
- 幼儿园突发事件应急处置流程图
评论
0/150
提交评论