文档详情

循环码编译码软件实现.doc

发布:2017-03-26约1.36万字共34页下载文档
文本预览下载声明
摘要 循环码是目前研究最成熟的一类码,并且有严密的代数理论,它的检、纠错能力较强,编码和译码设备并不复杂,而且性能较好,不仅能纠随机错误,也能纠突发错误。当然它还具有循环性。 本说明书介绍了(7,3)循环码的定义,以及编码与译码原理,用C语言编程实现其编码与译码功能。通过C语言平台运行所编写的程序,输入任意的数字信息序列,得出了编码结果。另外还分别在无差错和部分差错的情况下进行了译码。 关键词:循环码;编码与译码;检错纠错;C语言 目录 前言 1 一、循环码编码、译码的基本原理 2 1.1、循环码 2 1.1.1、循环码定义 2 1.1.2、循环码的特点 2 1.1.3、码多项式 3 1.1.4、生成多项式 4 1.1.5、生成矩阵 5 1.1.6、监督多项式与监督矩阵 6 1.1.7、系统循环码 6 1.1.8、循环码的编码 7 1.1.9、循环码的译码 8 1.1.10、循环码检错与纠错能力 9 二、设计过程及运行 11 2.1 c语言的介绍 11 2.1.1 C语言的发展 11 2.1.2 C语言特点 11 2.2 循环码编码的设计 12 2.3循环码译码的设计 13 2.4运行结果及仿真 15 2.4. 1.正确编码界面 15 2.4.2无差错编码仿真结果 15 2.4.3部分差错编码图 15 2.5运行结果及理论分析 16 2.6软件可行性分析 17 参考文献 18 总结 19 附录 20 前言 在计算机通信信息码中循环码是线性分组码的一个重要子集,它的循环码的编码和译码电路比较简单,纠错能力也较强,是目前研究得最成熟的一类码。因此本文运用C语言对(7,3)循环码的编码与译码进行编程及运行仿真。 C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。 一、循环码编码、译码的基本原理 信道编码:信道编码又称差错控制编码或纠错编码,它是提高信息传输可靠性的有效方法之一。一类信道编码是对传输信号的码型进行变换,使之更适合于信道特性或满足接收端对恢复信号的要求,从而减少信息的损失;另一类信道编码是在信息序列中人为的增加冗余位,使之具有相关特性,在接收端利用相关性进行检错或纠错,从而达到可靠通信的目的。 1.1、循环码 循环码是线性分组码中一个重要的分支。它的检、纠错能力较强,编码和译码设备并不复杂,而且性能较好,不仅能纠随机错误,也能纠突发错误。 循环码是目前研究得最成熟的一类码,并且有严密的代数理论基础,故有许多特殊的代数性质,这些性质有助于按所要求的纠错能力系统地构造这类码,且易于实现,所以循环码受到人们的高度重视,在FEC系统中得到了广泛应用。 1.1.1、循环码定义 定义:一个线性分组码,若具有下列特性,则称为循环码。设码字 (1) 若将码元左移一位,得 (2) 也是一个码字。 由于()线性分组码是维线性空间中的一个维子空间,因此循环码是维线性空间中的一个维循环子空间。 注意:循环码并非由一个码字的全部循环移位构成。 1.1.2、循环码的特点 循环码有两个数学特征: (1)线性分组码的封闭型; (2)循环性,即任一许用码组经过循环移位后所得到的码组仍为该许用码组集合中的一个码组。 即若为一循环码组,则、、……还是许用码组。也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。 以3号码组(0100111)为例,左移循环一位变成5号码组(1001110),依次左移一位构成的状态图如图1所示。 图1(7,3)循环码中的循环圈 可见除全零码组外,不论循环右移或左移,移多少位,其结果均在该循环码组的集合中(全零码组自己构成独立的循环圈)。 1.1.3、码多项式 为了用代数理论研究循环码,可将码组用多项式表示,循环码组中各码元分别为多项式的系数。长度为的码组用码多项式表示则为
显示全部
相似文档