




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘 要循环码是线性分组码中一个重要的子类,具有检错纠错能力强,实现方便等特点。它具有严密的代数学理论,封闭性与循环性。(n,k)循环码表示信息位为k位,监督位为(n-k)位。本次设计实验首先分析了(7,4)循环码的编码与译码原理,然后,用c语言实现其编码与译码功能。 通过c语言平台运行所编写的程序,观察了在输入信息码情况下输出对应的编码结果以及相反的译码功能。通过多组的对比验证了该(7,4)循环码的编译码程序的正确性。最后,在程序运行的过程中进一步分析循环码的编译码原理,并通过比较仿真模型与理论计算的性能,证明了仿真模型的可行性。关键词:循环码,编码与译码,c程序。前 言现代通信的发展趋势为数字化,随着现代通信技术的不断开发,差错控制技术已日趋成熟,在各个领域都得到了广泛的应用和认同。本文就(7,4)循环码的编码与译码原理进行c语言的编程及运行仿真。现代社会发展要求通信系统功能越来越强,可靠性越来越高,构成也越来越复杂;这就要借助于功能强大的计算机辅助分析设计技术和工具才能实现。现代计算机科学技术快速发展,已经研发出了新一代的可视化的仿真软件。这些功能强大的仿真软件,使得通信系统仿真的设计和分析过程变得相对直观和便捷,由此也使得通信系统仿真技术得到了更快的发展。本文使用的是功能强大的c语言软件。c语言是一种使用简便的、特别适用于科学研究和工程计算的高级语言,与其他计算机语言相比,它的特点是简洁和智能化,具有极高的编程和调试效率。通过使用c工具箱函数对数字调制进行仿真,更能直观彻底的掌握循环码的编码与译码原理。有助于我们的学习和研究,加深对知识的理解和运用。c的便利性还体现在它的仿真结果还可以存放到的工作空间里做事后处理。方便我们修改参数对不同情况下的输出结果进行对比。 1目录目 录第1章 概 述1第2章 计算机通信与纠错码22.1 计算机通信技术22.1.1 通信的概念22.1.2 通信的发展史简介22.1.3 计算机通信介绍32.2 纠错码32.2.1 纠错码32.2.2 纠错原理4第3章 循环码原理与介绍63.1 循环码介绍63.1.1 循环码的多项式表示63.1.2 (n,k)循环码的生成多项式73.1.3 循环码的生成矩阵和一致校验矩阵73.2 循环码编译码原理83.2.1 循环码编码原理83.2.2 循环码的译码原理9第4章 开发平台简介124.1 c语言简介124.2 c语言优缺点134.2.1 c语言优点134.2.2 c语言缺点144.3 c语言结构特点14第5章 详细编程及运行165.1 基于c语言程序编写165.2 运行及分析165.2.1 运行结果理论分析165.2.2 程序运行结果17参考文献20课程设计总结21致 谢22附 录23 第1章 概 述随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作软件的要求也越来越高。在计算机通信信息码中循环码是线性分组码的一个重要子集,是目前研究得最成熟的一类码。它有许多特殊的代数性质,它使计算机通信以一种以数据通信形式出现,实现了在计算机与计算机之间或计算机与终端设备之间进行有效的与正确地信息传递,它使得现代通信的可靠性与有效性实现了质的飞跃。它是现代计算机技术与通信技术飞速发展的产物,在日常生活通信领域、武器控制系统等领域都被广泛应用。c语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到c语言。本次课程设计就是用c 语言实现(7,4)循环码的编译码,通过c语言平台运行所编写的程序,观察了在输入信息码情况下输出对应的编码结果以及相反的译码功能。通过多组的对比验证了该(7,4)循环码的编译码程序的正确性。通过程序运行有助于按所要求的纠错能力系统地构造这类码;同时接此分析循环码检错与纠错原理与能力。 本次课程设计就是用c语言编程去实现(7,4)循环码的编码与译码,进而借助于此去分析其循环特性与纠错能力。 第2章 计算机通信与纠错码2.1计算机通信技术2.1.1通信的概念通信就是克服距离上的障碍,从一地向另一地传递和交换消息。消息是信息源所产生的,是信息的物理表现,例如,语音、文字、数据、图形和图像等都是消息(message)。消息由模拟消息(如语音、图像等)以及数字消息(如数据、文字等)之分。所有消息必须在转换成电信号(通常简称为信号)后才能在通信系统中传输。所以,信号(signal)是传输消息的手段,信号是消息的物资载体。相应的信号可以分为模拟信号和数字信号,模拟信号的自变量可以是连续的或离散的,但幅度是连续的,如电话机、电视摄像机输出的信号就是模拟信号。数字信号的自变量可以是连续的或离散的,但幅度是离散的,如计算机等各种数字终端设备输出的信号就是数字信号。通信的目的是传递消息,但对受信者有用的是消息中包含的有效内容,即信息(information)。消息是具体的、表面的,而信息是抽象的、本质的,且消息中包含的信息的多少可以用信息量来度量。通信技术,特别是数字通信技术近年来发展非常迅速,它的应用越来越广泛。数字通信系统较模拟通信系统而言,具有抗干扰能力强、便于加密、易于实现集成化、便于与计算机连接等优点。因而,数字通信更能适应对通信技术的高要求。2.1.2通信的发展史简介远古时代,远距离的传递消息是以书信的形式来完成的,这种通信方式明显具有传递时间长的缺点。为了在尽量短的时间内传递尽量多的消息,人们不断地尝试所能找到的各种最新技术手段。1837年发明的莫尔斯电磁式电报标志着电通信的开始。之后,利用电进行通信的研究取得了长足的进步。1866年利用海底电缆实现了跨大西洋的越洋电报通信。1876年贝耳发明了电话,利用电信号实现了语音信号的有线传递,使信息的传递变得既迅速又准确,这标志着模拟通信的开始,由于它比电报更便于交流使用,所以直到20世纪前半叶这种采用模拟技术的电话通信技术比电报得到了更为迅速和广泛的发展。1937年瑞威斯发明的脉冲编码调制标志数字通信的开始。20世纪60年代以后集成电路、电子计算机的出现,使得数字通信迅速发展。在70年代末在全球发展起来的模拟移动电话在90年代中期被数字移动电话所代替,现有的模拟电视也正在被数字电视所代替。数字通信的高速率和大容量等各方面的优越性也使人们看到了它的发展前途。 2.1.3计算机通信介绍 计算机通信是一种以数据通信形式出现,在计算机与计算机之间或计算机与终端设备之间进行信息传递的方式。它是现代计算机技术与通信技术相融合的产物,在军队指挥自动化系统、武器控制系统、信息处理系统、决策分析系统、情报检索系统以及办公自动化系统等领域得到了广泛应用。 计算机通信按照传输连接方式的不同,可分为直接式和间接式两种。直接式是指将两部计算机直接相联进行通信,可以是点对点,也可以是多点通播。间接式是指通信双方必须通过交换网络进行传输。 按照通信覆盖地域的广度,计算机通信通常分为局域式、城域式和广域式三类。 局域式是指在一局部的地域范围内(例如一个机关、学校、军营等)建立计算机通信。局域计算机通信覆盖地区的直径在数公里以内。 城域式是指在一个城市范围内所建立的计算机通信。城域计算机通信覆盖地区的直径在十公里到数十公里。 广域式是指在一个广泛的地域范围内所建立的计算机通信。通信范围可以超越城市和国家,以至于全球。广域计算机通信覆盖地区的直径一般在数十公里到数干公里乃至上万公里。 在通常情况下,计算机通信都是由多台计算机通过通信线路连接成计算机通信网进行的,这样可共享网络资源,充分发挥计算机系统的效能。2.2纠错码 2.2.1纠错码纠错码(error correcting code),在传输过程中发生错误后能在收端自行发现或纠正的码。仅用来发现错误的码一般常称为检错码。为使一种码具有检错或纠错能力,须对原码字增加多余的码元,以扩大码字之间的差别 ,即把原码字按某种规则变成有一定剩余度(见信源编码)的码字,并使每个码字的码之间有一定的关系。关系的建立称为编码。码字到达收端后,可以根据编码规则是否满足以判定有无错误。当不能满足时,按一定规则确定错误所在位置并予以纠正。纠错并恢复原码字的过程称为译码。检错码与其他手段结合使用,可以纠错。纠错编码又称信道编码,它与信源编码是信息传输的两个方面。它们之间存在对偶的关系。应用信道译码直接对一些自然信息进行处理,可以去掉剩余度,以达到压缩数据的目的。 为了使一种码具有检错或纠错能力,必须对原码字增加多余的码元,以扩大码字之间的差别,使一个码字在一定数目内的码元上发生错误时,不致错成另一个码字。准确地说,即把原码字按某种规则变成有一定剩余度的码字,并使每个码字的码元间有一定的关系。关系的建立称为编码。码字到达收端后,用编码时所用的规则去检验。如果没有错误,则原规则一定满足,否则就不满足。由此可以根据编码规则是否满足以判定有无错误。当不能满足时,在可纠能力之内按一定的规则确定错误所在的位置,并予以纠正。纠错并恢复原码字的过程称为译码;码元间的关系为线性时,称为线性码;否则称为非线性码。检错码与其他手段结合使用,可以纠错。检错反馈重发系统(arq系统)就是一例。 在构造纠错码时,将输入信息分成 k位一组以进行编码。若编出的校验位仅与本组的信息位有关,则称这样的码为分组码。若不仅与本组的 k个信息位有关,而且与前若干组的信息位有关,则称为格码。这种码之所以称为格码,是因为用图形分析时它象篱笆或格架。线性格码在运算时为卷积运算,所以叫卷积码。2.2.2 纠错原理 纠错码能够检错或纠错,主要是靠码字之间有较大的差别。这可用码字之间的汉明距离 d(x,y)来衡量。它的定义为码字x与y之间的对应位取不同值的码元个数。一种纠错码的最小距离 d定义为该种码中任两个码字之间的距离的最小值。一种码要能发现e个错误,它的最小距离d应不小于e+1。若要能纠正t个错误,则d应不小于2t+1。一个码字中非零码元的个数,称为此码字的汉明重量。一种码中非零码字的重量的最小值,称为该码的最小重量。对线性码来说,一种码的最小重量与其最小距离在数值上是相等的。 在构造线性码时,数字上是从n维空间中选一k维子空间,且使此子空间内各非零码字的重量尽可能大。当构造循环码时,可进一步将每一码字看成一多项式,将整个码看成是多项式环中的理想,这一理想是主理想,故可由生成多项式决定;而多项式完全可由它的根规定。这样,就容易对码进行构造和分析。这是bch码等循环码构造的出发点。一般地说,构造一种码时,均设法将它与某种代数结构相联系,以便对它进行描述,进而推导它的性质,估计它的性能和给出它的译码方法。若一种码的码长为n,码字数为m,或信息位为h,以及最小距离为d,则可把此码记作【n,m,d】码。若此码为线性码,常简记作(n,k)或(n,k,d)码。人们还常用r=log2m/n表示码的信息率或简称码率,单位为比特/码元。r越大,则每个码元所携带的信息量越大,编码效率越高。纠错码实现中最复杂的部分是译码。它是纠错码能否应用的关键。根据式(1),采用的码长n越大,则误码率越小。但n越大,编译码设备也越复杂,且延迟也越大。人们希望找到的译码方法是:误码率随码长n的增加按指数规律下降;译码的复杂程度随码长n的增加接近线性地增加;译码的计算量则与码长 n基本无关。可惜,已经找到的码能满足这样要求的很少。不过由于大规模集成电路的发展,既使应用比较复杂的但性能良好的码,成本也并不太高。因此,纠错码的应用越来越广泛。 纠错码传输的都是数字信号。这既可用硬件实现,也可用软件实现。前者主要用各种数字电路,主要是采用大规模集成电路。软件实现特别适合计算机通信网等场合。因为这时可以直接利用网中的计算机进行编码和译码,不需要另加专用设备。硬件实现的速度较高,比软件可快几个数量级。 在传信率一定的情况下,如果采用纠错码提高可靠性,要求信道的传输率增加,带宽加大。因此,纠错码主要用于功率受限制而带宽较大的信道,如卫星、散射等系统中。纠错码还用在一些可靠性要求较高,但设备或器件的可靠性较差,而余量较大的场合,如磁带、磁盘和半导体存储器等。 在分组码的研究中,谱分析的方法受到人们的重视。纠同步错误码、算术码、不对称码、不等错误纠正码等,也得到较多的研究。第3章 循环码原理与介绍3.1 循环码介绍循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。循环码的编码和解码设备都不太复杂,且检(纠)错能力强。它不但可以检测随机的错误,还可以检错突发的错误。(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。符合这个特点的有多种方案,但循环码只能是表中的那种。循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。循环码就是这样一种编码,它可以在卡诺图中依次循环得到。循环码又称格雷码( grey code )。循环码最大的特点就是码字的循环特性,所谓循环特性是指:循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组。若( )为一循环码组,则()、( )、还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。3.1.1 循环码的多项式表示设码长为n的循环码表示为 (,,, ,) (1)其中为二进制数,通常把码组中各码元当做二进制的系数,即把上式中长为n的各个分量看做多项式: t(x) =+ (2)的各项系数,则码字与码多项式一一对应,这种多项式中,x仅表示码元位置的标记,因此我们并不关心x的取值,这种多项式称为码多项式。3.1.2 (n,k)循环码的生成多项式(n,k)循环码的生成多项式写为g(x),它是(n,k)循环码码集中唯一的,幂次为n-k的码多项式,则g(x)是一个幂次为n的码多项式。按模(+1)运算,此时: = q(x)+ (3) 即 g(x)r(x),且因 g(x)也是n阶幂,故q(x)=1.由于它是循环码,故 g(x)按模(+1)运算后的“余式”也是循环码的一个码字,它必能被g(x)整除,即:=f(x) (4)由以上两式可以得到: g(x)= q(x)(+1)+r(x) =(+1)+f(x)g(x) (5)和+1=+f(x)g(x)=h(x)g(x) (6)从上式中可以看出,生成多项式g(x)应该是+1的一个因式,即循环码多项式应该是+1的一个n-k次因式。3.1.3 循环码的生成矩阵和一致校验矩阵对所有的i=0,1,2,k-1,用生成多项式g(x)除,有:=(x)g(x)+(x) (7) 式中(x)是余式,表示为:(x)=+ (8)因此,+(x)是g(x)的倍式,即+(x)是码多项式,由此得到系统形式的生成矩阵为:g= (9)它是一个kn阶的矩阵。同样,由g=0可以得到系统形式的一致校验矩阵为: h= (10)如已知(7,4)循环码的生成多项式和校验多项式分别为:g(x) = x3 + x +1,h(x) = x4 + x2 + x +1。写得其生成矩阵和校验矩阵分别为:g= (11) h= (12) 3.2 循环码编译码原理3.2.1 循环码编码原理(1) 有信息码构成信息多项式m(x)= +其中高幂次为k-1;(2) 用乘以信息多项式m(x),得到的 m(x)最高幂次为n-1,该过程相当于把信息吗(,)移位到了码字德前k个信息位,其后是r个全为零的监督位;(3) 用g(x)除 m(x)得到余式r(x),其次数必小于g(x)的次数,即小于(n-k),将此r(x)加于信息位后做监督位,即将r(x)于 m(x)相加,得到的多项式必为一码多项式。初始化根据上面的讨论,可得到在(7,4)循环码编码的程序框图如图1 所下图示:m(x)xn-k确定余式r(x): rx=m(x)xn-kg(x)确定c(x): cx=mxxn-k+r(x)储存c(x)图2 编码程序框图3.2.2循环码的译码原理 纠错码的译码是该编码能否得到实际应用的关键所在。译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。 通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。用于纠错目的的循环码的译码算法比较复杂,感兴趣的话可以参考一些参考书。而用于检错目的循环码,一般使用arq通信方式。检测过程也是将接受到的码组进行除法运算,如果除尽,则说明传输无误;如果未除尽,则表明传输出现差错,要求发送端重发。用于这种目的的循环码经常被成为循环冗余校验码,即crc校验码。crc校验码由于编码电路、检错电路简单且易于实现,因此得到广泛的应用。在通过modem传输文件的协议如zmodem、xmodem协议中均用到了crc校验技术。在磁盘、光盘介质存储技术中也使用该方法。 在systemview中没有提供专用的crc循环冗余校验码编码器,读者可根据有关参考书设计一个相应的仿真电路。如果不想亲自动手设计,可以在cdma库(is95)中找到一个现成的专用的crc编码器和译码器。该图符(frameq)是的接入信道的数据帧品质指示编码器,其中使用了多种不同比特率的数据模型,通过crc校验来判断接入信道的质量好坏。其中规定每一帧的长度为20ms的数据。一个典型is-95-a标准规定的9600信道的crc测试码的长度为192比特,其中信息位172位、校验位12比特、尾部全零8比特。感兴趣的读者可以加入一个速率为860bps(192bit/0.2ms860)的pn数据,然后观察经过crc编码后的波形。并可用对应的译码器译码观察输出波形是否与输入的pn码一致。当码字c通过噪声信道传送时,会受到干扰而产生错误。如果信道产生的错误图样是e,译码器收到的n重接受矢量是y,则表示为: y=c+e (13)上式也可以写成多项式形式:y(x)=c(x)+e(x) (14)译码器的任务就是从y(x)中得到,然后求的估值码字= y(x)+ (15) 并从中得到信息组。 循环码译码可按以下三个步骤进行: (1)有接收到的y(x)计算伴随式s(x);(2)根据伴随式s(x)找出对应的估值错误图样;(3)计算= y(x)+ ,得到估计码字。若=c(x),则译码正确,否则,若c(x),则译码错误。由于g(x) 的次数为n - k 次,g(x) 除e(x) 后得余式(即伴随式)的最高次数为n-k-1次,故s(x) 共有2n-k 个可能的表达式,每一个表达式对应一个错误格式。可以知道(7,4)循环码的s(x) 共有2(7-4) = 8个可能的表达式,可根据错误图样表来纠正(7,4)循环码中的一位错误,其伴随式如表1所示。bch(7,4)循环码错误图样表:错误图样错误图样码字伴随式s(x)伴随式e6(x)=x61000000 x2100e5(x)=x50100000 x2+x110e4(x)=x40010000 x2+x+1111e3(x)=x30001000 x+1011e2(x)=x20000100 x2+1101e1(x)=x10000010 x010e0(x)=x000000011001e(x)=000000000000表1 bch(7,4)循环码错误图样表上式指出了系统循环码的译码方法:将收到的码字r(x) 用g(x) 去除,如果除尽则无错;否则有错。如果有错,可由余式s(x) 一一找出对应图样,然后将错误图样e(x) 与r(x) 模2 和,即为所求码字c(x) ,从而实现纠错目的。根据前面的讨论,可得(7,4)循环码译码的程序框图如图2 所示初始化由r(x)确定s(x):r(x)g(x)的余式s(x)=0,无误码误码 是否 由s(x)确定错误图样e(x) 否纠错c(x)=e(x)+r(x)存储c(x)图 2 译码程序框图第4章 开发平台简介4.1 c语言简介 c语言是combined language(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到c语言,具体应用比如单片机以及嵌入式系统开发。c语言特点。c是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。c 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 c是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。c 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 c语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外c语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 c语言适用范围大。适合于多种操作系统,如windows、dos、unix等等;也适用于多种机型。 c语言对编写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用c语言编写的。 c语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。因此c语言常常被用于开发大型软件,在工程软件和生活中以及游戏开发中得到广泛的应用。4.2 c语言优缺点 4.2.1 c语言优点 简洁紧凑、灵活方便 c语言一共只有32个关键字,9种控制语句,程序书写形式自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 c 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 运算符丰富 c语言的运算符包含的范围很广泛,共有34种运算符。c语言把括号、赋值、强制类型装换等都作为运算符处理。从而使c语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 数据结构丰富c语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外c语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 c是结构式语言结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。c语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 c语法限制不太严格,程序设计自由度大虽然c语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。 c语言允许直接访问物理地址,对硬件进行操作由于c语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。 生成目标代码质量高,程序执行效率高一般只比汇编程序生成的目标代码效率低1020%。 c语言适用范围大,可移植性好c语言有一个突出的优点就是适合于多种操作系统,如dos、unix;也适用于多种机型。c语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。4.2.2 c语言缺点1. c语言的缺点主要表现在数据的封装性上,这一点使得c在数据的安全性上有很大缺陷,这也是c和c+的一大区别。2. c语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,c语言比其他高级语言较难掌握。c语言也有自身的不足,比如:c语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。从应用的角度,c语言比其他高级语言较难掌握。 总之,c语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,又是一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言c语言版本 。4.3 c语言结构特点1.一个c语言源程序可以由一个或多个源文件组成。2.每个源文件可由一个或多个函数组成。 3.一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。 4.源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。 5.每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“”之后不能加分号。 6.标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。第5章 详细编程及运行5.1 基于c语言程序编写就74循环码的编码与译码程序如附录所示:5.2 运行及分析5.2.1 运行结果理论分析由循环码性质我们可以知道,对于(7,4)循环码来说,最小码距d0=4,可以检测出3 位错误,纠正1 位错误,编码效率为4 7 100% = 57.1%。设传输信道的误码率为p ,据此设定信道模型存在如下关系:传输正确概率为(1 p)n,信息帧传输错误概率为pe=1-(1-p) n,每帧仅发生1 位错误的概率为pe=cn1p(1-p) n-1=np(1-p) n-1, 则1 位错误帧在总的错误帧中的概率为表2 为其pe,pe1,r 的模拟结果ppepe1r/%10-10.5217030.37200971.3010-20.06793470.065903697.0110-30.006979030.006958199.7010-40.000699790.0006995899.9710-50.0000699790.0006995899.97表2 pe,pe1,r的模拟结果(n=7)综合表2 的模拟结果和理论分析可知,通信系统的帧传输具有下列性质:(1) 在n 一定的条件下,信息帧错误概率随着比特误码率p 的增加而增加,最坏条件下帧错误 概率几乎为100%,此时系统失去通信能力。(2) 在典型的通信环境下( p为10-3 10-5 5,帧长n =128 1024,np 1 ) , 当p 0 时,r 1,表明当比特误码率p 足够小的情况下,绝大多数信息帧错误是每帧1 位错误,因此纠正每帧1 位错误有实际应用价值。5.2.2 程序运行结果1初始化界面图32正确编码界面图43正确译码界面图5 4信息位有一位错误时的译码界面图65信息位有二位错误时的译码界面图76信息位有三位错误时的译码界面图8参考文献1潘新民主编.计算机通信技术 (第2版).北京.电子工业出版社.20062孙丽华 谢仲华 陈荣伶编 信息论与纠错编码.北京.电子工业出版社.20053樊昌信 著.通信原理m.国防工业出版社.1999.10 4宋祖顺 著。现代通信原理m.电子工业出版社.2001.25黄新亚 米央编著 信息编码技术及其应运大全m 电子工业出版社 1994.86proakis 著 张力军 译.数字通信(第四版)m. 电子工业出版社 2004.77潘新民 著.计算机通信技术m. 电子工业出版社 2003.78吴伶达 李国辉 杨冰等著.计算机通信原理与技术m.国防科技大学出版社.2003.39苗长云 沈保锁等著.现代通信原理及应用m. 电子工业出版社 2005.110唐朝京 雷菁著 信息论与编码基础m. 国防科技大学出版社 2003.1 课程设计总结致 谢附 录/*(7,4)循环码的编译及纠检错实现*/#include#include#include/*函数声明*/void begin();void code();void decoding();/*主函数*/main() printf(nthis software main function is carries on the code and the decoding to (7,3) cyclic code.n ); begin(); /*进行编码*/void code() int input4; int output7; int reg3=0,0,0; int temp,i,j,t; printf(please input the information code :); for(i=0;i4;i+) scanf( %d,&inputi); /*输入4位信息码*/ for(i=0;i4;i+) /*进行除法操作*/ temp=reg2+inputi; /*生成多项式为g(x)=x3+x2+1*/ if(temp=2) temp=0; reg2=reg1+temp; if(reg2=2)reg2=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锂电池回收拆解再生利用项目初步设计(参考)
- 垃圾发电厂炉渣扩建项目初步设计(仅供参考)
- 河道生态修复工程实施方案(范文)
- 贵重金属循环利用项目实施方案(范文参考)
- 共享单车电子围栏实施方案
- 安全教育专题分享
- 苏教版剪枝的学问课件设计
- 浙江省宁波市五校联盟2023-2024学年高一上学期期中联考语文 含解析
- 广东省清远市四校联盟2023-2024学年高二上学期期中联考物理含解析
- 南昌医学院《行政组织学》2023-2024学年第二学期期末试卷
- 七年级历史下册 第一单元 隋唐时期繁荣与开放的时代 第2课 从贞观之治到开元盛世教学设计2 新人教版
- AI教育项目商业计划书
- 电厂水化验员职业技能鉴定题库(高级工)第001套
- 2024-2030年全球及中国银离子抗菌敷料市场营销渠道及应用领域分析研究报告
- NB/T 11454-2023冻结法凿井风险管理规范
- 中国医院质量安全管理第 2-5 部分:患者服务 预约服务
- 危险性较大的分部分项工程清单(表格版)
- DL-T-5743-2016水电水利工程土木合成材料施工规范
- JGJ100-2015车库建筑设计规范
- 传送带模型中的相对运动与能量-2024年高考物理二轮热点模型 含答案
- 污水处理设备维护保养记录
评论
0/150
提交评论