73循环码编译码软件设计DOC.docx
- 文档编号:1369008
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:19
- 大小:267.40KB
73循环码编译码软件设计DOC.docx
《73循环码编译码软件设计DOC.docx》由会员分享,可在线阅读,更多相关《73循环码编译码软件设计DOC.docx(19页珍藏版)》请在冰豆网上搜索。
73循环码编译码软件设计DOC
摘要
本课程设计介绍了(7,3)循环码的编译与译码原理,用C语言编程实现其编码与译码功能。
通过C语言平台运用所编写的程序,输入任意的数字信息序列,得出了编码结果。
着重在无差错和部分差错的情况下进行了译码,并对译码结果进行分析。
关键词:
循环码、C语言、编译码
目录
一、计算机通信1
1.1通信的概念 1
1.2计算机通信介绍 1
二、系统设计2
2.1循环码2
2.2编码原理5
2.3译码原理6
2.4循环码译码的设计 6
2.5纠错码 7
三、设计结果及分析9
3.1程序运行结果9
3.2运行结果理论分析11
3.3软件可行性分析12
四、总结13
参考文献14
附:
程序清单15
一、计算机通信
1.1通信的概念
通信就是克服距离上的障碍,从一地向另一地传递和交换消息。
消息是信息源所产生的,是信息的物理表现,例如,语音、文字、数据、图形和图像等都是消息(Message)。
消息由模拟消息(如语音、图像等)以及数字消息(如数据、文字等)之分。
所有消息必须在转换成电信号(通常简称为信号)后才能在通信系统中传输。
所以,信号(Signal)是传输消息的手段,信号是消息的物资载体。
相应的信号可以分为模拟信号和数字信号,模拟信号的自变量可以是连续的或离散的,但幅度是连续的,如电话机、电视摄像机输出的信号就是模拟信号。
数字信号的自变量可以是连续的或离散的,但幅度是离散的,如计算机等各种数字终端设备输出的信号就是数字信号。
通信的目的是传送消息,但对受信者有用的是消息中包含的有效内容,即信息(Information)。
消息是具体的、表面的,而信息是抽象的、本质的,且消息中包含的信息的多少可以用信息量来度量。
通信技术,特别是数字通信技术近年来发展非常迅速,它的应用越来越广泛。
数字通信系统较模拟通信系统而言,具有抗干扰能力强、便于加密、易于实现集成化、便于与计算机连接等优点。
因而,数字通信更能适应对通信技术的高要求。
1.2计算机通信介绍
计算机通信是一种以数据通信形式出现,在计算机与计算机之间或计算机与终端设备之间进行信息传递的方式。
它是现代计算机技术与通信技术相融合的产物,在军队指挥自动化系统、武器控制系统、信息处理系统、决策分析系统、情报检索系统以及办公自动化系统等领域得到了广泛应用。
计算机通信按照传输连接方式的不同,可分为直接式和间接式两种。
直接式是指将两部计算机直接相联进行通信,可以是点对点,也可以是多点通播。
间接式是指通信双方必须通过交换网络进行传输。
按照通信覆盖地域的广度,计算机通信通常分为局域式、城域式和广域式三类。
局域式是指在一局部的地域范围内(例如一个机关、学校、军营等)建立计算机通信。
局域计算机通信覆盖地区的直径在数公里以内。
城域式是指在一个城市范围内所建立的计算机通信。
城域计算机通信覆盖地区的直径在十公里到数十公里。
广域式是指在一个广泛的地域范围内所建立的计算机通信。
通信范围可以超越城市和国家,以至于全球。
广域计算机通信覆盖地区的直径一般在数十公里到数干公里乃至上万公里。
在通常情况下,计算机通信都是由多台计算机通过通信线路连接成计算机通信网进行的,这样可共享网络资源,充分发挥计算机系统的效能。
二、系统设计
2.1循环码
循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。
循环码的编码和解码设备都不太复杂,且检(纠)错能力强。
它不但可以检测随机的错误,还可以检错突发的错误。
(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。
循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。
符合这个特点的有多种方案,但循环码只能是表中的那种。
循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。
这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。
循环码就是这样一种编码,它可以在卡诺图中依次循环得到。
循环码又称格雷码(GreyCode)。
2.1.1循环码的定义
循环码既是采用循环移位特性界定的一类线性分组码,循环码是一种线性代数分组码,记为(n,k)码,其中n为码长,k为信息码元数。
如果一个线性分组码的任意一个码字c(n元组)都是一个码字cʹ的循环移位,那么称此线性分组码为一个循环码。
2.1.2循环码的特点
若是一个码字,则它的循环移位也是一个码字。
循环码是线性分组码的一种,所以它具有线性分组码的一般特性,此外还具有循环性。
循环码的编码和解码设备都不太复杂,且检(纠)错能力强。
它不但可以检测随机的错误,还可以检错突发的错误。
(n,k)循环码可以检测长为n-k或更短的任何突发错误,包括首尾相接突发错误。
循环码是一种无权码,循环码编排的特点是相邻两个数码之间符合卡诺图中的邻接条件,即相邻两个数码之间只有一位码元不同,码元就是组成数码的单元。
符合这个特点的有多种方案,但循环码只能是表中的那种。
循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。
这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。
循环码就是这样一种编码,它可以在卡诺图中依次循环得到。
循环码又称格雷码(GreyCode)。
循环码最大的特点就是码字的循环特性,所谓循环特性是指:
循环码中任一许用码组经过循环移位后,所得到的码组仍然是许用码组。
若为一循环码组,、……还是许用码组。
也就是说,不论是左移还是右移,也不论移多少位,仍然是许用的循环码组。
2.1.3循环码的多项式表示
设码长为n的循环码表示为,其中为二进制数,通常把码组中各码元当做二进制的系数,即把上式中长为n的各个分量看做多项式:
(1)
的各项系数,则码字与码多项式一一对应,这种多项式中,x仅表示码元位置的标记,因此我们并不关心x的取值,这种多项式称为码多项式。
我们用多项式来表示循环码的码字
(2)
也就是一个n长码字可以用一个次多项式来表示。
它的循环特性,可由多模多项式来表示,例如左移一位,相当于乘x,应该指出,这里采用了模多项式运算。
同样,左移两位相当于乘以等等。
2.1.4(n,k)循环码的生成多项式
一个(n,k)循环码,它共有个码字,从中取出其前面位的码字,以表示,它的次数为。
则都是码字,且k个码字彼此独立,因此可以作为码的生成矩阵的k行。
一经确定,码也就确定了,编码的问题也就解决了。
因此,我们称为码的生成多项式。
生成矩阵可以表示如下
(3)
循环码的优点是没有瞬时错误,因为在数码变换过程中,在速度上会有快有慢,中间经过其它一些数码形式,称它们为瞬时错误。
这在某些数字系统中是不允许的,为此希望相邻两个数码之间仅有一位码元不同,即满足邻接条件,这样就不会产生瞬时错误。
因此,循环码可以写成,为K位信息元矩阵。
变换上式可得
得(4)
式中,为信息码组多项式。
由(2-4)可以看出,所有用生成的码字都是生成多项式的倍式。
也就是说,凡是一个码字多项式一定能被除尽。
反之,能被除尽的次数不大于(n-1)次的多项式,也一定是码多项式。
由此可以得出循环码编码方法如下:
首先将次数小于(k-1)次的信息码组多项式乘以,得到,其次数小于等于次。
然后用生成多项式去除,得到除式为,它的次数小于的次数,把此余式的系数作为监督元附加在信息码组后面,就得到一个必能被除尽的多项式,且它必是一个码多项式,运算过程为:
(5)
(6)
式中为商式,为余式,则码多项式为
(7)
而余式可以写成
[模](8)
且由于它是循环码,故必是的一个因式,也就是说,它必能被g(x)整除,即:
[模](9)
式中,为次数次,的次数为k次。
该结论可以这样来说明:
如果表示一个码多项式,则它也是的一个倍式。
因此可以写成
(10)
而乘以x相当于一次循环移位,又因为
幂次
,幂次
所以能除尽,必能除尽。
因此,我们可以说每个(n,k)循环码都是由幂次为n-k可以除尽的因式产生的,反之可以说每个这样的因式可以产生一个(n,k)循环码。
上述结论说明了能除尽的诸因式确定了所有长度为n的循环码。
举例(7,3)循环码
生成多项式,可以求得(7,3)循环码所有码字如表1所示
表1(7,3)循环码所有码字
序号
信息码
循环码
序号
信息码
循环码
0
000
0000000
4
100
1001110
1
001
0011101
5
101
1010011
2
010
0100111
6
110
1101001
3
011
0111010
7
111
1110100
2.2编码原理
根据给定的(n,k)值,再根据循环码生成定理对所给定信息位k,选定生成多项式g(x),所有码多项式c(x)都能被g(x)整除,且次数小于n-k。
若已知
(11)
并设信息元多项式
(12)
要编码成系统循环码形式,即码字的最左边k位是信息元,其余n-k位是校验元,则要用乘以m(x),再加上校验元多项式r(x),这样得到的码字多项式
(13)
式(2-6)中。
c(x)一定是g(x)的倍数,即有多项式
(14)
或
(15)
注意到为次多项式,而r(x)最多为n-k-1次多项式
(16)
即必是除以的余式。
上述过程指出了系统循环码的编码方法:
(1)将信息组乘以变成,乘以的目的是将提高次。
(2)然后将得到的除以,得到商和余式,可知该余式分子,即为校验多项式,从而得到码字多项式
(17)
2.3译码原理
设发送的码字为C(x),接收到的码字为R(x),如果C(x)=R(x),则说明收到的码字正确;如果C(x)≠R(x),则说明收到的码字出现错误,则有:
(18)
公式(2-11)中的E(x)称为错误图样。
当E(x)=0时说明没有错误,用g(x)去除R(x),
==(19)
因为是由生成的,故必能为除尽,显然与同余式,以除所得余式称为伴随式,。
由式(2-12)可知,
(20)
若则;若,则。
这说明,仅与错误图样有关,而与发送的码字无关,由此可以确定错误图样表。
由于的次数为次,除后得到余式(即伴随式)的次数为次,故共有个表达式,每个可能的表达式对应一个错误格式,可以知道(15,7)循环码的S(x)共有个表达式,可以根据错误图样表来纠正(7.3)循环码的一位错误。
系统循环码的译码方法:
将收到的码字用去除,如果除尽则无错;否则有错。
如果有错可由余式一一找出对应图样,然后将错误图样与模2相加,即为所求码字,从而实现纠错目的。
2.4循环码译码的设计
纠错码的译码是该编码能否得到实际应用的关键所在。
译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。
根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。
通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。
用于纠错目的的循环码的译码算法比较复杂,感兴趣的话可以参考一些参考书。
而用于检错目的循环码,一般使用ARQ通信方式。
检测过程也是将接受到的码组进行除法运算,如果除尽,则说明传输无误;如果未除尽,则表明传输出现差错,要求发送端
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 73 循环码 译码 软件设计 DOC